diff --git a/doc/1-intro/quickstart.md b/doc/1-intro/quickstart.md index cc3f4e3ee..9928e0c08 100644 --- a/doc/1-intro/quickstart.md +++ b/doc/1-intro/quickstart.md @@ -139,7 +139,7 @@ if we click on the "Speed" tab at the top-right of the interface, we'll see the ![speed tab](qs-speed.png) -beneath Base Tempo is "Speed", set to 6. right now, each row takes 6 ticks to complete before moving to the next row. let's say we want things to be a little faster. play the current set of notes to hear their tempo first. then, change speed to 5; the tempo shown below "Virtual Tempo" will now read "180.00 BPM". play our notes back, and they're definitely faster... perhaps faster than desired. it's possible to get tempos in between by alternating speeds; if you're interested, check out the documentation on [speeds and grooves](../8-advanced/grooves.md) later on. +beneath Base Tempo is "Speed", set to 6. right now, each row takes 6 ticks to complete before moving to the next row. let's say we want things to be a little faster. play the current set of notes to hear their tempo first. then, change speed to 5; the tempo shown below "Virtual Tempo" will now read "180.00 BPM". play our notes back, and they're definitely faster... perhaps faster than desired. it's possible to get tempos in between by alternating speeds; if you're interested, check out the documentation on [speeds](../2-interface/song-info.md) and [grooves](../8-advanced/grooves.md) later on. ## what about those other channels? diff --git a/doc/2-interface/components.md b/doc/2-interface/components.md index 695ecf1e4..64a7e8874 100644 --- a/doc/2-interface/components.md +++ b/doc/2-interface/components.md @@ -30,7 +30,7 @@ sliders are used for controlling values in a quick manner by being dragged. using the scroll wheel while holding Ctrl will change the slider's value by small amounts. -right-clicking or Ctrl-clicking or a slider (Command-click on macOS) will turn it into a number input field, allowing you to input precise values. +right-clicking or Ctrl-clicking on a slider (Command-click on macOS) will turn it into a number input field, allowing you to input precise values. once you click away it will become a slider again. ## windows diff --git a/doc/2-interface/song-info.md b/doc/2-interface/song-info.md index 971a0e33b..7d6823b03 100644 --- a/doc/2-interface/song-info.md +++ b/doc/2-interface/song-info.md @@ -40,7 +40,10 @@ the effective BPM is displayed as well, taking all settings into account. - 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. +- depending on the tempo and tick rate, the results may sound uneven. another way to reach a specific tempo with more control over the results is to use grooves. see the page on [grooves](../8-advanced/grooves.md) for details. + +**BPM**: the track's initial tempo in beats per minute. +- note: this uses the highlight values below in calculating beats. **Highlight**: sets the pattern row highlights: - the first value represents the number of rows per beat. diff --git a/doc/5-wave/README.md b/doc/5-wave/README.md index 42235ec08..709891cf6 100644 --- a/doc/5-wave/README.md +++ b/doc/5-wave/README.md @@ -3,19 +3,21 @@ wavetable chips, in context of Furnace, are sound generators that operate on extremely short, looping sample streams. by extremely short, usually no more than 256 samples. this amount of space is nowhere near enough to store an actual sampled sound, but it allows certain amount of freedom to define a waveform shape. -each chip has its own maximum size, shown in the following table. if a larger wave is defined for these chips, it will be scaled to fit within the constraints of the chips. some of these don't work well with the wavetable synthesizer (described below); these systems are marked in the "notes" column. +each chip has its own maximum size, shown in the following table. if a larger wave is defined for these chips, it will be scaled to fit within the constraints of the chips. + +some of these chips force a phase reset when changing waveforms, which can cause clicking and popping sounds. this also means they don't work very well with the [wavetable synthesizer](../4-instrument/wavesynth.md). these systems are marked in the "notes" column. system | width | height | notes --------------|------:|:-------|:------ Bubble System | 32 | 16 | -Game Boy | 32 | 16 | phase reset on waveform change (clicking) +Game Boy | 32 | 16 | phase reset on waveform change SM8521 | 32 | 16 | Namco WSG | 32 | 16 | RAM only WonderSwan | 32 | 16 | Namco 163 | ≤240 | 16 | limits differ depending on channel count SNES | ≤256 | 16 | -PC Engine | 32 | 32 | phase reset on waveform change (clicking) -Virtual Boy | 32 | 64 | +PC Engine | 32 | 32 | phase reset on waveform change +Virtual Boy | 32 | 64 | phase reset on all channels on waveform change FDS | 64 | 64 | Konami SCC | 32 | 256 | Seta X1-010 | 128 | 256 | @@ -76,6 +78,8 @@ this creates a waveform using frequency modulation synthesis with up to four ope you can set carrier/modulation levels, frequency multipliers, connections between operators and FM waveforms of these operators. +in the connection diagram, a checkmark indicates that the row operator is modulated by the column operator. the "Out" column indicates which operators are audible. the default diagram (as shown) sets operators 1, 2, and 3 as modulators in sequence, with operator 4 as the carrier and only output. + ### WaveTools ![wavetable tools tab](wave-editor-tools.png) diff --git a/doc/6-sample/README.md b/doc/6-sample/README.md index 1c8e82a32..7c9ee84a0 100644 --- a/doc/6-sample/README.md +++ b/doc/6-sample/README.md @@ -65,7 +65,7 @@ due to limitations in some of those sound chips, some restrictions exist: - Seta/Allumer X1-010: frequency resolution is terrible in the lower end. your sample can't be longer than 131072. - C219: sample lengths and loop will be set to an even number, and your sample can't be longer than 131070. -furthermore, many of these chips have a limited amount of sample memory. check memory usage in window > statistics. +furthermore, many of these chips have a limited amount of sample memory. check memory usage with the Statistics window (found in the "window" menu). ## the sample editor diff --git a/doc/7-systems/README.md b/doc/7-systems/README.md index 7fa57f681..985740fbc 100644 --- a/doc/7-systems/README.md +++ b/doc/7-systems/README.md @@ -36,8 +36,8 @@ some systems have alternate chips, such as the Sega Genesis having a YM2612 or Y - **Capcom CPS-1**: [YM2151](ym2151.md), [MSM6295](msm6295.md) - **Capcom CPS-2 (QSound)**: [QSound](qsound.md) -- **Neo Geo CD**: [YM2610](ym2610.md) -- **Neo Geo CD (extended channel 2)**: [YM2610](ym2610.md) +- **Neo Geo**: [YM2610](ym2610.md) +- **Neo Geo (extended channel 2)**: [YM2610](ym2610.md) - **Neo Geo Pocket**: [T6W28](t6w28.md), [DAC](dac.md) diff --git a/doc/7-systems/dac.md b/doc/7-systems/dac.md index 235be9aa4..7e08ffd63 100644 --- a/doc/7-systems/dac.md +++ b/doc/7-systems/dac.md @@ -1,6 +1,6 @@ # Generic PCM DAC -a sample channel, with freely selectable rate, mono/stereo and bit depth settings. +up to 128 sample channels with freely selectable rate, mono/stereo, and bit depth settings. with it, you can emulate PCM DACs found in Williams arcade boards, Sound Blasters, MSX TurboR, Atari STe, NEC PC-9801-86, among others. @@ -21,3 +21,4 @@ the following options are available in the Chip Manager window: - **Maximum volume**: sets the max value in the volume column. - **Stereo**: when enabled, you may use panning effects. - **Interpolation**: "softens" samples played back at lower rates. +- **Channels**: sets the number of available channels, from 1 up to 128. diff --git a/doc/7-systems/es5506.md b/doc/7-systems/es5506.md index f9a59ce1e..17113edb0 100644 --- a/doc/7-systems/es5506.md +++ b/doc/7-systems/es5506.md @@ -50,8 +50,11 @@ sample memory is split into 2MB banks, making the maximum sample length 2097024 the following options are available in the Chip Manager window: -- **Initial channel limit**: sets how many channels are available for use. if reduced, output rate increases. +- **Output rate divider**: as the chip mixes more channels, the output sample rate goes down. this selects the appropriate rate for the number of channels in use. + - for hardware authenticity, change this to match the number set in "Channels" below. - **Volume scale**: allows you to lower the overall volume to prevent clipping/distortion when using too many channels. - **Amiga channel volumes**: makes volume linear, from 0 to 64 (40 in hex). used in S3M, XM and IT import. - **Amiga-like pitch**: pretends to be an Amiga, with periodic slides. used in S3M, XM and IT import (the latter two when linear slides are disabled). - only effective when pitch linearity is None. +- **Channels**: sets the number of channels that will be active, from 5 up to 32. + - for hardware authenticity, set "Output rate divider" above to match. diff --git a/doc/7-systems/msm6258.md b/doc/7-systems/msm6258.md index 1620d7c38..b3bff2e71 100644 --- a/doc/7-systems/msm6258.md +++ b/doc/7-systems/msm6258.md @@ -31,3 +31,5 @@ the following options are available in the Chip Manager window: ## info this chip uses the [MSM6258](../4-instrument/msm6258.md) instrument editor. + +when exporting to VGM, make sure that "direct stream mode" is disabled (unchecked). diff --git a/doc/7-systems/n163.md b/doc/7-systems/n163.md index dbed81f1d..6ab0dd10c 100644 --- a/doc/7-systems/n163.md +++ b/doc/7-systems/n163.md @@ -48,8 +48,11 @@ this chip uses the [Namco 163](../4-instrument/n163.md) instrument editor. the following options are available in the Chip Manager window: - **Clock rate**: sets the rate at which the chip will run. -- **Initial channel limit**: sets the number of channels that will be active. higher values reduce volume and make TDM artifacts more noticeable. +- when loading files created in earlier versions of Furnace, there may be a warning here that the legacy channel limit doesn't equal the channel count set below. + - **Fix channel count**: changes "Channels" to match the track. + - **Give me more channels**: adjusts the track according to "Channels". - **Disable hissing**: remove TDM artifacts by mixing. sacrifices some accuracy! - **Scale frequency to wave length**: automatically adjusts note frequency to account for differing waveform lengths. - - if disabled, note frequencies ignore waveveform length. this is how FamiTracker behaves. - + - if disabled, note frequencies ignore waveform length. this is how FamiTracker behaves. +- **Channels**: sets the number of channels that will be active, from 1 up to 8. higher values reduce volume and make TDM artifacts more noticeable. + \ No newline at end of file diff --git a/doc/7-systems/segapcm.md b/doc/7-systems/segapcm.md index 2e03662af..00b2d43e6 100644 --- a/doc/7-systems/segapcm.md +++ b/doc/7-systems/segapcm.md @@ -8,7 +8,7 @@ a chip used in the Sega OutRun/X/Y arcade boards. eventually the MultiPCM surpas ## 5-channel SegaPCM -Furnace also has a five channel version of this chip, but it only exists for DefleMask compatibility reasons (which doesn't expose the other channels for rather arbitrary reasons). +Furnace previously had a five channel version of this chip, but it only existed for DefleMask compatibility reasons. when opening older Furnace files and all DefleMask files, the channel count can be corrected by opening the chip config window and clicking the "click here to fix it." button beneath "irregular channel count detected!" ## effects diff --git a/doc/7-systems/ym2610.md b/doc/7-systems/ym2610.md index 113f5aeb7..9a782b07a 100644 --- a/doc/7-systems/ym2610.md +++ b/doc/7-systems/ym2610.md @@ -136,10 +136,16 @@ CSM, or "Composite Sine Mode", involves a timer matching the frequency of the no working with CSM is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU). +## ADPCM-B + +when opening some older Furnace files and all DefleMask files using this chip, the ADPCM-B channel will be absent. this can be corrected by opening the chip config window and clicking the "click here to fix it." button beneath "irregular channel count detected!" + ## chip config the following options are available in the Chip Manager window: -- sets the rate at which the chip will run. +- the clock rate at which the chip will run. +- **Disable ExtCh FM macros (compatibility)**: exists for DefleMask compatibility, and should remain unchecked otherwise. only appears in extended channel 2 mode. +- **Ins change in ExtCh 2-4 affects FB (compatibility)**: exists for DefleMask compatibility, and should remain unchecked otherwise. only appears in extended channel 2 mode. - **SSG Volume**: sets volume of SSG part. - **FM Volume**: sets volume of FM part. diff --git a/doc/8-advanced/channels-reset.png b/doc/8-advanced/channels-reset.png new file mode 100644 index 000000000..a063a9ea4 Binary files /dev/null and b/doc/8-advanced/channels-reset.png differ diff --git a/doc/8-advanced/channels.md b/doc/8-advanced/channels.md index 07692bd8d..27a8477ac 100644 --- a/doc/8-advanced/channels.md +++ b/doc/8-advanced/channels.md @@ -11,3 +11,5 @@ each channel has the following options: - note: this does **not** move channels around! it only moves the channel's pattern data. - **Name**: the name displayed at the top of each channel in the pattern view. - the next setting is "short name", which is displayed in the orders view and/or when a channel is collapsed. +- color: selects a custom color to be used in pattern view headers and other channel indicators. +- ![circle-of-arrows button](channels-reset.png): resets channel color to default. diff --git a/doc/8-advanced/channels.png b/doc/8-advanced/channels.png index fc0cf4ae9..dce89b90c 100644 Binary files a/doc/8-advanced/channels.png and b/doc/8-advanced/channels.png differ diff --git a/doc/8-advanced/chanosc-gradient.png b/doc/8-advanced/chanosc-gradient.png index e716a0c30..f88ed7bee 100644 Binary files a/doc/8-advanced/chanosc-gradient.png and b/doc/8-advanced/chanosc-gradient.png differ diff --git a/doc/8-advanced/chanosc.md b/doc/8-advanced/chanosc.md index 5c7764069..1a3db3056 100644 --- a/doc/8-advanced/chanosc.md +++ b/doc/8-advanced/chanosc.md @@ -8,22 +8,17 @@ right-clicking the view will display the configuration view shown above: - **Columns**: sets the amount of columns for the oscilloscope views. - **Size (ms)**: sets how much of a channel's output is captured for the oscilloscope view. - **Automatic columns**: sets the number of columns based on the number of channels. - - **Off**: use the Columns setting. - - **Mode 1**: always fewer columns than rows. - - **Mode 2**: bias slightly toward more columns. - - **Mode 3**: always more columns than rows. - **Center waveform**: when enabled, the displayed waveforms will be centered horizontally using an auto-correlation algorithm. - **Randomize phase on note** - **DC offset correction**: controls the algorithm that centers the waveform vertically. - **Off** - - **Normal** + - **Normal**: default. - **High** - **Amplitude**: scales amplitude for all oscilloscope views. - **Line size**: controls line thickness. - **Gradient**: this allows you to use a gradient for determining the waveforms' colors instead of a single color. see the gradient section for more information. - - if this option is off, a color selector will be displayed. right-click on it for some options: - - select between the square selector and the color wheel selector. - - **Alpha bar**: display an opacity bar. + - if this option is off, a single color selector will be displayed. + - if this option is on, see the "gradient" section below. - **Text format**: this allows you to display some text on each oscilloscope view. the following codes may be used: - `%c`: channel name - `%C`: channel short name @@ -48,9 +43,7 @@ click on OK to return to the main view. ![oscilloscope per-channel gradient configuration view](chanosc-gradient.png) -when enabling the Gradient setting, a gradient view is displayed in where circular "points" can be placed. -each point adds a color spot. -the resulting image is used to look up the waveform's color as determined by each axis. +when enabling the Gradient setting, a gradient view is displayed in which circular "points" can be placed. each point adds a color spot. the resulting image is used to look up the waveform's color as determined by each axis. - right-click to place a point. - left-click on a point to change its color: @@ -60,6 +53,8 @@ the resulting image is used to look up the waveform's color as determined by eac - middle-click on a point to delete it. - **Background**: sets the gradient's background color. + - **Solid color**: chooses a color to apply to all oscilloscopes. + - **Channel color**: automatically uses the color of the channel the oscilloscope belongs to. - **X Axis**: determines what the horizontal axis maps to. - **Y Axis**: determines what the vertical axis maps to. these can be set to the following: - **None (0%)**: always left or bottom diff --git a/doc/8-advanced/chanosc.png b/doc/8-advanced/chanosc.png index 09253eb75..065e7668b 100644 Binary files a/doc/8-advanced/chanosc.png and b/doc/8-advanced/chanosc.png differ diff --git a/doc/8-advanced/grooves.md b/doc/8-advanced/grooves.md index c02852540..76f61adb7 100644 --- a/doc/8-advanced/grooves.md +++ b/doc/8-advanced/grooves.md @@ -5,7 +5,7 @@ a **groove** is the equivalent of repeating `0Fxx` effects on each row to get a ![groove](groove.png) to set the song's groove: -- open the "Speed" window. +- open the ["Speed" window](../2-interface/song-info.md#speed) from the "window" menu in the "tempo" section. - click the "Speed" button so it becomes "Speeds" (effectively a groove of two speeds). - click again so it becomes "Groove". - enter a sequence of up to 16 speeds. diff --git a/doc/8-advanced/piano.md b/doc/8-advanced/piano.md index a72d25b7e..0a09a18ea 100644 --- a/doc/8-advanced/piano.md +++ b/doc/8-advanced/piano.md @@ -43,6 +43,11 @@ right-clicking on the piano keys will make the buttons disappear; right-clicking - **Octaves (with C)** - **Notes + Octaves** +**Key colors:** +- **Single color** +- **Channel color** +- **Instrument color** + **Share play/edit offset/range**: if disabled, the piano will keep different octave and range values for playback and non-playback states. **Read-only (can't input notes)**: prevents note entry.