In November last year I wrote a post about playing music with the graphic (VIC) chip of the C64, aswell as combining 4 channel Amiga MODs with 3 SID-channels. I e-mailed some questions to one of the programmers behind it and I was happy to get a reply from him the other day. : ) SounDemon is what I would call a sound chip hacker, since many of his works are based on exploring undocumented features of the SID-chip and exploit them. These things do not rely on CPU-power to create new sounds, that most music software does. In my opinion this is one of the most hardcore ways of making chip music that is somewhere inbetween hardware and software. For hardcore hardware chip music, I would recommend you to go to Brisbane, Australia right now for EPROM-music. But anyway:
CHIPFLIP > So first just a bit about what you are doing and what you have done in general. Education and stuff.
SOUNDEMON > I’m studying computer science at Abo Akademi in Turku/Finland. At the moment I seem to spend all my time running to choir practices and doing math exercises for school.
CHIPFLIP > How did you get into the SID chip?
SOUNDEMON > I think the first music routine I wrote was for the Dekadence 4kb demo Perkele. BriteLite asked if I could do a tune that was very small, in order to leave room for as many demo effects as possible. The obvious solution to this was to code a custom player. So, I got into writing music routines and by experimenting I somehow managed to invent a few new sound routines.
I must add that I have always liked the idea of programming music. This is the only way to gain full control over the sound. I was inspired by old C64 composers (Galway for example) who had to work this way, before fancy editors were available.
CHIPFLIP > Tell us a bit about your different projects. How did you come up with ‘the new waveform’ in Pico? How did you do it and what does it actually do? Will there be new experiments with the waveform editor?
SOUNDEMON > As with Perkele, we needed a very small tune for Pico (which is also a 4kb demo). I decided to include some metallic drum sounds by using the “testbit trick”. While trying different parameters for the sounds I got some weird pitched sounds. Only after releasing the demo I spent some time analyzing the behaviour of the SID chip to find out how and why the trick works.
The routine works by directing a steady stream of angry bits towards the noise generator of the SID. The result is a confused SID chip playing sounds it’s not supposed to play. For a more technical description see: http://www.dekadence64.org/sidwav.txt
It might be possible to create more sophisticated sounds with this method than has been done so far… (hint hint)
CHIPFLIP > I once heard something about a 2 tone filter (“new waveform”) for the Atari Pokey, but can’t seem to find the information back right now. But have you heard about this?
SOUNDEMON > I’m not sure what this is. I believe most 8 bit sound chips (including the SID) use a shift register based approach for generating noise. This explains why it might be possible to get the same kind of sounds on other machines as well.
CHIPFLIP > Could u tell us a bit about your sample shocks from x2008? How is it possible to play 4 channels of 8-bit samples? And ofcourse, how about the Vic audio?
SOUNDEMON > I must first clarify one thing. In our x2008 demo there’s two new
major routines: A “MOD” player capable of mixing four digi channels AND the 8 bit sample playback routine. These are NOT the same routine, but they can of course be combined as we did.
The MOD player was written by The Human Code Machine. MOD players have been written for C64 before. The one by THCM is special because it actually sounds good and allows the screen to be turned on. (How fun is it to have MODs playing if you can’t display anything on the screen?) It’s based on straightforward code that uses cleverly precalculated tables to do the hard work. Somehow THCM managed to fit these tables and a MOD into 64kb of memory. I still suspect he cheated by hiding a memory expansion
unit inside my C64! (I haven’t found it yet)
The 8 bit sample player was written by me. 8 (and even 12 bit) sample playback has been done on C64 before, but this is the first routine that sounds clear and doesn’t use all raster time.
The VIC audio is just a fun trick. It’s absolutely nothing special codewise. It’s a bit like the 9 sprites on the same raster line trick by xbow where the idea is the achievement, not the actual code. That is why I gave the credit for inventing this technique to AMJ. He came up with the idea and after that the code was done in about 10 minutes.
CHIPFLIP > Do you always use your own software when you make C64 music?
SOUNDEMON > I don’t even have my own software. When using my own routines I just use Turbo Assembler to edit the player source and music data. I seldom reuse a player because they are typically coded for a specific tune. This is of course very time consuming so I do it only when it’s necessary. Usually because of tight size or raster time constraints.
CHIPFLIP > Are there other soundchip hackers that you know of?
SOUNDEMON > What exactly is a sound chip hacker? I like the sound of it, though…
CHIPFLIP > What will be your next shock? :)
SOUNDEMON > I will continue coding on network routines for C64… Something
interesting might result.
CHIPFLIP > Could you give us a few examples of 8-bit code, music, and graphics that you think are special?
SOUNDEMON > I liked Royal Arte by Booze Design a lot. I always liked the flow in
Extremes and Follow The Sign 3 by Byterapers. The 6 sprites over FLI routine by Ninja must be the most insane piece of code ever written.
CHIPFLIP > Do you have anything else you would like to add?
SOUNDEMON > I find it funny how this 8 bit sample routine became such a success.
I have always considered samples on C64 quite boring! Writing a sample player didn’t seem so interesting… But once I got an idea on how to implement the routine I wanted to try it. I guess the result was a bit more exciting than I would have expected…
Finally I must add that the 8 bit samples in Vicious SID wouldn’t have been the same without Mixer. He did an excellent job utilizing the routine! He also spent LOTS of time experimenting with the routine.