Merge branch 'freq-mod-docs2' of https://github.com/freq-mod/furnace into freq-mod-freq-mod-docs2

This commit is contained in:
tildearrow 2022-04-08 16:09:27 -05:00
commit 0b7c4c71c8
4 changed files with 78 additions and 2 deletions

View file

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

View file

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

View file

@ -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.
- `17xx`: toggle PCM mode.

66
papers/doc/effects.md Normal file
View file

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