Receiving MIDI Continuous Controller (CC) messages

A stock first generation Electribe can transmit and receive only a few MIDI Continuous Control (CC) messages. The knobs and buttons on the control panel generate NRPN messages instead and the same applies to controlling an Elecetribe with an external controller or DAW. So what’s wrong with NRPN?

Well, nothing and everything. NRPN enables a much larger domain of different controller numbers, thus you can have different Electribes communicating on the same MIDI channel simultaneously. Besides, the resolution of controller parameter values is a lot higher (14-bit compared to 7-bit for CC values) making the transitions much smoother. However, it is irrelevant in the context of the 1st gen Electribes – as they do not employ this double-byte scheme the value range is still from 0 to 127.

On the other hand there are a lot of disadvantages. Configuring MIDI controllers and DAWs to speak and understand NRPN is often a pain as everything is focused on CC. NRPN requires 3 three-byte messages to transmit a single parameter change, totalling 9 bytes as opposed to one CC message and 3 bytes. The speed of MIDI transmission protocol translates to roughly one 3-byte message per millisecond, so any turn of a knob results in either a noticeable lag or audible stepping. Sure, CC is not perfect as well but still a lot better.

The worst artifact of NRPN comes from several NRPN messages colliding with each other. While MIDi devices can generally handle mixed flow of simultaneous CC messages adequately they usually get confused or fail completely when multibyte messages start arriving from different controllers (“turning knobs with both hands”). The sole disadvantage is that, as CC messages eat up almost all of the “namespace” of available CC controller numbers each Electribe device has to use a separate MIDI channel (one out of 16 on a MIDI network).

Electribe Shaman Firmware update 3.0.3 adds the capability to receive MIDI CC messages in addition to (original) MIDI NRPN. Technically both can even come in parallel, but as already noted, this could be dangerous and lead to broken (incomplete) NRPN messages so this “mixed flow” is not recommended. The list of MIDI CC messages introduced by Shaman Firmware (as well as how they map to original NRPN messages) follows (H = Hex).

NRPN [H]

Parameter Data Entry Value (Dec) CC [Dec]
02 00 Synth1 Low Boost 0~127 10
02 01 Synth1 Pan 0~127 11
02 02 Synth1 Pitch 0~127 12
02 03 Synth1 Wave 0~63 : Sin/Tri 13
02 04 Synth1 Mod Type 0~5 : Saw/Squ/Tri/S&H/Noise/Env 14
02 05 Synth1 Mod Speed 0~127 15
02 06 Synth1 Mod Depth 0~127 16
02 07 Synth1 Level 0~127 17
02 08 Synth1 Decay 0~127 18
02 09 Synth1 Mot Seq Type 0~2 : Off/Smooth/TrigHold 19
02 0A Synth2 Low Boost 0~127 20
02 0B Synth2 Pan 0~127 21
02 0C Synth2 Pitch 0~127 22
02 0D Synth2 Wave 0~63 : Sin/Tri 23
02 0E Synth2 Mod Type 0~5 : Saw/Squ/Tri/S&H/Noise/Env 24
02 0F Synth2 Mod Speed 0~127 25
02 10 Synth2 Mod Depth 0~127 26
02 11 Synth2 Level 0~127 27
02 12 Synth2 Decay 0~127 28
02 13 Synth2 Mot Seq Type 0~2 : Off/Smooth/TrigHold 29
02 14 Synth3 Low Boost 0~127 30
02 15 Synth3 Pan 0~127 31
02 16 Synth3 Pitch 0~127 95
02 17 Synth3 Wave 0~63 : Sin/Tri 33
02 18 Synth3 Mod Type 0~5 : Saw/Squ/Tri/S&H/Noise/Env 34
02 19 Synth3 Mod Speed 0~127 35
02 1A Synth3 Mod Depth 0~127 36
02 1B Synth3 Level 0~127 37
02 1C Synth3 Decay 0~127 38
02 1D Synth3 Mot Seq Type 0~2 : Off/Smooth/TrigHold 39
02 1E Synth4 Low Boost 0~127 40
02 1F Synth4 Pan 0~127 41
02 20 Synth4 Pitch 0~127 42
02 21 Synth4 Wave 0~63 : Sin/Tri 43
02 22 Synth4 Mod Type 0~5 : Saw/Squ/Tri/S&H/Noise/Env 44
02 23 Synth4 Mod Speed 0~127 45
02 24 Synth4 Mod Depth 0~127 46
02 25 Synth4 Level 0~127 47
02 26 Synth4 Decay 0~127 48
02 27 Synth4 Mot Seq Type 0~2 : Off/Smooth/TrigHold 49
02 28 Close Hi-Hat Low Boost 0~127 50
02 29 Close Hi-Hat Pan 0~127 51
02 2A Close Hi-Hat Pitch 0~127 52
02 2F Close Hi-Hat Level 0~127 53
02 30 Close Hi-Hat Decay 0~127 54
02 31 Close Hi-Hat Mot Seq Type 0~2 : Off/Smooth/TrigHold 55
0232 Open Hi-Hat Low Boost 0~127 56
02 33 Open Hi-Hat Pan 0~127 57
02 34 Open Hi-Hat Pitch 0~127 58
02 39 Open Hi-Hat Level 0~127 59
02 3A Open Hi-Hat Decay 0~127 60
02 3B Open Hi-Hat Mot Seq Type 0~2 : Off/Smooth/TrigHold 61
02 3C Crash Low Boost 0~127 62
02 3D Crash Pan 0~127 63
02 3E Crash Pitch 0~127 64
02 43 Crash Level 0~127 65
02 44 Crash Decay 0~127 66
02 45 Crash Mot Seq Type 0~2 : Off/Smooth/TrigHold 67
02 46 H.Clap Low Boost 0~127 68
02 47 H.Clap Pan 0~127 69
02 48 H.Clap Pitch 0~127 70
02 4D H.Clap Level 0~127 71
02 4E H.Clap Decay 0~127 72
02 4F H.Clap Mot Seq Type 0~2 : Off/Smooth/TrigHold 73
02 50 Audio In 1 Low Boost 0~127 74
02 51 Audio In 1 Pan 0~127 75
02 57 Audio In 1 Level 0~127 76
02 58 Audio In 1 Decay 0~63 77
02 59 Audio In 1 Mot Seq Type 0~2 : Off/Smooth/TrigHold 78
02 5A Audio In 2 Low Boost 0~127 79
02 5B Audio In 2 Pan 0~127 80
02 61 Audio In 2 Level 0~127 81
02 62 Audio In 2 Decay 0~63 82
02 63 Audio In 2 Mot Seq Type 0~2 : Off/Smooth/TrigHold 83
02 64 Delay Depth 0~127 84
02 65 Delay Time 0~127 85
02 66 Ring (Synth1/Synth2) 0~63/64~127 : Off/On 86
02 67 Ring (Synth4/Audio In) 0~63/64~127 : Off/On 87
02 68 Input Gain 1 0~100 88
02 69 Input Gain 2 0~100 89
02 6A Accent Level 0~127 90
02 6B Delay Type 0~2 : Off/MotionSeq/TempoDelay 91
Tempo 92
02 6C Mute 1 93
02 6D Mute 2 94

7 comments

  1. Cody Gratner says:

    I don’t know if you have a mailing list or anything, but I would love to get updates on this as you progress!

  2. Adam says:

    Hi there, I found a thread about this on gearslutz. The ER1 is my favorite drum machine/synth, I’m super excited about this. Interested in how I go about buying the update. Hope to hear back from you!

    Adam

  3. Risto Keckarovski says:

    Hi, I need this very badly 🙂
    Please throw me in your mailing list, I don’t know how to download your firmware.
    Send me some info
    Thanks
    Riki

  4. Robert Connan says:

    Hi! I just installed the FW and still getting my head around the new implementation of incoming messages. In this table are hexa and CC numbers mixed?
    Could you publish a list of all CCs only?

  5. electribe.shaman says:

    The first column (two Hex numbers) contains original NRPN numbers. As an example, in Synth1 Pan message
    02 01 Synth1 Pan 0~127 0B,
    The first two digits form the two-part NRPN message number, 02 (MSB) denotes ER-1, 01 (LSB) is the Synth1 Pan message number. Those are in Hexadecimal.
    0-127 (Decimal) simply shows the possible value range.
    This is all part of factory MIDI implementation and those codes are in Electribe ER-1 MIDI Implementation manual.
    The last column contains CC messages (in Hexadecimal) that correspond to the NRPN messages. They were added by this firmware update.
    Would Decimal numbers make this more readable?

Leave a Reply

Your email address will not be published. Required fields are marked *

21 − sixteen =