Harmonic Protocol

Listen

The Harmonic Protocol live interface lets you choose from 61 drones.

Audio is generated live in your browser. Plays automatically in Firefox, interact to start playback in other browsers. Starts quiet.

Note

Playback may struggle on low-power machines like mobile phone or Raspberry Pi. Inner rings need less CPU power than outer rings. The sound should be a smooth drone without rhythmic clicks (stuttering clicks are a sign of processor overload).

Process

Stereo feedback loop 1 second long, with left and right blended with a rotation matrix (angle 2PI/12).

Inside the loop, compute RMS level per EDO (Equal Division of the Octave) step per channel via a bank of biquad bandpass filters over 4 octaves upwards from MIDI note 24, accumulated modulo #-EDO. Low pass filter for the RMS at 1/32 Hz.

Scale each individual EDO step by the energy of the octave accumulation /# steps away (pick a direction). Distort each band using tanh(). Apply strong dynamic range compression to the stereo mix to normalize peak levels to ~±1.

Source

Latest Version

code.mathr.co.uk/dr1/harmonic-protocol

git clone https://code.mathr.co.uk/dr1.git &&
cd dr1/harmonic-protocol

This Version

harmonic-protocol.c

Makefile

Requirements

Desktop version powered by SDL2.

Web version powered by emscripten.

License

AGPL3+

Author

mathr.co.uk