The NES console supports upto 5 channels of mono audio:
- One triangle wave
- Two square waves
- One noise generator
- One DPCM channel
These channels should be familiar for anyone who's used a vintage synth, and if you haven't, well, they're nothing more than basic sound generator features. Sine waves, triangle waves, square waves, and saw waves are different types of basic wave forms that many sound generators can create. Noise generators simply create white noise (basically, radio noise) at a particular frequency. It may sound useless at first, but it comes down to your creativity. It's all about how you apply it. According to my research, the noise generator is mostly used for percussion! DPCM channels are used for transmitting low quality audio, usually voices over phone lines. In games, they're used for voice based sound effects (Zelda, anyone?)
One key point to note is that these 5 channels are responsible for ALL of the audio, not just the music. So when composing this song, I couldn't just let loose and do whatever I want. I decided to reserve one square wave and the DMCP channel for the (imaginary) sound effects, and compose using the remaining square wave, triangle wave, and noise generator. Now, enough of all this theory, lets get down to applying what we've learned.
I had initially planned to use the square wave as the lead, the triangle wave for accompaniment, and the noise generator for percussion, but since when do things go according to plan? It turns out that the triangle wave sounds much clearer at higher frequencies, so naturally, I used it for the lead instead of the square wave.
The rest of the process was mainly just....COMPOSING THE SONG (ironically, the one thing I hadn't really given much thought...till now). This was actually easier than I expected! I simply looped a basic tune for the accompaniment (4 bars) and improvised the percussion to form an interesting beat (15 bars).For the lead, I maintained a fairly constant rhythm and just jumped up and down across C major throughout the entire song!
Generally, with MIDI programming, you try to humanize all the tracks, purposely miss the beat by small fractions to emulate slips, and on the whole, just get it to sound like an authentic recording. For this project, I did the exact opposite: quantizing the entire song, use the same velocity for every note, and do whatever I could to make sure it sounded like it was coming from a machine. After that, I just adjusted static volume levels for each track, and that's it!
a job well done
Thanks for reading!