-
Notifications
You must be signed in to change notification settings - Fork 110
Home
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.
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.
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.
The main toolbar contains your usual stuff: file operation, undo/redo, timecode and play control.
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.
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
Clicking on the icon save the project, right-clicking is a "save as..." and will prompt you for a new filename.
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.
Export to NSF is very basic for now.
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.
You can export songs to FamiTracker using their Text Export format.
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.
Exporting to FamiTone2 works in the same way as the command line tools provided by Shiru.
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.
The project explorer displays the list of songs and instruments in the current project.
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.
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.
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.
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
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.
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.
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.
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.
Clicking in the timeline (header) of the sequencer will move the play position.
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).
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.
You can add a new pattern by left-clicking on an empty space. Right-clicking deletes.
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.
Left-clicking on the icon of a channel (Square, triangle, noise, DPCM) will toggle mute. Right-clicking will toggle solo.
Clicking the tiny square icon next to the channel name will force display it in the piano roll.
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.
The piano roll is where you editing the actual notes of the song, the instrument envelopes, as well as some special effects.
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).
Clicking in the timeline (header) of the piano roll will move the play position.
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.
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.
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.
Clicking on the little icon next to the DPCM samples in the project explorer will open the piano roll in DPCM edition mode.
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.