Instrument Definition : Elektron Analog Heat

VERSION 1 # Currently, this should only be 1.

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

# Can be POLY, DRUM, MPE, or NULL
TYPE NULL

# Can be A, B, C, D, USBD, USBH, CVGx (x between 1&4), CVx, Gx, or NULL
OUTPORT B

# 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]
0:70:7 CIRCUIT SELECT
0:12:7 DRIVE
0:11:7 WET LEVEL
0:8:7 DRY/WET MIX
0:7:7 PRESET VOLUME
0:9:7 EQ LOW
0:10:7 EQ HIGH
0:80:7 VCF MODE
0:74:7 VCF FREQUENCY
0:79:7 VCF FREQUENCY PAN
0:71:7 VCF RESONANCE
0:13:7 VCF DIRT
0:14:7 ENV TO FILTER
0:15:7 LFO TO FILTER
0:16:7 ENV THRESHOLD
0:73:7 ENV ATTACK
0:72:7 ENV RELEASE
0:17:7 ENV BASE
0:18:7 ENV WIDTH
0:19:7 ENV MODE
0:75:7 ENV DESTINATION
0:20:7 ENV DEPTH
0:76:7 ENV DESINATION 2
0:21:7 ENV DEPTH 2
0:83:7 LFO WAVEFORM
0:22:7 LFO SPEED
0:23:7 LFO MULTIPLIER
0:24:7 LFO FADE
0:25:7 LFO MODE
0:26:7 LFO START PHASE
0:77:7 LFO DESTINATION
0:27:7 LFO DEPTH
0:78:7 LFO DESTINATION 2
0:28:7 LFO DEPTH 2
0:85:7 CV A DESTINATION
0:86:7 CV A DEPTH
0:87:7 EXPR A DESTINATION
0:88:7 EXPR A DEPTH
0:89:7 CV B DESTINATION
0:90:7 CV B DEPTH
0:91:7 EXPR B DESTINATION
0:92:7 EXPR B DEPTH
[/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!

Just a heads up that there is a (seemingly longstanding) bug with the Analog Heat’s MIDI implementation which results in NRPN messages all being divided by 2 when received by the Heat NRPN messages are divided by 2 - #6 by dokev - Analog Heat - Elektronauts. I’ve raised this with Elektron and they suggested they will sort it out, but I’m not sure when we can expect new Analog Heat firmware tbh.

1 Like

Thanks for letting us know :slight_smile:

Is this the case with the AH MkII, MkI, or both?

I experienced it with the MKII, but I think the MIDI implementation will be on the firmware level so probably happens regardless of the hardware.

1 Like

The issue is present on MK1 as well.

Btw, for 7bit values (and available as CC) there is no advantage in using NRPN over CC anyway on the AH. To the contrary, in fact. Each NRPN value change translates into three CC messages, clogging the midi connection for no good reason.

Until this issue (NRPN on AH) is resolved I think it’s better to use CC + CC_PAIR for 14 bits. This should work:

VERSION 1
TRACKNAME ANALOG HEAT
TYPE POLY
OUTPORT NULL
OUTCHAN NULL
INPORT NONE
INCHAN NULL

[PC]
[/PC]

[CC]
70 CIRCUIT SELECT
7 PRESET VOLUME
80 VCF MODE
13 VCF DIRT
73 ENV ATTACK
72 ENV RELEASE
17 ENV BASE
18 ENV WIDTH
19 ENV MODE
75 ENV DESTINATION
76 ENV DESINATION 2
21 ENV DEPTH 2
83 LFO WAVEFORM
22 LFO SPEED
23 LFO MULTIPLIER
24 LFO FADE
25 LFO MODE
26 LFO START PHASE
77 LFO DESTINATION
78 LFO DESTINATION 2
28 LFO DEPTH 2
85 CV A DESTINATION
86 CV A DEPTH
87 EXPR A DESTINATION
88 EXPR A DEPTH
89 CV B DESTINATION
90 CV B DEPTH
91 EXPR B DESTINATION
92 EXPR B DEPTH
[/CC]

[CC_PAIR]
12:37 DRIVE
11:38 WET LEVEL
8:39 DRY/WET MIX
9:40 EQ LOW
10:41 EQ HIGH
74:42 VCF FREQUENCY
79:49 VCF FREQUENCY PAN
71:43 VCF RESONANCE
14:44 ENV TO FILTER
15:45 LFO TO FILTER
16:46 ENV THRESHOLD
20:47 ENV DEPTH
27:48 LFO DEPTH
[/CC_PAIR]

[NRPN]
[/NRPN]

[ASSIGN]
[/ASSIGN]

[AUTOMATION]
[/AUTOMATION]

[COMMENT]
Elektron Analog Heat
[/COMMENT]
2 Likes

Thanks for this.

Input a request in to Squarp for range scaling to be incorporated when using NRPN’s. They said it was on the list to do but no timescales just yet.

1 Like

Hello!
Pls tell me
Can I use this def with another cc chart (ah +fx)
Or how write part with delay, reverb etc. in def not wrong
Thx!

Hi,

You can use this one and change or add CC if the midi chart is different. If FXs share the same midi channel than global parameters, just add their CC on this file.
Hope this help

Thx u!
But AH part and FX part have a different midi channel
I think I must add 2 files with cc)

In this case, you’ll have to create 2 distinct Instrument definition files yes.