General documentation work.

Bug fixes and improvements! (Heh.)
This commit is contained in:
Electric Keet 2025-12-26 15:14:32 -08:00 committed by tildearrow
parent bf81d7082c
commit 3e852b4f73
20 changed files with 53 additions and 29 deletions

View file

@ -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?

View file

@ -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

View file

@ -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.

View file

@ -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)

View file

@ -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

View file

@ -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)
<!-- -->

View file

@ -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.

View file

@ -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.

View file

@ -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).

View file

@ -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.

View file

@ -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

View file

@ -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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 B

View file

@ -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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 179 KiB

Before After
Before After

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Before After
Before After

View file

@ -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.

View file

@ -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.