Table Instrument Guide

In the days before software-generated synthesis, computers would generate sound using something known as a PSG (programmable sound generator). PSGs gave us the ability to operate a small number of synth “voices” — turn them on/off, change their pitch, set volume envelopes, change pulse width… They allowed for a small set of basic waveforms, and 3-4 channels, called voices (each voice is a synth oscillator). If you only ever used one group of settings at a time, you’d have pretty boring sounds. But the real fun comes from changing the settings of a synth voice during playback, using a table of values.

Table Instruments

To increase the number of available sounds people started using instrument tables. Software programs called trackers were used to program the PSG chips. Programs like this are still around, like LSDJ, GoatTracker, Milky Tracker, though they have changed a bit from the original ones. An instrument table is a list of commands, which change the various properties of the synthesizer. SquareSynth has three different parameters in it’s table — One for pitch, one for waveform-type, and one for PulseWidth. One way to use tables is as an arpeggiator. A common arp is a table with intervals I-III-V (0-4-7 in semitones, which is how SquareSynth sets pitch). This is a major chord, played on a single voice (Listen). Playing it this way saves the number of voices required, and it has a very retro sound. You can change it to a minor chord by turning the 4 to a 3 — a minor 3rd instead of a major 3rd.

Many folks will stick a variation of some sort at the beginning of a Lead synth sound. For a simple example, here’s a patch called Simple Lead.

Here’s what it sounds like.

As you can see there is a +12 (an octave) rise at the beginning. There are two semitone offsets (according to me) at which the base note will still sound more like a single note, and less like a chord or arpeggio. +7 and +12. Yup, those semitone offsets are pretty good for leads. They have a “strong” sound. Having one high pitch at the beginning of a note will give it more of a stabby sound. Also of mention is that the Loop Start, and Loop End are at the same position. This is how to make a dead-stop in the table.

Here’s an example from the preset patches. Load up Echo Long and you will see this:

Here’s what it sounds like.

This patch creates what can arguably be called an echo effect by repeating two evenly timed notes forever. The fading effect is accomplished by using a long Release in the Envelope. The loop spans 8 steps. A +12 or +7 note will occur every 4 steps. It sounds like two staccato notes played down a long hallway, and a constant lower note. It’s all about “tricking” the ear.

Drums

One of the main uses of this technique is for percussion. You will have a hard time getting deep or heavy drum kits from an 8-bit sound chip without using tables. Most drum sounds can be broken down into short component sounds. Very fast table speed is key here. This snare drum is created by modulating the Pitch and Wave tables.

This drum consists of three main stages: A +27 pitch triangle wave (Tri), a +20 pulse wave (Pls), and an endlessly looping long noise wave (LN) which steps between +36 and +20 forever. The speed knob must be turned higher, for a higher speed. The ear will hear something which is more than the sum of the components. It will hear a snare drum!! Experimentation is key.

Here’s what it sounds like: link.

More Resources:
http://www.ucapps.de/howto_sid_wavetables_1.html    tutorial for making Commodore 64 drums
http://youtu.be/aEjcK5JFEFE                               history of chip music technology, and innovation

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s