From b42f868f6d175d82e66ec931baf172b27a2dffa9 Mon Sep 17 00:00:00 2001 From: Electric Keet Date: Tue, 4 Jul 2023 10:25:21 -0700 Subject: [PATCH] Strategic horizontal rules. A few HR's to match the menu bar... A few HR's to clearly separate effect groupings... Keep or scrap? --- doc/2-interface/menu-bar.md | 49 +++++++++++++++++++++++++--------- doc/3-pattern/effects.md | 53 +++++++++++++++++++------------------ 2 files changed, 64 insertions(+), 38 deletions(-) diff --git a/doc/2-interface/menu-bar.md b/doc/2-interface/menu-bar.md index 8fac9e659..02a028d67 100644 --- a/doc/2-interface/menu-bar.md +++ b/doc/2-interface/menu-bar.md @@ -8,6 +8,8 @@ the menu bar allows you to select five menus: file, edit, settings, window and h - **open...**: opens the file picker, allowing you to select a song to open. - **open recent**: contains a list of the songs you've opened before. - **clear history**: this option erases the file history. +
+ - **save**: saves the current song. - opens the file picker if this is a new song, or a backup. - **save as...**: opens the file picker, allowing you to save the song under a different name. @@ -29,12 +31,16 @@ the menu bar allows you to select five menus: file, edit, settings, window and h - Arcade (YM2151 + SegaPCM 5-channel compatibility) - Neo Geo CD (DefleMask 1.0+) - only use this option if you really need it. there are features which DefleMask does not support, like some effects and FM macros, so these will be lost. +
+ - **export audio...**: export your song to a .wav file. see next section for more details. - **export VGM...**: export your song to a .vgm file. see next section for more details. - **export ZSM...**: export your song to a .zsm file. see next section for more details. - only available when there's a YM2151 and/or VERA. - **export command stream...**: export song data to a command stream file. see next section for more details. - this option is for developers. +
+ - **add chip...**: add a chip to the current song. - **configure chip...**: set a chip's parameters. - for a list of parameters, see [7-systems](../7-systems/README.md). @@ -42,6 +48,8 @@ the menu bar allows you to select five menus: file, edit, settings, window and h - **Preserve channel positions**: enable this option to make sure Furnace does not auto-arrange/delete channels to compensate for differing channel counts. this can be useful for doing ports, e.g. from Genesis to PC-98. - **remove chip...**: remove a chip. - **Preserve channel positions**: same thing as above. +
+ - **restore backup**: restore a previously saved backup. - Furnace keeps up to 5 backups of a song. - the backup directory is located in: @@ -49,6 +57,8 @@ the menu bar allows you to select five menus: file, edit, settings, window and h - macOS: `~/Library/Application Support/Furnace/backups` - 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. ## export audio @@ -130,7 +140,8 @@ it's not really useful, unless you're a developer and want to use a command stre # edit - **undo**: reverts the last action. -- **redo**: repeats what you undid previously. +- **redo**: repeats what you undid previously.
+ - **cut**: moves the current selection in the pattern view to clipboard. - **copy**: copies the current selection in the pattern view to clipboard. - **paste**: inserts the clipboard's contents in the cursor position. @@ -147,11 +158,17 @@ it's not really useful, unless you're a developer and want to use a command stre - if the selection is tall, it will select the entire column. - if a column is already selected, it will select the entire channel. - if a channel is already selected, it will select the entire pattern. +
+ - **operation mask**: this is an advanced feature. see [this page](../3-pattern/opmask.md) for more information. -- **input latch**: this is an advanced feature. see [this page](../3-pattern/inputlatch.md) for more information. -- **note/octave up/down**: transposes notes in the current selection. -- **values up/down**: changes values in the current selection by ±1 or ±16. -- **transpose**: transpose notes or change values by a specific amount. +- **input latch**: this is an advanced feature. see [this page](../3-pattern/inputlatch.md) for more information.
+ +- **note/octave up/down**: transposes notes in the current selection.
+ +- **values up/down**: changes values in the current selection by ±1 or ±16.
+ +- **transpose**: transpose notes or change values by a specific amount.
+ - **interpolate**: fills in gaps in the selection by interpolation between values. - **change instrument**: changes the instrument number in a selection. - **gradient/fade**: replace the selection with a "gradient" that goes from the beginning of the selection to the end. @@ -162,18 +179,24 @@ it's not really useful, unless you're a developer and want to use a command stre - use to change volume in a selection for example. - **randomize**: replaces the selection with random values. - does not affect the note column. -- **invert values**: `00` becomes `FF`, `01` becomes `FE`, `02` becomes `FD` and so on. +- **invert values**: `00` becomes `FF`, `01` becomes `FE`, `02` becomes `FD` and so on.
+ - **flip selection**: flips the selection so it is backwards. - **collapse/expand amount**: allows you to specify how much to collapse/expand in the next options. - **collapse**: shrinks the selected contents. -- **expand**: expands the selected contents. +- **expand**: expands the selected contents.
+ - **collapse pattern**: same as collapse, but affects the entire pattern. -- **expand pattern**: same as expand, but affects the entire pattern. +- **expand pattern**: same as expand, but affects the entire pattern.
+ - **collapse song**: same as collapse, but affects the entire song. - it also changes speeds and pattern length to compensate. - **expand song**: same as expand, but affects the entire song. - it also changes speeds and pattern length to compensate. -- **find/replace**: opens the Find/Replace window. see [this page](../3-pattern/find-replace.md) for more information. +
+ +- **find/replace**: opens the Find/Replace window. see [this page](../3-pattern/find-replace.md) for more information.
+ - **clear**: allows you to mass-delete things like songs, instruments and the like. # settings @@ -201,10 +224,12 @@ it's not really useful, unless you're a developer and want to use a command stre - **pattern manager**: shows/hides the Pattern Manager window. - **chip manager**: shows/hides the Chip Manager window. - **compatibility flags**: shows/hides the Compatibility Flags window. -- **song comments**: shows/hides the Song Comments window. -- **instrument editor**: shows/hides the Instrument Editor. +- **song comments**: shows/hides the Song Comments window.
+ +- **instrument editor**: shows/hides the Instrument Editor - **wavetable editor**: shows/hides the Wavetable Editor. -- **sample editor**: shows/hides the Sample Editor. +- **sample editor**: shows/hides the Sample Editor.
+ - **play/edit controls**: shows/hides the Play/Edit Controls. - **piano/input pad**: shows/hides the Piano/Input Pad window. - **oscilloscope (master)**: shows/hides the oscilloscope. diff --git a/doc/3-pattern/effects.md b/doc/3-pattern/effects.md index 6becb6c82..4f1aebbfb 100644 --- a/doc/3-pattern/effects.md +++ b/doc/3-pattern/effects.md @@ -7,17 +7,15 @@ however, effects are continuous, which means you only need to type it once and t ## volume - `0Axy`: **Volume slide.** - - If `x` is 0 then this is a slide down. - - If `y` is 0 then this is a slide up. -- `F8xx`: **Single tick volume slide up.** -- `F9xx`: **Single tick volume slide down.** -- `F3xx`: **Fine volume slide up.** 64× slower than `0Axy`. -- `F4xx`: **Fine volume slide down.** 64× slower than `0Axy`. -- `FAxy`: **Fast volume slide.** 4× faster than `0Axy`. - - If `x` is 0 then this is a slide down. - - If `y` is 0 then this is a slide up. + - If `x` is 0 then this slides volume down by `y` each tick. + - If `y` is 0 then this slides volume up by `x` each tick. +- `FAxy`: **Fast volume slide.** same as `0Axy` above but 4× faster. +- `F3xx`: **Fine volume slide up.** same as `0Ax0` but 64× slower. +- `F4xx`: **Fine volume slide down.** same as `0A0x` but 64× slower. +- `F8xx`: **Single tick volume slide up.** adds `x` to volume on first tick only. +- `F9xx`: **Single tick volume slide down.** subtracts `x` from volume on first tick only.
-- `07xy`: **Tremolo.** changes volume to be "wavy" with a sine LFO. `x` is the speed, while `y` is the depth. +- `07xy`: **Tremolo.** changes volume to be "wavy" with a sine LFO. `x` is the speed. `y` is the depth. - Tremolo is downward only. - Maximum tremolo depth is -60 volume steps. @@ -27,23 +25,24 @@ however, effects are continuous, which means you only need to type it once and t - `01xx`: **Pitch slide up.** - `02xx`: **Pitch slide down.** - `F1xx`: **Single tick pitch slide up.** -- `F2xx`: **Single tick pitch slide down.** +- `F2xx`: **Single tick pitch slide down.**
-- `03xx`: **Portamento.** slides the current note's pitch to the specified note. +- `03xx`: **Portamento.** slides the current note's pitch to the specified note. `x` is the slide speed. - A note _must_ be present for this effect to work. - `E1xy`: **Note slide up.** `x` is the speed, while `y` is how many semitones to slide up. -- `E2xy`: **Note slide down.** `x` is the speed, while `y` is how many semitones to slide down. +- `E2xy`: **Note slide down.** `x` is the speed, while `y` is how many semitones to slide down.
+ - `EAxx`: **Toggle legato.** while on, notes instantly change the pitch of the currrently playing sound instead of starting it over. - `00xy`: **Arpeggio.** after using this effect the channel will rapidly switch between semitone values of `note`, `note + x` and `note + y`. -- `E0xx`: **Set arpeggio speed.** this sets the number of ticks between arpeggio values. +- `E0xx`: **Set arpeggio speed.** this sets the number of ticks between arpeggio values. default is 1.
- `04xy`: **Vibrato.** changes pitch to be "wavy" with a sine LFO. `x` is the speed, while `y` is the depth. - Maximum vibrato depth is ±1 semitone. - `E3xx`: **Set vibrato direction.** `xx` may be one of the following: - - `00`: Up and down. + - `00`: Up and down. default. - `01`: Up only. - `02`: Down only. -- `E4xx`: **Set vibrato range** in 1/16th of a semitone. +- `E4xx`: **Set vibrato range** in 1/16th of a semitone. ## panning @@ -51,28 +50,30 @@ not all chips support these effects. - `08xy`: **Set panning.** changes stereo volumes independently. `x` is the left channel and `y` is the right one. - `88xy`: **Set rear panning.** changes rear channel volumes independently. `x` is the rear left channel and `y` is the rear right one. +- `81xx`: **Set volume of left channel** (from `00` to `FF`). +- `82xx`: **Set volume of right channel** (from `00` to `FF`). +- `89xx`: **Set volume of rear left channel** (from `00` to `FF`). +- `8Axx`: **Set volume of rear right channel** (from `00` to `FF`).
- `80xx`: **Set panning (linear).** this effect behaves more like other trackers: - `00` is left. - `80` is center. - `FF` is right. -- `81xx`: **Set volume of left channel** (from `00` to `FF`). -- `82xx`: **Set volume of right channel** (from `00` to `FF`). -- `89xx`: **Set volume of rear left channel** (from `00` to `FF`). -- `8Axx`: **Set volume of rear right channel** (from `00` to `FF`). ## time - `09xx`: **Set speed/groove.** if no grooves are defined, this sets speed. If alternating speeds are active, this sets the first speed. -- `0Fxx`: **Set speed 2.** during alternating speeds or a groove, this sets the second speed. +- `0Fxx`: **Set speed 2.** during alternating speeds or a groove, this sets the second speed.
- `Cxxx`: **Set tick rate.** changes tick rate to `xxx` Hz (ticks per second). - - `xxx` may be from `000` to `3ff`. -- `F0xx`: **Set BPM.** changes tick rate according to beats per minute. + - `xxx` may be from `000` to `3FF`. +- `F0xx`: **Set BPM.** changes tick rate according to beats per minute. range is `01` to `FF`.
-- `0Bxx`: **Jump to order.** this can be used to loop a song. -- `0Dxx`: **Jump to next pattern.** this can be used to shorten the current order. -- `FFxx`: **Stop song.** stops playback and ends the song. +- `0Bxx`: **Jump to order.** `x` is the order to play after the current row. + - this marks the end of a loop with order `x` as the loop start. +- `0Dxx`: **Jump to next pattern.** skips the current row and remainder of current order. + - this can be used to shorten the current order. +- `FFxx`: **Stop song.** stops playback and ends the song. `x` is ignored. ## note