From wiki
Jump to: navigation, search

This page is a brief description of the Instruments window.


The NES generates sound instead of using samples (except for the DPCM channel which stores and plays samples). Consequently, Famitracker incorporates a user-friendly way to customise a virtually unlimited amount of instruments. These instrument settings are defined through a series of sequence graphs. A sequence is a list of values that are applied to the channel at the frame rate determined in the Tracker menu (for instance, 240Hz means the frame rate is 240 updates per second, 4x the NTSC NES's regular rate).

The default frame rates are 60 FPS for NTSC mode and 50 FPS for PAL.

2A03 Instruments


Instrument editor window, with focus on the volume page.

Select a sequence in the Instrument Settings list and use the Select next empty slot to get a free sequence slot. This is important to avoid accidentally overwriting a sequence used in another instrument. Tick the checkbox to enable the sequence.

Here are the available effects (none of these apply to the DPCM channel).

2A03 instrument settings
Setting Description Acceptable values
Volume Channel volume. The triangle channel has no volume control; it can only be turned on or off.
  • Pulse:
0 - 15
  • Triangle:
0 turns off, 1 - 15 turns on
Arpeggio Cycles rapidly through notes; commonly used to simulate chords on a single channel.


  • Absolute: Each value represents semitones relative to the base note (e.g., | 0 4 7 with a base note of C will play a C major chord).
  • Relative: Each value represents semitones relative to the previous note (e.g., 0 | 4 3 -7 with a base note of C will play a C major chord).
  • Fixed: The tracker cycles through notes (using absolute values starting with 0 as C-0) before playing whichever key was pressed, if no loop point is defined. Useful for drum+note combinations.
  • Absolute & Relative: -97 - +106
  • Fixed: 0 - 95
Pitch & Hi-pitch Changes the pitch, similar to the Pxx command. If a loop point is used before a single value, the pitch will go up (or down) continually, similar to the 1xx and 2xx commands.

High-speed pitch bend is 16x more sensitive than regular pitch bend.

  • -128 - +127
Duty / noise Sets the duty cycle and noise mode.
  • Pulse:
0 = 12.5%
1 = 25%
2 = 50%
3 = 75%
  • Noise:
0 = 32-Kbit mode
1 = 93-bit (looped) mode

The sequence can either be drawn in the sequence editor, or typed in the MML field. In draw mode, the left mouse button changes values individually, while the right mouse button draws lines.

You can set a loop point by left-clicking the Length field, or by typing a pipe symbol ( | ) in the MML field. Likewise, you can set a release point by right-clicking the Length field, or by typing a forward stroke ( / ).

Note: 2A03 instruments can also be used with the MMC5 sound chip.

DPCM samples

DPCM samples tab of the Instrument editor window.

The DPCM channel behaves differently from the other channels in that it uses low-quality DMC samples instead of producing its own sound. This tab is used specifically to assign DPCM samples to instruments.

First of all, you will need samples. You can either load them directly through the Load sample dialog box, if you already have your 1-bit delta PCM file ready, or through the Import sample dialog box if you need to convert a WAV file into a DMC file. Bear in mind that the quality of your original file will decrease significantly during the conversion process. The NES stores DMC samples in 16 KB banks. Earlier versions of the program only support using one bank of DMC samples, but version 0.3.8 implements bank-switching DMC samples, effectively pushing this limit to 256 KB.

Once your samples are loaded, you may assign them to specific notes by clicking on a note in the Assigned samples box on the left, selecting your sample in the menu below (or selecting it in the Loaded samples box on the right and clicking the <- button), and assigning it a pitch value (refer to this page for a DPCM pitch chart).

Note: Playing a DPCM sample may decrease the volume level of triangle and noise. If full volume isn't regained after a sample is done playing, use a note stop or the Zxx command in the DPCM channel to restore it.

Famicom Disk System Instruments

The FDS instrument window.

The FDS instrument editor is slightly different from the 2A03 instrument editor, and warrants a brief explanation. The envelope editor remains basically the same, except you get a volume range of 33, instead of 16.

FDS Instrument Settings (Waveform tab)
Setting Description Acceptable values
Wave graph & Wave text area This is essentially a graphical rendition of the MML string that represents your waveform. You can either type up all 64 values for your wave in an external program (like notepad or MuMEM) and paste it in the instrument window using the Paste wave button, or use your mouse cursor to draw a shape in the graph. You may also use one of the four presets (sine, triangle, square or sawtooth).
  • 0 - 63
Modulation graph A graphical representation of the modulation pattern. The FDS has built-in pitch modulation, most commonly used for vibrato. You can either type up all 32 values for your modulation in an external program and paste it over using the Paste table button, or use your mouse cursor to draw a pattern in the graph. You may also use the vibrato preset, or erase your modifications by pressing the Flat button.
  • 0 - 7

Note: 0 and 4 are normal, 1-2-3 change the pitch up, 7-6-5 change the pitch down.

Modulation rate The speed at which the modulation cycles through the pattern set above.
  • 0 - 4,095
Modulation depth How far up and down the pitch modulation bends.
  • 0 - 63
Modulation delay The amount of frames before modulation begins.
  • 0 - 255

VRC6 Instruments

The VRC6 instrument editor is visually identical to the 2A03 instrument editor, sans DPCM tab. For pulse channels, it is functionally identical, except it features more pulse width values to account for the VRC6's more flexible pulse channels.

The sawtooth channel uses the same instruments, but with one major difference: the channel has a 6-bit volume register instead of 4-bit, so it has 64 steps (instead of 16). The sawtooth wave itself is divided into 7 steps that each get incremented by the volume value. This counter is 8-bit, so it goes all the way up to 255. For example, with a volume of '1', the counter goes [0 1 2 3 4 5 6 0 1 2 3...]. If the volume is '2', everything gets multiplied by two: [0 2 4 6 8 10 12 0 2 4...]. However, the actual maximum volume is '42': [0 42 84 126 168 210 252]. Since the counter has a maximum value of 255, anything above 42 causes the counter to overflow and wrap to 0 whenever it reaches 255. This results in a distorted sawtooth wave. So, for instance, volume 56 = [0 56 112 168 224 280 336]. 280 and 336 are higher than 255, so the counter wraps to 50 and 81 instead.

FamiTracker handles this by mapping volume values 0 through 15 to 0 - 30. Using duty cycle value 1 (V01) flips the high bit of the volume register from 0 to 1, adding 32 to the volume value. Values from 0 through 15 now get mapped to 32 - 63. Therefore, the maximum value before the sawtooth wave distorts is 5, if the duty cycle setting is set to 1, because (5 * 2) + 32 = 42.

Combining duty cycle and volume allows you to create volume envelopes that utilise the channel's full volume range. Just remember to switch the "duty cycle" from 1 to 0 at the exact moment your envelope's volume drops below 32, and keep in mind that anything above 42 will produce a distorted sound.

VRC7 Instruments

The VRC7 instrument window.

The VRC7 instrument editor is significantly different from the 2A03 instrument editor, and warrants a brief explanation.

The drop-down menu selects between patches 0 through 15. For patches 1 through 15, settings are greyed out. Patch 0, however, can be customised. Both default and custom patches can be copied to and pasted from the clipboard in MML format ($xx $xx $xx $xx $xx $xx $xx $xx), to allow easy transfer between FamiTracker and MML files.

Modulator & Carrier Settings
Setting Description Acceptable values
Amplitude modulation Enables/disables tremolo.
  • On / Off
Vibrato Enables/disables vibrato.
Sustained Enables/disables sustain for the modulator/carrier waveform.
RATE key scale Selecting this option results in a different note release rate for that operator.
Wave rectification Switches between sine wave and rectified sine wave (a regular sine wave with the negative phase chopped off).
Level (slide) Determines the volume for either the modulator or the carrier. 0 is loudest, 3 is quietest.
  • 0 - 3
Mult. factor Multiplies either the carrier or modulator's frequency. Increasing the multiplier for the carrier raises the pitch of the carrier signal. Increasing the multiplier for the modulator increases the rate of modulation.
  • 0 - 15
Attack Determines how quickly the modulator/carrier waveform will fade in after a note is called.
Decay Determines how quickly the modulator/carrier waveform's volume fades out to the Sustain level (see below) after its peak volume has been reached.
Sustain Determines the volume at which the modulator/carrier waveform should remain after the Decay time is elapsed, and before the note is released.
Release Determines how quickly the modulator/carrier waveform fades out from the Sustain level to complete silence after the note is released.
Global Settings
Setting Description Acceptable values
Modulator level The volume of the modulator waveform.
  • 0 - 63
Feedback Creates distortion.
  • 0 - 7

Remember that while you can have up to 64 custom patches, you may only use one at any given time in your module. If you try using more, only the last one (the one nearest to channel 6) will be selected and played.

Namco 163 instruments

The N163 instrument window.

The N163 instrument editor is similar to the FDS instrument editor, except you can define up to 16 waves per instrument, and cycle through them as you would through a square's duty cycle (using Vxx or an instrument macro). Another difference is the absence of a built-in modulation.

N163 Instrument Settings (Wave tab)
Setting Description Acceptable values
Wave editor & MML string The graph is a convenient visual representation of your current waveform, which you can edit my clicking on a sample to adjust it, or by sliding your mouse across the graph. The MML string can be edited as well, so you can copy & paste waves across instruments or from external sources (like an MML file, for instance).
  • 0 - 15
Wave # Lets you choose which wave to edit, and how many waves this instrument should have. The numbers use base-0 to avoid confusion when using Vxx or instrument macros to call a specific wave.
  • 0 - 15
Wave size The size of the wave, in steps. Affects all waves within an instrument. Note: The pitch table in FamiTracker is calculated with 32-sample waves in mind, and wave sizes that are not a power of 2 will be out of tune.
  • 4 - 32 (in increments of 4)
Wave position The position, within the chip's 64 bytes of wave RAM, in which all waves in this instrument will be placed. Note: It is up to the user to ensure no two instruments attempt to read from the same memory position at the same time in the module.
  • Depends on the wave size. FamiTracker will suggest memory positions depending on the wave size, but the number can be entered manually. For instance, a 32-sample wave will use 32 'spaces' in the memory position, so FamiTracker will suggest positions 0, 32, 64 and 96.

See also

FamiTracker Help
Sound hardware - Instruments - Configuration - Pattern editor - Toolbar - Control panel - Menus - Key commands - Module properties - NSF exporting - Text import and export - Effect list - Importing DPCM - Command line - Change log