Are you an aspiring musician? Are you into chiptune music? Do you have a fondness for music from the good ol' days of computers and video games? Well, you're in luck!
Are you an aspiring musician? Are you into chiptune music? Do you have a fondness for music from the good ol' days of computers and video games? Well, you're in luck!
With FamiTracker, all your dreams of beeps and boops can come true. FamiTracker is a free to use tool that allows you to program chiptunes fully within the limitations of the NES. You can even play your music through an emulator or on real, original hardware! The word "program" might sound scary, but don't worry: there's no coding involved. However, it is important to know a bit about the NES's sound hardware before jumping into FamiTracker.
The NES's microprocessor, the Ricoh 2A03 (also known as the 2A07 in PAL territories), was also used as the system's APU (audio processing unit). In Japan, where the NES is called the Famicom, many companies included expansion chips in their game cartridges that allowed for extra audio channels to be added, many of which are supported in FamiTracker. However, due to hardware differences, the North American and European NES cannot play expansion audio. This tutorial will focus solely on the basic 2A03 audio.
The 2A03 has five different single-voice audio channels that support different waveforms. It has two channels for pulse waves with four different duty cycles (this will be explained soon), one triangle channel, a noise channel, and a DPCM sampling channel. Each channel has a different sound and can be used for a variety of different purposes.
Below, you can see how each different channel sounds. More in-depth information can be found on NESDev's page about the NES's APU.
The 2A03 has two pulse wave channels that are typically used for melody and harmony. They support four different duty cycles (the ratio of the pulse wave's "high" and "low" states): 12.5%, 25%, 50% (a "square" wave), and 75% (sounds the same as 25%).
The single triangle channel produces a triangle waveform. This channel has no volume control - it is either playing at full volume or is silent. This channel is most often used for bass, but many also used it for percussive sounds by rapidly lowering the pitch.
The noise channel produces random noise, and is often used for things like percussion and explosion sound effects. The noise channel can output two types of noise, one which sounds like TV static and the other with a more "metallic" tone.
The DPCM (Differential Pulse Code Modulation) channel allows audio samples to be played. Developers often chose not to use this channel due to memory constraints, but those who did typically used it for percussion and voice samples. However, some developers used it for melodic sounds like basslines (an example of which can be heard below.) For the sake of simplicity, the DPCM channel will not be covered in this tutorial.
After you've successfuly downloaded FamiTracker, you should have a view similar to the one seen on the left. This is where you'll be sequencing your music. It may look a little intimidating, but many things are labeled and are self explanatory. For the ones that aren't, we'll go over them here.
Before you can jump into sequencing music, you'll need to know how to make instruments. To create a new instrument, you can either click on the "Add Instrument" icon below the instrument list, or you can right click inside the instrument list and select "add". Name you can name your first instrument "Melody."
Now that you've created an instrument, you can begin using the pattern editor. By default, a single pattern has 64 rows, but you can change this by editing the "Rows" setting next to the frame editor. Each channel in the pattern editor has four columns. These each serve purposes that will be explained below.
If you would like to use a MIDI device for sequencing your music, go to File > Configuration > MIDI and choose an input device. If you plan on using a keyboard, each lettered key corresponds to a note. It's laid out just like a piano, with the Q and Z rows being white keys and the Numbers and A row being the black keys. Below, you can see what each key's function is and which note it corresponds to. NOTE: the "*" key increases the octave and the "/" key lowers it.
To start editing, hit the spacebar to enter edit mode (the row you have highlighted will go from blue to red). To start creating notes, simply put your pattern cursor over the note column and row in whichever channel you want to edit. By default, the top row of keys falls on octave 4 and the bottom on octave 3. If you want to increase or decrease the octave, use the "/" or "*" keys respectively. If you're using a keyboard, try and familiarize yourself with the keyboard layout above. Every row in the pattern editor that is highlighted yellow is half of a beat, according to 4/4 timing. If you want some practice, you can try copying the pattern on the right. Once you're finished, hit the play button to hear the song you've made. You may recognize the tune if you've copied the pattern on the right (click on the image to make it larger.)
Congratulations! You've made your first song in FamiTracker. However, it may sound a little "empty" right now, since youve only edited one channel so far. Let's add a bassline to our song using the triangle channel. We'll want to create a separate instrument for this, so go to the instrument list and add a new instrument.
Now that our song sounds a bit less empty, we can add a counterpoint to make the melody less lonely. Make another new instrument, and copy the pulse 2 channel on the right (or try and make your own!) We'll set the volume to "9", as seen in the volume column, so that its quieter than the main melody.
Note: The solid lines are note cuts, which immediately silence whichever note was playing. They can be added using the "1" key.
Our song now has a bassline and a counterpoint, but we should also add some drums to give it a nice rhythm. Create a new instrument and try copying the example on the left (or make your own rhythm!)
Note: The keyboard layout for noise is slightly different, it goes from hexadecimal 0 to F instead of C to B like a piano. On the top row, the "Q" key is a noise note of "0" and the "0" key is for "F."
Our song now has a melody, bassline, counterpoint, and percussion, but it's a bit short and repetitive. To add another section to our song, we need to create a new frame. In the frame editor on the top left, right click and select "Insert Frame." A new frame will be added after the first one, and the song will advance to this frame after the first one is finished.
After you've added a new frame, notice that the pattern numbers in each channel have incremented. If you would like to have the same patterns as before play in your new frame, double click the channel you want to edit and type the pattern number you want for that frame.
Our song is finally starting to come together! If you think its a bit too slow (or fast), you can change the speed or tempo setting next to the frame editor. let's start using the instrument editor to make our instruments sound unique.
To open the instrument editor, you can either double-click the instrument you'd like to edit or right click it and select "edit." You should see a window open similar to the one seen on the right. This is where you will define the parameters for all of your instruments.
Each parameter/effect changes the way an instrument sounds when a note is played. The effects are defined by "sequences," which are a series of numbers representing things like how the volume, tone, pitch, and duty cycle changes each "step." In the example shown on the right, the volume of the instrument decreases by one every frame. You can increase or decrease the size of a frame by hitting the "+" or "-" at the bottom of the sequence editor. To edit a sequence, either use the graphical editor by clicking and dragging the bars to where you want them or by manually entering each number in the text box below, separated by spaces.
Below, you can find a description of the purpose of each effect.
Affects the volume of the instrument being played. As stated before in the pattern editor, the volume for each channel ranges from 0 to 15 (except for the triangle channel.)
Changes the key of the note being played by whichever number is specified. Rapidly changing notes played in a loop cahn be used to simulate chords.
The pitch bend to be applied to an instrument, from a range of -127 to 126. Hi-pitch multiplies the value by 16.
Changes the duty cycle/noise type of the instrument being played (see part II - Sound Hardware). The numbers at the bottom represent each duty cycle percentage- 0=12.5%, 1=25%, 2=50%, and 3=75%. (A duty cycle of 25% or 75% is noise type 2.)
Try and familiarize yourself with each of the instrument editor effects and edit each instrument in a way that sounds good. Make sure to apply the correct sequences to each effect in each instrument. You can change the sequence used by editing the "Sequence #" number at the bottom of the "Instrument Settings" area. Remember that, in order for an effect to be applied to an instrument, the checkbox next to the effect name must be checked.
If you recall from the Pattern Editor section, the fourth column in each channel is for "effects." These effects are different from the effects discussed in the instrument editor section, but they can be used for many of the same purposes. An effect can be used to apply various auditory effects onto a note, such as vibrato, arpeggio, volume slides, delays, etc. The first hexadecimal digit of an effect is the type of effect used, and the following digits represent its parameters. The parameters define things like the speed of the effect, the pitch, etc. For all effects, a parameter of 00 will disable the effect. Below, you can see a list of every effect available in FamiTracker.
Now that you've finished your song, you can prepare to save it or export it to a format of your choice.
I hope that this tutorial has been helpful to you in beginning your journey of creating chiptune music. Now that you know the basics of FamiTracker, you can play around with it and gain even more practice. FamiTracker is a very flexible program, supports many different expansion chips that add additional channels. There are plenty of resources and other tutorials that go more in depth that you can use if you need extra help. Below, I've provided sevearal links to pages that may be helpful.
Thank you for reading, and enjoy making chiptunes!