NES Audio
This is not intended as an in-depth examination of the NES's audio capabilities but just a brief introduction, hopefully just enough to help you understand more about the way Pulsar is designed and the limitations placed on it by the NES hardware.
The NES has four monophonic sound-generating 'voices': two pulse (or square) wave, one triangle wave and one noise.
In addition the NES is able to play low-quality samples via the 5th voice, often referred to as then DPCM/DMC/DCM voice.
Square, Triangle and Noise
The four sound-generating voices all vary in capability. The two square-wave voices are essentially identical.
Voice | Pitch | Amplitude | Tone |
---|---|---|---|
Square | Approx. 6 octaves | Yes. 16 levels | One of four pulse widths is selectable |
Triangle | Approx. 6 octaves but output pitch is one octave lower than the two square-wave voices | No. Output level is fixed, voice can be on or off. | No |
Noise | 16 frequency settings | Yes. 16 levels | Two modes are selectable: "noise" and "tone". The "tone" mode is a well known characteristic of NES audio, a harsh metallic sound that appears in many NES games. |
DPCM/DCM/DMC Voice
Discussion of the technical details of the 5th "sample" voice are beyond the scope of this document. DPCM stands for Differential Pulse Code Modulation, if you're interested in reading more about it on the internet. The NES uses the most basic form of DPCM called "Delta Modulation' which uses a 1-bit data stream. Here's a Wikipedia article on Delta Modulation
Essentially the voice plays 1-bit PCM samples at one of sixteen playback rates (though mostly only the highest few are used, mainly becuase the samples tend to sound pretty terrible at lower speeds). You can read more about Pulsar's handling of the sample voice on the Drumkit page.
List of Samples in Pulsar ROM
Eventually I plan to release a ROM patching tool that will allow you to patch the Pulsar ROM with your own DPCM samples (as I did with NTRQ). For now, here's the list of included samples;
- 00 TR808 Kick
- 01 TR808 Snare
- 02 TR808 Clap
- 03 TR808 Cowbell
- 04 TR808 Rimshot
- 05 TR909 Kick
- 06 TR909 Snare 1
- 07 TR909 Snare 2
- 08 TR707 Kick 1
- 09 TR707 Snare 1
- 0A TR707 Snare 2
- 0B TR707 Rimshot
- 0C TR707 Hi Tom
- 0D TR707 Clap
- 0E TR707 Snare + Clap