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 and the channels
- Samples and playback
- Period and volume
- Effects and music
- Sequencer commands
- Sampled audio
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.
Sequencer commands
The native operations a sequence drives on Paula, and whether each runs on its own once set or must be updated every tick. Paula loops a sample at a set period and volume on its own, but it has no envelope or modulation hardware, so a player drives volume, slides and vibrato every tick.
| Command | What it does | Automatic or driven |
|---|---|---|
| Note / pitch | Period per channel, DMA fed | Automatic |
| Sample | Pointer and length in chip RAM | Automatic |
| Loop | Repeat a region to sustain | Automatic |
| Volume | 0 to 64 per channel | Automatic (level held) |
| Envelope | No hardware; player writes volume | Driven |
| Vibrato / portamento | No hardware; done in code | Driven |
| Global filter | LED low-pass, on or off | Automatic |
Sampled audio
Sampled audio is the Amiga's native voice: each of Paula's four channels does nothing but replay 8-bit signed PCM from chip RAM over DMA, so playing a recording is the normal case, not a trick. Point a channel at the sample, set its length, period and volume, enable it, and it plays and loops on its own. The practical limits are the 8-bit sample depth and a top clean rate around 28 kHz; a smaller period plays faster, but the fixed output filter and the DMA set the ceiling, and higher rates need the CPU to feed samples instead of DMA.
For hi-fi playback a well-known trick pairs two channels on the same side, one carrying the high byte at full volume and one the low byte at a volume of 1, so the two sum to about 14-bit resolution. This is how calibrated sample players and the later MOD successors reach near-CD depth on the stock hardware.
| Method | How it works | Depth | Max sample rate |
|---|---|---|---|
| Native DMA playback | A channel replays 8-bit PCM from chip RAM | 8 bits | ~28 kHz (DMA), higher CPU-fed |
| Paired-channel (14-bit) | Two channels sum high and low bytes at full and 1/64 volume | ~14 bits | ~28 kHz |