I’ve always been intrigued by a piece of software called FamiTracker, which lets you create music for the NES console sound hardware. If you are used to using your DAW to create music, then FamiTracker presents a significant learning curve compared to that. But as with anything, if you are patient and committed to learning its tracker-style interface, it will pay off and you can make your own NES music. You can even export your work to an NSF file, a format that can be loaded and played by a real NES console if you also have the appropriate flash cart, or played by any audio player that can handle NSF files.
This last Sunday afternoon, I randomly opened FamiTracker and started sketching out one of my favorite tracks by one of my favorite composers from one of my favorite games: “The Lunarians”, from Final Fantasy IV, by the ubiquitous FF composer Nobuo Uematsu. After a few minutes, I realized it wouldn’t take that long to re-create the entire track. I set out to do just that.
The Finished NES Track
If you prefer it in NSF format:
A proper FamiTracker tutorial would be beyond the scope of this article. If you are interested in learning it in more depth, start with “How to Use FamiTracker” by Ben Burnes.
I faced a challenge when it came to recreating that opening low-pitched decaying “donnggggg” sound with the limited NES Triangle channel. The Triangle channel is normally used for bass or low-pitched notes but doesn’t allow for changes in volume. I would need to do additional work to recreate the decay of the original sound. I worked around that by doubling the note in one of the Pulse channels, and gradually fading the volume of that channel instead, which when combined with the Triangle channel, brought back a little bit of that decay effect into the composite sound. This doubling soon disappears in order to free up both of the Pulse channels for the more prominent higher notes that begin to play. But by then, the effect has already been stated to the listener twice, and it isn’t strictly necessary to carry the effect through the entire piece in order to have left its impression on the listener. This type of trade-off is typical when dealing with the challenges of making music with the NES’s limited sound hardware. My particular solution doesn’t even scratch the surface of all the possible ways to creatively deal with its limitations.
Another limitation I had to work around was the NES’s three-voice polyphony limit for pitched notes, given that the original composition technically requires four voices. First, you’ll see from the above screenshot that the NES actually supports five channels, not three; each channel providing a single voice of polyphony. The two Pulse channels and the Triangle channel are capable of producing pitched notes. However, the noise channel can only play noise, and the DPCM channel can only play sampled sounds. One way I could have created a fourth voice of polyphony would have been to load a pitched sound into the DPCM channel and use that to play more notes. Instead, I chose to restrict myself to the three pitched channels only. A lot of NES music only uses those three channels, and I wanted this track to sound as close as possible to typical NES music.
Therefore, I had to make a decision about which notes to eliminate to allow for the smoothest conversion from four voices into three. Thankfully, this wasn’t much of a problem to overcome for this piece. First, if we consider the piece to be in 5/4 time, then one of the four voices is only playing a single note per measure. I couldn’t just drop this entire fourth voice though; the notes it plays are crucial to getting the harmonies correct. Instead, it made more sense to drop a note from the harp sequence (the fastest notes you hear) every time this fourth voice needed to play. And because the harp sequence consistently repeats its own first beat in the fourth beat of each measure, all of the originally-composed pitches are still heard even when the first beat of the harp sequence is dropped. The original harmony still gets fully represented. (This felt a bit weird to explain, but hopefully it makes sense when you listen to it.)
To put it more simply: When working with limited polyphony, it becomes critical to develop an understanding of which notes to use and which to leave out of your harmonies to maximize the effect or feel you are trying to convey.
One of the more powerful features of FamiTracker is how it handles what it calls “instruments”, which are actually just mini-sequences (of pitches, volume changes, timbre changes, etc.) that get triggered every time you insert a note into the tracker. This makes them behave much in the same way as designing a sound in your typical synth plugin and then playing it by inserting notes into your DAW, thereby letting you create your own unique NES sounds to play with (within the confines of the NES hardware limitations, of course). Tweaking an instrument can subtly or drastically change the overall sound of your track.
As an aside, I wish more DAWs had a feature like this. Imagine this: You create a small sequence of audio, MIDI, or whatever in the DAW timeline, package it up into its own separate unit, and then trigger it via MIDI at different pitches as if it were an instrument. That would give you all kinds of sound design possibilities. Arguably, there are may plugins that already offer similar functionality to this idea; but it would be interesting to have it built right into the DAW. For example, Digital Performer has something like this with its Chunks feature, but it’s not quite as flexible as I’d like.
To put the finishing touches on my arrangement, I tweaked my instruments until they sounded just right to my ear. I did not try to duplicate the sounds of the original composition exactly, since that would be impossible. Instead, I relied on my intuition as to what would sound best. In my opinion, the end result is a faithful recreation of Uematsu’s “The Lunarians” on the NES sound hardware.
I see many possibilities for FamiTracker in my own music making.