Bytebeat: live-coding sound waves


This weekend I stumbled upon bytebeat, a mind-blowing way of creating music, where you don’t use instruments or notes. Instead, you create mathematical formulas for the amplitude of the sound wave (sic!). It’s an amazing, exciting idea: you do away with musical abstractions and directly describe the movement of air.

What makes it even more captivating is the fact that those formulas can be very short. They can be one-line programs.

You can find a thorough introduction to bytebeat in an article by NaiveSound titled “Glitch: a noisy fusion of math and music”. After going through basics, the author presents more advanced concepts and provides links to other articles and presentations. Crucially, NaiveSound also gives an easy-to-use synthesizer that runs in a web browser. The editor supports live coding: the sound changes as you type, provided there are no syntax errors in your formula. If there are errors, the last valid version is used. It’s great fun and it feels a little bit like playing an instrument — you have to make changes at the right time if you want them to sound good.

Here are two tracks I composed (discovered?). I recorded them live using QuickTime and Soundflower:

I had a great time playing those but I have to admit that after a few hours of experimentation with bytebeat the initial excitement started to fade a little bit. Maybe this won’t be the tool that will allow me to add reactive sound to Glitchy Checkers. Maybe. Maybe the fact that I enjoy making noise with code is an indication that I should refresh my Ruby and give Sonic Pi a try? (Thanks to Maciej Gajewski for the recommendation.)

Time will tell. Meanwhile, I encourage you to give bytebeat a try. It’s a rewording intellectual and creative experience.

Make some n͍ͧ͋o̜̖̾ỉ̅͡s᷀ͧ̅e̳͠͠!

Update • 2016-07-10

Glitch got updated and gained a lot of functionality. It is now easier to make complex noises that don’t sound like NES games. Here’s me pretending to be Nine Inch Nails’ Alessandro Cortini:

Update • 2016-07-24

More drone experiments:

Procedural series