FH-2 and Hapax Automation Bandwidth

I was wondering if any FH-2 owners with expanders could comment on how much automation they are able to send from Hapax to FH-2? I can get about 10 automation lanes going but then the data seems to go haywire. Not sure if its a hapax, midi DIN or FH-2 Limitation.

Don’t have the FH-2 anymore. But have you tried using USB? Is the FH-2 connected directly to Hapax or is there some Midi router inbetween? Or rather, could there be a Midi loop somewhere?

I have done both direct to the FH2 and through a midi router, both times I maxed at about 10 lanes, just a basic ramp drawn on the lane. I need to try USB still, Im pretty sure I isolated just hapax and the fh-2 but I have been doing a lot so I need to double check, was hoping I could hear from some other owners that they are getting full use of the FH-2 and a few expanders.

It’s possible to rate-limit the automation, see Hapax Manual | Squarp instruments

Thanks I will try that, I havent changed it from factory that I remember so im assuming its 24 ppqn, has anyone sent out more than 10 automation lanes to one Midi Din device at 24 ppqn and had no issue?

I don’t think this is going to go too well. Not knowing what you’re trying to achieve, I’d suggest utilising the FH-2’s LFOs and ENVs. Configure those via Hapax automation lanes (with interpolation turned off) instead of using loads of direct Midi CC. And/or try reducing PPQN where possible. This and interpolation=off can do a lot to achieve loads of automation lanes without Midi congestion. But I’d be interested to know whether USB works better.

I’ll test it some more with midi interpolation off and ppqn reduction, at the moment I have FH2 mostly for LFO’s and those work alongside the 10 direct lanes, but I have the expanders that can do more than 10 and I was just testing my instrument definition when I ran into these issues so now im trying to see if I can utilize more than 10. unfortunately hapax only has 8 knobs so adjusting envelopes on 8 outputs for 4-5 parameters per envelope is fiddly, and I do like to draw on the hapax grid.

1 Like

I was able to get all outputs on the FH-2 and expanders to output with interpolation, and as I added, when I saw issues I would start to drop ppqn down. I could get all outputs more easily with DIN direct to FH2 but I do run it through a MRCC midi hub so I also learned I could get most of it working through the hub, but the hub does limit the number somewhat. I had difficulty getting outputs to work without interpolation when there was a lot of direct CC’s on the rest so the lesson is to play with ppqn and trial/error. For my purpose it will work, however, I am not outputting 64 lanes as described in the manual, it seems difficult to get that kind out output. I just didnt expect to have to fiddle as much with it given that 64 automation lane spec.

2 Likes

which firmware are you on with the Hapax? the most recent firmware fixed some prioritization issues I was seeing with my hapax/fh-2 combo

I’m on 1.13, I’m not aware of a incremental update is there another one?

no thats the latest

correct, the fix is in 1.13 that (per my understanding) prioritizes note on/off events over CC changes, so you won’t get missed notes. its probably still possible to saturate CC changes, but I haven’t tried to push it recently.

there was an fh-2 definition for hapax around here at some point wasnt there? i grabbed it and used it yesterday. thanks to whoever made it. i was wondering if its been refined or what im doing wrong because i can only seem to access the first 8 cv outs and none on my single fhx-8cv expander. can someone help? im not aware of any way to ask for official assistance.

Given the FH-2’s flexibility it’s going to be more of a coincidence if someone else’s definition works with anyone else’s module. Maybe a default would work but as soon as expanders come into play you’ll need to configure them according to your specific needs and edit the instrument definition to match. To assist you in that you’d need to share your full FH-2 configuration. (Really) Figuring out the FH-2 config interface is much harder than creating a corresponding Hapax definition, IMO.

ok well i havent opened the control applet yet and i am able to access all 8 outputs on the main unit with lfos and envelopes and automation from hapax, just not the cv8 yet. i thought it might be simple but ill crack it open tonight and see whats up.

so in other words the definition works for just the onboard stuff.

VERSION 1 # Currently, this should only be 1.

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

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

You have to assign CC numbers to your fh2 expanders then hapax can send them midi. But if you have someone’s definition you could work backwards and use those CC numbers.

1 Like

i actually had to assign numbers like you said but i got it working. gotta say this is pretty nice. not regretting this at all

I have been using 7 expanders with no latency/bandwidth issues. The FH-2 config tool is pretty easy to use. Happy to answer any questions.

How many ccs are you sending out to fh2 on a channel at most without changing to a lower interpolation rate? I am able to get about 24 modulation lanes out but have to start dropping the rate down. Would you be willing to share sny config files and hapax definitions? I could probably learn something. My configs are fairly versatile with LFOs, envelopes and direct mapped out, maxing out a channels available cc assignments.

i got it working. this is awesomeness!