Redis + Audio Analysis for near-realtime fun
Go to file
2020-09-27 21:02:19 +02:00
README.md [wip} 2020-09-27 21:02:19 +02:00
redilysis.py [wip} 2020-09-27 21:02:19 +02:00
requirements.txt [wip} 2020-09-27 21:02:19 +02:00

Redilysis = Redis + Audio Analysis

Redilysis sends audio analysis to a redis server.

The idea is to share a single audio analysis to many Visual Jockey filters, in our case for lasers.

Two modes exist for now, you need to run two processes to get the complete experience!

Spectrum Mode

This is the default mode.

It performs some frequency analysis (Fast Fourier Transform) to detect "energy" in the human audition bandwidths.

It will record if there is sound and at which frequencies.

It can run at sub-second frequency (100ms) with no problem.

It reports realistic data: spectrum analysis is the easy part.

BPM Mode

This mode is more experimental.

It attempts to detect beats based on the

Keys and contents in Redis

bpm_time : (milliseconds integer timestamp) last update time onset bpm beats spectrum_time

Installation

sudo apt install python-pyaudio python3
git clone https://git.interhacker.space/tmplab/redilysis.git
cd redilysis
pip install -r requirements.txt
python3 redilysis.py --help

Guide

There are two available modes.

One is the slow mode with BPM recognition:

python3 redilysis.py -m bpm -s 1 -f 44100

Pushes following keys in redis:

  • onset
  • bpm
  • beats

The other is a fast mode with spectrogram analysis

python3 redilysis.py -m spectrum -s 0.1 -f 4410

Pushes following keys in redis:

  • rms
  • spectrum
  • tuning