Instrument Definition: Waldorf M

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

###### DEFINITIONS

# Supports all alphanumeric ASCII, and ' ', '_', '-', '+' - can also be NULL
TRACKNAME Waldorf M

# 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 B

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

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

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

# 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]
1 INIT
1:1:NULL B01
[/PC]

# CC
# Syntax: CC_NUMBER NAME or CC_NUMBER:DEFAULT=xx NAME
# DEFAULT_VALUE must be a valid number between 0 and 127
[CC]
5 Glide Rate
65 Glide Enable

14 Attack EG1
15 Decay EG1
16 Sustain EG1
17 Release EG1

18 Attack EG2
19 Decay EG2
20 Sustain EG2
21 Release EG2

24 LFO1 Rate
25 LFO1 Shape
26 LFO2 Rate
28 LFO2 Shape

33 OSC1 Octave
34 OSC1 Semitune
35 OSC1 detune
38 OSC2 Octave
39 OSC2 Semitune
40 OSC2 detune

41 Sync
45 OSC1 Level
46 OSC2 Level
47 Ringmod
48 Noise

50 VCF Cutoff
56 VCF Resonance

51 VCF Keytrack
52 VCF Env amnt
53 VCF Env Vel
57 Master Volume

58 VCA Env amnt
59 VCA Env Vel

70 Wavetable 1
71 Wave 1
63 Wavetable 2
78 Wave 2

73 Wave Env to Wave1
79 Wave Env to Wave2

85 Free Env T1
86 Free Env L1
87 Free Env T2
88 Free Env L2

89 Free Env L2
90 Free Env Sus
91 Free Env Release Time
92 Free Env Release Level

[/CC]


# 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
[AUTOMATION]
CC:70 DEFAULT=0  #WaveTable1
CC:71 DEFAULT=0  #Wave1
CC:63 DEFAULT=0  #WaveTable2
CC:78 DEFAULT=0  #Wave2
CC:45 DEFAULT=80  #Osc1Lev
CC:46 DEFAULT=80  #Osc2Lev
CC:47 DEFAULT=0  #Ringmod
[/AUTOMATION]


# This section will be readable from Hapax.
[COMMENT]
Waldorf M is dope!
[/COMMENT]
3 Likes