Skip to content
BleuBleu edited this page Aug 17, 2019 · 15 revisions

FamiStudio Wiki

Table of Content

Concepts

A FamiStudio project contains:

  • A list of Songs
  • A list of Instruments
  • A list of DPCM samples

Songs are made of Patterns, which are on one of the five Channels supported by the NES. Patterns contain Notes which are played by an Instrument (DPCM samples do not require an instrument). Instruments may have some of their attributes (pitch, volume, arpeggio) modulated by Envelopes.

Most of the operations are performed with the mouse. In general:

  • The left mouse button adds stuff, double-clicking something edits properties (songs, patterns, instruments, DPCM)
  • The right mouse button removes stuff
  • The middle mouse button (and wheel) pans and zoom

If you are working on a trackpad, all actions requiring the middle mouse buttons can be done with Alt+Left click.

Main Window

The UI was designed to be a simple as possible, there are almost no context menus.

The main window has 4 main components:

  • The Toolbar (on top)
  • The Project Explorer (on the right) is where you add/remove/edit songs and instruments.
  • The Sequencer (below the toolbar) is where you schedule your patterns on one of the 5 channels. It gives a high-level view of the song.
  • The Piano Roll (below the sequencer) is where you edit your patterns.

Main window

At any given moment there is always:

  • A selected channel, in bold in the sequencer
  • A selected song, in bold in the project explorer song list
  • A selected instrument, in bold in the project explorer instrument list.

The sequencer and piano roll will display the information for the currently selected song. The piano roll will play notes for the currently selected instrument, and output it on the currently selected channel.

Toolbar

The main toolbar contains your usual stuff: file operation, undo/redo, timecode and play control.

Playing/pausing the song

Besides the toolbar, space bar is used to play/pause the song. Ctrl-space plays in pattern loop mode, Shift-space plays in song loop mode.

Changing the looping mode

There are 3 looping modes:

  • Song: loops the entire song
  • Pattern: loops at the end of the current pattern
  • None: stops at the end of the song

Saving the project

Clicking on the icon save the project, right-clicking is a "save as..." and will prompt you for a new filename.

Exporting to various formats (WAV, NSF, FamiTracker Text or FamiTone2)

Wave File (*.wav)

Only a single song can be exported at a time. You can choose the sample rate, it is recommended to stick to 44.1KHz if you want the soung to be exactly as you hear it in FamiStudio. Lower sample rate might lack high frequencies.

When exporting to WAV, the song will simply play once fully, all jump effects will be ignored.

WAV Export Properties

Nintendo Sound Format (*.nsf)

Export to NSF is very basic for now.

NSF Export Properties

Some limitations worth mentioning:

  • If the song does not use sample, the maximum song size is between 24KB and 28KB.
  • If the song uses samples, the maximum song size is between 8KB and 12KB.

Note that these size are not printed anywhere and are not related to the size of the *.fms file. Best to simply try and see if it works.

FamiTracker Text (*.txt)

You can export songs to FamiTracker using their Text Export format.

FamiTracker Export Properties

There are some limitations:

  • Pitch envelopes with looping sections will be modified on export so that the looping part sums to zero. This is done to prevent pitch from drifting up/down every time the envelope looks. The reason for this is that FamiTracker's pitch envelopes are relative while FamiStudio's are absolute.
  • Instruments using both pitch and arpeggio envlopes at the same time will not sound correct 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.

FamiTone2 Assembly Code (*.s, *.asm, *.dmc)

Exporting to FamiTone2 works in the same way as the command line tools provided by Shiru.

FamiTone2 Export Properties

When exporting file in seperate files, you can specific a name format template for each song. The {project} and {song} macros are available.

When exporting as a single file (non-seperate), you will be prompt to name the output assembly file. If any of the exported songs uses DPCM samples, a .dmc file of the same name will also be outputted.

Project Explorer

The project explorer displays the list of songs and instruments in the current project.

Project explorer

Each instrument (except DPCM samples) has 4 buttons :

  • The volume envelope
  • The pitch envelope
  • The arpeggio envelope
  • The duty cycle, four possible settings (only useful for the Square channel).

If an instrument has no envelope for a particular type, it will appear dimmed.

Adding/removing songs and instruments

You can add a song or instrument by pressing the "+" sign, and you can delete a song or instrument by right-clicking on it. Deleting an instrument will delete all notes used by that instrument. Note that there always needs to be at least one song in a project.

Editing project attributes

Double-clicking on project name (first button in the project explorer) will allow you to change its name, author and copyright information. This information are used when exporting to NSF, for example.

Editing project properties

Editing song/instrument attributes

Double-clicking on the a song or instrument will allow you to change its name, color and other attributes. Names must be unique.

Some song properties worth mentioning:

  • Speed: How much the timer is increment each frame, values other than 150 might create uneven notes
  • Tempo: How many frames to wait before advancing to the next note (at least when then tempo is 150)
  • Pattern Length: Number of notes in a pattern
  • Bar length: Will draw a thicker line in the piano roll at every bar. Must be a divider of the pattern length. Simply a visual aid, does not affect the audio in any way
  • Song length: The number of patterns in the song

Editing song properties

Replacing an instrument by another

Clicking on an instrument name and dragging it over another instrument will allow you to replace all notes of the first instrument by the second. This is useful prior to deleting an instrument.

Editing envelopes

Clicking on an envelope button will start editing it in the piano roll. The duty cycle button will cycle between the 4 possible settings: 12.5%, 25%, 50% and inverted 25% since FamiTone2 does not support duty cycle envelopes. For more info on how to edit or delete envelopes, please refer to the piano roll section.

Copying envelopes

Clicking on an envelope button and dragging it on another instrument will copy that envelope from the first to the second. Note that unlike FamiTracker, envelopes are not explicitly shared between instruments. Identical envelopes will be combined when exporting to FamiTone2, but it is your responsibility to optimize the content and ensure that you limit the number of unique envelopes.

Sequencer

The sequencer is where you organize the high-level structure of the song: which patterns play and when they play. The thumbnails of the patterns in the sequencer are by no mean accurate.

Sequencer

Seeking

Clicking in the timeline (header) of the sequencer will move the play position.

Selecting/editing patterns

Clicking a pattern selects it and opens the piano roll for the current channel at the location of the pattern. Double-clicking a pattern allows renaming and changing its color (pattern names need to be unique per channel).

Edit pattern

You can select multiple patterns (in a rectangular grid) by shift-clicking to a second pattern. To un-select everything, simply press Esc. When multiple patterns are selected, only the color can be edited.

Square selection

Adding/removing patterns

You can add a new pattern by left-clicking on an empty space. Right-clicking deletes.

Moving/copying patterns

When one or multiple patterns are selected, dragging them will move them in the timeline. While dragging, holding Ctrl will copy a of the pattern(s). Note that when copying a pattern, it creates an instance of the same pattern, so modifying one instance will modify all of them.

Muting/soloing channels

Left-clicking on the icon of a channel (Square, triangle, noise, DPCM) will toggle mute. Right-clicking will toggle solo.

Force display channel

Clicking the tiny square icon next to the channel name will force display it in the piano roll.

Force display channel

Channels that are force displayed and are not the current channel will appear dimmed in the piano roll. This is useful when harmonizing between multiple channels, or editing drum patterns.

Force display channel

Piano Roll

The piano roll is where you editing the actual notes of the song, the instrument envelopes, as well as some special effects.

Piano roll

You can also use it to preview instrument by clicking on the keyboard. The currently selected instrument (in the project explorer) will play on the currently selected channel (in the sequencer).

Seeking

Clicking in the timeline (header) of the piano roll will move the play position.

Editing patterns

Clicking a pattern in the sequencer will scroll the piano roll to its location. Left-clicking in the piano roll will add a note of the currently selected instrument. Right-clicking deletes a note.

Using Ctrl+click will add a stop note. Stops notes are displayed as little triangles. Although they are displayed next to the note preceding them, they actually have no pitch or instrument, they simply stop the sound.

Hovering the mouse in the piano roll will display the location and note in the toolbar. Hovering over a note will display which instrument it uses.

Editing effects

The effect panel can be opened by clicking the little triangle at the top-left of the piano roll. FamiTone2 only supports 3 effects:

  • Jump: Jumps back to a previous pattern in the song. The effect value is the pattern index to jump to
  • Skip: Skips to the next pattern, at the note specified by the effect value
  • Speed: Changes the speed of the song

There also can only be 1 effect for each note. Left-clicking a note that does not currently have an effect will add the currently selected effect. Dragging up and down will change its value. Right-clicking removes the effect.

Editing effect

Editing instrument envelopes

Clicking on an envelope icon in the project explorer will open the envelope of that instrument in the piano roll. The length of the envelope can be changed by left-clicking (and potentially dragging) in the timeline of the piano roll. The loop point of an envelope can be set by right-clicking in the timeline.

Setting the length of an envelope to zero will disable it.

Editing envelopes

Editing DPCM samples

Clicking on the little icon next to the DPCM samples in the project explorer will open the piano roll in DPCM edition mode.

Editing DPCM samples

Clicking anywhere on a note that does not have a DPCM sample associated will prompt you to open a .DMC file. No DMC edition tool is provided, you can use FamiTracker, RJDMC or any other tool. DPCM samples are assumed to have unique names and 2 samples with the same name will be assume to be the same. Double-clicking on an existing sample edits its pitch and toggle loop.

Clone this wiki locally
You can’t perform that action at this time.