mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-06 12:55:05 +00:00
81ab2acb2c
Trying for more consistency and clarity, especially for quick reference.
3.6 KiB
3.6 KiB
Yamaha YM2608 (OPNA)
like YM2203, but with twice the FM channels, stereo, an ADPCM channel and built-in drums ("rhythm")!
it was one of the available sound chips for the NEC PC-88VA and 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.
effects
10xy
: set LFO parameters.x
toggles the LFO.y
sets its speed.
11xx
: set feedback of channel.12xx
: set operator 1 level.13xx
: set operator 2 level.14xx
: set operator 3 level.15xx
: set operator 4 level.16xy
: set multiplier of operator.x
is the operator (1-4).y
is the multiplier.
18xx
: toggle extended channel 3 mode.0
disables it and1
enables it.- only in extended channel 3 chip.
19xx
: set attack of all operators.1Axx
: set attack of operator 1.1Bxx
: set attack of operator 2.1Cxx
: set attack of operator 3.1Dxx
: set attack of operator 4.20xx
: set SSG channel mode.00
: square01
: noise02
: square and noise03
: nothing (apparently)04
: envelope and square05
: envelope and noise06
: envelope and square and noise07
: nothing
21xx
: set noise frequency. range is0
to1F
.22xy
: set envelope mode.x
sets the envelope shape, which may be one of the following:0
:\___
decay4
:/___
attack once8
:\\\\
saw9
:\___
decayA
:\/\/
inverse obeliscoB
:\¯¯¯
decay onceC
:////
inverse sawD
:/¯¯¯
attackE
:/\/\
obeliscoF
:/___
attack once
- if
y
is 1 then the envelope will affect this channel.
23xx
: set envelope period low byte.24xx
: set envelope period high byte.25xx
: slide envelope period up.26xx
: slide envelope period down.29xy
: enable SSG auto-envelope mode.- in this mode the envelope period is set to the channel's notes, multiplied by a fraction.
x
is the numerator.y
is the denominator.- if
x
ory
are 0 this will disable auto-envelope mode.
30xx
: enable envelope hard reset.- this works by inserting a quick release and tiny delay before a new note.
50xy
: set AM of operator.x
is the operator (1-4). a value of 0 means "all operators".y
determines whether AM is on.
51xy
: set SL of operator.x
is the operator (1-4). a value of 0 means "all operators".y
is the value.
52xy
: set RR of operator.x
is the operator (1-4). a value of 0 means "all operators".y
is the value.
53xy
: set DT of operator.x
is the operator (1-4). a value of 0 means "all operators".y
is the value:0
: +01
: +12
: +23
: +34
: -05
: -36
: -27
: -1
54xy
: set RS of operator.x
is the operator (1-4). a value of 0 means "all operators".y
is the value.
55xy
: set SSG-EG of operator.x
is the operator (1-4). a value of 0 means "all operators".y
is the value (0-8).- values between 0 and 7 set SSG-EG.
- value 8 disables it.
56xx
: set DR of all operators.57xx
: set DR of operator 1.58xx
: set DR of operator 2.59xx
: set DR of operator 3.5Axx
: set DR of operator 4.5Bxx
: set D2R/SR of all operators.5Cxx
: set D2R/SR of operator 1.5Dxx
: set D2R/SR of operator 2.5Exx
: set D2R/SR of operator 3.5Fxx
: set D2R/SR of operator 4.