Amiga Audio
Sound on the Amiga comes from Paula, which drives four independent DMA sound channels. Each plays a stream of 8-bit signed PCM samples straight from chip RAM, with its own pitch and volume. Two channels are mixed to the left output and two to the right, giving stereo. Because it plays samples, any waveform at all is possible.
Overview
Paula is a sample-playback chip, not a tone generator. It has four channels, each fed by DMA from a block of chip RAM holding a digital waveform. Once a channel is pointed at a sample, told its length, pitch and volume, and enabled, it plays on its own without the CPU. Because the sound is whatever samples are in memory, the machine can voice real instruments, speech and drums, which set it apart from the square-wave chips of its rivals.
| Property | Value |
|---|---|
| Channels | 4, DMA driven |
| Sample format | 8-bit signed PCM |
| Sample source | Chip RAM |
| Volume | 0 to 64 per channel |
| Output | Stereo: two channels left, two right |
Paula and the channels
The four channels are numbered 0 to 3. Each has its own registers: a pointer to the start of its sample in chip RAM, a length in words, a period that sets the pitch, and a volume. Channels 0 and 3 are routed to the left speaker, channels 1 and 2 to the right, so the pairing is fixed in hardware. All four can play at once, independently, which is why four-channel music is the Amiga standard.
| Channel | Output side |
|---|---|
| 0 | Left |
| 1 | Right |
| 2 | Right |
| 3 | Left |
Samples and playback
A sample is a run of 8-bit signed bytes in chip RAM, each byte one amplitude from −128 to +127. The DMA reads them two at a time (a word) and feeds each byte to the channel's digital-to-analogue converter in turn. When the channel reaches the end of its length it loops back to the start, so a short waveform can be repeated to sustain a note, or a loop region can hold the steady part of an instrument.
Because playback is just replaying stored amplitudes, the waveform can be anything: a sine, a sampled guitar, a spoken word. The pitch of a note is set purely by how fast the bytes are stepped through, which is the period.
Period and volume
Each channel has a period value that sets how many system clock ticks pass between output samples. A smaller period steps through the sample faster, raising the pitch; a larger period slows it, lowering the pitch. To play the same recorded sound at different musical notes, the program just changes the period. Volume is a separate value from 0 (silent) to 64 (full), scaling every output sample of that channel.
| Register | Effect |
|---|---|
| Period | Clock ticks per sample; smaller is higher pitch |
| Volume | 0 to 64, scales the channel's output |
| Length | Sample length in words, then it loops |
| Pointer | Start address of the sample in chip RAM |
Effects and music
The same four channels serve both sound effects and music. A sound effect is one sample played once on a spare channel at a chosen period and volume. Music is built the same way, the MOD file being the classic form: it stores a set of small instrument samples and a pattern list that says, for each of the four channels on each beat, which sample to trigger at which period and volume. A player routine steps through the patterns and writes Paula's registers, so full songs play under a running game using only the four hardware channels.
Since every voice is a sample, composers get real instruments rather than beeps, which is why the Amiga MOD sound defines much of the demo and game music of its era.