﻿=====================================================================================
YM2612 - FMDrive - GenMDM - Reference MIDI Mapping

=====================================================================================
Reference for Operator Naming
OP1 = M1 = S1
OP2 = M2 = S2
OP3 = C1 = S3
OP4 = C2 = S4

or compared to 2612 Instrument editor

OP1 = OP1 (2612 Inst editor naming)
OP2 = OP3 (2612 Inst editor naming)
OP3 = OP2 (2612 Inst editor naming)
OP4 = OP4 (2612 Inst editor naming)

YM2612 FM Sound Chip Mapping
-------------------------------------------------------------------------------------
Parameter						CC		Data Range
* LFO OFF/ON (Global)					74		2
* LFO Speed (FRQ) 					1		8

* Voice 3 Normal/Special Mode				80		2
reminder
//If Channel 3 is in special mode:

OP 4  frequency is in A2 and A6H
OP 2 frequency is in A8 and ACH
OP 3 frequency is in A9 and ADH
OP 1 frequency is in AA and AEH

//if Channel 3 SPECIAL MODE
* OP 2 key on/off and frequency are mapped to MIDI CH11
* OP 3 key on/off and frequency are mapped to MIDI CH12
* OP 1 key on/off and frequency are mapped to MIDI CH13

* Voice 3 CSM Mode OFF/ON        			115		2
(CSM only work when special mode is also true,
so when both CC#80 & CC#115 are set to 127)

* Timer A (for CSM Mode)           			116		962

Timer A is used in this useful range:
limited to 1.13636ms = A5
register values for timer A useful limit:
MSB 24 0xF0
LSB 25 0x01
=B1111000001
= 961 , so CC#116 full range should map to 0-961 instead of 0-1024
reminder of the full range (18 � (1024 - Timer A) microseconds)

reminder for Ch3 Modes:
27 0x00 Normal
27 0x40 Special
27 0x81 CSM

-------------------------------------------------------------------------------------
Channel / Voice Control					CC		Data Range

* FM Algorithm						14		8
* FM Feedback						15		8
* Stereo Configuration (L/M/R)				10		3
* AMS                             			76		4
* FMS                                			75		8
* SSG-EG Operator 1 On and Setting			90		16
* SSG-EG Operator 2 On and Setting			91		16
* SSG-EG Operator 3 On and Setting			92		16
* SSG-EG Operator 4 On and Setting			93		16

-------------------------------------------------------------------------------------
Operator Control 					CC		Data Range
* Total Level OP 1					16		128
* Total Level OP 2					17		128
* Total Level OP 3					18		128
* Total Level OP 4					19		128
* Multiple OP 1						20		16
* Multiple OP 2						21		16
* Multiple OP 3						22		16
* Multiple OP 4						23		16
* Detune OP 1						24		8
* Detune OP 2						25		8
* Detune OP 3						26		8
* Detune OP 4						27		8
* Rate Scaling OP 1					39		4
* Rate Scaling OP 2					40		4
* Rate Scaling OP 3					41		4
* Rate Scaling OP 4					42		4
* Attack Rate OP 1					43		32
* Attack Rate OP 2					44		32
* Attack Rate OP 3					45		32
* Attack Rate OP 4					46		32
* First Decay Rate OP 1					47		32
* First Decay Rate OP 2					48		32
* First Decay Rate OP 3					49		32
* First Decay Rate OP 4					50		32
* Secondary Decay Rate OP 1				51		32
* Secondary Decay Rate OP 2				52		32
* Secondary Decay Rate OP 3				53		32
* Secondary Decay Rate OP 4				54		32
* Sustain Level OP 1			                55		16
* Sustain Level OP 2			                56		16
* Sustain Level OP 3			                57		16
* Sustain Level OP 4			                58		16
* Release Rate OP 1					59		16
* Release Rate OP 2					60		16
* Release Rate OP 3					61		16
* Release Rate OP 4					62		16
* Amplitude Modulation Enable OP 1			70		2
* Amplitude Modulation Enable OP 2			71		2
* Amplitude Modulation Enable OP 3			72		2
* Amplitude Modulation Enable OP 4			73		2
-------------------------------------------------------------------------------------
DAC Control (Channel 6) 				CC		Data Range
* DAC Enable						78		2

There is others CC to control the DAC or CSM mode... 
but there is no need to complicate this for mid2vgm.

still here is a reminder of my CSM instrument control:

* CH3 CSM mode/ normal mode is mapped to MIDI CH14
note on= CSM, note off= normal.
Timer A period is controlled by the CH14 MIDI note & Pitchbend via a MIDI note number to timer A period conversion table.