Bitpop: Made with the sounds of the Commodore 64 Home Computer – Part 2

Technical Brief

I use a few core tools in creating these tracks. Some are new, some are old (and emulated). Let’s start with the old since this is where all the sound design happens.

Ever since the 80’s, I have written in assembler my own C64 Music & Sound effect driver. It has gone through a number of iterations as new techniques for SID Chip sound modulation have been developed. My most recent version (zBlex v6) was written in 2013 with two primary goals:

1) supporting as many SID Chips as you care to map into the C64 memory address space. Most C64 emulators support two SID chips at #$20 separation starting from $D400. My driver makes is easy to support these as long as they fall in the #$20 increments.

2) Every writable register of the SID can be programmed as a Wavetable. My wavetable design allows for relative and absolute value modification and conditional looping and jumping. Because of this complexity, it would have been too processor heavy to have one wavetable per instrument or sound as jumps and loops can disrupt the flow of the commands I use in my bytecode. Instead, I’ve opted to make my tables per register. As the SID Chip has seven registers per voice/channel, my instrument definition can consist of up to seven tabled per sound/instrument. It’s complex but it allow for a lot of flexibility.

I typically use my driver to create single discrete sounds at various note pitches and then sample those out from the reSID emulated sound into a sample library. Sometimes though, I do create basic sound phrases that may be one to four bars in length and then sample that out into my expanding library of SID sounds.

These sounds may be simplistic as a standard Triangle or Pulse (without width modulation) waveforms or may be as complex as I need it to be. Some sounds may be heavily wavetable modulated or even take two or three SID channels to produce. C64 musicians (and other platforms) have been doing this since the time when we started unlocking the majesty of these sound chips.

Another aspect of my zBlex-v6 music driver is that it doesn’t do sampled sounds as its focus is solely on subtractive synthesis. For my Bitpop music, this isn’t an issue as I prefer to offset those 8 bit sounds with high quality vocal overdubs/tracks. In my view, this makes the overall accessibility of chiptunes to  a general audience more palatable. Using 4 bit low KHz vocals aren’t befitting to my strategy in this regard – not to mention that even at that low sampling quality, 4+ minutes of samples (X2 including backing vocals) won’t fit into 64Kb of memory.

Self imposed limitations

Also, remember that Bitpop allows for the use of more modern production techniques so I do make use of effects such a chorus, reverb, tape delays and compression. I do limit how I employ these effects since I am constantly aware of how they can obfuscate the raw nature of the chip sounds.

Another advantage of not being pure chiptunes is that I don’t need to concern myself with how many sound channels/voices I use, of which the SID has three. There is however a growing collection of dual-SID music that you can playback with SID player of C64 emulator and isn’t adhering to the original C64 design specifications. Side note: I bet this also upsets the “purists” too, so I’m not alone in this!

I do take careful consideration in the level of polyphony in my Bitpop covers. I don’t layer as many sounds as I please. For example, I could completely disregard the arpeggio effect and play three (or more) notes to create chords but that would then lose one of the most identifying qualities of chiptunes. More commonly, if I feel I need to add an extra sound at some point in the musical piece, I will sacrifice one of the other sounds that is playing to wedge the new sound in. I do this not always, but mostly.

Typically I try to keep my music within a six channel limit in the spirit of DualSID Chiptunes. Sometimes I break this self imposed limitations but only if I really feel I need to.

Part two: Next Week – Putting it all together & Wrappiung it up

Leave a Reply