Importing Songs

To import songs, simply open a file. On Windows it is also possible drag & drop a file in the application.

FamiTracker Text or Binary

Import from FamiTracker (official 0.4.6 only) is supported through the text (TXT file) or binary format (FTM file).

Note that only a small subset of features is supported. Only the following effects are supported. Every other effect will be ignored:

  • 0xy (Arpeggio) : Will be converted to arpeggio, name will be based one the xy value.
  • 1xx/2xx (Slide up/down) : Will be converted to slide notes
  • 3xx (Portamento) : Will be converted to slide notes.
  • 4xy (Vibrato) : Vibrator speed will be slightly modified, see table above for mapping.
  • Bxx (Jump) : Will be converted to loop point.
  • Cxx (Half) : Will truncate the song at the location of the effect and remove the loop point.
  • Dxx (Skip) : Will be converted to a custom pattern length.
  • Fxx (Speed) : Only speed is supported. Speed changed are not allowed to be delayed with Gxx.
  • Gxx (Note delay) : Fully supported.
  • Pxx (Fine pitch) : Fully supported.
  • Hxx (FDS Modulation depth) : Fully supported.
  • Ixx/Jxx (FDS Modulation speed) : Fully supported, but combined in one 16-bit value.
  • Sxx (Delayed cut) : Fully supported.
  • Vxx (Timbre) : Supported, but only affects the duty cycle of 2A03 and VRC6 square channels. Does not affect Saw or anything else.

Besides effects, there are also other limitations:

  • If multiple instruments assign DPCM samples to the same key of the DPCM instrument, only the first one will be assigned. Other samples will be loaded, but unassigned to any keys.
  • All DPCM samples will be loaded (and potentially assigned to a key of the DPCM instrument) but any sample over the 16KB FamiStudio limit will not play correctly or at all.
  • Namco 163 instrument can only have a single waveform. Any other waveform than zero will be ignored.
  • VRC7 1xx/2xx/3xx/Qxx/Rxx effects will likely not sound like FamiTracker and will need manual corrections.
  • Instruments using both pitch and arpeggio envelopes at the same time will not sound the same as in FamiTracker. This is due to the vastly different way both applications handles these. FamiTracker re-triggers the pitch envelope at each arpeggio notes (probably the more sensible way), while FamiStudio simply runs both at the same time.
  • VRC6 saw channel is not influenced by duty cycle in FamiStudio. FamiStudio has a "saw master volume" on VRC6 instruments. Import/export process does not try account for this. Manual corrections may be needed.
  • Vibrato effect might sound a bit different, please see table above for exact mappings.
  • The noise channel in FamiStudio is not affected by pitch envelope or any pitch effects (1xx, 2xx, 3xx, Qxx and Rxx).

When importing from FamiTracker, all possible slide effects (1xx, 2xx, 3xx, Qxx and Rxx) will be converted to slide notes. Sometimes attack will be disabled as well to mimic the same behavior. This in an inherently imperfect process since they approaches are so different. For this reason, importing/exporting slide notes with FamiTracker should be considered a lossy process.

MIDI

Standard MIDI files can be imported.

Notes, time signature and tempo changes will be imported. Only blank instruments, named after their GM instrument, will be created. Users should not expect the imported song to sound anything like the original.

Moreover, since the NES can only play one note at a time for a given channel, any kind of polyphony is not supported. Users are responsible for properly processing their MIDI files before importing them. That being said, this can be a handy feature to bring notes from an old project in FamiStudio.

Available options:

  • Expansion: Allows selecting the expansion audio to set for the project. This will add extra sound channels.
  • Polyphony behavior: Although polyphony is not supported, if it were to happen, there are 2 ways FamiStudio can resolve it:
    • Favor most recent note: If a new note is triggered while one was still playing, the old note will be stopped and the new note will start.
    • Favor currently playing note: If a new note is triggered while one was still playing, the old note will keep playing and the new note will be ignored.
  • Measures per pattern: Having a single measure per pattern tends to create too many patterns. FamiStudio can try to pack multiple measures in a single pattern. Note that tempo/time signature changes will always cause a new pattern to start.
  • Import velocity as volume: Will convert velocity values to volume effects.
  • Create PAL project: Will create a PAL project and do all BPMs calculations using PAL speeds.

At the bottom of the dialog is the channel mapping table. For each of the NES channels, you can specific which MIDI data should be put in that channel. Double-clicking on a NES channel will bring up more options.

There are 3 MIDI sources from which MIDI data can be read from:

  • Channel: Data from the specified MIDI channel will be assigned to the NES channel. This is basically a 1:1 mapping between NES an channel and a MIDI channel.
  • Track: If the MIDI file has proper tracks defined, data from the that track can be assigned to the NES channel.
  • None: Will not read any data in this channel. The NES channel will be left blank.

The MIDI channel 10 is special an specific keys can be selected to filter specific drum sounds.

FamiStudio Text

The FamiStudio text format is support, please see the documentation above for the format specification.

Nintendo Sound Format

NSF (and NSFE) files can be imported in FamiStudio. This includes NSF with expansion audio. When opening and NSF file, you will be presented a dialog box.

Most NSF file will not contain the names of songs so they will usually have placeholder names. Besides the song to import, are the most important settings :

  • Duration : Time (in sec) to extract from the NSF.
  • Pattern Length : Number of frames in a pattern.
  • Start frame : Used to offset the entire song by a number of frames. This is useful when a song has an intro that is not the same length as the other patterns.
  • Remove intro silence : Some songs start with a bit of silence, this will wait until any sound is produce to start recording.
  • Reverse DPCM bits : This will set the "Reverse Bits" flag on all the imported samples. This come from a recent discovery that quite a few games had packed their bits in the wrong order, leading to samples sounding worse than they should.
  • Preserve DPCM padding bytes : Force FamiStudio to keep the last byte of every sample, this will make all samples 16 bytes larger simply to keep an extra byte. This could be useful to keep looping samples intact. Should remain off most of the time since most games seem to ignore this byte.

NSF file are essentially programs designed to run on actual hardware. They will contain no instrument, no envelopes, no repeating pattern, etc. All the volumes and pitches will be set through the effect panel. They are going to appear extremely messy and unoptimized.

That being said, NSF can still be extremely useful to reverse engineer how songs were made. In fact, this is how most of the Demo Songs that come with FamiStudio were made.

In the example below, we can imagine that the notes on the right were all using the same instrument with a decreasing volume envelope, and a 2-1 release. The note of the left were clearly using a vibrato effect or a pitch envelope.

Only features that are supported by FamiStudio will be imported. Things like hardware sweeps & advanced DPCM manipulations will all be ignored.

Error Log

When importing/exporting from/to specific format, an error log may appear providing a list of warnings/errors that occured during the process. Please pay attention to these as they may explain why your song sound differently than intended.