652 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			652 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# old instrument format (<127)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								this format is used in older versions of Furnace.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# header
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								.fui files use the following header:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								size | description
							 | 
						|||
| 
								 | 
							
								-----|------------------------------------
							 | 
						|||
| 
								 | 
							
								 16  | "-Furnace instr.-" format magic
							 | 
						|||
| 
								 | 
							
								  2  | format version
							 | 
						|||
| 
								 | 
							
								  2  | reserved
							 | 
						|||
| 
								 | 
							
								  4  | pointer to instrument data
							 | 
						|||
| 
								 | 
							
								  2  | wavetable count
							 | 
						|||
| 
								 | 
							
								  2  | sample count
							 | 
						|||
| 
								 | 
							
								  4  | reserved
							 | 
						|||
| 
								 | 
							
								 4?? | pointers to wavetables
							 | 
						|||
| 
								 | 
							
								 4?? | pointers to samples
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								instrument data follows.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								this header is not present on instruments inside a .fur file.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# data
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								notes:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								- the entire instrument is stored, regardless of instrument type.
							 | 
						|||
| 
								 | 
							
								- the macro range varies depending on the instrument type.
							 | 
						|||
| 
								 | 
							
								- "macro open" indicates whether the macro is collapsed or not in the instrument editor.
							 | 
						|||
| 
								 | 
							
								  - as of format version 120, bit 1-2 indicates macro mode:
							 | 
						|||
| 
								 | 
							
								    - 0: sequence (normal)
							 | 
						|||
| 
								 | 
							
								    - 1: ADSR
							 | 
						|||
| 
								 | 
							
								    - 2: LFO
							 | 
						|||
| 
								 | 
							
								  - see sub-section for information on how to interpret parameters.
							 | 
						|||
| 
								 | 
							
								- FM operator order is:
							 | 
						|||
| 
								 | 
							
								  - 1/3/2/4 (internal order) for OPN, OPM, OPZ and OPL 4-op
							 | 
						|||
| 
								 | 
							
								  - 1/2/?/? (? = unused) for OPL 2-op and OPLL
							 | 
						|||
| 
								 | 
							
								- meaning of extended macros varies depending on instrument type.
							 | 
						|||
| 
								 | 
							
								- meaning of panning macros varies depending on instrument type:
							 | 
						|||
| 
								 | 
							
								  - for hard-panned chips (e.g. FM and Game Boy): left panning is 2-bit panning macro (left/right)
							 | 
						|||
| 
								 | 
							
								  - otherwise both left and right panning macros are used
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								size | description
							 | 
						|||
| 
								 | 
							
								-----|------------------------------------
							 | 
						|||
| 
								 | 
							
								  4  | "INST" block ID
							 | 
						|||
| 
								 | 
							
								  4  | size of this block
							 | 
						|||
| 
								 | 
							
								  2  | format version (see header)
							 | 
						|||
| 
								 | 
							
								  1  | instrument type
							 | 
						|||
| 
								 | 
							
								     | - 0: SN76489/standard
							 | 
						|||
| 
								 | 
							
								     | - 1: FM (OPN)
							 | 
						|||
| 
								 | 
							
								     | - 2: Game Boy
							 | 
						|||
| 
								 | 
							
								     | - 3: C64
							 | 
						|||
| 
								 | 
							
								     | - 4: Amiga/sample
							 | 
						|||
| 
								 | 
							
								     | - 5: PC Engine
							 | 
						|||
| 
								 | 
							
								     | - 6: AY-3-8910
							 | 
						|||
| 
								 | 
							
								     | - 7: AY8930
							 | 
						|||
| 
								 | 
							
								     | - 8: TIA
							 | 
						|||
| 
								 | 
							
								     | - 9: SAA1099
							 | 
						|||
| 
								 | 
							
								     | - 10: VIC
							 | 
						|||
| 
								 | 
							
								     | - 11: PET
							 | 
						|||
| 
								 | 
							
								     | - 12: VRC6
							 | 
						|||
| 
								 | 
							
								     | - 13: OPLL
							 | 
						|||
| 
								 | 
							
								     | - 14: OPL
							 | 
						|||
| 
								 | 
							
								     | - 15: FDS
							 | 
						|||
| 
								 | 
							
								     | - 16: Virtual Boy
							 | 
						|||
| 
								 | 
							
								     | - 17: Namco 163
							 | 
						|||
| 
								 | 
							
								     | - 18: SCC
							 | 
						|||
| 
								 | 
							
								     | - 19: OPZ
							 | 
						|||
| 
								 | 
							
								     | - 20: POKEY
							 | 
						|||
| 
								 | 
							
								     | - 21: PC Speaker
							 | 
						|||
| 
								 | 
							
								     | - 22: WonderSwan
							 | 
						|||
| 
								 | 
							
								     | - 23: Lynx
							 | 
						|||
| 
								 | 
							
								     | - 24: VERA
							 | 
						|||
| 
								 | 
							
								     | - 25: X1-010
							 | 
						|||
| 
								 | 
							
								     | - 26: VRC6 (saw)
							 | 
						|||
| 
								 | 
							
								     | - 27: ES5506
							 | 
						|||
| 
								 | 
							
								     | - 28: MultiPCM
							 | 
						|||
| 
								 | 
							
								     | - 29: SNES
							 | 
						|||
| 
								 | 
							
								     | - 30: Sound Unit
							 | 
						|||
| 
								 | 
							
								     | - 31: Namco WSG
							 | 
						|||
| 
								 | 
							
								     | - 32: OPL (drums)
							 | 
						|||
| 
								 | 
							
								     | - 33: FM (OPM)
							 | 
						|||
| 
								 | 
							
								     | - 34: NES
							 | 
						|||
| 
								 | 
							
								     | - 35: MSM6258
							 | 
						|||
| 
								 | 
							
								     | - 36: MSM6295
							 | 
						|||
| 
								 | 
							
								     | - 37: ADPCM-A
							 | 
						|||
| 
								 | 
							
								     | - 38: ADPCM-B
							 | 
						|||
| 
								 | 
							
								     | - 39: SegaPCM
							 | 
						|||
| 
								 | 
							
								     | - 40: QSound
							 | 
						|||
| 
								 | 
							
								     | - 41: YMZ280B
							 | 
						|||
| 
								 | 
							
								     | - 42: RF5C68
							 | 
						|||
| 
								 | 
							
								     | - 43: MSM5232
							 | 
						|||
| 
								 | 
							
								     | - 44: T6W28
							 | 
						|||
| 
								 | 
							
								  1  | reserved
							 | 
						|||
| 
								 | 
							
								 STR | instrument name
							 | 
						|||
| 
								 | 
							
								 --- | **FM instrument data**
							 | 
						|||
| 
								 | 
							
								  1  | alg (SUS on OPLL)
							 | 
						|||
| 
								 | 
							
								  1  | feedback
							 | 
						|||
| 
								 | 
							
								  1  | fms (DC on OPLL)
							 | 
						|||
| 
								 | 
							
								  1  | ams (DM on OPLL)
							 | 
						|||
| 
								 | 
							
								  1  | operator count
							 | 
						|||
| 
								 | 
							
								     | - this is either 2 or 4, and is ignored on non-OPL systems.
							 | 
						|||
| 
								 | 
							
								     | - always read 4 ops regardless of this value.
							 | 
						|||
| 
								 | 
							
								  1  | OPLL preset (>=60) or reserved
							 | 
						|||
| 
								 | 
							
								     | - 0: custom
							 | 
						|||
| 
								 | 
							
								     | - 1-15: pre-defined patches
							 | 
						|||
| 
								 | 
							
								     | - 16: drums (compatibility only!)
							 | 
						|||
| 
								 | 
							
								  2  | reserved
							 | 
						|||
| 
								 | 
							
								 --- | **FM operator data** × 4
							 | 
						|||
| 
								 | 
							
								  1  | am
							 | 
						|||
| 
								 | 
							
								  1  | ar
							 | 
						|||
| 
								 | 
							
								  1  | dr
							 | 
						|||
| 
								 | 
							
								  1  | mult
							 | 
						|||
| 
								 | 
							
								  1  | rr
							 | 
						|||
| 
								 | 
							
								  1  | sl
							 | 
						|||
| 
								 | 
							
								  1  | tl
							 | 
						|||
| 
								 | 
							
								  1  | dt2
							 | 
						|||
| 
								 | 
							
								  1  | rs
							 | 
						|||
| 
								 | 
							
								  1  | dt
							 | 
						|||
| 
								 | 
							
								  1  | d2r
							 | 
						|||
| 
								 | 
							
								  1  | ssgEnv
							 | 
						|||
| 
								 | 
							
								     | - bit 4: on (EG-S on OPLL)
							 | 
						|||
| 
								 | 
							
								     | - bit 0-3: envelope type
							 | 
						|||
| 
								 | 
							
								  1  | dam (for YMU759 compat; REV on OPZ)
							 | 
						|||
| 
								 | 
							
								  1  | dvb (for YMU759 compat; FINE on OPZ)
							 | 
						|||
| 
								 | 
							
								  1  | egt (for YMU759 compat; FixedFreq on OPZ)
							 | 
						|||
| 
								 | 
							
								  1  | ksl (EGShift on OPZ)
							 | 
						|||
| 
								 | 
							
								  1  | sus
							 | 
						|||
| 
								 | 
							
								  1  | vib
							 | 
						|||
| 
								 | 
							
								  1  | ws
							 | 
						|||
| 
								 | 
							
								  1  | ksr
							 | 
						|||
| 
								 | 
							
								  1  | operator enabled (>=114) or reserved
							 | 
						|||
| 
								 | 
							
								  1  | KVS mode (>=115) or reserved
							 | 
						|||
| 
								 | 
							
								     | - 0: off
							 | 
						|||
| 
								 | 
							
								     | - 1: on
							 | 
						|||
| 
								 | 
							
								     | - 2: auto (depending on alg)
							 | 
						|||
| 
								 | 
							
								 10  | reserved
							 | 
						|||
| 
								 | 
							
								 --- | **Game Boy instrument data**
							 | 
						|||
| 
								 | 
							
								  1  | volume
							 | 
						|||
| 
								 | 
							
								  1  | direction
							 | 
						|||
| 
								 | 
							
								  1  | length
							 | 
						|||
| 
								 | 
							
								  1  | sound length
							 | 
						|||
| 
								 | 
							
								 --- | **C64 instrument data**
							 | 
						|||
| 
								 | 
							
								  1  | triangle
							 | 
						|||
| 
								 | 
							
								  1  | saw
							 | 
						|||
| 
								 | 
							
								  1  | pulse
							 | 
						|||
| 
								 | 
							
								  1  | noise
							 | 
						|||
| 
								 | 
							
								  1  | attack
							 | 
						|||
| 
								 | 
							
								  1  | decay
							 | 
						|||
| 
								 | 
							
								  1  | sustain
							 | 
						|||
| 
								 | 
							
								  1  | release
							 | 
						|||
| 
								 | 
							
								  2  | duty
							 | 
						|||
| 
								 | 
							
								  1  | ring mod
							 | 
						|||
| 
								 | 
							
								  1  | osc sync
							 | 
						|||
| 
								 | 
							
								  1  | to filter
							 | 
						|||
| 
								 | 
							
								  1  | init filter
							 | 
						|||
| 
								 | 
							
								  1  | vol macro is cutoff (<187) or reserved
							 | 
						|||
| 
								 | 
							
								     | - from version 187 onwards, volume and cutoff macros are separate.
							 | 
						|||
| 
								 | 
							
								     | - if this is on and the version is less than 187, move the volume macro into the ALG one.
							 | 
						|||
| 
								 | 
							
								  1  | resonance
							 | 
						|||
| 
								 | 
							
								  1  | low pass
							 | 
						|||
| 
								 | 
							
								  1  | band pass
							 | 
						|||
| 
								 | 
							
								  1  | high pass
							 | 
						|||
| 
								 | 
							
								  1  | channel 3 off
							 | 
						|||
| 
								 | 
							
								  2  | cutoff
							 | 
						|||
| 
								 | 
							
								  1  | duty macro is absolute
							 | 
						|||
| 
								 | 
							
								  1  | filter macro is absolute
							 | 
						|||
| 
								 | 
							
								 --- | **Amiga instrument data**
							 | 
						|||
| 
								 | 
							
								  2  | initial sample
							 | 
						|||
| 
								 | 
							
								  1  | mode (>=82) or reserved
							 | 
						|||
| 
								 | 
							
								     | - 0: sample
							 | 
						|||
| 
								 | 
							
								     | - 1: wavetable
							 | 
						|||
| 
								 | 
							
								  1  | wavetable length (-1) (>=82) or reserved
							 | 
						|||
| 
								 | 
							
								 12  | reserved
							 | 
						|||
| 
								 | 
							
								 --- | **standard instrument data**
							 | 
						|||
| 
								 | 
							
								  4  | volume macro length
							 | 
						|||
| 
								 | 
							
								  4  | arp macro length
							 | 
						|||
| 
								 | 
							
								  4  | duty macro length
							 | 
						|||
| 
								 | 
							
								  4  | wave macro length
							 | 
						|||
| 
								 | 
							
								  4  | pitch macro length (>=17)
							 | 
						|||
| 
								 | 
							
								  4  | extra 1 macro length (>=17)
							 | 
						|||
| 
								 | 
							
								  4  | extra 2 macro length (>=17)
							 | 
						|||
| 
								 | 
							
								  4  | extra 3 macro length (>=17)
							 | 
						|||
| 
								 | 
							
								  4  | volume macro loop
							 | 
						|||
| 
								 | 
							
								  4  | arp macro loop
							 | 
						|||
| 
								 | 
							
								  4  | duty macro loop
							 | 
						|||
| 
								 | 
							
								  4  | wave macro loop
							 | 
						|||
| 
								 | 
							
								  4  | pitch macro loop (>=17)
							 | 
						|||
| 
								 | 
							
								  4  | extra 1 macro loop (>=17)
							 | 
						|||
| 
								 | 
							
								  4  | extra 2 macro loop (>=17)
							 | 
						|||
| 
								 | 
							
								  4  | extra 3 macro loop (>=17)
							 | 
						|||
| 
								 | 
							
								  1  | arp macro mode (<112) or reserved
							 | 
						|||
| 
								 | 
							
								     | - treat this value in a special way.
							 | 
						|||
| 
								 | 
							
								     | - before version 112, this byte indicates whether the arp macro mode is fixed or not.
							 | 
						|||
| 
								 | 
							
								     | - from that version onwards, the fixed mode is part of the macro values.
							 | 
						|||
| 
								 | 
							
								     | - to convert a <112 macro mode to a modern one, do the following:
							 | 
						|||
| 
								 | 
							
								     |   - is the macro mode set to fixed?
							 | 
						|||
| 
								 | 
							
								     |     - if yes, then:
							 | 
						|||
| 
								 | 
							
								     |       - set bit 30 of all arp macro values (this is the fixed mode bit)
							 | 
						|||
| 
								 | 
							
								     |       - does the macro loop?
							 | 
						|||
| 
								 | 
							
								     |         - if yes, then do nothing else
							 | 
						|||
| 
								 | 
							
								     |         - if no, then add one to the macro length, and set the last macro value to 0
							 | 
						|||
| 
								 | 
							
								     |     - if no, then do nothing
							 | 
						|||
| 
								 | 
							
								  1  | reserved (>=17) or volume macro height (>=15) or reserved
							 | 
						|||
| 
								 | 
							
								  1  | reserved (>=17) or duty macro height (>=15) or reserved
							 | 
						|||
| 
								 | 
							
								  1  | reserved (>=17) or wave macro height (>=15) or reserved
							 | 
						|||
| 
								 | 
							
								 4?? | volume macro
							 | 
						|||
| 
								 | 
							
								     | - before version 87, if this is the C64 relative cutoff macro, its values were stored offset by 18.
							 | 
						|||
| 
								 | 
							
								 4?? | arp macro
							 | 
						|||
| 
								 | 
							
								     | - before version 31, this macro's values were stored offset by 12.
							 | 
						|||
| 
								 | 
							
								     | - from version 112 onward, bit 30 of a value indicates fixed mode.
							 | 
						|||
| 
								 | 
							
								 4?? | duty macro
							 | 
						|||
| 
								 | 
							
								     | - before version 87, if this is the C64 relative duty macro, its values were stored offset by 12.
							 | 
						|||
| 
								 | 
							
								 4?? | wave macro
							 | 
						|||
| 
								 | 
							
								 4?? | pitch macro (>=17)
							 | 
						|||
| 
								 | 
							
								 4?? | extra 1 macro (>=17)
							 | 
						|||
| 
								 | 
							
								 4?? | extra 2 macro (>=17)
							 | 
						|||
| 
								 | 
							
								 4?? | extra 3 macro (>=17)
							 | 
						|||
| 
								 | 
							
								  4  | alg macro length (>=29)
							 | 
						|||
| 
								 | 
							
								  4  | fb macro length (>=29)
							 | 
						|||
| 
								 | 
							
								  4  | fms macro length (>=29)
							 | 
						|||
| 
								 | 
							
								  4  | ams macro length (>=29)
							 | 
						|||
| 
								 | 
							
								  4  | alg macro loop (>=29)
							 | 
						|||
| 
								 | 
							
								  4  | fb macro loop (>=29)
							 | 
						|||
| 
								 | 
							
								  4  | fms macro loop (>=29)
							 | 
						|||
| 
								 | 
							
								  4  | ams macro loop (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | volume macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | arp macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | duty macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | wave macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | pitch macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | extra 1 macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | extra 2 macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | extra 3 macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | alg macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | fb macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | fms macro open (>=29)
							 | 
						|||
| 
								 | 
							
								  1  | ams macro open (>=29)
							 | 
						|||
| 
								 | 
							
								 4?? | alg macro (>=29)
							 | 
						|||
| 
								 | 
							
								 4?? | fb macro (>=29)
							 | 
						|||
| 
								 | 
							
								 4?? | fms macro (>=29)
							 | 
						|||
| 
								 | 
							
								 4?? | ams macro (>=29)
							 | 
						|||
| 
								 | 
							
								 --- | **operator macro headers** × 4 (>=29)
							 | 
						|||
| 
								 | 
							
								  4  | AM macro length
							 | 
						|||
| 
								 | 
							
								  4  | AR macro length
							 | 
						|||
| 
								 | 
							
								  4  | DR macro length
							 | 
						|||
| 
								 | 
							
								  4  | MULT macro length
							 | 
						|||
| 
								 | 
							
								  4  | RR macro length
							 | 
						|||
| 
								 | 
							
								  4  | SL macro length
							 | 
						|||
| 
								 | 
							
								  4  | TL macro length
							 | 
						|||
| 
								 | 
							
								  4  | DT2 macro length
							 | 
						|||
| 
								 | 
							
								  4  | RS macro length
							 | 
						|||
| 
								 | 
							
								  4  | DT macro length
							 | 
						|||
| 
								 | 
							
								  4  | D2R macro length
							 | 
						|||
| 
								 | 
							
								  4  | SSG-EG macro length
							 | 
						|||
| 
								 | 
							
								  4  | AM macro loop
							 | 
						|||
| 
								 | 
							
								  4  | AR macro loop
							 | 
						|||
| 
								 | 
							
								  4  | DR macro loop
							 | 
						|||
| 
								 | 
							
								  4  | MULT macro loop
							 | 
						|||
| 
								 | 
							
								  4  | RR macro loop
							 | 
						|||
| 
								 | 
							
								  4  | SL macro loop
							 | 
						|||
| 
								 | 
							
								  4  | TL macro loop
							 | 
						|||
| 
								 | 
							
								  4  | DT2 macro loop
							 | 
						|||
| 
								 | 
							
								  4  | RS macro loop
							 | 
						|||
| 
								 | 
							
								  4  | DT macro loop
							 | 
						|||
| 
								 | 
							
								  4  | D2R macro loop
							 | 
						|||
| 
								 | 
							
								  4  | SSG-EG macro loop
							 | 
						|||
| 
								 | 
							
								  1  | AM macro open
							 | 
						|||
| 
								 | 
							
								  1  | AR macro open
							 | 
						|||
| 
								 | 
							
								  1  | DR macro open
							 | 
						|||
| 
								 | 
							
								  1  | MULT macro open
							 | 
						|||
| 
								 | 
							
								  1  | RR macro open
							 | 
						|||
| 
								 | 
							
								  1  | SL macro open
							 | 
						|||
| 
								 | 
							
								  1  | TL macro open
							 | 
						|||
| 
								 | 
							
								  1  | DT2 macro open
							 | 
						|||
| 
								 | 
							
								  1  | RS macro open
							 | 
						|||
| 
								 | 
							
								  1  | DT macro open
							 | 
						|||
| 
								 | 
							
								  1  | D2R macro open
							 | 
						|||
| 
								 | 
							
								  1  | SSG-EG macro open
							 | 
						|||
| 
								 | 
							
								 --- | **operator macros** × 4 (>=29)
							 | 
						|||
| 
								 | 
							
								 1?? | AM macro
							 | 
						|||
| 
								 | 
							
								 1?? | AR macro
							 | 
						|||
| 
								 | 
							
								 1?? | DR macro
							 | 
						|||
| 
								 | 
							
								 1?? | MULT macro
							 | 
						|||
| 
								 | 
							
								 1?? | RR macro
							 | 
						|||
| 
								 | 
							
								 1?? | SL macro
							 | 
						|||
| 
								 | 
							
								 1?? | TL macro
							 | 
						|||
| 
								 | 
							
								 1?? | DT2 macro
							 | 
						|||
| 
								 | 
							
								 1?? | RS macro
							 | 
						|||
| 
								 | 
							
								 1?? | DT macro
							 | 
						|||
| 
								 | 
							
								 1?? | D2R macro
							 | 
						|||
| 
								 | 
							
								 1?? | SSG-EG macro
							 | 
						|||
| 
								 | 
							
								 --- | **release points** (>=44)
							 | 
						|||
| 
								 | 
							
								  4  | volume macro release
							 | 
						|||
| 
								 | 
							
								  4  | arp macro release
							 | 
						|||
| 
								 | 
							
								  4  | duty macro release
							 | 
						|||
| 
								 | 
							
								  4  | wave macro release
							 | 
						|||
| 
								 | 
							
								  4  | pitch macro release
							 | 
						|||
| 
								 | 
							
								  4  | extra 1 macro release
							 | 
						|||
| 
								 | 
							
								  4  | extra 2 macro release
							 | 
						|||
| 
								 | 
							
								  4  | extra 3 macro release
							 | 
						|||
| 
								 | 
							
								  4  | alg macro release
							 | 
						|||
| 
								 | 
							
								  4  | fb macro release
							 | 
						|||
| 
								 | 
							
								  4  | fms macro release
							 | 
						|||
| 
								 | 
							
								  4  | ams macro release
							 | 
						|||
| 
								 | 
							
								 --- | **operator release points** × 4 (>=44)
							 | 
						|||
| 
								 | 
							
								  4  | AM macro release
							 | 
						|||
| 
								 | 
							
								  4  | AR macro release
							 | 
						|||
| 
								 | 
							
								  4  | DR macro release
							 | 
						|||
| 
								 | 
							
								  4  | MULT macro release
							 | 
						|||
| 
								 | 
							
								  4  | RR macro release
							 | 
						|||
| 
								 | 
							
								  4  | SL macro release
							 | 
						|||
| 
								 | 
							
								  4  | TL macro release
							 | 
						|||
| 
								 | 
							
								  4  | DT2 macro release
							 | 
						|||
| 
								 | 
							
								  4  | RS macro release
							 | 
						|||
| 
								 | 
							
								  4  | DT macro release
							 | 
						|||
| 
								 | 
							
								  4  | D2R macro release
							 | 
						|||
| 
								 | 
							
								  4  | SSG-EG macro release
							 | 
						|||
| 
								 | 
							
								 --- | **extended op macro headers** × 4 (>=61)
							 | 
						|||
| 
								 | 
							
								  4  | DAM macro length
							 | 
						|||
| 
								 | 
							
								  4  | DVB macro length
							 | 
						|||
| 
								 | 
							
								  4  | EGT macro length
							 | 
						|||
| 
								 | 
							
								  4  | KSL macro length
							 | 
						|||
| 
								 | 
							
								  4  | SUS macro length
							 | 
						|||
| 
								 | 
							
								  4  | VIB macro length
							 | 
						|||
| 
								 | 
							
								  4  | WS macro length
							 | 
						|||
| 
								 | 
							
								  4  | KSR macro length
							 | 
						|||
| 
								 | 
							
								  4  | DAM macro loop
							 | 
						|||
| 
								 | 
							
								  4  | DVB macro loop
							 | 
						|||
| 
								 | 
							
								  4  | EGT macro loop
							 | 
						|||
| 
								 | 
							
								  4  | KSL macro loop
							 | 
						|||
| 
								 | 
							
								  4  | SUS macro loop
							 | 
						|||
| 
								 | 
							
								  4  | VIB macro loop
							 | 
						|||
| 
								 | 
							
								  4  | WS macro loop
							 | 
						|||
| 
								 | 
							
								  4  | KSR macro loop
							 | 
						|||
| 
								 | 
							
								  4  | DAM macro release
							 | 
						|||
| 
								 | 
							
								  4  | DVB macro release
							 | 
						|||
| 
								 | 
							
								  4  | EGT macro release
							 | 
						|||
| 
								 | 
							
								  4  | KSL macro release
							 | 
						|||
| 
								 | 
							
								  4  | SUS macro release
							 | 
						|||
| 
								 | 
							
								  4  | VIB macro release
							 | 
						|||
| 
								 | 
							
								  4  | WS macro release
							 | 
						|||
| 
								 | 
							
								  4  | KSR macro release
							 | 
						|||
| 
								 | 
							
								  1  | DAM macro open
							 | 
						|||
| 
								 | 
							
								  1  | DVB macro open
							 | 
						|||
| 
								 | 
							
								  1  | EGT macro open
							 | 
						|||
| 
								 | 
							
								  1  | KSL macro open
							 | 
						|||
| 
								 | 
							
								  1  | SUS macro open
							 | 
						|||
| 
								 | 
							
								  1  | VIB macro open
							 | 
						|||
| 
								 | 
							
								  1  | WS macro open
							 | 
						|||
| 
								 | 
							
								  1  | KSR macro open
							 | 
						|||
| 
								 | 
							
								 --- | **extended op macros** × 4 (>=61)
							 | 
						|||
| 
								 | 
							
								 1?? | DAM macro
							 | 
						|||
| 
								 | 
							
								 1?? | DVB macro
							 | 
						|||
| 
								 | 
							
								 1?? | EGT macro
							 | 
						|||
| 
								 | 
							
								 1?? | KSL macro
							 | 
						|||
| 
								 | 
							
								 1?? | SUS macro
							 | 
						|||
| 
								 | 
							
								 1?? | VIB macro
							 | 
						|||
| 
								 | 
							
								 1?? | WS macro
							 | 
						|||
| 
								 | 
							
								 1?? | KSR macro
							 | 
						|||
| 
								 | 
							
								 --- | **OPL drums mode data** (>=63)
							 | 
						|||
| 
								 | 
							
								  1  | fixed frequency mode
							 | 
						|||
| 
								 | 
							
								  1  | reserved
							 | 
						|||
| 
								 | 
							
								  2  | kick frequency
							 | 
						|||
| 
								 | 
							
								  2  | snare/hi-hat frequency
							 | 
						|||
| 
								 | 
							
								  2  | tom/top frequency
							 | 
						|||
| 
								 | 
							
								 --- | **Sample instrument extra data** (>=67)
							 | 
						|||
| 
								 | 
							
								  1  | use note map
							 | 
						|||
| 
								 | 
							
								     | - only read the following two data structures if this is true!
							 | 
						|||
| 
								 | 
							
								 4?? | note frequency × 120
							 | 
						|||
| 
								 | 
							
								     | - 480 bytes
							 | 
						|||
| 
								 | 
							
								 2?? | note sample × 120
							 | 
						|||
| 
								 | 
							
								     | - 240 bytes
							 | 
						|||
| 
								 | 
							
								 --- | **Namco 163 data** (>=73)
							 | 
						|||
| 
								 | 
							
								  4  | initial waveform
							 | 
						|||
| 
								 | 
							
								  1  | wave position
							 | 
						|||
| 
								 | 
							
								  1  | wave length
							 | 
						|||
| 
								 | 
							
								  1  | wave mode:
							 | 
						|||
| 
								 | 
							
								     | - bit 1: update on change
							 | 
						|||
| 
								 | 
							
								     | - bit 0: load on playback
							 | 
						|||
| 
								 | 
							
								  1  | reserved
							 | 
						|||
| 
								 | 
							
								 --- | **even more macros** (>=76)
							 | 
						|||
| 
								 | 
							
								  4  | left panning macro length
							 | 
						|||
| 
								 | 
							
								  4  | right panning macro length
							 | 
						|||
| 
								 | 
							
								  4  | phase reset macro length
							 | 
						|||
| 
								 | 
							
								  4  | extra 4 macro length
							 | 
						|||
| 
								 | 
							
								  4  | extra 5 macro length
							 | 
						|||
| 
								 | 
							
								  4  | extra 6 macro length
							 | 
						|||
| 
								 | 
							
								  4  | extra 7 macro length
							 | 
						|||
| 
								 | 
							
								  4  | extra 8 macro length
							 | 
						|||
| 
								 | 
							
								  4  | left panning macro loop
							 | 
						|||
| 
								 | 
							
								  4  | right panning macro loop
							 | 
						|||
| 
								 | 
							
								  4  | phase reset macro loop
							 | 
						|||
| 
								 | 
							
								  4  | extra 4 macro loop
							 | 
						|||
| 
								 | 
							
								  4  | extra 5 macro loop
							 | 
						|||
| 
								 | 
							
								  4  | extra 6 macro loop
							 | 
						|||
| 
								 | 
							
								  4  | extra 7 macro loop
							 | 
						|||
| 
								 | 
							
								  4  | extra 8 macro loop
							 | 
						|||
| 
								 | 
							
								  4  | left panning macro release
							 | 
						|||
| 
								 | 
							
								  4  | right panning macro release
							 | 
						|||
| 
								 | 
							
								  4  | phase reset macro release
							 | 
						|||
| 
								 | 
							
								  4  | extra 4 macro release
							 | 
						|||
| 
								 | 
							
								  4  | extra 5 macro release
							 | 
						|||
| 
								 | 
							
								  4  | extra 6 macro release
							 | 
						|||
| 
								 | 
							
								  4  | extra 7 macro release
							 | 
						|||
| 
								 | 
							
								  4  | extra 8 macro release
							 | 
						|||
| 
								 | 
							
								  1  | left panning macro open
							 | 
						|||
| 
								 | 
							
								  1  | right panning macro open
							 | 
						|||
| 
								 | 
							
								  1  | phase reset macro open
							 | 
						|||
| 
								 | 
							
								  1  | extra 4 macro open
							 | 
						|||
| 
								 | 
							
								  1  | extra 5 macro open
							 | 
						|||
| 
								 | 
							
								  1  | extra 6 macro open
							 | 
						|||
| 
								 | 
							
								  1  | extra 7 macro open
							 | 
						|||
| 
								 | 
							
								  1  | extra 8 macro open
							 | 
						|||
| 
								 | 
							
								 --- | **even more macro data** (>=76)
							 | 
						|||
| 
								 | 
							
								 4?? | left panning macro
							 | 
						|||
| 
								 | 
							
								 4?? | right panning macro
							 | 
						|||
| 
								 | 
							
								 4?? | phase reset macro
							 | 
						|||
| 
								 | 
							
								 4?? | extra 4 macro
							 | 
						|||
| 
								 | 
							
								 4?? | extra 5 macro
							 | 
						|||
| 
								 | 
							
								 4?? | extra 6 macro
							 | 
						|||
| 
								 | 
							
								 4?? | extra 7 macro
							 | 
						|||
| 
								 | 
							
								 4?? | extra 8 macro
							 | 
						|||
| 
								 | 
							
								 --- | **FDS instrument data** (>=76)
							 | 
						|||
| 
								 | 
							
								  4  | modulation speed
							 | 
						|||
| 
								 | 
							
								  4  | modulation depth
							 | 
						|||
| 
								 | 
							
								  1  | init modulation table with first wave
							 | 
						|||
| 
								 | 
							
								  3  | reserved
							 | 
						|||
| 
								 | 
							
								 32  | modulation table
							 | 
						|||
| 
								 | 
							
								 --- | **OPZ instrument extra data** (>=77)
							 | 
						|||
| 
								 | 
							
								  1  | fms2
							 | 
						|||
| 
								 | 
							
								  1  | ams2
							 | 
						|||
| 
								 | 
							
								 --- | **wavetable synth data** (>=79)
							 | 
						|||
| 
								 | 
							
								  4  | first wave
							 | 
						|||
| 
								 | 
							
								  4  | second wave
							 | 
						|||
| 
								 | 
							
								  1  | rate divider
							 | 
						|||
| 
								 | 
							
								  1  | effect
							 | 
						|||
| 
								 | 
							
								     | - bit 7: single or dual effect
							 | 
						|||
| 
								 | 
							
								  1  | enabled
							 | 
						|||
| 
								 | 
							
								  1  | global
							 | 
						|||
| 
								 | 
							
								  1  | speed (+1)
							 | 
						|||
| 
								 | 
							
								  1  | parameter 1
							 | 
						|||
| 
								 | 
							
								  1  | parameter 2
							 | 
						|||
| 
								 | 
							
								  1  | parameter 3
							 | 
						|||
| 
								 | 
							
								  1  | parameter 4
							 | 
						|||
| 
								 | 
							
								 --- | **additional macro mode flags** (>=84)
							 | 
						|||
| 
								 | 
							
								  1  | volume macro mode
							 | 
						|||
| 
								 | 
							
								  1  | duty macro mode
							 | 
						|||
| 
								 | 
							
								  1  | wave macro mode
							 | 
						|||
| 
								 | 
							
								  1  | pitch macro mode
							 | 
						|||
| 
								 | 
							
								  1  | extra 1 macro mode
							 | 
						|||
| 
								 | 
							
								  1  | extra 2 macro mode
							 | 
						|||
| 
								 | 
							
								  1  | extra 3 macro mode
							 | 
						|||
| 
								 | 
							
								  1  | alg macro mode
							 | 
						|||
| 
								 | 
							
								  1  | fb macro mode
							 | 
						|||
| 
								 | 
							
								  1  | fms macro mode
							 | 
						|||
| 
								 | 
							
								  1  | ams macro mode
							 | 
						|||
| 
								 | 
							
								  1  | left panning macro mode
							 | 
						|||
| 
								 | 
							
								  1  | right panning macro mode
							 | 
						|||
| 
								 | 
							
								  1  | phase reset macro mode
							 | 
						|||
| 
								 | 
							
								  1  | extra 4 macro mode
							 | 
						|||
| 
								 | 
							
								  1  | extra 5 macro mode
							 | 
						|||
| 
								 | 
							
								  1  | extra 6 macro mode
							 | 
						|||
| 
								 | 
							
								  1  | extra 7 macro mode
							 | 
						|||
| 
								 | 
							
								  1  | extra 8 macro mode
							 | 
						|||
| 
								 | 
							
								 --- | **extra C64 data** (>=89)
							 | 
						|||
| 
								 | 
							
								  1  | don't test/gate before new note
							 | 
						|||
| 
								 | 
							
								 --- | **MultiPCM data** (>=93)
							 | 
						|||
| 
								 | 
							
								  1  | attack rate
							 | 
						|||
| 
								 | 
							
								  1  | decay 1 rate
							 | 
						|||
| 
								 | 
							
								  1  | decay level
							 | 
						|||
| 
								 | 
							
								  1  | decay 2 rate
							 | 
						|||
| 
								 | 
							
								  1  | release rate
							 | 
						|||
| 
								 | 
							
								  1  | rate correction
							 | 
						|||
| 
								 | 
							
								  1  | lfo rate
							 | 
						|||
| 
								 | 
							
								  1  | vib depth
							 | 
						|||
| 
								 | 
							
								  1  | am depth
							 | 
						|||
| 
								 | 
							
								 23  | reserved
							 | 
						|||
| 
								 | 
							
								 --- | **Sound Unit data** (>=104)
							 | 
						|||
| 
								 | 
							
								  1  | use sample
							 | 
						|||
| 
								 | 
							
								  1  | switch roles of phase reset timer and frequency
							 | 
						|||
| 
								 | 
							
								 --- | **Game Boy envelope sequence** (>=105)
							 | 
						|||
| 
								 | 
							
								  1  | length
							 | 
						|||
| 
								 | 
							
								 ??? | hardware sequence data
							 | 
						|||
| 
								 | 
							
								     | size is length*3:
							 | 
						|||
| 
								 | 
							
								     | 1 byte: command
							 | 
						|||
| 
								 | 
							
								     | - 0: set envelope
							 | 
						|||
| 
								 | 
							
								     | - 1: set sweep
							 | 
						|||
| 
								 | 
							
								     | - 2: wait
							 | 
						|||
| 
								 | 
							
								     | - 3: wait for release
							 | 
						|||
| 
								 | 
							
								     | - 4: loop
							 | 
						|||
| 
								 | 
							
								     | - 5: loop until release
							 | 
						|||
| 
								 | 
							
								     | 2 bytes: data
							 | 
						|||
| 
								 | 
							
								     | - for set envelope:
							 | 
						|||
| 
								 | 
							
								     |   - 1 byte: parameter
							 | 
						|||
| 
								 | 
							
								     |     - bit 4-7: volume
							 | 
						|||
| 
								 | 
							
								     |     - bit 3: direction
							 | 
						|||
| 
								 | 
							
								     |     - bit 0-2: length
							 | 
						|||
| 
								 | 
							
								     |   - 1 byte: sound length
							 | 
						|||
| 
								 | 
							
								     | - for set sweep:
							 | 
						|||
| 
								 | 
							
								     |   - 1 byte: parameter
							 | 
						|||
| 
								 | 
							
								     |     - bit 4-6: length
							 | 
						|||
| 
								 | 
							
								     |     - bit 3: direction
							 | 
						|||
| 
								 | 
							
								     |     - bit 0-2: shift
							 | 
						|||
| 
								 | 
							
								     |   - 1 byte: nothing
							 | 
						|||
| 
								 | 
							
								     | - for wait:
							 | 
						|||
| 
								 | 
							
								     |   - 1 byte: length (in ticks)
							 | 
						|||
| 
								 | 
							
								     |   - 1 byte: nothing
							 | 
						|||
| 
								 | 
							
								     | - for wait for release:
							 | 
						|||
| 
								 | 
							
								     |   - 2 bytes: nothing
							 | 
						|||
| 
								 | 
							
								     | - for loop/loop until release:
							 | 
						|||
| 
								 | 
							
								     |   - 2 bytes: position
							 | 
						|||
| 
								 | 
							
								 --- | **Game Boy extra flags** (>=106)
							 | 
						|||
| 
								 | 
							
								  1  | use software envelope
							 | 
						|||
| 
								 | 
							
								  1  | always init hard env on new note
							 | 
						|||
| 
								 | 
							
								 --- | **ES5506 data** (>=107)
							 | 
						|||
| 
								 | 
							
								  1  | filter mode
							 | 
						|||
| 
								 | 
							
								     | - 0: HPK2_HPK2
							 | 
						|||
| 
								 | 
							
								     | - 1: HPK2_LPK1
							 | 
						|||
| 
								 | 
							
								     | - 2: LPK2_LPK2
							 | 
						|||
| 
								 | 
							
								     | - 3: LPK2_LPK1
							 | 
						|||
| 
								 | 
							
								  2  | K1
							 | 
						|||
| 
								 | 
							
								  2  | K2
							 | 
						|||
| 
								 | 
							
								  2  | envelope count
							 | 
						|||
| 
								 | 
							
								  1  | left volume ramp
							 | 
						|||
| 
								 | 
							
								  1  | right volume ramp
							 | 
						|||
| 
								 | 
							
								  1  | K1 ramp
							 | 
						|||
| 
								 | 
							
								  1  | K2 ramp
							 | 
						|||
| 
								 | 
							
								  1  | K1 slow
							 | 
						|||
| 
								 | 
							
								  1  | K2 slow
							 | 
						|||
| 
								 | 
							
								 --- | **SNES data** (>=109)
							 | 
						|||
| 
								 | 
							
								  1  | use envelope
							 | 
						|||
| 
								 | 
							
								  1  | gain mode
							 | 
						|||
| 
								 | 
							
								  1  | gain
							 | 
						|||
| 
								 | 
							
								  1  | attack
							 | 
						|||
| 
								 | 
							
								  1  | decay
							 | 
						|||
| 
								 | 
							
								  1  | sustain
							 | 
						|||
| 
								 | 
							
								     | - bit 3: sustain mode (>=118)
							 | 
						|||
| 
								 | 
							
								  1  | release
							 | 
						|||
| 
								 | 
							
								 --- | **macro speeds/delays** (>=111)
							 | 
						|||
| 
								 | 
							
								  1  | volume macro speed
							 | 
						|||
| 
								 | 
							
								  1  | arp macro speed
							 | 
						|||
| 
								 | 
							
								  1  | duty macro speed
							 | 
						|||
| 
								 | 
							
								  1  | wave macro speed
							 | 
						|||
| 
								 | 
							
								  1  | pitch macro speed
							 | 
						|||
| 
								 | 
							
								  1  | extra 1 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | extra 2 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | extra 3 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | alg macro speed
							 | 
						|||
| 
								 | 
							
								  1  | fb macro speed
							 | 
						|||
| 
								 | 
							
								  1  | fms macro speed
							 | 
						|||
| 
								 | 
							
								  1  | ams macro speed
							 | 
						|||
| 
								 | 
							
								  1  | left panning macro speed
							 | 
						|||
| 
								 | 
							
								  1  | right panning macro speed
							 | 
						|||
| 
								 | 
							
								  1  | phase reset macro speed
							 | 
						|||
| 
								 | 
							
								  1  | extra 4 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | extra 5 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | extra 6 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | extra 7 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | extra 8 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | volume macro delay
							 | 
						|||
| 
								 | 
							
								  1  | arp macro delay
							 | 
						|||
| 
								 | 
							
								  1  | duty macro delay
							 | 
						|||
| 
								 | 
							
								  1  | wave macro delay
							 | 
						|||
| 
								 | 
							
								  1  | pitch macro delay
							 | 
						|||
| 
								 | 
							
								  1  | extra 1 macro delay
							 | 
						|||
| 
								 | 
							
								  1  | extra 2 macro delay
							 | 
						|||
| 
								 | 
							
								  1  | extra 3 macro delay
							 | 
						|||
| 
								 | 
							
								  1  | alg macro delay
							 | 
						|||
| 
								 | 
							
								  1  | fb macro delay
							 | 
						|||
| 
								 | 
							
								  1  | fms macro delay
							 | 
						|||
| 
								 | 
							
								  1  | ams macro delay
							 | 
						|||
| 
								 | 
							
								  1  | left panning macro delay
							 | 
						|||
| 
								 | 
							
								  1  | right panning macro delay
							 | 
						|||
| 
								 | 
							
								  1  | phase reset macro delay
							 | 
						|||
| 
								 | 
							
								  1  | extra 4 macro delay
							 | 
						|||
| 
								 | 
							
								  1  | extra 5 macro delay
							 | 
						|||
| 
								 | 
							
								  1  | extra 6 macro delay
							 | 
						|||
| 
								 | 
							
								  1  | extra 7 macro delay
							 | 
						|||
| 
								 | 
							
								  1  | extra 8 macro delay
							 | 
						|||
| 
								 | 
							
								 --- | **operator macro speeds/delay** × 4 (>=111)
							 | 
						|||
| 
								 | 
							
								  1  | AM macro speed
							 | 
						|||
| 
								 | 
							
								  1  | AR macro speed
							 | 
						|||
| 
								 | 
							
								  1  | DR macro speed
							 | 
						|||
| 
								 | 
							
								  1  | MULT macro speed
							 | 
						|||
| 
								 | 
							
								  1  | RR macro speed
							 | 
						|||
| 
								 | 
							
								  1  | SL macro speed
							 | 
						|||
| 
								 | 
							
								  1  | TL macro speed
							 | 
						|||
| 
								 | 
							
								  1  | DT2 macro speed
							 | 
						|||
| 
								 | 
							
								  1  | RS macro speed
							 | 
						|||
| 
								 | 
							
								  1  | DT macro speed
							 | 
						|||
| 
								 | 
							
								  1  | D2R macro speed
							 | 
						|||
| 
								 | 
							
								  1  | SSG-EG macro speed
							 | 
						|||
| 
								 | 
							
								  1  | DAM macro speed
							 | 
						|||
| 
								 | 
							
								  1  | DVB macro speed
							 | 
						|||
| 
								 | 
							
								  1  | EGT macro speed
							 | 
						|||
| 
								 | 
							
								  1  | KSL macro speed
							 | 
						|||
| 
								 | 
							
								  1  | SUS macro speed
							 | 
						|||
| 
								 | 
							
								  1  | VIB macro speed
							 | 
						|||
| 
								 | 
							
								  1  | WS macro speed
							 | 
						|||
| 
								 | 
							
								  1  | KSR macro speed
							 | 
						|||
| 
								 | 
							
								  1  | AM macro delay
							 | 
						|||
| 
								 | 
							
								  1  | AR macro delay
							 | 
						|||
| 
								 | 
							
								  1  | DR macro delay
							 | 
						|||
| 
								 | 
							
								  1  | MULT macro delay
							 | 
						|||
| 
								 | 
							
								  1  | RR macro delay
							 | 
						|||
| 
								 | 
							
								  1  | SL macro delay
							 | 
						|||
| 
								 | 
							
								  1  | TL macro delay
							 | 
						|||
| 
								 | 
							
								  1  | DT2 macro delay
							 | 
						|||
| 
								 | 
							
								  1  | RS macro delay
							 | 
						|||
| 
								 | 
							
								  1  | DT macro delay
							 | 
						|||
| 
								 | 
							
								  1  | D2R macro delay
							 | 
						|||
| 
								 | 
							
								  1  | SSG-EG macro delay
							 | 
						|||
| 
								 | 
							
								  1  | DAM macro delay
							 | 
						|||
| 
								 | 
							
								  1  | DVB macro delay
							 | 
						|||
| 
								 | 
							
								  1  | EGT macro delay
							 | 
						|||
| 
								 | 
							
								  1  | KSL macro delay
							 | 
						|||
| 
								 | 
							
								  1  | SUS macro delay
							 | 
						|||
| 
								 | 
							
								  1  | VIB macro delay
							 | 
						|||
| 
								 | 
							
								  1  | WS macro delay
							 | 
						|||
| 
								 | 
							
								  1  | KSR macro delay
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## interpreting macro mode values
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								- sequence (normal): I think this is obvious...
							 | 
						|||
| 
								 | 
							
								- ADSR:
							 | 
						|||
| 
								 | 
							
								  - `val[0]`: bottom
							 | 
						|||
| 
								 | 
							
								  - `val[1]`: top
							 | 
						|||
| 
								 | 
							
								  - `val[2]`: attack
							 | 
						|||
| 
								 | 
							
								  - `val[3]`: hold time
							 | 
						|||
| 
								 | 
							
								  - `val[4]`: decay
							 | 
						|||
| 
								 | 
							
								  - `val[5]`: sustain level
							 | 
						|||
| 
								 | 
							
								  - `val[6]`: sustain hold time
							 | 
						|||
| 
								 | 
							
								  - `val[7]`: decay 2
							 | 
						|||
| 
								 | 
							
								  - `val[8]`: release
							 | 
						|||
| 
								 | 
							
								- LFO:
							 | 
						|||
| 
								 | 
							
								  - `val[11]`: speed
							 | 
						|||
| 
								 | 
							
								  - `val[12]`: waveform
							 | 
						|||
| 
								 | 
							
								    - 0: triangle
							 | 
						|||
| 
								 | 
							
								    - 1: saw
							 | 
						|||
| 
								 | 
							
								    - 2: pulse
							 | 
						|||
| 
								 | 
							
								  - `val[13]`: phase
							 | 
						|||
| 
								 | 
							
								  - `val[14]`: loop
							 | 
						|||
| 
								 | 
							
								  - `val[15]`: global (not sure how will I implement this)
							 | 
						|||
| 
								 | 
							
								
							 |