Jomox Mod FM (Single mode)

# VERSION 1 # Currently, this should only be 1.

# Supports all alphanumeric ASCII, and ' ', '_', '-', '+' - can also be NULL
TRACKNAME Jomox ModFM Single

# Can be POLY, DRUM, MPE, or NULL
TYPE POLY

# Can be A, B, C, D, USBD, USBH, CVGx (x between 1&4), CVx, Gx, or NULL
OUTPORT C

# Can be x (between 1-16), or NULL -- this is ignored if output port is not MIDI
OUTCHAN 1

# Can be NONE, ALLACTIVE, A, B, USBH, USBD, CVG, or NULL
INPORT NULL

# Can be x (between 1-16), ALL, or NULL. This definition will be ignored if INPORT is NONE, ALLACTIVE or CVG
INCHAN NULL

# This defines the default 'MAX RATE' for automation lanes.
# Can be NULL, 192, 96, 64, 48, 32, 24, 16, 12, 8, 6, 4, 3, 2, 1
MAXRATE NULL

# DRUMLANES
# Syntax: ROW:TRIG:CHAN:NOTENUMBER NAME
# ROW must be between 1 and 8
# TRIG can be between 0 and 127, or NULL
# CHAN can be a number between 1 and 16, Gx, CVx, CVGx (x between 1 and 4), or NULL
# NOTENUMBER can be between 0 and 127, or NULL
# NAME supports all alphanumeric ASCII, and ' ', '_', '-', '+' - can also be NULL
# Please note this section will be discarded for tracks which are not DRUM tracks
[DRUMLANES]
[/DRUMLANES]


# PC
# Syntax: NUMBER NAME
# number must be either:
#   - A number (for simple PC)
#   - Three numbers, delimited by ':', which represent PC:MSB:LSB. You can put 'NULL' to not set the MSB/LSB.
# PC must be between 1...128
# MSB/LSB must be between 0...127
[PC]
[/PC]


# CC
# Syntax: CC_NUMBER NAME or CC_NUMBER:DEFAULT=xx NAME
# DEFAULT_VALUE must be a valid number between 0 and 127
[CC]
96 OP Cents
100 OP1 Tune
101 OP2 Tune
102 OP3 Tune
103 OP4 Tune
104 FM Amnt 1->2
105 FM Amnt 1->3
106 FM Amnt 1->4
107 FM Amnt 2->1
108 FM Amnt 2->3
109 FM Amnt 2->4
110 FM Amnt 3->1
111 FM Amnt 3->2
112 FM Amnt 3->4
113 FM Amnt 4->1
114 FM Amnt 4->2
115 FM Amnt 4->3
14 OP1 Env Attack
15 OP2 Env Attack
16 OP3 Env Attack
17 OP4 Env Attack
18 OP1 Env Decay
19 OP2 Env Decay
20 OP3 Env Decay
21 OP4 Env Decay
34 OP1 Env Sustain
35 OP2 Env Sustain
36 OP3 Env Sustain
37 OP4 Env Sustain
38 OP1 Env Release
39 OP2 Env Release
40 OP3 Env Release
41 OP4 Env Release
22 OP1 EG->VCA Amount
23 OP2 EG->VCA Amount
24 OP3 EG->VCA Amount
25 OP4 EG->VCA Amount
26 OP1 EG->FM Amount
27 OP2 EG->FM Amount
28 OP3 EG->FM Amount
29 OP4 EG->FM Amount
70 OP1 LFO1->FM Amount
71 OP2 LFO1->FM Amount
72 OP3 LFO1->FM Amount
73 OP4 LFO1->FM Amount
74 OP1 LFO2->AM Amount
75 OP2 LFO2->AM Amount
76 OP3 LFO2->AM Amount
77 OP4 LFO2->AM Amount
78 LFO1->MIX Volume
79 LFO2->MIX Volume
80 LFO1 Rate
81 LFO2 Rate
82 LFO1 Waveform
83 LFO2 Waveform
84 LFO1 VCO Oct
85 LFO2 VCO Oct
86 LFO1 VCO Mode 0-1
87 LFO2 VCO Mode 0-1
33 MULTI Target 0-7
42 ALGO select
67 OVERTONE Mode 0-5
7 Volume
43 FILT Cutoff
44 FILT Resonance
45 FILT Shape LP/BP/HP
46 FILT Env Amt
47 FILT Env Attack
48 FILT Env Decay
49 FILT Env Sustain
50 FILT Env Release
69 FILT LFO Rate
52 FILT LFO Waveform
53 FILT LFO Intensity
66 FILT TP24 Mix Vol
57 FILT MM12 Mix Vol
55 FILT Key Track
56 FILT Noise Mix Vol
58 FILT Noise Metal 0-1
[/CC]

# CC Pair
# Syntax: CC_MSB:CC_LSB NAME or CC_MSB:CC_LSB:DEFAULT=xx NAME
# DEFAULT_VALUE must be a valid number between 0 and 16383
[CC_PAIR]
[/CC_PAIR]

# NRPN
# Syntax: "MSB:LSB:DEPTH NAME" or "MSB:LSB:DEPTH:DEFAULT=xx NAME"
# Lsb & msb should be between 0 and 127
  # Note: LSB can be over 127 ONLY if MSB is 0 or omitted
  # e.g. '0:1026:7 FOO', or ':2000:7 BAR'
  # the examples above would be equivalent to '8:2:7 FOO' and '15:80:7 BAR' respectively
# DEPTH can be 7 or 14
# For NRPN: DEFAULT_VALUE must be a valid number, either between 0 and 127 (for 7 bit NRPNs) or between 0 and 16383 (for 14bit NRPNs)
[NRPN]
[/NRPN]


# ASSIGN
# Syntax: POT_NUMBER TYPE:VALUE or POT_NUMBER TYPE:VALUE DEFAULT=DEFAULT_VALUE
# POT_NUMBER must be between 1 and 8
# TYPE can be "CC", "PB" (pitchbend), "AT" (aftertouch), "CV", "NRPN", or "NULL" (this won't assign the pot).
# Non explicitly-defined pots will be considered "NULL"
# VALUE VALIDATION
#### For CC: Value must be a valid number between 0 and 119
#### For PB and AT, any text after the TYPE will be ignored
#### For CV, value must be between 1 and 4
#### For NRPN, value must be MSB:LSB:DEPTH, with both lsb & msb bebtween 0 and 127, and DEPTH being either 7 or 14
# DEFAULT VALUE
#### For CC: DEFAULT_VALUE must be a valid number between 0 and 127
#### For PB: DEFAULT_VALUE must be a valid number between 0 and 16383
#### For NRPN: DEFAULT_VALUE must be a valid number, either between 0 and 127 (for 7 bit NRPNs) or between 0 and 16383 (for 14bit NRPNs)
#### For CV: DEFAULT_VALUE must be either a valid number between 0 and 65535, or a voltage between -5V and 5V, e.g. "-4.25V" or "1.7V"
#### Please note default value will be ignored for PB and AT messages.
[ASSIGN]
[/ASSIGN]


# AUTOMATION
# Syntax: TYPE:VALUE
# TYPE can be "CC", "PB" (pitchbend), "AT" (aftertouch), "CV", or "NRPN"
# VALUE VALIDATION
#### For CC: Value must be a valid number between 0 and 119
#### For PB and AT, any text after the TYPE will be ignored
#### For CV, value must be between 1 and 4
#### For NRPN, value must be MSB:LSB:DEPTH, with both lsb & msb bebtween 0 and 127, and DEPTH being either 7 or 14
# NOTE: You are limited to 64 automation lanes
[AUTOMATION]
[/AUTOMATION]


# This section will be readable from Hapax.
[COMMENT]
Have fun!
Definition file by dob Audio.
This version 0.1:
- 62 STORE PRESET: removed because of ambiguous definition (and to prevent non-happy accidents)
- 87 LFO2 VCO Mode: probably LFO2 is meant here (original docs from Jomox state LFO1)
[/COMMENT] 

Definition for using the Mod FM in Single mode