Hapax Instrument Definition Limitations?

I was setting up an instrument definition for an Expert Sleepers FH-2 and have a lot of potentially used assignments that I dont need all the time but thought I could organize and throw in the Automation area of the definition file to save on the encoder scrolling, it seems to not want to load more than 28 assignments without a syntax error. I appear to be able to add more automation assignments after it loads the instrument definition though.

So I wanted to know are there known limitations for the instrument definition file, vs manually adding?

And if there are limitations, what parts are limited so we know when creating files to cut down on swapping the card in and out of a computer?

According to the docs the limit should be 64 automation lanes. And I’ve just created a test definition with lots of automation lanes and only got an error when having more than those 64. So it seems to work as it should. Which text editor are you using? Some time ago someone else here had an issue with their OS’ built in text editor which jumbled line endings I think. Using a “proper” text editor resolved their issue. Sublime Text is good, but there may be other/better/cheaper apps depending on your OS.

Thanks, I’ll try to search for that thread, Im using CotEditor on Mac.

Hmm. Should be fine, actually. Try to turn on “show invisibles” in the format menu to see if any hidden characters mess things up. And feel free to post your def file here if it doesn’t work.

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

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

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

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

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

# 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]
1:NULL:1:48 Gate 1
2:NULL:1:49 Gate 2
3:NULL:1:50 Gate 3
4:NULL:1:51 Gate 4
5:NULL:1:52 Gate 4
6:NULL:1:53 Gate 6
7:NULL:1:54 Gate 7
8:NULL:1:55 Gate 8
[/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]
0:64 FH2 Direct 1
10:0 LFO 1 Level
11:6 LFO 1 Base
12:1 LFO 1 Multiplier
13:0 LFO 1 Speed
14:64 Sine 1
15:0 Square 1
16:0 PW 1
17:0 Triangle 1
18:0 Saw 1
19:0 Random 1
90:0 Phase 1

1:64 FH2 Direct 2
20:0 LFO 2 Level
21:6 LFO 2 Base
22:1 LFO 2 Multiplier
23:0 LFO 2 Speed
24:64 Sine 2
25:0 Square 2
26:0 PW 2
27:0 Triangle 2
28:0 Saw 2
29:0 Random 2
91:0 Phase 2

2:64 FH2 Direct 3
30:0 LFO 3 Level
31:6 LFO 3 Base
32:1 LFO 3 Multiplier
33:0 LFO 3 Speed
34:64 Sine 3
35:0 Square 3
36:0 PW 3
37:0 Triangle 3
38:0 Saw 3
39:0 Random 3
92:0 Phase 3

3:64 FH2 Direct 4
40:0 LFO 4 Level
41:6 LFO 4 Base
42:1 LFO 4 Multiplier
43:0 LFO 4 Speed
44:64 Sine 4
45:0 Square 4
46:0 PW 4
47:0 Triangle 4
48:0 Saw 4
49:0 Random 4
93:0 Phase 4

4:64 FH2 Direct 5
50:0 LFO 5 Level
51:6 LFO 5 Base
52:1 LFO 5 Multiplier
53:0 LFO 5 Speed
54:64 Sine 5
55:0 Square 5
56:0 PW 5
57:0 Triangle 5
58:0 Saw 5
59:0 Random 5
94:0 Phase 5

5:64 FH2 Direct 6
60:0 LFO 6 Level
61:6 LFO 6 Base
62:1 LFO 6 Multiplier
63:0 LFO 6 Speed
64:64 Sine 6
65:0 Square 6
66:0 PW 6
67:0 Triangle 6
68:0 Saw 6
69:0 Random 6
95:0 Phase 6

6:64 FH2 Direct 7
70:0 LFO 7 Level
71:6 LFO 7 Base
72:1 LFO 7 Multiplier
73:0 LFO 7 Speed
74:64 Sine 7
75:0 Square 7
76:0 PW 7
77:0 Triangle 7
78:0 Saw 7
79:0 Random 7
96:0 Phase 7

7:64 FH2 Direct 8
80:0 LFO 8 Level
81:6 LFO 8 Base
82:1 LFO 8 Multiplier
83:0 LFO 8 Speed
84:64 Sine 8
85:0 Square 8
86:0 PW 8
87:0 Triangle 8
88:0 Saw 8
89:0 Random 8
97:0 Phase 8

100:0 2-8CV1 Direct
101:0 2-8CV2 Direct
102:0 2-8CV3 Direct
103:0 2-8CV4 Direct
104:0 2-8CV5 Direct
105:0 2-8CV6 Direct
106:0 2-8CV7 Direct
107:0 2-8CV8 Direct

108:0 3-8CV1 Direct
109:0 3-8CV2 Direct
110:0 3-8CV3 Direct
111:0 3-8CV4 Direct
112:0 3-8CV5 Direct
113:0 3-8CV6 Direct
114:0 3-8CV7 Direct
115:0 3-8CV8 Direct

116:0 4-8CV1 Direct
117:0 4-8CV2 Direct
118:0 4-8CV3 Direct
119:0 4-8CV4 Direct
120:0 4-8CV5 Direct
121:0 4-8CV6 Direct
122:0 4-8CV7 Direct
123:0 4-8CV8 Direct
[/CC]


# NRPN
# Syntax: "MSB:LSB:DEPTH NAME" or "MSB:LSB:DEPTH:DEFAULT=xx NAME"
# Lsb & msb should be between 0 and 127
# 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]
1 CC:0 DEFAULT=64    # 1 Direct Control
2 CC:10 DEFAULT=0    # LFO1 Level
3 CC:11 DEFAULT=3    # LFO1 Base Tempo
4 CC:14 DEFAULT=0    # Sine1 Level
5 CC:15 DEFAULT=0    # Square1 Level
6 CC:16 DEFAULT=20    # Pulse1 Width
7 CC:17 DEFAULT=0    # Triangle1 Level
8 CC:90 DEFAULT=64    # Phase
[/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:0 #FH2 1 Direct
CC:1 #FH2 2 Direct
CC:2 #FH2 3 Direct
CC:3 #FH2 4 Direct
CC:4 #FH2 5 Direct
CC:5 #FH2 6 Direct
CC:6 #FH2 7 Direct
CC:7 #FH2 8 Direct
CC:100 #2-8CV1 Direct
CC:101 #2-8CV2 Direct
CC:102 #2-8CV3 Direct
CC:103 #2-8CV4 Direct
CC:104 #2-8CV5 Direct
CC:105 #2-8CV6 Direct
CC:106 #2-8CV7 Direct
CC:107 #2-8CV8 Direct
CC:108 #3-8CV1 Direct
CC:109 #3-8CV2 Direct
CC:110 #3-8CV3 Direct
CC:111 #3-8CV4 Direct
CC:112 #3-8CV5 Direct
CC:113 #3-8CV6 Direct
CC:114 #3-8CV7 Direct
CC:115 #3-8CV8 Direct
CC:116 #4-8CV1 Direct
CC:117 #4-8CV2 Direct
CC:118 #4-8CV3 Direct
CC:119 #4-8CV4 Direct
CC:120 #4-8CV5 Direct
CC:121 #4-8CV6 Direct
CC:122 #4-8CV7 Direct
CC:123 #4-8CV8 Direct
[/AUTOMATION]


# This section will be readable from Hapax.
[COMMENT]
Direct to 64 for bipolar LFOs
2 8CV +-5 Reset Ch1 Note 8-15
3 8CV +-5 4 8CV 0-10 Reset LFO 1-8 Note 0-7
CV to Midi Ch1 X-CC64 Y-CC65
[/COMMENT]

Here is the definition, syntax error occurs at line 263, I have another version with the last 4 lines deleted and it works no problem.

Line 263 is CC:120 #4-8CV5Direct in the automation section.

The issue here isn’t the number of automation lines. You just can’t use any CC > 119. Those are reserved for Channel Mode Messages (All sounds off, Local on/off, etc).

Thanks I see now, I will update my FH-2 configuration. I appreciate the help

So 120 and up are off limits, 0-119 are ok to use right?

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.