Skip to content
BleuBleu edited this page Oct 9, 2019 · 24 revisions

FamiStudio Wiki

*** THE WIKI IS BEING UPDATE FOR 1.2.0, SOME OF THE INFORMATION MIGHT NOT BE APPLICABLE TO 1.1.0 ***

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.

Keyboard shortcuts

Here is a list of useful keyboard shortcuts:

  • Space: Play/stop the stop
    • Ctrl+Space: Plays from beginning of current pattern and switch to pattern loop mode.
    • Shift+Space: Plays from current position and reverts back to song loop mode and
  • Home: Seeks back to beginning of the song.
    • Ctrl+Home: Seeks to beginning of the current pattern.
  • Ctrl+Z: Undo
  • Ctrl+Y: Redo
  • Ctrl+N: New project
  • Ctrl+S: Save
  • Ctrl+E: Export
  • Ctrl+O: Open
  • Delete: Delete selected patterns.
  • Escape: Deselects patterns, stops any sound that is stuck playing.

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.

Configuration dialog

Clicking the gear icon opens the configuration dialog. This dialog is fairly new and has very few settings at the moment.

User Interface Configuration

User Interface Configuration

  • Scaling: By default, FamiStudio will use the scaling of your primary monitor on Windows (100%, 150% and 200% are support) and on macOS it will choose between 100% or 200% depending on if you have a retina display or not. This behavior can be overriden by a scaling of your choosing. This requires restarting the app.
  • Check for updates: At startup FamiStudio checks for new version online. This can be disabled.

Sound Configuration

Sound Configuration

  • Stop Instrument After: When instruments have release notes, there is no way for FamiStudio to know when to stop the notes. This allows stopping any sound after a specified number of seconds. This only applies to MIDI or when previewing instruments on the piano roll and has no impact on the actual song.

MIDI Configuration

MIDI Configuration

  • Device: Allows choosing the MIDI device to use for previewing instruments.

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.

Deleting envelopes

Right-clicking on the icon of an envelope deletes it.

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. Stop notes are important because on the NES, a note will play indefinitely unless you tell it to stop.

Stop Note

Using Shift+click will add a release notes. Release notes are shown as making the note thinner and triggers the envelope to jump to the release point. Release envelopes are useful to nicely fade out a note when its release, while preserving other effects like vibrato. There is no point to adding a release note to an instrument that does not have a release envelope.

Release Note

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 volume tracks & effects

The effect panel can be opened by clicking the little triangle at the top-left of the piano roll. Right now, only a handful of effects are supported:

  • Volume: Each channel can have a volume track.
  • 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

The volume tracks dictates how loud the current channel should play. This volume is combined with volume envelope by multiplication (50% volume track x 50% envelope volume = 25% total volume). It is much more efficient to use volume envelopes wherever possible and only use volume tracks to control the global volume of the song.

Editing volume track

Besides the volume, 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. Setting the length of an envelope to zero will disable it.

Editing envelopes

The loop point of an envelope can be set by right-clicking in the timeline. Volume tracks are also allowed to have release envelopes. Release envelopes are played when a release note is encountered and terminates the loop by jumping to the release point. This is useful for fading out notes smoothly. The release point is set by right-dragging from the rightmost side of the envelope.

Envelope with release

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. Note that only notes between C1 and D6 are allowed to have DPCM samples.

Clone this wiki locally