Instrument Definition : Elektron Digitone

For audio tracks

VERSION 1 # Currently, this should only be 1.

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

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

# 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

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


# CC
# Syntax: CC_NUMBER NAME or CC_NUMBER:DEFAULT=xx NAME
# DEFAULT_VALUE must be a valid number between 0 and 127
[CC]
64 SUSTAIN 
66 SOSTENUTO

70 CC1 VALUE
71 CC2 VALUE
72 CC3 VALUE 
73 CC4 VALUE
74 CC5 VALUE 
75 CC6 VALUE 
76 CC7 VALUE 
77 CC8 VALUE
[/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]
1:101:7 TRACK MUTE
1:100:7 TRACK LEVEL

3:0:7 ROOT NOTE
3:1:7 NOTE VELOCITY
3:2:7 NOTE LENGTH
3:5:7 FILTER TRIG
3:6:7 LFO TRIG
3:7:7 PORTAMENTO TIME
3:8:7 PORTAMENTO ON

1:72:7 ALGORYTHM
1:73:7 RATIO C
1:74:7 RATIO A
1:75:7 RATIO B
1:76:7 HARMONICS
1:77:7 DETUNE
1:78:7 FEEDBACK
1:79:7 MIX X/Y
1:95:7 RATIO C OFFSET
1:96:7 RATIO A OFFSET
1:97:7 RATIO B1 OFFSET
1:98:7 RATIO B2 OFFSET

1:80:7 A ENV ATTACK
1:81:7 A ENV DECAY
1:82:7 A ENV END
1:83:7 A LEVEL
1:84:7 B ENV ATTACK
1:85:7 B ENV DECAY
1:86:7 B ENV END
1:87:7 B LEVEL
1:88:7 A DELAY
1:89:7 A TRIG
1:90:7 A ENV RESET
1:91:7 B DELAY
1:92:7 B TRIG
1:93:7 B ENV RESET
1:94:7 PHASE RESET

1:20:7 FILTER FREQUENCY
1:21:7 FILTER RESONANCE
1:22:7 FILTER TYPE
1:16:7 FILTER ATTACK
1:17:7 FILTER DECAY
1:18:7 FILTER SUSTAIN
1:19:7 FILTER RELEASE
1:23:7 FILTER ENV DEPTH
1:66:7 FILTER ENV DELAY
1:24:7 FILTER BASE
1:25:7 FILTER WIDTH

1:32:7 AMP ATTACK
1:33:7 AMP DECAY 
1:34:7 AMP SUSTAIN
1:35:7 AMP RELEASE
1:36:7 AMP DRIVE
1:37:7 AMP PAN
1:38:7 AMP VOLUME
1:41:7 CHORUS SEND
1:40:7 DELAY SEND
1:39:7 REVERB SEND
1:42:7 AMP ENV RESET

1:48:7 LFO1 SPEED
1:49:7 LFO1 MULTIPLIER
1:50:7 LFO1 FADE IN/OUT
1:51:7 LFO1 DESTINATION
1:52:7 LFO1 WAVEFORM
1:53:7 LFO1 START PHASE
1:54:7 LFO1 TRIG MODE
1:55:7 LFO1 DEPTH
1:57:7 LFO2 SPEED
1:58:7 LFO2 MULTIPLIER
1:59:7 LFO2 FADE IN/OUT
1:60:7 LFO2 DESTINATION
1:61:7 LFO2 WAVEFORM
1:62:7 LFO2 START PHASE
1:63:7 LFO2 TRIG MODE
1:64:7 LFO2 DEPTH

1:104:7 PATTERN MUTE
[/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
[AUTOMATION]
[/AUTOMATION]


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

For FX channel

VERSION 1 # Currently, this should only be 1.

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

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

# 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

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


# CC
# Syntax: CC_NUMBER NAME or CC_NUMBER:DEFAULT=xx NAME
# DEFAULT_VALUE must be a valid number between 0 and 127
[CC]
[/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]
2:0:7 CHORUS DEPTH
2:1:7 CHORUS SPEED
2:2:7 CHORUS HIGHPASS
2:3:7 CHORUS WIDTH
2:4:7 DELAY SEND
2:5:7 REVERB SEND
2:6:7 CHORUS MIX VOLUME

2:10:7 DELAY TIME
2:11:7 DELAY PINGPONG
2:12:7 DELAY STEREO WIDTH
2:13:7 DELAY FEEDBACK
2:14:7 DELAY HP FILTER
2:15:7 DELAY LP FILTER
2:16:7 REVERB SEND
2:17:7 DELAY MIX VOLUME

2:20:7 REVERB PREDELAY
2:21:7 REVERB DECAY TIME
2:22:7 REVERB SHELV FREQ
2:23:7 REVERB SHELV GAIN
2:24:7 REVERB HP FILTER
2:25:7 REVERB LP FILTER
2:26:7 REVERB MIX VOLUME

2:30:7 INPUT L VOLUME
2:32:7 INPUT R VOLUME
2:31:7 PAN L
2:33:7 PAN R
2:34:7 CHORUS SEND L
2:102:7 CHORUS SEND R
2:35:7 DELAY SEND L
2:103:7 DELAY SEND R
2:36:7 REVERB SEND L
2:104:7 REVERB SEND R
2:34:7 CHORUS SEND L/R
2:35:7 DELAY SEND L/R
2:36:7 REVERB SEND L/R
2:37:7 MASTER OVERDRIVE
2:38:7 MASTER VOLUME
2:105:7 DUAL MONO
[/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
[AUTOMATION]
[/AUTOMATION]


# This section will be readable from Hapax.
[COMMENT]
[/COMMENT]
4 Likes

thank you!

1 Like

I’ve updated the definitions with the new CC_PAIR syntax. Two drawbacks I’m seeing right now:
1 // it takes a huge amount of turns for CC_PAIRS assigned to knobs to go through all 14bits of values
2 // the list of automatable/assignable parameters is now split into three parts you need to go through to find the one you want.

Issue 1 should be easily fixable, 2 I’m not sure about. Would need a big revision of the definition syntax, I guess. Until then, the original versions by @enthalpi might be preferable if you don’t desperately need 14 bit values for a certain parameter.

Anyway, here are the definitions if you’re interested. Instrument first:

VERSION 1
TRACKNAME DIGITONE
TYPE POLY
OUTPORT NULL
OUTCHAN NULL
INPORT ALLACTIVE
INCHAN NULL

[PC]
[/PC]

[CC]
64 SUSTAIN 
66 SOSTENUTO

70 CC1 VALUE
71 CC2 VALUE
72 CC3 VALUE 
73 CC4 VALUE
74 CC5 VALUE 
75 CC6 VALUE 
76 CC7 VALUE 
77 CC8 VALUE
[/CC]

[CC_PAIR]
16:48 RATIO B
17:49 HARMONICS
18:50 DETUNE
19:51 FEEDBACK
20:62 MIX X/Y

23:55 FLT FREQ
24:56 FLT RES
25:57 FLT ENV DPTH
26:58 FLT BASE
27:59 FLT WDTH

9:41 AMP DRV
10:42 AMP PAN
7:39 AMP VOL
12:44 CHRS SEND
13:45 DLY SEND
14:46 RVB SEND

28:60 LFO1 SPEED
29:61 LFO1 DPTH
30:62 LFO1 SPEED
31:63 LFO1 DPTH
[/CC_PAIR]

[NRPN]
1:101:7 TRACK MUTE
1:100:7 TRACK LEVEL
1:104:7 PATTERN MUTE

3:0:7 ROOT NOTE
3:1:7 NOTE VELOCITY
3:2:7 NOTE LENGTH
3:5:7 FLT TRIG
3:6:7 LFO TRIG
3:7:7 PORTAM TIME
3:8:7 PORTAM ON

1:72:7 ALGORYTHM
1:73:7 RATIO C
1:74:7 RATIO A
1:95:7 RATIO C OFFSET
1:96:7 RATIO A OFFSET
1:97:7 RATIO B1 OFFSET
1:98:7 RATIO B2 OFFSET

1:80:7 A ENV ATTACK
1:81:7 A ENV DECAY
1:82:7 A ENV END
1:83:7 A LEVEL
1:84:7 B ENV ATTACK
1:85:7 B ENV DECAY
1:86:7 B ENV END
1:87:7 B LEVEL
1:88:7 A DELAY
1:89:7 A TRIG
1:90:7 A ENV RESET
1:91:7 B DELAY
1:92:7 B TRIG
1:93:7 B ENV RESET
1:94:7 PHASE RESET

1:22:7 FLT TYPE
1:16:7 FLT ATK
1:17:7 FLT DEC
1:18:7 FLT SUS
1:19:7 FLT REL
1:66:7 FLT ENV DLY

1:32:7 AMP ATK
1:33:7 AMP DEC 
1:34:7 AMP SUS
1:35:7 AMP REL
1:42:7 AMP ENV RESET

1:49:7 LFO1 MULTIPLIER
1:50:7 LFO1 FADE IN/OUT
1:51:7 LFO1 DESTINATION
1:52:7 LFO1 WAVEFORM
1:53:7 LFO1 START PHASE
1:54:7 LFO1 TRIG MODE
1:58:7 LFO2 MULTIPLIER
1:59:7 LFO2 FADE IN/OUT
1:60:7 LFO2 DESTINATION
1:61:7 LFO2 WAVEFORM
1:62:7 LFO2 START PHASE
1:63:7 LFO2 TRIG MODE
[/NRPN]

[ASSIGN]
[/ASSIGN]

[AUTOMATION]
[/AUTOMATION]

[COMMENT]
Elektron Digitone Track
[/COMMENT]

FX:

VERSION 1
TRACKNAME DIGITONE FX
TYPE POLY
OUTPORT NULL
OUTCHAN NULL
INPORT NULL
INCHAN NULL

[CC]
[/CC]

[CC_PAIR]
3:35 CHRS DPTH
9:41 CHRS SPEED
12:44 CHRS DLY SEND
13:45 CHRS RVB SEND

15:47 DLY TIME
16:48 DLY PINGPONG
17:49 DLY STEREO WIDTH
18:50 DLY FDBK
19:51 DLY RVB SEND

21:53 RVB PREDLY
22:54 RVB SHELV GAIN

29:61 MSTR OVERDRV
24:56 INPUT L VOL
25:57 INPUT R VOL
26:58 CHRS SEND L
30:62 CHRS SEND R
27:59 DLY SEND L
31:63 DLY SEND R
28:60 RVB SEND L
82:32 RVB SEND R
26:59 CHRS SEND L/R
27:60 DLY SEND L/R
28:61 RVB SEND L/R
[/CC_PAIR]

[NRPN]
3:0:7 ROOT NOTE
3:1:7 NOTE VELOCITY
3:2:7 NOTE LENGTH
3:5:7 FLT TRIG
3:6:7 LFO TRIG
3:7:7 PORTA TIME
3:8:7 PORTA ON

2:2:7 CHRS HIGHPASS
2:3:7 CHRS WIDTH
2:6:7 CHRS MIX VOL

2:14:7 DLY HP FLT
2:15:7 DLY LP FLT
2:17:7 DLY MIX VOL

2:21:7 RVB DECAY TIME
2:22:7 RVB SHELV FREQ
2:24:7 RVB HP FLT
2:25:7 RVB LP FLT
2:26:7 RVB MIX VOL

2:31:7 PAN L
2:33:7 PAN R
2:38:7 PTRN VOL
2:105:7 DUAL MONO
[/NRPN]

[ASSIGN]
[/ASSIGN]

[AUTOMATION]
[/AUTOMATION]

[COMMENT]
Elektron Digitone FX
[/COMMENT]
3 Likes

should both the Instrument and FX definitions all exist in the same .txt file? Is it just a matter of cutting & pasting this code into the .txt file and dropping it in my HAPAX folder on the SD card? thanks!

I’d recommend saving them to separate txt files. In general copy and paste should work.

1 Like

Tried loading the instruments file and getting “def file not found”

Any idea what would cause the error?

Cheers

Edit got it working :ok_hand: