diff --git a/papers/doc/7-systems/opll.md b/papers/doc/7-systems/opll.md index 06f542f16..2e92171ba 100644 --- a/papers/doc/7-systems/opll.md +++ b/papers/doc/7-systems/opll.md @@ -2,6 +2,11 @@ the YM2413, otherwise known as OPLL, is a cost-reduced FM synthesis sound chip, based on the Yamaha YM3812 (OPL2). thought OPL was downgraded enough? :p +OPLL spawned also a few derivative chips, the best known of these is: +- the myth. the legend. THE VRC7. 6 channels, *rather interesting* instruments sound bank, no drums mode +- Yamaha YM2423, same chip as YM2413, just a different patch set +- Yamaha YMF281, ditto + # technical specifications the YM2413 is equipped with the following features: diff --git a/papers/doc/7-systems/saa1099.md b/papers/doc/7-systems/saa1099.md index 093eb603e..9cf7b6431 100644 --- a/papers/doc/7-systems/saa1099.md +++ b/papers/doc/7-systems/saa1099.md @@ -1,6 +1,9 @@ # Philips SAA1099 -this was used by the Game Blaster and SAM Coupé. it's pretty similar to the AY-3-8910, but has stereo sound, twice the channels and two envelopes, both of which are highly flexible. +this was used by the Game Blaster and SAM Coupé. it's pretty similar to the AY-3-8910, but has stereo sound, twice the channels and two envelopes, both of which are highly flexible. The envelopes work like this: + +an instrument with envelope settings is placed on channel 2 or channel 5 +an instrument that is used as an "envelope output", is placed on channel 3 or channel 6. You may want to disable wave output on the output channel. # effects diff --git a/papers/doc/7-systems/vrc6.md b/papers/doc/7-systems/vrc6.md index 63bda1ab7..c89678b47 100644 --- a/papers/doc/7-systems/vrc6.md +++ b/papers/doc/7-systems/vrc6.md @@ -5,6 +5,8 @@ the most popular expansion chip to the NES' sound system. the chip has 2 pulse wave channels and one sawtooth channel. volume register is 4 bit for pulse wave and 6 bit for sawtooth, but sawtooth output is corrupted when volume register value is too high. because this register is actually an 8 bit accumulator, its output may wrap around. +For that reason, the sawtooth channel has it's own instrument type. Setting volume macro and pattern editor volume setting too high (above 42/2A) will distort the waveform. + pulse wave duty cycle is 8-level. it can be ignored and it has potential for DAC at this case: volume register in this mode is DAC output and it can be PCM playback through this mode. Furnace supports this routine for PCM playback, but it consumes a lot of CPU time in real hardware (even if conjunction with VRC6's integrated IRQ timer). @@ -13,4 +15,4 @@ Furnace supports this routine for PCM playback, but it consumes a lot of CPU tim these effects only are effective in the pulse channels. - `12xx`: set duty cycle (0 to 7). -- `17xx`: toggle PCM mode. \ No newline at end of file +- `17xx`: toggle PCM mode. diff --git a/papers/doc/effects.md b/papers/doc/effects.md new file mode 100644 index 000000000..773d30373 --- /dev/null +++ b/papers/doc/effects.md @@ -0,0 +1,66 @@ +# effect list + +most of the effect numbers are from ProTracker/FastTracker 2. +however, effects are continuous, which means you only need to type it once and then stop it with an effect value of `00`. + +- `00xy`: arpeggio. after using this effect the channel will rapidly switch between `note`, `note+x` and `note+y`. +- `01xx`: slide up. +- `02xx`: slide down. +- `03xx`: note portamento. + - a note must be present for this effect to work. +- `04xy`: vibrato. `x` is the speed, while `y` is the depth. + - maximum vibrato depth is ±1 semitone. +- `07xy`: tremolo. `x` is the speed, while `y` is the depth. + - maximum tremolo depth is -60 volume steps. +- `08xy`: set panning. `x` is the left channel and `y` is the right one. + - not all systems support this effect. +- `09xx`: set speed 1. +- `0Axy`: volume slide. + - if `x` is 0 then this is a slide down. + - if `y` is 0 then this is a slide up. +- `0Bxx`: jump to pattern. +- `0Cxx`: retrigger note every `xx` ticks. + - this effect is not continuous. +- `0Dxx`: jump to next pattern. +- `0Fxx`: set speed 2. + +- `9xxx`: set sample position to `xxx`\*0x100. + - not all systems support this effect. + +- `Cxxx`: change song Hz. + - `xxx` may be from `000` to `3ff`. + +- `E0xx`: set arpeggio tick. + - this sets the number of ticks between arpeggio values. +- `E1xy`: note slide up. `x` is the speed, while `y` is how many semitones to slide up. +- `E2xy`: note slide down. `x` is the speed, while `y` is how many semitones to slide down. +- `E3xx`: set vibrato direction. `xx` may be one of the following: + - `00`: up and down. + - `01`: up only. + - `02`: down only. +- `E4xx`: set vibrato range in 1/16th of a semitone. +- `E5xx`: set pitch. `80` is 0 cents. + - range is ±1 semitone. +- `EAxx`: toggle legato. +- `EBxx`: set sample bank. + - does not apply on Amiga. +- `ECxx`: note off after `xx` ticks. +- `EDxx`: delay note by `xx` ticks. +- `EExx`: send external command. + - this effect is currently incomplete. +- `EFxx`: add or subtract global pitch. + - this effect is rather weird. use with caution. + - `80` is center. +- `F0xx`: change song Hz by BPM value. +- `F1xx`: single tick slide up. +- `F2xx`: single tick slide down. +- `F3xx`: fine volume slide up (64x slower than `0Axy`). +- `F4xx`: fine volume slide down (64x slower than `0Axy`). +- `F8xx`: single tick volume slide up. +- `F9xx`: single tick volume slide down. +- `FAxy`: fast volume slide (4x faster than `0Axy`). + - if `x` is 0 then this is a slide down. + - if `y` is 0 then this is a slide up. +- `FFxx`: end of song/stop playback. + +additionally each system has its own effects. [click here for more details](../7-systems/README.md).