Request Help with JP-8080 Hapax Instrument Definition File

Hello all. First post.

Hapax is awesome, and this seems like a really cool community. I’m glad to have found both.

I’d like to create a Hapax instrument definition file for my Roland JP-8080. Even with the editor (thank you maxhodges!), I’m not sure how to approach it. With two midi inputs that function differently, the 8080 is… a little different than what I’m used to.

Anyone out there willing to share their insight and/or a working definition file(s)?

Thanks in advance

Just approach like any other synth?
Iirc the normal midi in bypasses the arpeggiator? So thats the one you’d want to use.
There’s not much more special about afaik

Thanks. I was getting some unexpected results with pc messages (without a definition file), which made me think I was using the wrong input or needed both somehow.

Turns out, I need to use MSB and LSB. A little time with the manual goes a long way. Heh!

Appreciate the encouragement. Giving it a go!

Hey,
did you manage to create an instrument file for the JP 8080?
That would help me immensely, as my 8080 will be arriving soon.

Best regards,
Theo

I did… mostly… sort of. At the time, the manual was a little confusing to me concerning which cc’s to use for what function in which mode. It seemed like not everything was in the midi implementation chart (or not made clear there), so digging through different sections of the manual has been necessary (but has also helped me to better understand my synth).

I think I made a mistake in trying to put everything into my instrument definition file all at once, rather than creating a basic one and adding to it as I need more functions on the 8080. What I have now works for how I’ve been using it, but it’s still bloated with the extras I haven’t used or tested yet. I plan to tweak my definition file to have one for use in performance mode and one for patch mode… so that I can create new “performances” right from Hapax.

Due to a series of events, my Hapax and synths are currently in storage so developing my file has been on hold temporarily. However, I’m happy to share what I have so far… I’ll try to get the file uploaded before next week for you. Just please understand that it’s still a (functional) work in progress. Maybe you can help me weed out any bugs if they exist?

Also… Congrats on your JP-8080! It’s an awesome synth!

Awesome work, man — seriously! It’s really cool to see how far you’ve already gotten with the JP-8080 definition.

I’m not at my gear until the end of February, but after that I’d absolutely love to take a look at your file together and see if we can optimize it.

The manual is a bit tricky, especially when it comes to which parameters actually respond to CC and which need NRPN..

Would be great to refine this with you and get a solid JP-8080 setup running on the Hapax.

Cheers :sign_of_the_horns:

VERSION 1 # Currently, this should only be 1.

Supports all alphanumeric ASCII, and ’ ', ‘_’, ‘-’, ‘+’ - can also be NULL

TRACKNAME JP-8080

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 NULL

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]
1:80:0 User A/B 0 - 127
1:81:0 Preset1 A/B 0 - 127
1:81:1 Preset2 A/B 0 - 127
1:81:2 Preset3 A/B 0 - 127
1:82:0 Card 01 A/B 0 - 127
1:82:1 Card 02 A/B 0 - 127
1:82:2 Card 03 A/B 0 - 127
1:82:3 Card 04 A/B 0 - 127
1:82:4 Card 05 A/B 0 - 127
1:82:5 Card 06 A/B 0 - 127
1:82:6 Card 07 A/B 0 - 127
1:82:7 Card 08 A/B 0 - 127
1:82:8 Card 09 A/B 0 - 127
1:82:9 Card 10 A/B 0 - 127
1:82:10 Card 11 A/B 0 - 127
1:82:11 Card 12 A/B 0 - 127
1:82:12 Card 13 A/B 0 - 127
1:82:13 Card 14 A/B 0 - 127
1:82:14 Card 15 A/B 0 - 127
1:82:15 Card 16 A/B 0 - 127
1:82:16 Card 17 A/B 0 - 127
1:82:17 Card 18 A/B 0 - 127
1:82:18 Card 19 A/B 0 - 127
1:82:19 Card 20 A/B 0 - 127
1:82:20 Card 21 A/B 0 - 127
1:82:21 Card 22 A/B 0 - 127
1:82:22 Card 23 A/B 0 - 127
1:82:23 Card 24 A/B 0 - 127
1:82:24 Card 25 A/B 0 - 127
1:82:25 Card 26 A/B 0 - 127
1:82:26 Card 27 A/B 0 - 127
1:82:27 Card 28 A/B 0 - 127
1:82:28 Card 29 A/B 0 - 127
1:82:29 Card 30 A/B 0 - 127
1:82:30 Card 31 A/B 0 - 127
1:82:31 Card 32 A/B 0 - 127
[/PC]

CC

Syntax: CC_NUMBER NAME or CC_NUMBER:DEFAULT=xx NAME

DEFAULT_VALUE must be a valid number between 0 and 127

[CC]
92 Trem
95 Phaser
93 Chorus
12 d.Time
13 d.FDBK
94 d.LVL
16 lfo1-R
17 Mod R.
5 p.Time
4 o1CTL1
76 o1CTL2
77 o2Wide
78 o2CTL1
79 o2CTL2
8 OscBAL
70 xDEPTH
18 LFO1-D
25 pENVdp
26 pEVatk
27 pEVdcy
74 fCUTOFF
71 fRES.
19 fLFO1dp
81 fDEPTH
82 fATK
83 fDECAY
28 fSUS
29 fREL
80 aLFO1d
7 aLEVEL
73 ampATK
75 aDECAY
31 ampSUS
72 ampREL
[/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]
0:32 Bank + PC 1 - 127
[/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]
Some CC only intended for mode 2
[/COMMENT]

Looking forward to your feedback and improving the file :slight_smile: