Built into the same chip as the CPU (2A03/2A07), the Audio Processing Unit gave the NES its distinctive sound. Two pulse waves handled melodies, a triangle wave provided bass, noise created percussion, and the delta modulation channel allowed rudimentary samples. Composers like Koji Kondo and Hip Tanaka turned these constraints into art.
Fast facts
- Channels: 5 total (2 pulse, 1 triangle, 1 noise, 1 DMC).
- Output: mono, mixed internally.
- Sample rate: varies; DMC plays at 4.2–33.1 kHz depending on rate setting.
- Integration: part of the 2A03 (NTSC) or 2A07 (PAL) CPU package.
- NTSC/PAL differences: the 2A03 and 2A07 differ in CPU clock, frame-counter rate (~240 Hz vs ~200 Hz), DMC rate table, noise period table, and DMC DMA conflict timing — register semantics are otherwise identical.
Channel specifications
Pulse channels ($4000-$4007)
| Feature |
Details |
| Duty cycles |
12.5%, 25%, 50%, and 25% negated — the hardware’s own label for the fourth |
| Frequency |
~54 Hz to ~12.4 kHz (11-bit period; any period below 8 is silenced outright by the sweep unit) |
| Envelope |
hardware decay or constant volume |
| Sweep |
automatic pitch bend up/down |
| Length counter |
automatic note cutoff |
Four duty settings, three timbres. The fourth setting is not a 75% pulse in the hardware’s own terms — NESdev’s duty table calls it “25% negated”, and prints its output as 1 0 0 1 1 1 1 1 against 0 1 1 0 0 0 0 0 for plain 25%. It is the same shape with the high and low halves exchanged. Inverting a wave changes its phase, not its harmonic content, so 25% and 75% are indistinguishable played on their own. The difference only becomes audible against something else: another channel it can reinforce or cancel, or anything phase-sensitive downstream.
Ricoh’s specification for the chip lists all four because the hardware encodes four, not because a composer is offered four tones. In practice the palette is thin, bright (12.5%), reedy (25%, or its 75% twin) and hollow (50%) — which is a large part of why NES music is so recognisable. There was nowhere to hide.
Triangle channel ($4008-$400B)
| Feature |
Details |
| Waveform |
32-step triangle (no volume control) |
| Frequency |
up to fCPU/32, about 55.9 kHz on NTSC — far above hearing (the timer is clocked every CPU cycle, where the other channels’ are clocked every second cycle) |
| Usage |
bass lines, soft leads |
| Quirk |
a timer of zero is how games silence the channel; the cost is a pop when an audible note resumes |
Noise channel ($400C-$400F)
| Feature |
Details |
| Modes |
long (32,767 steps) or short — 93 or 31 steps, depending where the shift register stood when the mode flag was set |
| Frequency |
16 fixed rates |
| Usage |
drums, explosions, sound effects |
DMC channel ($4010-$4013)
| Feature |
Details |
| Format |
1-bit delta-encoded samples |
| Sample rates |
16 fixed rates (4.2-33.1 kHz) |
| Memory |
samples must reside in $C000-$FFFF |
| Usage |
voice, drums, complex sounds |
Register summary
| Address |
Channel |
Purpose |
| $4000-$4003 |
Pulse 1 |
Duty, envelope, sweep, period, length |
| $4004-$4007 |
Pulse 2 |
Same as Pulse 1 |
| $4008-$400B |
Triangle |
Linear counter, period, length |
| $400C-$400F |
Noise |
Envelope, mode, period, length |
| $4010-$4013 |
DMC |
Rate, sample address, length, output |
| $4015 |
All |
Channel enable/status |
| $4017 |
Frame |
Frame counter mode |
Programming techniques
- Arpeggios: rapidly cycle through notes to simulate chords.
- Duty cycling: switch pulse duty mid-note for timbre variation — between 12.5%, 25% and 50%. Switching between 25% and 75% changes nothing audible on its own, for the reason given above.
- Volume envelopes: software-controlled volume for more expressive decay.
- Echo: delay audio data in software for pseudo-reverb.
- DMC percussion: use samples for punchy drums unavailable in synthesis.
Expansion audio
Some cartridges added extra sound channels:
| Mapper |
Extra channels |
| VRC6 |
2 pulse + 1 sawtooth |
| VRC7 |
6 FM synthesis channels |
| Sunsoft 5B |
3 PSG channels (AY-3-8910 compatible) |
| Namco 163 |
up to 8 wavetable channels |
| FDS |
1 wavetable channel |
See also