mathr / blog / #

Harmonic Protocol

I made an ambient drone piece Harmonic Protocol. It is a feedback process, with filters that analyze the sound according to the 12-tone equal temperament scale, and amplifies those components that are 7 semitones away (modulo octaves). The result is a smooth drone that changes over time.

Prototyped with clive and extracted to a standalone C application using SDL2 for audio, which has the advantage of being able to be compiled by emscripten for web audio APIs to run in the browser. Source code on the page.

Out of the box the standard emscripten HTML boilerplate does not work on Chromium or Google Chrome because of web audio autoplay restrictions, you have to start audio from an interaction with the page so for those browers I added a button with Javascript logic copy/pasted from somewhere I found online. View the source of the "index.html" for details. Hopefully future emscripten versions will add a play button to their generated code.

Future ideas: maybe try a 53-tone equal temperament version, though the CPU load will be approximately 4.5 times higher, and the web version already uses 15% of a core in Firefox (standalone version uses much less).