# Harmonic Protocol
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.
Important 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 (repetitive clicks are a sign of processor overload).
# 1 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.
# 2 Source
code.mathr.co.uk/dr1/harmonic-protocol
git clone https://code.mathr.co.uk/dr1.git &&
cd dr1/harmonic-protocol
# 3 Requirements
Desktop version powered by SDL2.
Web version powered by emscripten.
# 4 License
# 5 See Also
Harmonic Protocols adds a matrix mixer.