November 21st, 2016

New ZX Beeper Engine: povver



Back when I wrote the music driver used in HoustonTracker, I kept getting mysterious dropouts in the sound when two channels were playing the same note. Eventually I discovered that this was due to the channels running with an inverted phase, effectively cancelling out each other. A bit more experimentation revealed that this phenomenon could actually be used as a crude form of volume control. Alone Coder and I tried to implement this technique on the Spectrum, but we never quite managed to get it into a usable state. Now, with the recent discovery of a faster tone generation technique, I couldn’t resist doing another test implementation. It still suffers from much of the same problems that the earlier routine had, namely that it is quite noisy. That nonwithstanding, here’s the source code, if you want to take a look.