Instrument Definition: OB-6

VERSION 1 # Currently, this should only be 1.

# Supports all alphanumeric ASCII, and ' ', '_', '-', '+'
# Can also be omitted or NULL to not override the current track name, e.g. "TRACKNAME NULL"
TRACKNAME OB-6

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

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

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

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

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

# CC
# Syntax: CC_NUMBER NAME or CC_NUMBER:DEFAULT=xx NAME
# DEFAULT_VALUE must be a valid number between 0 and 127
[CC]
0 MSB
1 Mod Wheel
3 BPM
4 Foot Controller
5 Glide Mode
6 Data Entry MSB
7 MIDI Volume
8 Sub Osc Level
9 Distortion Amount
38 Data Entry LSB
39 Volume LSB
40 VCA Env Amt
41 VCA Env Vel Amt
43 VCA Env Attack
44 VCA Env Decay
45 VCA Env Sustain
46 VCA Env Release
47 Filter Env Amt
50 Filter Env Attack
51 Filter Env Decay
52 Filter Env Sustain
53 Filter Env Release
58 Arp On-Off
59 Arp Mode
60 Arp Octave
62 Arp Clock Division
64 Damper Pedal
65 Glide on-off
67 Osc 1 Freq
69 Osc 1 Level
70 Osc 1 Shape
71 Osc 1 PW
74 Brightness
75 Osc 2 Freq
76 Osc 2 Detune
77 Osc 2 Level
78 Osc 2 Shape
79 Osc 2 PW
96 Data Increment
97 Data Decrement
98 NRPN Param LSB
99 NRPN Param MSB
100 RPN Param LSB
101 RPN Param MSB
102 Filter Freq
103 Filter Resonance
104 Filter Key Amt
105 Filter Vel On-Off
106 Filter Mode
107 Band-Pass On-Off
120 All Sound Off
121 Reset Controllers
122 Local Control 
123 All Notes Off
124 Omni Mode Off
125 Omni Mode On
126 Mono Mode On
127 Poly Mode On
[/CC]

# 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]
0:32:14 Noise Level 0-127
0:63:14 Pan Spread 0-127
0:88:14 LFO Freq 0-254
0:89:14 LFO Amt 0-255
0:90:14 LFO Shape 0-4
0:91:14 LFO Sync 0-1
0:119:14 FX 1 Type 0-5
0:120:14 FX 1 Mix 0-127
0:121:14 FX 1 Param 1 0-255
0:122:14 FX 1 Param 2 0-127 
0:127:14 FX 2 Type 0-9
0:128:14 FX 2 Mix 0-127
0:129:14 FX 2 Param 1 0-255
0:130:14 FX 2 Param 2 0-127
0:135:14 FX on-off 0-1
0:143:14 XMod Filter Env Amt 0-254
0:144:14 XMod VCO 2 Amt 0-254
[/NRPN]

# 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:9 DEFAULT=0  #Dist Amount
CC:43  #Env Attack
CC:44  #Env Decay
CC:45  #Env Sustain
CC:46  #Env Release
CC:50  #Filter Attack
CC:51  #Filter Decay
CC:52  #Filter Sustain
CC:53  #Filter Release
CC:62  #Arp Clock Division
CC:75  #Osc 2 Fine
CC:70  #Osc 1 Shape
CC:78  #Osc 2 Shape
CC:69  #Osc 1 Level
CC:77  #Osc 2 Level
CC:102  #Filter Freq
CC:106  #Filter Mode
[/AUTOMATION]

# This section will be readable from Hapax.
[COMMENT]
OB-6
[/COMMENT]

This is largely lifted from the Prophet 6 instrument definition as a starting place as they were so similar in midi implementation. I renamed some params to match the OB-6 and added some new ones. This is a first pass, I probably missed something and it probably could use some improvements so let me know if theres anything you’d like to see changed. I also added a few of the NRPN-exclusive parameters like noise level, xmod amounts, stereo spread, and FX parameter changes. I didn’t add most/all of the parameter toggles, there are many and I wanted to keep it simple and useful. The value ranges on the NRPN params are pretty small compared to what the Hapax lets you send, so you have to be careful with them but they seem to work if you fine tune each step and let it interpolate between them.

There is some disappointment about the NRPN ranges in this thread too.

Also, with the OB6, I had som trouble with the MPE implementation. If I recall correctly, the OB6 expects midi data on channels 2-7 in MPE mode, while the Hapax uses all 16 channels.

Hi, thanks for dsharing this.
I get a sintax error in line 31 ?
Cheers

Hmm, I will take a look. I wonder if I uploaded the wrong one, or if theres a difference on the new firmware?

Thanks a lot !

Not sure how to edit my post, but I just deleted everything inside the PC section and it seems to be working now. I should also mention, this problem didn’t start until I updated the firmware to the latest version.

VERSION 1 # Currently, this should only be 1.

# Supports all alphanumeric ASCII, and ' ', '_', '-', '+'
# Can also be omitted or NULL to not override the current track name, e.g. "TRACKNAME NULL"
TRACKNAME OB-6

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

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

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

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

# 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]
0 MSB
1 Mod Wheel
3 BPM
4 Foot Controller
5 Glide Mode
6 Data Entry MSB
7 MIDI Volume
8 Sub Osc Level
9 Distortion Amount
38 Data Entry LSB
39 Volume LSB
40 VCA Env Amt
41 VCA Env Vel Amt
43 VCA Env Attack
44 VCA Env Decay
45 VCA Env Sustain
46 VCA Env Release
47 Filter Env Amt
50 Filter Env Attack
51 Filter Env Decay
52 Filter Env Sustain
53 Filter Env Release
58 Arp On-Off
59 Arp Mode
60 Arp Octave
62 Arp Clock Division
64 Damper Pedal
65 Glide on-off
67 Osc 1 Freq
69 Osc 1 Level
70 Osc 1 Shape
71 Osc 1 PW
74 Brightness
75 Osc 2 Freq
76 Osc 2 Detune
77 Osc 2 Level
78 Osc 2 Shape
79 Osc 2 PW
96 Data Increment
97 Data Decrement
98 NRPN Param LSB
99 NRPN Param MSB
100 RPN Param LSB
101 RPN Param MSB
102 Filter Freq
103 Filter Resonance
104 Filter Key Amt
105 Filter Vel On-Off
106 Filter Mode
107 Band-Pass On-Off
120 All Sound Off
121 Reset Controllers
122 Local Control 
123 All Notes Off
124 Omni Mode Off
125 Omni Mode On
126 Mono Mode On
127 Poly Mode On
[/CC]

# 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]
0:32:14 Noise Level 0-127
0:63:14 Pan Spread 0-127
0:88:14 LFO Freq 0-254
0:89:14 LFO Amt 0-255
0:90:14 LFO Shape 0-4
0:91:14 LFO Sync 0-1
0:119:14 FX 1 Type 0-5
0:120:14 FX 1 Mix 0-127
0:121:14 FX 1 Param 1 0-255
0:122:14 FX 1 Param 2 0-127 
0:127:14 FX 2 Type 0-9
0:128:14 FX 2 Mix 0-127
0:129:14 FX 2 Param 1 0-255
0:130:14 FX 2 Param 2 0-127
0:135:14 FX on-off 0-1
0:143:14 XMod Filter Env Amt 0-254
0:144:14 XMod VCO 2 Amt 0-254
[/NRPN]

# 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:9 DEFAULT=0  #Dist Amount
CC:43  #Env Attack
CC:44  #Env Decay
CC:45  #Env Sustain
CC:46  #Env Release
CC:50  #Filter Attack
CC:51  #Filter Decay
CC:52  #Filter Sustain
CC:53  #Filter Release
CC:62  #Arp Clock Division
CC:75  #Osc 2 Fine
CC:70  #Osc 1 Shape
CC:78  #Osc 2 Shape
CC:69  #Osc 1 Level
CC:77  #Osc 2 Level
CC:102  #Filter Freq
CC:106  #Filter Mode
[/AUTOMATION]

# This section will be readable from Hapax.
[COMMENT]
OB-6
[/COMMENT]

Hi! thanks a lot for fixing this! much appreciated:)

Hi!
All working here :slight_smile:
Cheers!

1 Like

What is the difference between

[AUTOMATION] CC Values …And the regular [CC] Values ?

EDIT

i asked all of this now in rhe TÖÖRÖ thread

This is great, thank you.

Anyone here know what the brightness CC (74) actually does on the OB-6??

Edit - Brightness is an offset for the filter cutoff that is only accessible via MIDI

1 Like