Cheery
Cheery

Reputation: 25463

How to reproduce C64-like sounds?

I did some of my own research and found out that SID-chips had only few hardware supported synthesizing features. Including three audio oscillators with four possible waveforms (sawtooth, triangle, pulse, noise), with ADSR envelopes and ring modulators. Accompanied with oscillator sync and ring modulators. Also read there was a way to play single PCM sound as well.

It is all so little, but still I heard lots of different sounds from my TV sets. How were they combined to produce all that variety of audio?

To give some specifics, I'd like to know how to combine those components to produce guitar, piano or drum -like audio? Another interesting things would be different buzzes and sounds specific to C64.

Upvotes: 15

Views: 3893

Answers (5)

St0fF
St0fF

Reputation: 1633

As somebody who actually programmed 2 different Trackers on the C64 I guess I can answer your question fairly well.

First off, you are right on the specs you gave. But the thing is: neither the waveform needs to be fixed for an instrument, nor the pitch, nor pulsewidth, nor filters (cutoff, type and resonance can be changed on the fly). So that's different to some retro-synth VST instruments you may know, where you have mostly fixed parameters.

A C64 tracker normally has tables for that. A wave-and-arpeggio-table is used to adjust waveform and pitch during playing a note. Also there are pulse and filter tables used. Depending on how much processing time can be spent, the SID registers are written to @25Hz or more (some tracks go up to socalled 8-speed, which is 400Hz), standard on PAL systems is 50Hz (screen refresh rate). So by changing waveform, pitch, pulse and filter at a rate just a little lower or even (for bass) close to the musical frequencies, you can produce really nifty sounds from just one voice. Then imagine: 3 channels makes 3 nifty sounds at the same time :)

As for Pianos and Guitars: I'd love to get a wavetable that really sounds like that. As others pointed out: SID is missing the harmonics - although you may use HardSync - which synchronizes two voices to add some kind of harmonics, but I have not managed real-sounding brass, piano or strings so far. On that point: SID sounds like SID.

Regarding sample playback - you may not believe it, but after decades some demo scene enthusiasts have managed to find a way to play back samples via PWM on one voice and still be able to play SID instruments and use the filters on the other 2 voices. Still those samples have a max of 12kHz sampling rate and afaik are only 8 bit (please correct me if I'm wrong), but this really sounds great. Example: https://www.youtube.com/watch?v=8_M260qMbWA

To sum it up: SID sounds are so unique, because the Parameters are adjusted at rates of 25-400Hz, typically 50Hz. And actually the features of that chip were way ahead of the industry in 1982 when it was released.

Upvotes: 0

markh
markh

Reputation: 793

I used to write music on the C64 for games, demos and even services (I wrote the official QuantumLink theme, even). As for your question, the four different waveforms were typically overlaid with the sync and ring mods (less often ring, because it was unpredictable on different versions of the SID chip), and sometimes used cleanly.

For example, a typical 'snare' sound would be composed of a noise waveform with a very fast attack and sustain, and depending on whether you wanted a drumstick or brush sound, either a very fast decay and moderately short release, or a short decay and slower release.

Getting the right sound was typically trial and error, and the limitations were pretty heavy. You really never got to the point of piano or guitar sound due to the simple waveforms without overlayable harmonic waveforms, about the best you could get was things that sounded beepy, things that sounded marimba-y, and things that sounded like a snare drum.

One of the tricks used most often to extend sound was done with fast machine code playback routines that could change the played notes on voices so quickly as to give the impression of a fuller, harmonic tone. We just called it arpeggiation, although at 10 to 12 note changes a second it sounded more like a buzzy chord.

As for the sampled waveforms, they were only available as single bit and later 4 bit samples. These sounded terrible despite our best attempts, because basically the method of playback for a sample on the 64 was to play a white noise waveform and rapidly alter the volume on the SID chip to produce a rising and falling wave. Do it fast enough and it sort of sounds like the original sound, poorly tuned in on a staticky radio.

I suggest you grab hold of a C64 emulator for the PC (CCS64 is a good one) and a 64 BASIC programming guide and just play around.... the SID chip is entirely manipulatable from BASIC.

To sum up, how did we get all of those piano and guitar sounds on a C64? We didn't, really.

Upvotes: 21

John Cromartie
John Cromartie

Reputation: 4224

This type of music you are describing falls into the category of "chiptunes". I'd recommend checking out some modern trackers like MilkyTracker, which are used to create music in this style. There are libraries like libmodplug that allow you to play tracker in your software.

Upvotes: 3

Brandon E Taylor
Brandon E Taylor

Reputation: 25379

Take a look at some of these docs related to producing music on the C64:

http://sid.kubarth.com/articles.html

Upvotes: 4

Neil N
Neil N

Reputation: 25278

Check out some of the C64 emulators out there. I've read that some of them are 100% accurate in ther sound reproduction, true to the original.

Upvotes: 2

Related Questions