September th, 2015

7d7e: Seven New ZX Spectrum Sound Routines in Seven Days

The past couple of weeks, I went on a coding spree, making a number of new 1-bit sound routines. Instead of just throwing the routines out on the net, I decided to release them within the scope of a little art project, publishing one engine per day over the course of one week. Hopefully this will help a bit to spread my vision of code as an artform in it’s own right.

On the technical side, my goal with this project was to put into practise some of the techniques I had learned throughout the year, to advance my coding skills, and ultimately to bring some new and unheard sounds to the 1-bit world. Most importantly, I explored the possibilities of wavetable synthesis in a 1-bit context, creating two engines with high quality wavetable playback. So far, these are the only multi-channel wavetable routines on ZX Spectrum beeper, aside from the old SampleTracker 1-bit routine which plays full PCM samples, but at the cost of a very low playback quality.

Furthermore, I pushed the limits of the pulse-interleaving PWM technique by creating two engines with six and eight channels respectively. I also improved on my own work with a new 4 channel routine that can synthesize pseudo-white noise along the tone playback.

Last but not least I successfully broke the record for the smallest Spectrum beeper routine, creating a complete two channel routine in just 83 bytes - 16 bytes less than the previous record.

Even though the project garnered only limited attention (as was to be expected), I’m nevertheless quite happy with the outcome, and am thinking of repeating the experiment at some point. For now, you can read up on the details in the release thread over at the 1-Bit Forum. Downloads can also be found in the code section of this website, and various demo tracks can be found on my soundcloud.