Merge branch 'master' of https://github.com/tildearrow/furnace into ymf278b
This commit is contained in:
commit
13d70b0cfe
|
@ -2,6 +2,8 @@
|
|||
|
||||
everything on this list can be configured in the "Keyboard" tab of the Settings dialog.
|
||||
|
||||
additionally, everything on this list can be accessed with the "command palette" using the default key combo of `Ctrl-P`.
|
||||
|
||||
the keys in the "Global hotkeys" section can be used in any window, although not when a text field is activated.
|
||||
|
||||
| action | default keybind |
|
||||
|
@ -78,7 +80,7 @@ the keys in the "Global hotkeys" section can be used in any window, although not
|
|||
| Close current window | `Shift-Escape` |
|
||||
| Command Palette | `Ctrl-P` |
|
||||
| Recent files (Palette) | — |
|
||||
| Insstruments (Palette) | — |
|
||||
| Instruments (Palette) | — |
|
||||
| Samples (Palette) | — |
|
||||
| | |
|
||||
| **Note input** | |
|
||||
|
@ -153,6 +155,8 @@ the keys in the "Global hotkeys" section can be used in any window, although not
|
|||
| Set note input latch | — |
|
||||
| Clear note input latch | — |
|
||||
| Absorb instrument/octave from status at cursor | — |
|
||||
| Return cursor to previous jump point | — |
|
||||
| Reverse recent cursor undo | — |
|
||||
| | |
|
||||
| **Instrument list** | |
|
||||
| Add instrument | `Insert` |
|
||||
|
|
|
@ -505,6 +505,7 @@ below all the binds, select a key from the dropdown list to add it. it will appe
|
|||
- **Grid**
|
||||
- **Single (with list)**
|
||||
- **Use classic macro editor vertical slider**
|
||||
- **Automatic macro step size/horizontal zoom**
|
||||
|
||||
### Wave Editor
|
||||
|
||||
|
@ -528,6 +529,8 @@ below all the binds, select a key from the dropdown list to add it. it will appe
|
|||
- **Position of Sustain in FM editor:**
|
||||
- **Between Decay and Sustain Rate**
|
||||
- **After Release Rate**
|
||||
- **After Release Rate, after spacing**
|
||||
- **After TL**
|
||||
- **Use separate colors for carriers/modulators in FM editor**
|
||||
- **Unsigned FM detune values**: uses the internal representation of detune values, such that detune amounts of -1, -2, and -3 are shown as 5, 6, and 7.
|
||||
|
||||
|
|
|
@ -15,16 +15,15 @@ however, effects are continuous (unless specified), which means you only need to
|
|||
- `F8xx`: **Single tick volume up.** adds `x` to volume.
|
||||
- `F9xx`: **Single tick volume down.** subtracts `x` from volume.
|
||||
- ---
|
||||
- `D3xx`: **Volume portamento.** slides volume toward the new value instead of jumping immediately. `x` is the speed of the slide.
|
||||
- `D4xx`: **Volume portamento (fast).** same as `D3xx` but 256× faster.
|
||||
- `D3xx`: **Volume portamento.** slides the volume to the one specified in the volume column. `x` is the slide speed.
|
||||
- a volume _must_ be present with this effect for it to work.
|
||||
- `D4xx`: **Volume portamento (fast).** like `D3xx` but 4× faster.
|
||||
- ---
|
||||
- `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.
|
||||
- ---
|
||||
- `D3xx`: **Volume portamento.** slides the volume to the one specified in the volume column. `x` is the slide speed.
|
||||
- a volume _must_ be present with this effect for it to work.
|
||||
- `D4xx`: **Volume portamento (fast).** like `D3xx` but four times faster.
|
||||
- `DCxx`: **Delayed mute.** sets channel volume to 0 after `xx` ticks.
|
||||
|
||||
## pitch
|
||||
|
||||
|
@ -47,6 +46,7 @@ however, effects are continuous (unless specified), which means you only need to
|
|||
- `E8xy`: **Quick legato up**. transposes note up by `y` semitones after `x` ticks.
|
||||
- `E9xy`: **Quick legato down**. transposes note down by `y` semitones after `x` ticks.
|
||||
- `00xy`: **Arpeggio.** this effect produces a rapid cycle between the current note, the note plus `x` semitones and the note plus `y` semitones.
|
||||
- as an example, start with a chord of C-3, G-3, and D#4. the G-3 and D#4 are 7 and 15 semitones higher than the root note, so the corresponding effect is `007F`.
|
||||
- `E0xx`: **Set arpeggio speed.** this sets the number of ticks between arpeggio values. default is 1.
|
||||
- ---
|
||||
- `04xy`: **Vibrato.** makes the pitch oscillate. `x` is the speed, while `y` is the depth.
|
||||
|
|
|
@ -39,7 +39,7 @@ these apply to each operator:
|
|||
- **Decay Rate 2 (D2R) / Sustain Rate (SR)**: determines the diminishing time for the sound. the higher the value, the shorter the decay. this is the long "tail" of the sound that continues as long as the key is depressed (0 to 31).
|
||||
- **Release Rate (RR)**: determines the rate at which the sound disappears after note off. the higher the value, the shorter the release (0 to 15).
|
||||
- **Total Level (TL)**: represents the envelope’s highest amplitude, with 0 being the largest and 127 (decimal) the smallest. a change of one unit is about 0.75 dB.
|
||||
- **Hardware Envelope Generator (SSG-EG)**: executes the built-in envelope, inherited from AY-3-8910 PSG. speed of execution is controlled via Decay Rate.
|
||||
- **Hardware Envelope Generator (SSG-EG)**: executes the built-in envelope, inherited from AY-3-8910 PSG. speed of execution is controlled via envelope parameters.
|
||||
|
||||

|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ the console is powered by the Ricoh 2A03, a CPU with sound generator built-in. i
|
|||
- may be `0` or `1` for the noise channel:
|
||||
- `0`: long (15-bit LFSR, 32767-step)
|
||||
- `1`: short (9-bit LFSR, 93-step)
|
||||
- short noise may sound very different depending on its initial LFSR state. more info can be found at [NESdev](https://forums.nesdev.org/viewtopic.php?t=11535).
|
||||
- `13xy`: **setup sweep up.**
|
||||
- `x` is the time.
|
||||
- `y` is the shift.
|
||||
|
@ -50,7 +51,7 @@ the console is powered by the Ricoh 2A03, a CPU with sound generator built-in. i
|
|||
- `18xx`: **set PCM channel mode.**
|
||||
- `00`: PCM (software).
|
||||
- `01`: DPCM (hardware).
|
||||
- when in DPCM mode, samples will sound muffled (due to its nature), availables pitches are limited, and loop point is ignored.
|
||||
- when in DPCM mode, samples will sound muffled (due to its nature) and available pitches are limited. see "DPCM samples" below.
|
||||
- `19xx`: **set triangle linear counter.**
|
||||
- `00` to `7F` set the counter.
|
||||
- `80` and higher halt it.
|
||||
|
@ -58,7 +59,6 @@ the console is powered by the Ricoh 2A03, a CPU with sound generator built-in. i
|
|||
- only works in DPCM mode.
|
||||
- see table below for possible values.
|
||||
|
||||
|
||||
## info
|
||||
|
||||
this chip uses the [NES](../4-instrument/nes.md) instrument editor.
|
||||
|
@ -70,12 +70,14 @@ the following options are available in the Chip Manager window:
|
|||
- **Clock rate**: sets the rate at which the chip will run.
|
||||
- **DPCM channel mode**: allows you to set which mode to use for the DPCM channel.
|
||||
- DPCM: the default mode, playing 1-bit DPCM samples as supported by the hardware.
|
||||
- PCM: this mode provides crispier samples by writing the delta counter directly. uses a lot of CPU time in console.
|
||||
- PCM: this mode provides crisper 7-bit samples by writing to the delta counter directly. uses a lot of CPU time in console.
|
||||
|
||||
## DPCM sample loop
|
||||
## DPCM samples
|
||||
|
||||
due to hardware limitations, a loop in a DPCM sample must start on a multiple of 512 samples (512, 1024, 1536...) and have a length that is a multiple of 128 plus 8 samples (136, 264, 392...)
|
||||
|
||||
NES DPCM only has 16 preset sample rates, shown in a table below. for help adapting samples to work with this, see the [limited samples guide](../9-guides/limited-samples.md).
|
||||
|
||||
## short noise frequencies (NTSC)
|
||||
|
||||
note | arpeggio | fundamental | MIDI note | pitch
|
||||
|
|
|
@ -107,15 +107,21 @@ several variants of this chip were released as well, with more features.
|
|||
- if `x` is `1` to `4`, the effect targets that operator; `y` turns it off with a value of `0` and on with a value of `1`.
|
||||
- for example, the effect `6031` enables OP3.
|
||||
|
||||
## info
|
||||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [AY-3-8910/SSG](../4-instrument/ay8910.md) instrument editor.
|
||||
|
||||
## extended channel 3
|
||||
|
||||
in ExtCh mode, channel 3 is split into one column for each of its four operators and feedback are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds.
|
||||
|
||||
all four operators are still combined according to the algorithm in use. for example, algorithm 7 acts as four independent sine waves. algorithm 4 acts as two independent 2op sounds. even with algorithm 0, placing a note in any operator triggers that operator alone.
|
||||
|
||||
## info
|
||||
## SSG-EG
|
||||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [AY-3-8910/SSG](../4-instrument/ay8910.md) instrument editor.
|
||||
SSG-EG is short for "Software-controlled Sound Generator – Envelope Generator". it is the AY-3-8910/YM2149 envelope generator applied to each individual operator. it makes the operator's envelope play through attack, decay, sustain, and decay 2 until it reaches zero amplitude, at which time SSG triggers. according to the shape of the SSG envelope, the operator's envelope may then either loop or hold, and either of these can be set to invert the envelope (attack decreases and decay increases) when triggered.
|
||||
|
||||
a full guide to SSG-EG 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), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
|
||||
|
||||
## chip config
|
||||
|
||||
|
|
|
@ -107,15 +107,21 @@ the YM2610 (OPNB) and YM2610B chips are very similar to this one, but the built-
|
|||
- if `x` is `1` to `4`, the effect targets that operator; `y` turns it off with a value of `0` and on with a value of `1`.
|
||||
- for example, the effect `6031` enables OP3.
|
||||
|
||||
## info
|
||||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md) and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors.
|
||||
|
||||
## extended channel 3
|
||||
|
||||
in ExtCh mode, channel 3 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds.
|
||||
|
||||
all four operators are still combined according to the algorithm in use. for example, algorithm 7 acts as four independent sine waves. algorithm 4 acts as two independent 2op sounds. even with algorithm 0, placing a note in any operator triggers that operator alone.
|
||||
|
||||
## info
|
||||
## SSG-EG
|
||||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md) and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors.
|
||||
SSG-EG is short for "Software-controlled Sound Generator – Envelope Generator". it is the AY-3-8910/YM2149 envelope generator applied to each individual operator. it makes the operator's envelope play through attack, decay, sustain, and decay 2 until it reaches zero amplitude, at which time SSG triggers. according to the shape of the SSG envelope, the operator's envelope may then either loop or hold, and either of these can be set to invert the envelope (attack decreases and decay increases) when triggered.
|
||||
|
||||
a full guide to SSG-EG 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), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
|
||||
|
||||
## chip config
|
||||
|
||||
|
|
|
@ -105,15 +105,21 @@ its soundchip is a 4-in-1: 4ch 4-op FM, YM2149 (AY-3-8910 clone) and [2 differen
|
|||
- if `x` is `1` to `4`, the effect targets that operator; `y` turns it off with a value of `0` and on with a value of `1`.
|
||||
- for example, the effect `6031` enables OP3.
|
||||
|
||||
## info
|
||||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md) and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors.
|
||||
|
||||
## extended channel 2
|
||||
|
||||
in ExtCh mode, channel 2 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds.
|
||||
|
||||
all four operators are still combined according to the algorithm in use. for example, algorithm 7 acts as four independent sine waves. algorithm 4 acts as two independent 2op sounds. even with algorithm 0, placing a note in any operator triggers that operator alone.
|
||||
|
||||
## info
|
||||
## SSG-EG
|
||||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md) and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors.
|
||||
SSG-EG is short for "Software-controlled Sound Generator – Envelope Generator". it is the AY-3-8910/YM2149 envelope generator applied to each individual operator. it makes the operator's envelope play through attack, decay, sustain, and decay 2 until it reaches zero amplitude, at which time SSG triggers. according to the shape of the SSG envelope, the operator's envelope may then either loop or hold, and either of these can be set to invert the envelope (attack decreases and decay increases) when triggered.
|
||||
|
||||
a full guide to SSG-EG 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), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
|
||||
|
||||
## chip config
|
||||
|
||||
|
|
|
@ -104,15 +104,21 @@ it is backward compatible with the original chip.
|
|||
- if `x` is `1` to `4`, the effect targets that operator; `y` turns it off with a value of `0` and on with a value of `1`.
|
||||
- for example, the effect `6031` enables OP3.
|
||||
|
||||
## info
|
||||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md) and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors.
|
||||
|
||||
## extended channel 3
|
||||
|
||||
in ExtCh mode, channel 3 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds.
|
||||
|
||||
all four operators are still combined according to the algorithm in use. for example, algorithm 7 acts as four independent sine waves. algorithm 4 acts as two independent 2op sounds. even with algorithm 0, placing a note in any operator triggers that operator alone.
|
||||
|
||||
## info
|
||||
## SSG-EG
|
||||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md), [AY-3-8910/SSG](../4-instrument/ay8910.md), [ADPCM-A](../4-instrument/adpcm-a.md) and [ADPCM-B](../4-instrument/adpcm-b.md) instrument editors.
|
||||
SSG-EG is short for "Software-controlled Sound Generator – Envelope Generator". it is the AY-3-8910/YM2149 envelope generator applied to each individual operator. it makes the operator's envelope play through attack, decay, sustain, and decay 2 until it reaches zero amplitude, at which time SSG triggers. according to the shape of the SSG envelope, the operator's envelope may then either loop or hold, and either of these can be set to invert the envelope (attack decreases and decay increases) when triggered.
|
||||
|
||||
a full guide to SSG-EG 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), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
|
||||
|
||||
## chip config
|
||||
|
||||
|
|
|
@ -1,23 +1,8 @@
|
|||
# Yamaha YM2612
|
||||
|
||||
one of two chips that powered the Sega Genesis. it is a six-channel, four-operator FM synthesizer. channel #6 can be turned into 8-bit PCM player, that via software mixing, thanks to Z80 sound CPU, can play more than one channel of straight-shot samples at once.
|
||||
one of two chips that powered the Sega Genesis. it is a six-channel, four-operator FM synthesizer. channel 6 can be turned into 8-bit PCM player, that via software mixing, thanks to Z80 sound CPU, can play more than one channel of straight-shot samples at once.
|
||||
Furnace also offers DualPCM, a Z80 driver that splits channel 6 into two individual PCM channels with variable pitch. using the console's Z80 processor, these are mixed together in software and streamed to channel 6 in PCM mode with a mix rate of 13750 Hz. VGM export requires the "direct stream mode" option to be enabled, and resulting files will be very large.
|
||||
|
||||
## extended channel 3
|
||||
|
||||
in ExtCh mode, channel 3 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds.
|
||||
|
||||
all four operators are still combined according to the algorithm in use. for example, algorithm 7 acts as four independent sine waves. algorithm 4 acts as two independent 2op sounds. even with algorithm 0, placing a note in any operator triggers that operator alone.
|
||||
|
||||
## CSM
|
||||
|
||||
CSM is short for "Composite Sinusoidal Modeling". CSM works by sending key-on and key-off commands to channel 3 at a specific frequency, controlled by the added "CSM Timer" channel. this can be used to create vocal formants (speech synthesis!) or other complex effects.
|
||||
|
||||
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).
|
||||
|
||||
## DualPCM
|
||||
|
||||
thanks to the Z80 sound CPU, DualPCM can play two samples at once! this mode splits channel 6 into two individual PCM channels with variable pitch. these are mixed together in software and streamed to channel 6 with a mix rate of 13750 Hz. VGM export requires the "direct stream mode" option to be enabled, and resulting files will be very large.
|
||||
## effects
|
||||
|
||||
- `10xy`: **set LFO parameters.**
|
||||
|
@ -30,10 +15,10 @@ thanks to the Z80 sound CPU, DualPCM can play two samples at once! this mode spl
|
|||
- `15xx`: **set operator 4 level.**
|
||||
- `16xy`: **set multiplier of operator.**
|
||||
- `x` is the operator (1-4).
|
||||
- `y` is the new MULT value..
|
||||
- `y` is the new MULT value.
|
||||
- `17xx`: **toggle LEGACY sample mode.**
|
||||
- this only works on channel 6.
|
||||
- **this effect exists only for compatibility reasons! its use is NOT recommented. use Sample type instruments instead.**
|
||||
- **this effect exists only for compatibility reasons! its use is NOT recommended. use Sample type instruments instead.**
|
||||
- `18xx`: **toggle extended channel 3 mode.**
|
||||
- 0 disables it and 1 enables it.
|
||||
- only in extended channel 3 chip.
|
||||
|
@ -94,6 +79,28 @@ thanks to the Z80 sound CPU, DualPCM can play two samples at once! this mode spl
|
|||
|
||||
this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [Generic Sample](../4-instrument/sample.md) instrument editors.
|
||||
|
||||
## extended channel 3
|
||||
|
||||
in ExtCh mode, channel 3 is split into one column for each of its four operators. feedback and LFO levels are shared. the frequency of each operator may be controlled independently with notes and effects. this can be used for more polyphony or more complex sounds.
|
||||
|
||||
all four operators are still combined according to the algorithm in use. for example, algorithm 7 acts as four independent sine waves. algorithm 4 acts as two independent 2op sounds. even with algorithm 0, placing a note in any operator triggers that operator alone.
|
||||
|
||||
## CSM
|
||||
|
||||
CSM, or "Composite Sine Mode", involves a timer matching the frequency of the note in the "CSM Timer" channel. each time it triggers, it generates key-on and key-off commands to reset the phase of all operators on channel 3 and force their envelopes to restart at the release point. this can be used to create vocal formants (speech synthesis!) or other complex effects. outside this chip's specific implementation, the technique is known as "oscillator sync".
|
||||
|
||||
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).
|
||||
|
||||
## DualPCM
|
||||
|
||||
thanks to the Z80 sound CPU, DualPCM can play two samples at once! this mode splits channel 6 into two individual PCM channels with variable pitch. these are mixed together in software and streamed to channel 6 with a mix rate of 13750 Hz. VGM export requires the "direct stream mode" option to be enabled, and resulting files will be very large.
|
||||
|
||||
## SSG-EG
|
||||
|
||||
SSG-EG is short for "Software-controlled Sound Generator – Envelope Generator". it is the AY-3-8910/YM2149 envelope generator applied to each individual operator. it makes the operator's envelope play through attack, decay, sustain, and decay 2 until it reaches zero amplitude, at which time SSG triggers. according to the shape of the SSG envelope, the operator's envelope may then either loop or hold, and either of these can be set to invert the envelope (attack decreases and decay increases) when triggered.
|
||||
|
||||
a full guide to SSG-EG 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), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
|
||||
|
||||
## chip config
|
||||
|
||||
the following options are available in the Chip Manager window:
|
||||
|
|
Loading…
Reference in a new issue