diff --git a/doc/4-instrument/bifurcator.md b/doc/4-instrument/bifurcator.md index 11516a511..ac96d0f4e 100644 --- a/doc/4-instrument/bifurcator.md +++ b/doc/4-instrument/bifurcator.md @@ -1,6 +1,6 @@ # Bifurcator instrument editor -Bifurcator instrument editor consists of these macros: +the Bifurcator instrument editor consists of these macros: - **Volume**: volume sequence. - **Arpeggio**: pitch sequence. @@ -10,30 +10,5 @@ Bifurcator instrument editor consists of these macros: - **Pitch**: fine pitch. - **Load Value**: changes the current output value. -## audio generation description +not all combinations of Parameter and Load Value generate tones. for a description of how these affect the sound, see the [Bifurcator](../7-systems/bifurcator.md) system page. -Bifurcator uses logistic map iterations for sound generation. -basically it runs the following function over and over: - -``` -r = (1 + (p / 65536)) * 2 -x = (r * x) * (1 - x) -``` - -where `x` is the current output value and `p` is the "parameter". - -by varying the parameter, the value of x may change drastically, producing a variety of sounds. -the higher the parameter, the more "chaos" is present, effectively yielding noise. - -the default parameter is `47360`, which results in a square wave. - -if the parameter is set to 0, there's no sound at all. -as the parameter approaches 32768, a decaying square wave is produced. -the square wave stops decaying past 32768 and becomes louder until the parameter hits ~47496 (`r = 1 + sqrt(6)`). -a second square wave one octave lower then starts appearing, until the parameter reaches ~51443 (`r ≈ 3.56995`). this is where chaos begins. -anything higher results in a total mess. -however, at ~59914 (`r = 1 + sqrt(8)`) you can hear a 33% pulse wave. - -## the importance of loading the value - -you must load a value that isn't 0 in order to get sound. otherwise the function will always output 0. diff --git a/doc/4-instrument/game-boy.md b/doc/4-instrument/game-boy.md index 50b30b5b1..36c384821 100644 --- a/doc/4-instrument/game-boy.md +++ b/doc/4-instrument/game-boy.md @@ -5,7 +5,7 @@ the Game Boy instrument editor consists of three tabs: one controlling envelope ## Game Boy - **Use software envelope**: switch to volume macro instead of envelope. - - this exploits a bug in the Game Boy sound hardware in order to have software envelopes ("zombie mode"). + - this exploits a bug in the Game Boy sound hardware in order to have software envelopes ("zombie mode", explained more in the [Game Boy system documentation](../7-systems/game-boy.md)). - only a couple emulators have accurate reproduction of this bug. - **Initialize envelope on every note**: forces a volume reset on each new note. - **Volume**: initial channel volume (0 to 15). diff --git a/doc/4-instrument/pet.md b/doc/4-instrument/pet.md index a8ab1e8f3..bdf1fbf6b 100644 --- a/doc/4-instrument/pet.md +++ b/doc/4-instrument/pet.md @@ -4,5 +4,5 @@ the PET instrument editor consists of these macros: - **Volume**: volume sequence (on/off). - **Arpeggio**: pitch sequence. -- **Waveform**: an 8×1 waveform. +- **Waveform**: an 8×1 waveform, entered as a bitmask representing on-off pulses. this has nothing to do with wavetable assets, which cannot be used with the PET. - **Pitch**: fine pitch sequence. diff --git a/doc/4-instrument/wonderswan.md b/doc/4-instrument/wonderswan.md index d6a325d38..079149f4b 100644 --- a/doc/4-instrument/wonderswan.md +++ b/doc/4-instrument/wonderswan.md @@ -8,11 +8,11 @@ for sample settings, see [the Sample instrument editor](sample.md). the only differences are the lack of an "Use wavetable" option, and the presence of a "Use sample" one. -only on channel 2! +only available on channel 2! ## Wavetable -this allows you to enable and configure the Furnace wavetable synthesizer. see [this page](wavesynth.md) for more information. +this allows you to enable and configure the Furnace wavetable synthesizer. see the [wavesynth documentation](wavesynth.md) for more information. ## Macros diff --git a/doc/7-systems/5e01.md b/doc/7-systems/5e01.md index 615290b9c..0b9e5cc25 100644 --- a/doc/7-systems/5e01.md +++ b/doc/7-systems/5e01.md @@ -1,6 +1,6 @@ # 5E01 -a fantasy sound chip created by Euly, based on the Ricoh 2A03, with some improvements: +a fantasy sound chip created by Euly, based on [the Ricoh 2A03 in the NES](nes.md), with some improvements: - a 37.5% duty cycle, - 32 noise pitches instead of 16, and @@ -56,7 +56,6 @@ a fantasy sound chip created by Euly, based on the Ricoh 2A03, with some improve - `20xx`: **set DPCM frequency.** - only works in DPCM mode. - ## info this chip uses the [NES](../4-instrument/nes.md) instrument editor. diff --git a/doc/7-systems/amiga.md b/doc/7-systems/amiga.md index e9b6a70cd..0637e2c9d 100644 --- a/doc/7-systems/amiga.md +++ b/doc/7-systems/amiga.md @@ -45,6 +45,7 @@ this chip uses the [Generic Sample](../4-instrument/sample.md) instrument editor - the maximum rate for sample playback is technically 31469Hz but anything higher than 28867Hz will sound glitchy on hardware. - sample lengths and loop will be set to an even number. - samples can't be longer than 131070. +- samples must be 8-bit. Furnace handles conversion automatically. ## chip config diff --git a/doc/7-systems/bifurcator.md b/doc/7-systems/bifurcator.md index df056f17d..7e40bd416 100644 --- a/doc/7-systems/bifurcator.md +++ b/doc/7-systems/bifurcator.md @@ -1,13 +1,42 @@ # Bifurcator -this is a fantasy sound chip which uses a unique sound generation method: logistic map iterations. +this is a fantasy sound chip which uses a unique sound generation method: [logistic map](https://en.wikipedia.org/wiki/Logistic_map) iterations. + +## usage + +the core of the Bifurcator is the (iterative) logistic map function: + +_x__n_+1 = _rx__n_(1 - _x__n_) + +which when iterated across 2 ≤ _r_ ≤ 4 produces this graph: + + +![logistic map](logisticmap.png) + +in Bifurcator the current output (and initial "load value") ranges from 0 to 65535, which maps directly to _x_ in the range 0.0 to 1.0. the parameter ranges from 0 to 65535, which maps directly to _r_ in the range 2.0 to approximately 4.0. + +### load value + +the first value of _x_ is set with the **load value**. it must be set to a non-zero value, otherwise the next iteration would also be zero... and the next one too... and so on, generating silence. default is 1. + +different load values will cause different "attack" sounds before the iterations stabilize (if they do). + +### parameter + +by varying the parameter, the values of _x_ may change drastically, producing a variety of sounds. the higher the parameter, the more "chaos" is present, effectively yielding noise. + +for most parameter values below 32768 the output converges to a single value (effectively no sound). + +above 32768 the output starts to oscillate. from 32768 to 47496, it bifurcates to oscillate between between 2 values, generating a square wave. from 47497 to 51433, it bifurcates again and becomes a period of 4 values. beyond that, the system rapidly becomes chaotic (noise). there's an "island of stability" starting at around parameter value 59914 where the output oscillates between 3 values, then bifurcates from there. + +the default parameter value is 47360. ## effects -- `10xx`: **set low byte of channel sample state.** -- `11xx`: **set high byte of channel sample state.** -- `12xx`: **set parameter low byte.** -- `13xx`: **set parameter high byte.** +- `10xx`: **set low byte of load state.** +- `11xx`: **set high byte of load state.** +- `12xx`: **set low byte of parameter.** +- `13xx`: **set high byte of parameter.** ## info diff --git a/doc/7-systems/fds.md b/doc/7-systems/fds.md index e7deb6eb2..42c0168dd 100644 --- a/doc/7-systems/fds.md +++ b/doc/7-systems/fds.md @@ -1,7 +1,6 @@ # Famicom Disk System -the Famicom Disk System is an expansion device for the Famicom (known as NES outside Japan), a popular console from the '80s. -as it name implies, it allowed people to play games on specialized floppy disks that could be rewritten on vending machines, therefore reducing the cost of ownership and manufacturing. +the Famicom Disk System is an expansion device for the Famicom (known as NES outside Japan), a popular console from the '80s. as its name implies, it allowed people to play games on specialized floppy disks that could be rewritten on vending machines, therefore reducing the cost of ownership and manufacturing. it also offers an additional 6-bit, 64-byte wavetable sound channel with (somewhat limited) FM capabilities, which is what Furnace supports. @@ -35,3 +34,9 @@ this chip uses the [FDS](../4-instrument/fds.md) instrument editor. the following options are available in the Chip Manager window: - **Clock rate**: sets the rate at which the chip will run. + +## frequency modulation (FM) + +the FDS features a method of FM that changes the frequency of the playing note using a short looping table of 32 values. the modulation table is similar to DPCM in that it isn't a series of direct values, but deltas that determine the amount of change from the previous value. +- deltas range from -3 to 3. in the instrument editor, -4 resets the modulation value to 0, meaning the note plays at its base frequency. +- modulation values are 7-bit, ranging from -64 to 63; moving past those bounds will overflow to the other side (63 + 1 = -64). \ No newline at end of file diff --git a/doc/7-systems/ga20.md b/doc/7-systems/ga20.md index dc2bac6c6..57e96efa3 100644 --- a/doc/7-systems/ga20.md +++ b/doc/7-systems/ga20.md @@ -4,11 +4,11 @@ it is a 4 channel PCM sound source used by Irem in their arcades in late 1980s a the sound chip itself is rather unremarkable, having 8-bit volume and pitch control and no stereo panning... +let's be honest. Furnace has too many chips and a great portion of them are sample chips that do the same task: playing back samples. + ## effects -none - -let's be honest. Furnace has too many chips and a great portion of them are sample chips that do the same task: playing back samples. +this chip has no added effects. ## info diff --git a/doc/7-systems/game-boy.md b/doc/7-systems/game-boy.md index f71d3547e..b1c460a41 100644 --- a/doc/7-systems/game-boy.md +++ b/doc/7-systems/game-boy.md @@ -25,6 +25,10 @@ it has stereo sound, two pulse channels, a wave channel and a noise channel. this chip uses the [Game Boy](../4-instrument/game-boy.md) instrument editor. +### "zombie mode" + +the game boy's envelope hardware has a bug that can be triggered to cause the volume to step up or down only on software command. Furnace uses the same method to trigger it as [LSDJ](https://www.littlesounddj.com/). without this technique, changing the volume directly on a note (such as volume macros do) would cause a phase reset each time, causing significant popping sounds. unfortunately, only a few emulators emulate the "zombie mode" bug properly. + ## chip config the following options are available in the Chip Manager window: diff --git a/doc/7-systems/gba.md b/doc/7-systems/gba.md index a0653a5fe..42b7213d2 100644 --- a/doc/7-systems/gba.md +++ b/doc/7-systems/gba.md @@ -2,7 +2,7 @@ a portable video game console from Nintendo, succeeding the Game Boy. -it adds two stereo sample audio channels which can be used directly ("DMA", left/right) or used in a software mixing driver (most games do this) in order to have multiple voices. +it starts with the [Game Boy sound hardware](game-boy.md) and adds two stereo sample audio channels which can be used directly ("DMA", hard-panned, usually used as left/right channels) or used in a software mixing driver (most games do this) in order to have multiple voices. # effects @@ -20,7 +20,6 @@ it features echo and up to 16 voices. - put `110x` in the effect column. - set volume column to set feedback. - don't use the channel for anything else. - - `12xy`: **toggle invert.** - `x` left channel. - `y` right channel. diff --git a/doc/7-systems/logisticmap.png b/doc/7-systems/logisticmap.png new file mode 100644 index 000000000..6737e8c1a Binary files /dev/null and b/doc/7-systems/logisticmap.png differ diff --git a/doc/7-systems/nes.md b/doc/7-systems/nes.md index c697be215..3ed7a5881 100644 --- a/doc/7-systems/nes.md +++ b/doc/7-systems/nes.md @@ -9,7 +9,7 @@ the console is powered by the Ricoh 2A03, a CPU with sound generator built-in. i ## effects - `11xx`: **write to delta modulation counter.** range is `00` to `7F`. - - this may be used to attenuate the triangle and noise channels; at `7F`, they will be at about 57% volume. + - this may be used to attenuate the triangle and noise channels; see "non-linear mixing" below. - will not work if a sample is playing. - `12xx`: **set duty cycle or noise mode of channel.** - may be `0` to `3` for the pulse channels: @@ -72,12 +72,28 @@ the following options are available in the Chip Manager window: - DPCM: the default mode, playing 1-bit DPCM samples as supported by the hardware. - PCM: this mode provides crisper 7-bit samples by writing to the delta counter directly. uses a lot of CPU time in console. +## non-linear mixing + +the triangle, noise, and PCM channels are mixed together non-linearly such that the level of the DMC (the "delta modulation counter", representing the PCM channel's amplitude) inversely affects the volume of the others. this can be intentionally used with effect `11xx` to hold the DMC at a level that lowers the volume of the triangle channel in a controlled fashion; at maximum DMC level (`117F`) the triangle plays at about 57% of full volume. + ## 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). +## envelope mode + +both pulse channels and the noise channel have a simple hardware envelope generator with two modes: one that holds the volume at whatever the software sets, and one that creates a downward ramp of volume starting from maximum and counting down to 0. the volume range of the ramp can't be controlled (similar to the triangle wave, for the same reason). the envelope can be set to loop each time it reaches 0. + +## frame counter + +the frame counter is a global counter that controls the speed of hardware envelopes and sweeps. the resulting speed depends on both the chip's clock rate and whether it's set to 4-step or 5-step mode. + +## length counter + +setting the length counter will automatically stop a note after the specified amount of time. note that the effect values aren't arranged in a convenient way for their lengths; for convenience, they are shown in a table below. + ## short noise frequencies (NTSC) note | arpeggio | fundamental | MIDI note | pitch diff --git a/doc/7-systems/pet.md b/doc/7-systems/pet.md index 472bb2ec8..cecf35dc1 100644 --- a/doc/7-systems/pet.md +++ b/doc/7-systems/pet.md @@ -4,12 +4,12 @@ a computer from 1977 which was leader on US schools back then. subsequently the maybe no better than a computer terminal, but somebody discovered a way to update the screen at turbo rate - and eventually its sound "chip" (it was nothing more than an 8-bit shift register) was abused as well. -some of these didn't even have sound... +some of these didn't even have sound output, leaving the user to solder in a speaker on their own... ## effects - `10xx`: **set waveform.** - - `xx` is a bitmask. + - `xx` is a bitmask representing a pattern of on-off pulses. it has nothing to do with wavetable assets, which can't be used by the PET. ## info diff --git a/doc/7-systems/sms.md b/doc/7-systems/sms.md index 1dc3968e5..3703c7da3 100644 --- a/doc/7-systems/sms.md +++ b/doc/7-systems/sms.md @@ -1,24 +1,24 @@ # TI SN76489 (e.g. Sega Master System) -a relatively simple sound chip made by Texas Instruments. a derivative of it is used in Sega's Master System, the predecessor to Genesis. it has three square wave channels and one noise channel... not really. +the SN76489 is a relatively simple sound chip made by Texas Instruments. a derivative of it is used in the Sega Master System and Sega Genesis. it has three square wave channels and one noise channel. -nominal mode of SN76489 has 3 square wave channels, with noise channel having only 3 preset frequencies to use (absurdly low, very low, low). to use more pitches, one can enable a mode which "steals" the frequency from square wave channel 3. by doing that, SN76489 becomes effectively a 3 channel sound chip. in addition, periodic noise mode can be enabled, with same caveats. +the noise channel's default mode uses only 3 preset frequencies. to use the full range of pitches, one can enable a mode which matches the frequency of square wave channel 3. in addition, periodic noise mode can be enabled to create a "thin pulse" tone that sounds four octaves lower than the square wave channels. -the original iteration of the SN76489 used in the TI-99/4A computer, the SN94624, could only produce tones as low as 100Hz, and was clocked at 447 KHz. all later versions (such as the one in the Master System and Genesis) had a clock divider but ran on a faster clock, making a chip **very** high pitched... except for the SN76494, which can play notes as low as 13.670 Hz (A -1). as a result, its pitch accuracy for higher notes is compromised. +the original iteration of the SN76489 used in the TI-99/4A computer, the SN94624, runs at a clock speed of 447 kHz and can only produce square waves as low as approximately 110 Hz, or note A2. later versions of the chip (such as the one in the Master System and Genesis) add an internal divide-by-8 stage and generally run at higher system clock rates to achieve a matching or similar frequency range. ## SN7 versions -SN7 was extremely popular due to low cost. therefore, it was cloned and copied to no end, often with minor differences between each other. Furnace supports several of these: -- SN94624, can only produce tones as low as 100Hz, and is clocked at 447 KHz. -- SN76494, which can play notes as low as 13.670 Hz (A -1). it has a different noise feedback and invert masks. -- SN76489, identical to SN94624, just without a clock divider. -- SN76489A, identical to 76494, just with a /8 clock divider. -- SN76496, literally identical to former. why is it even here? -- SN76496 with a Atari-like short noise. the chip of many legend and rumours which may be a result of inaccurate emulation. -- Sega Master System VDP version has a different, characteristic noise LFSR. -- Game Gear SN7, identical to the above, but with stereo. -- NCR8496, different noise invert mask. -- PSSJ3, literally identical to the former. it just swaps "high" and "low" signals in the output, which results in no audible difference. +SN7 was extremely popular due to low cost. therefore, it was cloned and copied to no end, often with minor differences between each version. Furnace supports several of these: +- **SN94624**. as described above. noise presets are tuned to A#. each volume step attenuates the volume by 2dB. +- **SN76494**. uses different noise feedback and invert masks. noise presets are tuned to approximately A. each volume step attenuates the volume by 2.25dB. +- **SN76489**. identical to SN94624, with a /8 clock divider. +- **SN76489 with Atari-like short noise**. the chip of many legends and rumours which may be a result of inaccurate emulation. only works with the MAME emulation core. +- **SN76489A**. identical to SN76494, with a /8 clock divider. +- **SN76496**. identical to SN76489A. +- **Sega VDP/Master System**. SN76489A with a different, characteristic noise LFSR. +- **Game Gear**. identical to the above but with hard-panned stereo. +- **NCR8496**. as above with a different noise invert mask. +- **Tandy PSSJ 3-voice sound**. identical to NCR8496 but swaps "high" and "low" signals in the output, which results in no audible difference. ## effects @@ -30,16 +30,21 @@ SN7 was extremely popular due to low cost. therefore, it was cloned and copied t - `0`: thin pulse. - `1`: noise. - ## info this chip uses the [SN76489/Sega PSG](../4-instrument/psg.md) instrument editor. +noise mode macro values: +- **0**: same as effect `2000`. thin pulse, 3 preset frequencies. +- **1**: same as effect `2001`. noise, 3 preset frequencies. +- **2**: same as effect `2010`. thin pulse, frequency shared with channel 3. +- **3**: same as effect `2011`. noise, frequency shared with channel 3. + ## chip config the following options are available in the Chip Manager window: - **Clock rate**: sets the rate at which the chip will run. -- **Chip type**: changes the chip type. see above for more details. -- **Disable noise period change phase reset**: when enabled, the noise channel won't be reset every time its frequency changes. very useful. -- **Disable easy period to note mapping on upper octaves**: Furnace maps the notes in the upper octaves to periods, for easier noise tuning. this option allows you to disable this feature. +- **Chip type**: changes the chip type. see "SN7 versions" above for more details. +- **Disable noise period change phase reset**: when checked, the noise channel won't be reset every time its frequency changes. very useful. +- **Disable easy period to note mapping on upper octaves**: Furnace maps notes in octaves 7 and up directly to periods to make it easier to reach the highest pitches with normal note entry. this can be especially useful for noise. check this option to disable this feature. diff --git a/doc/7-systems/tia.md b/doc/7-systems/tia.md index d38ccf0a9..684ed7a05 100644 --- a/doc/7-systems/tia.md +++ b/doc/7-systems/tia.md @@ -35,13 +35,13 @@ a song can be exported to assembly code for use with the TIunA software driver f the following options are available in the Chip Manager window: -- **Software pitch driver**: use TIunA, a software pitch driver similar to TIATune. it increases pitch precision by rapidly switching between two pitches. +- **Software pitch driver**: use TIunA, a software pitch driver similar to TIATune. it increases pitch precision by rapidly switching between two pitches. pitches are still limited to their original range; see pitch tables below. - **Old pitch table**: use an older method to calculate pitch. only for compatibility. - **Mixing mode**: changes mixing mode. - **Mono**: normal output. - **Mono (no distortion)**: process each channel separately to eliminate distortion. - **Stereo**: output two channels on left and right. -- **PAL**: run slower blah blah blah +- **PAL**: runs at a slightly different clock rate, affecting pitch. ## info diff --git a/doc/7-systems/wonderswan.md b/doc/7-systems/wonderswan.md index f5c1c42e1..b34e47ce7 100644 --- a/doc/7-systems/wonderswan.md +++ b/doc/7-systems/wonderswan.md @@ -4,9 +4,11 @@ a handheld console released only in Japan by Bandai, designed by the same people for this reason it has lots of similar elements from those two systems in the sound department. it has 4 wavetable channels. some of them have additional capabilities: -- the second channel could play samples -- the third one has hardware sweep -- the fourth one also does noise +- the second channel could play samples. +- the third one has hardware sweep. +- the fourth one also does noise. + +unfortunately, the system mixes and outputs sound at only 24kHz, leading to noticeable aliasing noise... ## effects @@ -15,8 +17,8 @@ it has 4 wavetable channels. some of them have additional capabilities: - 0: disable. - 1-8: enable and set length. - `12xx`: **setup sweep period.** channel 3 only. - - 0: disable. - - 1-32: enable and set period. + - `00`: disable. + - `01`-`20`: enable and set period for 1 to 32. - `13xx`: **setup sweep amount.** channel 3 only. - `00` to `7F` for 0 to 127. - `80` to `FF` for -128 to -1. diff --git a/doc/7-systems/ym2203.md b/doc/7-systems/ym2203.md index ccc39e8c4..3a8e4202b 100644 --- a/doc/7-systems/ym2203.md +++ b/doc/7-systems/ym2203.md @@ -1,13 +1,8 @@ # Yamaha YM2203 (OPN) -a cost-reduced version of the YM2151 (OPM). -it only has 3 FM channels instead of 8 and removes stereo, the LFO and DT2 (coarse detune). +a cost-reduced version of the YM2151 (OPM). it only has 3 FM channels instead of 8 and removes stereo, the LFO and DT2 (coarse detune). however, it does contain an AY/SSG part which provides 3 channels of square wave with noise and envelope. -however it does contain an AY/SSG part which provides 3 channels of square wave with noise and envelope. - -this chip was used in the NEC PC-88/PC-98 series of computers, the Fujitsu FM-7AV and in some arcade boards. - -several variants of this chip were released as well, with more features. +this chip was used in the NEC PC-88/PC-98 series of computers, the Fujitsu FM-7AV and in some arcade boards. it went on to become the basis for several other OPN chips. ## effects diff --git a/doc/7-systems/ym2608.md b/doc/7-systems/ym2608.md index 63e0adc1d..6ff664efe 100644 --- a/doc/7-systems/ym2608.md +++ b/doc/7-systems/ym2608.md @@ -1,10 +1,10 @@ # Yamaha YM2608 (OPNA) -like YM2203, but with twice the FM channels, stereo, an ADPCM channel and built-in drums ("rhythm")! +like YM2203, but with twice the FM channels, stereo, an ADPCM channel, and 6 channels of built-in drums (the "Rhythm Sound Source")! it was one of the available sound chips for the NEC PC-88VA and later models of PC-98 series of computers. -the YM2610 (OPNB) and YM2610B chips are very similar to this one, but the built-in drums have been replaced with 6 sample channels. +the [YM2610 (OPNB)](ym2610.md) and [YM2610B](ym2610b.md) chips are very similar to this one, but in those the rhythm channels become general ADPCM channels and the built-in drum samples are removed. ## effects diff --git a/doc/7-systems/ym2610.md b/doc/7-systems/ym2610.md index a32cdf0c2..a55633463 100644 --- a/doc/7-systems/ym2610.md +++ b/doc/7-systems/ym2610.md @@ -2,7 +2,7 @@ originally an arcade board, but SNK shortly adapted it to a rather expensive video game console with the world's biggest cartridges because some people liked the system so much they wanted a home version of it. -its soundchip is a 4-in-1: 4ch 4-op FM, YM2149 (AY-3-8910 clone) and [2 different format ADPCM](https://wiki.neogeodev.org/index.php?title=ADPCM) in a single package! +its soundchip is a 4-in-1: 4ch 4-op FM, YM2149 (an AY-3-8910 clone) and [2 different formats of ADPCM](https://wiki.neogeodev.org/index.php?title=ADPCM) in a single package! ## effects diff --git a/doc/7-systems/ym2610b.md b/doc/7-systems/ym2610b.md index c7b91df6e..f80ba47a9 100644 --- a/doc/7-systems/ym2610b.md +++ b/doc/7-systems/ym2610b.md @@ -1,7 +1,6 @@ # Taito Arcade/Yamaha YM2610B -YM2610B is basically YM2610 with 2 extra FM channels used at some 90s Taito arcade hardware. -it is backward compatible with the original chip. +YM2610B is basically a derivative of [YM2610](ym2610.md) with 2 extra FM channels, used in some 90s Taito arcade hardware. it is backward compatible with the original chip. ## effects diff --git a/doc/7-systems/ym2612.md b/doc/7-systems/ym2612.md index 0d584b231..bda9f0fd2 100644 --- a/doc/7-systems/ym2612.md +++ b/doc/7-systems/ym2612.md @@ -1,4 +1,4 @@ -# Yamaha YM2612 +# Yamaha YM2612 (OPN2) 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. @@ -82,6 +82,8 @@ Furnace also offers DualPCM, a Z80 driver that splits channel 6 into two individ this chip uses the [FM (OPN)](../4-instrument/fm-opn.md) and [Generic Sample](../4-instrument/sample.md) instrument editors. +the maximum PCM playback rate is 26633 Hz. + ## 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.