mirror of
https://github.com/tildearrow/furnace.git
synced 2024-12-17 22:10:12 +00:00
Merge branch 'freq-mod-docs2' of https://github.com/freq-mod/furnace into freq-mod-freq-mod-docs2
This commit is contained in:
commit
0b7c4c71c8
4 changed files with 78 additions and 2 deletions
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
66
papers/doc/effects.md
Normal 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).
|
Loading…
Reference in a new issue