doc finalization: interface

This commit is contained in:
tildearrow 2023-09-08 20:16:43 -05:00
parent c5c3861ee1
commit fa6430bd7f
11 changed files with 185 additions and 197 deletions

View file

@ -8,13 +8,13 @@ the default layout of Furnace is depicted below.
## general info
- [UI components](components.md): recommended reading for all!
- [UI components](components.md): read first!
- [global keyboard shortcuts](keyboard.md)
- [menu bar](menu-bar.md)
## primary windows
- [order list](order-list.md)
- [orders](order-list.md)
- [play/edit controls](play-edit-controls.md)
- [instrument/wavetable/sample list](asset-list.md)
- [song information](song-info.md)
@ -44,4 +44,4 @@ the default layout of Furnace is depicted below.
## other topics
- [basic mode](basic-mode.md)
- [settings](../2-interface/settings.md)
- [settings](settings.md)

View file

@ -2,47 +2,54 @@
![instruments window](instruments.png)
Buttons from left to right:
buttons from left to right:
- **Add**: pops up a menu to select which type of instrument to add. if only one instrument type is available, the menu is skipped.
- If the "Display instrument type menu when adding instrument" setting is disabled, this skips the menu and creates an instrument according to the chip under the cursor.
- Right-clicking always brings up the menu.
- **Duplicate**: Duplicates the currently selected instrument.
- **Open**: Brings up a file dialog to load a file as a new instrument at the end of the list.
- **Save**: Brings up a file dialog to save the currently selected asset.
- Instruments are saved as Furnace instrument (.fui) files.
- Wavetables are saved as Furnace wavetable (.fuw) files.
- Samples are saved as standard wave (.wav) files.
- Right-clicking brings up a menu with the applicable items from this list:
- if the "Display instrument type menu when adding instrument" setting is disabled, this skips the menu and creates an instrument according to the chip under the cursor.
- right-clicking always brings up the menu.
- **Duplicate**: duplicates the currently selected instrument.
- **Open**: brings up a file dialog to load a file as a new instrument at the end of the list.
- **Save**: brings up a file dialog to save the currently selected instrument.
- instruments are saved as Furnace instrument (.fui) files.
- right-clicking brings up a menu with the following options:
- **save instrument as .dmp...**: saves the selected instrument in DefleMask format.
- **save wavetable as .dmw...**: saves the selected wavetable in DefleMask format.
- **save raw wavetable...**: saves the selected wavetable as raw data.
- **save raw sample...**: saves the selected sample as raw data.
- **Toggle folders/standard view**: Enables (and disables) folder view, explained below.
- **Move up**: Moves the currently selected instrument up in the list. Pattern data will automatically be adjusted to match.
- **Move down**: Same, but downward.
- **Delete**: Deletes the currently selected instrument. Pattern data will be adjusted to use the next available instrument in the list.
- **Toggle folders/standard view**: enables (and disables) folder view, explained below.
- **Move up**: moves the currently selected instrument up in the list. pattern data will automatically be adjusted to match.
- **Move down**: same, but downward.
- **Delete**: deletes the currently selected instrument. pattern data will be adjusted to use the next available instrument in the list.
## folder view
![instruments window in folder view](instruments-folder.png)
In folder view, the "Move up" and "Move down buttons disappear and a new one appears:
- **New folder**: Creates a new folder.
in folder view, the "Move up" and "Move down buttons disappear and a new one appears:
- **New folder**: creates a new folder.
Instruments may be dragged from folder to folder and even rearranged within folders without changing their associated numbers.
assets may be dragged from folder to folder and even rearranged within folders without changing their associated numbers.
Right-clicking on a folder allows one to rename or delete it. Deleting a folder does not remove the instruments in it.
right-clicking on a folder allows one to rename or delete it. deleting a folder does not remove the instruments in it.
# wavetable list
![wavetables window](wavetables.png)
Everything from the instrument list applies here also, with one major difference: Moving waves around with the buttons will change their associated numbers in the list but _not_ in pattern or instrument data. Be careful!
everything from the instrument list applies here also, with one major difference: moving waves around with the buttons will change their associated numbers in the list but **not** in pattern or instrument data. be careful!
wavetables are saved as Furnace wavetable (.fuw) files.
- right-clicking the Save button brings up a menu with the following options:
- **save wavetable as .dmw...**: saves the selected wavetable in DefleMask format.
- **save raw wavetable...**: saves the selected wavetable as raw data.
# sample list
![samples window](samples.png)
Everything from the wavetables list applies here also, with the addition of one button before the Delete button:
- **Preview**: Plays the selected sample at its default note.
- Right-clicking stops the sample playback.
everything from the wavetables list applies here also, with the addition of one button before the Delete button:
- **Preview**: plays the selected sample at its default note.
- right-clicking stops the sample playback.
samples are saved as standard wave (.wav) files.
- right-clicking the Save button brings up a menu with the following options:
- **save raw sample...**: saves the selected sample as raw data.

View file

@ -3,32 +3,29 @@
Furnace comes with a "basic mode" that can be toggled through the "settings" menu. it disables certain features in Furnace that may look intimidating or confusing for newcomers. if you find that a certain feature of Furnace is missing, see if this setting is enabled or not.
among the features that cannot be accessed in this mode are:
* file menu:
* chip manipulation options (add, configure, change, remove chips)
* edit menu:
* paste special…
* operation masking
* input latch
* find and replace
* speed window:
* virtual tempo
* divider
* song length
* song info window:
* manual system naming
* tuning options
* right-clicking on the pattern window:
* gradient/fade…
* scale
* randomize
* invert values
* flip selection
* collapse
* expand
* these windows:
* mixer
* grooves
* channels
* pattern manager
* chip manager
* compatibility flags
- edit menu:
- paste special
- operation masking
- input latch
- find and replace
- speed window:
- virtual tempo
- divider
- song length
- song info window:
- manual system naming
- tuning options
- right-clicking on the pattern window:
- gradient/fade
- scale
- randomize
- invert values
- flip selection
- collapse
- expand
- these windows:
- mixer
- grooves
- channels
- pattern manager
- compatibility flags

View file

@ -60,9 +60,9 @@ the options are:
drag your mouse cursor to any of the options to dock the window.
if you drag to the sides (marked with blue text), the window will cover that side of the workspace.
if you drag to the sides, the window will cover that side of the workspace.
if you drag it to a window or empty space (marked with yellow text), five docking positions will appear.
if you drag it to a window or empty space, five docking positions will appear.
if you drag the window to the center of another window, it will appear as another tab.

View file

@ -1,10 +1,10 @@
# effect list window
(for more details about these effects, see [the effects page](../3-pattern/effects.md))
![effect list window](effect-list.png)
this window provides a list of the effects that are available.
for more details about these effects, see [the effects page](../3-pattern/effects.md).
- **Chip at cursor**: the currently selected chip. the list only shows available effects for this chip.
- menu button: opens a small list of effect categories. toggle each to change whether they're shown in the list.
- menu button: opens a small list of effect categories. toggle each to change whether effects belonging to such categories will be shown in the list.

View file

@ -1,10 +1,8 @@
# keyboard
everything on this list can be configured in the "Keyboard" tab of the Settings dialog:
- click on a keybind then enter a key or key combination to change it.
- right-click to clear the keybind.
everything on this list can be configured in the "Keyboard" tab of the Settings dialog.
the keys in the "Global hotkeys" section can be used in any window, though not within text boxes.
the keys in the "Global hotkeys" section can be used in any window, although not when a text field is activated.
| action | default keybind |
|--------------------------------------------------------|------------------|
@ -243,14 +241,3 @@ the keys in the "Global hotkeys" section can be used in any window, though not w
| Toggle auto-zoom | `Ctrl-0` |
| Create instrument from sample | — |
| Set loop to selection | `Ctrl-L` |
## note input
the settings for note input keybinds operate differently. each entry in the list of keybinds is made of the following:
- **Key**: key assignment.
- **Type**: type of note input. left-click cycles through "Note", "Note off", "Note release", and "Macro release".
- _note:_ the list is sorted by type. on changing a key's type, it will instantly move to its new sorting position!
- **Value**: number of semitones above C at the current octave. only appears for note type binds.
- **Remove**: removes the keybind from the list.
below all the binds, select a key from the dropdown list to add it. it will appear at or near the top of the list as a note with value 0.

View file

@ -2,7 +2,7 @@
the menu bar allows you to select from five menus: file, edit, settings, window and help.
items in _italics_ don't appear in basic mode and are only available in advanced mode.
items in _italic_ don't appear in basic mode and are only available in advanced mode.
# file
@ -50,7 +50,7 @@ items in _italics_ don't appear in basic mode and are only available in advanced
- Linux/other: `~/.config/furnace/backups`
- this directory grows in size as you use Furnace. remember to delete old backups periodically to save space.
- **exit**: I think you know what this does.
- **exit**: closes Furnace.
## export audio

View file

@ -1,21 +1,22 @@
# order list
# orders
the order list is a playlist for patterns.
this window displays the order list. a spreadsheet that contains the order of patterns that will play, from top to bottom.
![order list](order-list.png)
along the top are the available channels. their abbreviations can be set in the [channels window](../8-advanced/channels.md). the highlighted channel follows the channel the pattern view cursor is in.
along the left are the order numbers. these are referenced with the `0Bxx` command. the highlighted row follows the order the pattern view cursor is in.
along the left are the order numbers. the highlighted row follows the order the pattern view cursor is in.
each entry in the table is the pattern that will play during that order. these can be changed according to the order edit mode.
hovering over a pattern number will pop up a tooltip showing the name of that pattern, if it has one.
The buttons are as follows:
- **Add new order**.
- **Remove order**.
- **Duplicate order**: adds a new order with patterns matching the selected one directly below it. right-click to "deep clone"; this copies all patterns involved to new ones.
the buttons are:
- **Add new order**: adds a new order.
- **Remove order**: removes the currently sected order.
- **Duplicate order**: adds a new order with patterns matching the selected one directly below it.
- right-click to "deep clone"; this copies all patterns involved to new ones.
- **Move order up**: swaps the selected order with the one above it.
- **Move order down**: swaps the selected order with the one below it.
- **Duplicate order at end of song**: same as "Duplicate order" except the new order is added at the bottom of the list.
@ -24,6 +25,6 @@ The buttons are as follows:
- **entire row**: all patterns in the order will change.
- **Order edit mode**: selects the method of changing orders.
- **Click to change**: a click will add one to the pattern number. a right-click will subtract one.
- **Select and type (don't scroll)**: select a pattern and type.
- **Select and type (don't scroll)**: select a pattern number and type.
- **Select and type (scroll horizontally)**: as above, but after entering two digits, the cursor moves to the next channel.
- **Select and type (scroll vertically)**: as above, but after entering two digits, the cursor moves to the next order.

View file

@ -1,24 +1,24 @@
# play/edit controls
The "Play/Edit Controls" are used to control playback and change parameters of the pattern view.
the "Play/Edit Controls" are used to control playback and change parameters of the pattern view.
- ![](control-play.png) **Play**: Plays from cursor position.
- ![](control-stop.png) **Stop**: Stops all playback.
- ![](control-play-pattern.png) **Play from the beginning of this pattern**: Plays from the start of current pattern.
- ![](control-play-repeat.png) **Repeat from the beginning of this pattern**: Repeats current pattern from its start.
- ![](control-step.png) **Step one row**: Plays only the row at cursor position and moves down one.
- ![](control-edit.png) **Edit**: Toggles edit mode. If off, nothing can be edited in the pattern window. (Great for playing around on the keyboard!)
- ![](control-metronome.png) **Metronome**: Toggles the metronome, which only sounds during playback.
- ![](control-repeat.png) **Repeat pattern**: Toggles pattern repeat. During playback while this is on, the current pattern will play over and over instead of following the order list.
- **Poly**: Turns on polyphony for previewing notes. Toggles to **Mono** for monophony (one note at a time only).
- **Octave**: Sets current input octave.
- **Step**: Sets edit step. If this is 1, entering a note or effect will move to the next row. If this is a larger number, rows will be skipped. If this is 0, the cursor will stay in place.
- **Follow orders**: If on, the selected order in the orders window will follow the song during playback.
- **Follow pattern**: If on, the cursor will follow playback and the song will scroll by as it plays.
- ![](control-play.png) **Play**: plays from cursor position.
- ![](control-stop.png) **Stop**: stops all playback.
- ![](control-play-pattern.png) **Play from the beginning of this pattern**: plays from the start of current pattern.
- ![](control-play-repeat.png) **Repeat from the beginning of this pattern**: repeats current pattern from its start.
- ![](control-step.png) **Step one row**: plays only the row at cursor position and moves down one.
- ![](control-edit.png) **Edit**: toggles edit mode. when turned off, you won't be able to enter notes.
- ![](control-metronome.png) **Metronome**: toggles the metronome, which only works during playback.
- ![](control-repeat.png) **Repeat pattern**: toggles pattern repeat. during playback while this is on, the current pattern will play over and over instead of following the order list.
- **Poly**: turns on polyphony for previewing notes. toggles to **Mono** for monophony (one note at a time only).
- **Octave**: sets current input octave.
- **Step**: sets edit step. if this is 1, entering a note or effect will move to the next row. if this is a larger number, rows will be skipped. if this is 0, the cursor will stay in place.
- **Follow orders**: if on, the selected order in the orders window will follow the song during playback.
- **Follow pattern**: if on, the cursor will follow playback and the song will scroll by as it plays.
## layouts
The layout can be changed in Settings > Appearance to one of these:
the layout can be changed in Settings > Appearance to one of these:
### classic

View file

@ -13,6 +13,7 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
- **Disable threaded input (restart after changing!)**: processes key presses for note preview on a separate thread (on supported platforms), which reduces latency.
- however, crashes have been reported when threaded input is on. enable this option if that is the case.
- **Enable event delay**: may cause issues with high-polling-rate mice when previewing notes.
- **Per-channel oscilloscope threads**: runs the per-channel oscilloscope in separate threads for a performance boost when there are lots of channels.
### File
@ -58,9 +59,7 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
### Behavior
- **New instruments are blank**
- **New instruments are blank**: when enabled, adding FM instruments will make them blank (rather than loading the default one).
## Audio
@ -106,7 +105,7 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
### Metronome
- **Metronome volume**
- **Metronome volume**: sets volume of metronome.
## MIDI
@ -141,19 +140,6 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
- **Use single control change**: maps one control change event. not useful if you want to input odd numbers.
- **Control**: select the CC number that will change the value.
- **Per-column control change**: when enabled, you can map several control change events to a channel's columns.
- **Instrument**\
**Volume**\
**Effect `x` type**\
**Effect `x` value**
- **Disabled/custom**
- **Use dual control change (one for each nibble)**
- **CC of upper nibble**
- **CC of lower nibble**
- **Use 14-bit control change**
- **MSB CC**
- **LSB CC**
- **Use single control change (imprecise)**
- **Control**
- **Volume curve**: adjust the velocity to volume curve.
- **Actions**: this allows you to bind note input and control change events to actions.
- **`+`** button: adds a new action.
@ -195,11 +181,11 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
**SID core**\
**POKEY core**\
**OPN/OPNA/OPNB cores**:
- **Playback Core(s)**: core(s) to use for realtime playback.
- **Render Core(s)**: core(s) to use for exporting audio.
- **Playback Core(s)**: core(s) to use for playback.
- **Render Core(s)**: core(s) to use when exporting audio.
- all of these are covered in the [guide to choosing emulation cores](../9-guides/emulation-cores.md).
- **PC Speaker strategy**: this is covered in the [PC speaker system doc](../7-systems/pcspkr.md).
- **PC Speaker strategy**: this is covered in the [PC speaker page](../7-systems/pcspkr.md).
## Keyboard
@ -208,11 +194,22 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
- **Import**
- **Export**
- **Reset defaults**
- [grouped list of keybinds...](keyboard.md)
- click on a keybind then enter a key or key combination to change it
- right-click to clear the keybind
a list of keybinds is displayed.
- click on a keybind. then enter a key or key combination to change it.
- right-click to clear the keybind.
- the full list is in the [keyboard](keyboard.md) page.
#### note input
the settings for note input keybinds operate differently. each entry in the list of keybinds is made of the following:
- **Key**: key assignment.
- **Type**: type of note input. left-click cycles through "Note", "Note off", "Note release", and "Macro release".
- _note:_ the list is sorted by type. on changing a key's type, it will instantly move to its new sorting position!
- **Value**: number of semitones above C at the current octave. only appears for note type binds.
- **Remove**: removes the keybind from the list.
below all the binds, select a key from the dropdown list to add it. it will appear at or near the top of the list as a note with value 0.
## Interface
@ -222,7 +219,7 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
- **Import**: reads a .ini layout file.
- **Export**: writes current layout to a .ini file.
- **Reset**: resets layout to default.
- **Allow docking editors**
- **Allow docking editors**: when enabled, you'll be able to dock instrument/wave/sample editors.
- **Remember window position**: remembers the window's last position on start-up.
- **Only allow window movement when clicking on title bar**
- **Center pop-up windows**
@ -241,56 +238,57 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
- **Double-click time (seconds)**: maximum time between mouse clicks to recognize them as a double-click.
- **Don't raise pattern editor on click**
- **Focus pattern editor when selecting instrument**
- **Note preview behavior:**
- **Never**
- **When cursor is in Note column**
- **When cursor is in Note column or not in edit mode**
- **Always**
- **Note preview behavior:** allows you to disable note preview when entering notes in the pattern.
- **Never**: don't preview notes at all.
- **When cursor is in Note column**: only when the cursor is in the Note column
- **When cursor is in Note column or not in edit mode**: erm... yeah.
- **Always**: always preview notes.
- **Allow dragging selection:**
- **No**
- **Yes**
- **Yes (while holding Ctrl only)**
- **No**: don't allow drag-and-drop.
- **Yes**: allow drag-and-drop.
- **Yes (while holding Ctrl only)**: allow drag-and-drop but only when holding Control (Command on macOS).
- **Toggle channel solo on:** selects which interactions with a channel header will toggle solo for that channel.
- Right-click or double click
- Right-click
- Double-click
- **Double click selects entire column**
- **Double click selects entire column**: when enabled, double clicking on a cell of the pattern will select the entire column.
### Cursor behavior
- **Insert pushes entire channel row**
- **Pull delete affects entire channel row**
- **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh.
- **Insert pushes entire channel row**: when enabled, pressing Insert will push the entire channel rather than the column at the cursor position.
- **Pull delete affects entire channel row**: when enabled, pull deleting (Backspace by default) will pull the entire channel rather than the column at the cursor position.
- **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh. for example:
- if off: moving the cursor onto the value `A5` and typing a "B" results in `0B`.
- if on: moving the cursor onto the value `A5` and typing a "B" results in `5B`.
- **Effect input behavior:**
- **Move down**
- **Move to effect value (otherwise move down)**
- **Move to effect value/next effect and wrap around**
- **Delete effect value when deleting effect**
- **Change current instrument when changing instrument column (absorb)**
- **Remove instrument value when inserting note off/release**
- **Remove volume value when inserting note off/release**
- **Move down**: after entering an effect (or effect value), the cursor moves down.
- **Move to effect value (otherwise move down)**: after entering an effect, the cursor moves to its value. if entering a value, the cursor moves down.
- **Move to effect value/next effect and wrap around**: after entering an effect or effect value, the cursor moves right. if it was on the last column, it jumps back to the first effect.
- **Delete effect value when deleting effect**: if enabled, deleting effect will also delete its value.
- **Change current instrument when changing instrument column (absorb)**: if enabled, typing on the instrument column will also select the instrument you've typed.
- **Remove instrument value when inserting note off/release**: if enabled, inserting a note off or release on a row that has instrument value will remove the instrument value.
- **Remove volume value when inserting note off/release**: same as above, but for volume.
### Cursor movement
- **Wrap horizontally:**
- **No**
- **Yes**
- **Yes, and move to next/prev row**
- **Wrap vertically:**
- **No**
- **Yes**
- **Yes, and move to next/prev pattern**
- **Yes, and move to next/prev pattern (wrap around)**
- **Cursor movement keys behavior:**
- **Move by one**
- **Move by Edit Step**
- **Move cursor by edit step on delete**
- **Move cursor by edit step on insert (push)**
- **Move cursor up on backspace-delete**
- **Move cursor to end of clipboard content when pasting**
- **Wrap horizontally:** selects what to do when the cursor hits horizontal boundaries.
- **No**: don't wrap the cursor.
- **Yes**: wrap the cursor.
- **Yes, and move to next/prev row**: wrap the cursor and move it to the other row.
- **Wrap vertically:** selects what to do when the cursor hits vertical boundaries.
- **No**: don't wrap the cursor.
- **Yes**: wrap the cursor.
- **Yes, and move to next/prev pattern**: wrap the cursor and go to the next/previous order.
- **Yes, and move to next/prev pattern (wrap around)**: same as the previous option, but also wraps around the song.
- **Cursor movement keys behavior:** allows you to select how much will the cursor move by when pressing cursor movement keys.
- **Move by one**: guess.
- **Move by Edit Step**: guess.
- **Move cursor by edit step on delete**: when deleting, moves the cursor by Edit Step.
- **Move cursor by edit step on insert (push)**: when inserting, moves the cursor by Edit Step.
- **Move cursor up on backspace-delete**: when pull deleting (Backspace by default), moves cursor up.
- **Move cursor to end of clipboard content when pasting**: allows you to choose what happens after pasting.
- if on, the cursor will move to the end of the clipboard content.
- if off, the cursor won't move.
### Scrolling
@ -303,8 +301,6 @@ settings are saved when clicking the **OK** or **Apply** buttons at the bottom o
- **Don't scroll when moving cursor**
- **Move cursor with scroll wheel**
## Appearance
### Scaling

View file

@ -1,52 +1,52 @@
# song info
- **Name**: The track's title.
- **Author**: List of contributors to a song. If the song is a cover of someone else's work, it's customary to list their name first, followed by `[cv. YourName]`.
- **Album**: The associated album name, the name of the game the song is from, or whatever.
- **System**: The game console or computer the track is designed for. This is automatically set when creating a new tune, but in advanced mode, it can be changed to anything one wants. The **Auto** button will provide a guess based on the chips in use.
- **Name**: the track's title.
- **Author**: the author(s) of this track.
- **Album**: the associated album name (or the name of the game the song is from).
- **System**: the game console or computer the track is designed for. this is automatically set when creating a new tune, but in advanced mode, it can be changed to anything one wants. the **Auto** button will provide a guess based on the chips in use.
All of this metadata will be included in a VGM export. This isn't the case for a WAV export, however.
all of this metadata will be included in a VGM export. this isn't the case for an audio export, however.
- _**Tuning (A-4)**:_ Set tuning based on the note A-4, which should be 440 in most cases. Opening an Amiga MOD will set it to 436 for hardware compatibility. Available only in advanced mode.
- _**Tuning (A-4)**_: set tuning based on the note A-4, which should be 440 in most cases. opening an Amiga MOD will set it to 436 for hardware compatibility. available only in advanced mode.
# subsongs
This window allows one to create **subsongs** - multiple individual songs within a single file. Each song has its own order list and patterns, but all songs within a file share the same chips, samples, and so forth.
this window allows one to create **subsongs** - multiple individual songs within a single file. each song has its own order list and patterns, but all songs within a file share the same chips, samples, and so forth.
- The drop-down box selects the current subsong.
- The **`+`** button adds a new subsong.
- The **``** button permanently deletes the current subsong (unless it's the only one).
- **Name**: Title of the current subsong.
- The box at the bottom can store any arbitrary text, like a separate "Comments" box for the current subsong.
- the drop-down box selects the current subsong.
- the **`+`** button adds a new subsong.
- the **``** button permanently deletes the current subsong (unless it's the only one).
- **Name**: title of the current subsong.
- the box at the bottom can store any arbitrary text, like a separate "Comments" box for the current subsong.
# speed
There are multiple ways to set the tempo of a song.
there are multiple ways to set the tempo of a song.
Items in _italics_ don't appear in basic mode and are only available in advanced mode.
items in _italic_ don't appear in basic mode and are only available in advanced mode.
**Tick Rate**: The frequency of ticks per second, thus the rate at which notes and effects are processed.
- All values are allowed for all chips, though most chips have hardware limitations that mean they should stay at either 60 (approximately NTSC) or 50 (exactly PAL).
- Clicking the Tick Rate button switches to a more traditional **Base Tempo** BPM setting.
**Tick Rate**: the frequency of ticks per second, thus the rate at which notes and effects are processed.
- all values are allowed for all chips, though most chips have hardware limitations that mean they should stay at either 60 (approximately NTSC) or 50 (exactly PAL).
- clicking the Tick Rate button switches to a more traditional **Base Tempo** BPM setting.
**Speed**: The number of ticks per row.
- Clicking the "Speed" button changes to more complex modes covered in the [grooves] page.
**Speed**: the number of ticks per row.
- clicking the "Speed" button changes to more complex modes covered in the [grooves] page.
_**Virtual Tempo**:_ Simulates any arbitrary tempo without altering the tick rate. It does this by adding or skipping ticks to approximate the tempo. The two numbers represent a ratio applied to the actual tick rate. Example:
- Set tick rate to 150 BPM (60 Hz) and speed to 6.
- Set the first virtual tempo number (numerator) to 200.
- Set the second virtual tempo number (denominator) to 150.
- The track will play at 200 BPM.
- The ratio doesn't have to match BPM numbers. Set the numerator to 4 and the denominator to 5, and the virtual BPM becomes 150 × 4/5 = 120.
- Another way to accomplish this with more control over the results is to use grooves. See the page on [grooves](../8-advanced/grooves.md) for details.
_**Virtual Tempo**:_ Simulates any arbitrary tempo without altering the tick rate. it does this by adding or skipping ticks to approximate the tempo. the two numbers represent a ratio applied to the actual tick rate. example:
- set tick rate to 150 BPM (60 Hz) and speed to 6.
- set the first virtual tempo number (numerator) to 200.
- set the second virtual tempo number (denominator) to 150.
- the track will play at 200 BPM.
- the ratio doesn't have to match BPM numbers. set the numerator to 4 and the denominator to 5, and the virtual BPM becomes 150 × 4/5 = 120.
- another way to accomplish this with more control over the results is to use grooves. see the page on [grooves](../8-advanced/grooves.md) for details.
_**Divider**:_ Changes the effective tick rate. A tick rate of 60Hz and a divisor of 6 will result in ticks lasting a tenth of a second each!
_**Divider**:_ Changes the effective tick rate. a tick rate of 60Hz and a divisor of 6 will result in ticks lasting a tenth of a second each!
**Highlight**: Sets the pattern row highlights:
- The first value represents the number of rows per beat.
- The second value represents the number of rows per measure.
- These don't have to line up with the music's actual beats and measures. Set them as preferred for tracking. _Note:_ These values are used for the metronome and calculating BPM.
**Highlight**: sets the pattern row highlights:
- the first value represents the number of rows per beat.
- the second value represents the number of rows per measure.
- these don't have to line up with the music's actual beats and measures. set them as preferred for tracking. _Note:_ These values are used for the metronome and calculating BPM.
**Pattern Length**: The length of each pattern in rows. This affects all patterns in the song, and every pattern must be the same length. (Individual patterns can be cut short by `0Bxx`, `0Dxx`, and `FFxx` commands.)
**Pattern Length**: the length of each pattern in rows. this affects all patterns in the song, and every pattern must be the same length. (Individual patterns can be cut short by `0Bxx`, `0Dxx`, and `FFxx` commands.)
_**Song Length**:_ How many orders are in the order list. Decreasing it will hide the orders at the bottom. Increasing it will restore those orders; increasing it further will add new orders of all `00` patterns.
_**Song Length**:_ how many orders are in the order list. decreasing it will hide the orders at the bottom. increasing it will restore those orders; increasing it further will add new orders of all `00` patterns.