diff --git a/doc/5-wave/README.md b/doc/5-wave/README.md index 19a07b104..a42ffd815 100644 --- a/doc/5-wave/README.md +++ b/doc/5-wave/README.md @@ -6,7 +6,11 @@ Furnace's wavetable editor is rather simple, you can draw the waveform using mou Furnace's wavetable editor features multiple ways of creating desired waveform shape: -- Shape tab allows you to select a few predefined basic shapes and indirectly edit it via "Duty", "Exponent" and "XOR Point" sliders TODO: what the last two are doing? What is amplitude/phase for?) +- Shape tab allows you to select a few predefined basic shapes and indirectly edit it via "Duty", "Exponent" and "XOR Point" sliders: + - `Duty` slider affects mainly pulse waves, determining its wisth, like on C64/VRC6 + - `Exponent` powers the waveform in the mathematical sense of the word (^2, ^3 and so on) + - `XOR Point` determines the point where the waveform gets negated. + - TODO: amplitude/phase part - FM is for creating the waveform with frequency modulation synthesis principles: One can set carrier/modulation levels, frquency multiplier, connection between operators and FM waveforms of these operators. - WaveTools allows user to fine-tune the waveform: scale said waveform in both X and Y axes, smoothen, amplify, normalize, convert to signed/unisgned, invert or even randomize the wavetable. diff --git a/doc/6-sample/README.md b/doc/6-sample/README.md index 05891a49a..2f4fe3cd4 100644 --- a/doc/6-sample/README.md +++ b/doc/6-sample/README.md @@ -1,6 +1,6 @@ # samples -In the context of Furnace, a sound sample (usually just referred to as a sample) is a string of numbers that hold sampled PCM audio. +In the context of Furnace, a sound sample (usually just referred to as a sample) is a string of numbers that represent sampled PCM audio. In Furnace, these samples can be generated by importing a .wav (think of it as an higher quality MP3) file. @@ -13,6 +13,7 @@ as of Furnace 0.6, the following sound chips have sample support: - PC Engine/TurboGrafx-16/HuC6280 - Amiga/Paula - SegaPCM +- NEC PC-9801/YM2608 (ADPCM channel only) - Neo Geo/Neo Geo CD/YM2610 (ADPCM channels only) - Seta/Allumer X1-010 - Atari Lynx @@ -21,12 +22,16 @@ as of Furnace 0.6, the following sound chips have sample support: - QSound - ZX Spectrum 48k (1-bit) - RF5C68 -- WonderSwan +- SNES/S-DSP +- WonderSwan (second channel only) - tildearrow Sound Unit - VERA (last channel only) - Y8950 (last channel only) - Konami K007232 -- a few more that I've forgotten to mention +- Irem GA20 +- Ensoniq OTTO/ES5506 +- Yamaha PCMD8/YMZ280B +- MMC5 (last channel only) ## compatible sample mode @@ -45,9 +50,9 @@ due to limitations in some of those sound chips, some restrictions exist: - NES: if on DPCM mode, only a limited selection of frequencies is available, and loop position isn't supported (only entire sample). - SegaPCM: your sample can't be longer than 65535, and the maximum frequency is 31.25KHz. - QSound: your sample can't be longer than 65535, and the loop length shall not be greater than 32767. -- Neo Geo (ADPCM-A): no looping supported. your samples will play at ~18.5KHz. -- Neo Geo (ADPCM-B): no loop position supported (only entire sample), and the maximum frequency is ~55KHz. -- YM2608: the maximum frequency is ~55KHz. +- Neo Geo (ADPCM-A): no looping supported. your samples will play at 18.518KHz. +- Neo Geo (ADPCM-B): no loop position supported (only entire sample), and the maximum frequency is 55.555KHz. +- YM2608: the maximum frequency is 55.555KHz. - MSM6258/MSM6295: no arbitrary frequency. - ZX Spectrum Beeper: your sample can't be longer than 2048, and it always plays at ~55KHz. - Seta/Allumer X1-010: frequency resolution is terrible in the lower end. your sample can't be longer than 131072. diff --git a/doc/7-systems/opl.md b/doc/7-systems/opl.md index b4a86e6db..80c002997 100644 --- a/doc/7-systems/opl.md +++ b/doc/7-systems/opl.md @@ -3,7 +3,7 @@ a series of FM sound chips which were very popular in DOS land. it was so popular that even Yamaha made a logo for it! essentially a downgraded version of Yamaha's other FM chips, with only 2 operators per channel. -however, it also had a drums mode, and later chips in the series added more waveforms (than just the typical sine) and even a 4-operator mode. +however, it also had a [drums mode](opll.md), and later chips in the series added more waveforms (than just the typical sine) and even a 4-operator mode. the original OPL (Yamaha YM3526) was present as an expansion for the Commodore 64 and MSX computers (erm, a variant of it). it only had 9 two-operator channels and drums mode. @@ -77,4 +77,4 @@ afterwards everyone moved to Windows and software mixed PCM streaming... - only in 4-op mode (OPL3). - `5Bxy`: set KSR of operator. - `x` is the operator (1-4; last 2 operators only in 4-op mode). a value of 0 means "all operators". - - `y` determines whether KSR is on. \ No newline at end of file + - `y` determines whether KSR is on. diff --git a/doc/7-systems/opll.md b/doc/7-systems/opll.md index 8b16e8881..115e4bd70 100644 --- a/doc/7-systems/opll.md +++ b/doc/7-systems/opll.md @@ -12,7 +12,11 @@ OPLL also spawned a few derivative chips, the best known of these is: the YM2413 is equipped with the following features: - 9 channels of 2 operator FM synthesis -- A drum/percussion mode, replacing the last 3 voices with 5 rhythm channels +- A drum/percussion mode, replacing the last 3 voices with 5 rhythm channels, with drum mode tones hard-defined in the chip itself, like FM instruments. Only pitch might be altered. + + - Drum mode works like following: FM channel 7 is for Kick Drum, which is a normal FM channel but routed through mxier twice for 2x volume, like all drum sounds. FM channel 8 splits to Snare Drum and Hi-Hat. Snare Drum is the carrier and it works with a special 1 bit noise generator combined with a square wave, all possible by overriding phase-generator with some different synthesis method. Hi-Hat is the modulator and it works with the noise generator and also the special synthesis. CH9 splits to Top-Cymbal and Tom-Tom, Top-Cymbal is the carrier and only has the special synthesis, while Tom-Tom is basically a 1op wave. + - Special syntheis mentioned already is: 5 square waves are gathered from 4x, 64x and 128x the pitch of channel 8 and 16x and 64x the pitch of channel 9 and they go through a process where 2 HH bits OR'd together, then 1 HH and 1 TC bit OR'd, then the two TC bits OR'd together, and those 3 results get XOR'd. + - 1 user-definable patch (this patch can be changed throughout the course of the song) - 15 pre-defined patches which can all be used at the same time - Support for ADSR on both the modulator and the carrier @@ -60,4 +64,4 @@ the YM2413 is equipped with the following features: - `58xx`: set DR of operator 2. - `5Bxy`: set KSR of operator. - `x` is the operator (1-2). a value of 0 means "all operators". - - `y` determines whether KSR is on. \ No newline at end of file + - `y` determines whether KSR is on. diff --git a/doc/7-systems/ym2612.md b/doc/7-systems/ym2612.md index 1eeb148e2..dda452665 100644 --- a/doc/7-systems/ym2612.md +++ b/doc/7-systems/ym2612.md @@ -1,6 +1,6 @@ # 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. +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. As of Furnace 0.6pre5, Furnace offers DualPCM, which allows 2 channels of software-mixed 8-bit PCM samples at 13750 Hz. # effects