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 (Decimal) CC [H]
02 00 Synth1 Low Boost 0~127 0A
02 01 Synth1 Pan 0~127 0B
02 02 Synth1 Pitch 0~127 0C
02 03 Synth1 Wave 0~63 : Sin/Tri 0D
02 04 Synth1 Mod Type 0~5 : Saw/Squ/Tri/S&H/Noise/Env 0E
02 05 Synth1 Mod Speed 0~127 0F
02 06 Synth1 Mod Depth 0~127 10
02 07 Synth1 Level 0~127 11
02 08 Synth1 Decay 0~127 12
02 09 Synth1 Motion Seq Type 0~2 : Off/Smooth/TrigHold 13
02 0A Synth2 Low Boost 0~127 14
02 0B Synth2 Pan 0~127 15
02 0C Synth2 Pitch 0~127 16
02 0D Synth2 Wave 0~63 : Sin/Tri 17
02 0E Synth2 Mod Type 0~5 : Saw/Squ/Tri/S&H/Noise/Env 18
02 0F Synth2 Mod Speed 0~127 19
02 10 Synth2 Mod Depth 0~127 1A
02 11 Synth2 Level 0~127 1B
02 12 Synth2 Decay 0~127 1C
02 13 Synth2 Motion Seq Type 0~2 : Off/Smooth/TrigHold 1D
02 14 Synth3 Low Boost 0~127 1E
02 15 Synth3 Pan 0~127 1F
02 16 Synth3 Pitch 0~127 5F
02 17 Synth3 Wave 0~63 : Sin/Tri 21
02 18 Synth3 Mod Type 0~5 : Saw/Squ/Tri/S&H/Noise/Env 22
02 19 Synth3 Mod Speed 0~127 23
02 1A Synth3 Mod Depth 0~127 24
02 1B Synth3 Level 0~127 25
02 1C Synth3 Decay 0~127 26
02 1D Synth3 Motion Seq Type 0~2 : Off/Smooth/TrigHold 27
02 1E Synth4 Low Boost 0~127 28
02 1F Synth4 Pan 0~127 29
02 20 Synth4 Pitch 0~127 2A
02 21 Synth4 Wave 0~63 : Sin/Tri 2B
02 22 Synth4 Mod Type 0~5 : Saw/Squ/Tri/S&H/Noise/Env 2C
02 23 Synth4 Mod Speed 0~127 2D
02 24 Synth4 Mod Depth 0~127 2E
02 25 Synth4 Level 0~127 2F
02 26 Synth4 Decay 0~127 30
02 27 Synth4 Motion Seq Type 0~2 : Off/Smooth/TrigHold 31
02 28 Close Hi-Hat Low Boost 0~127 32
02 29 Close Hi-Hat Pan 0~127 33
02 2A Close Hi-Hat Pitch 0~127 34
02 2F Close Hi-Hat Level 0~127 35
02 30 Close Hi-Hat Decay 0~127 36
02 31 Close Hi-Hat Motion Seq Type 0~2 : Off/Smooth/TrigHold 37
0232 Open Hi-Hat Low Boost 0~127 38
02 33 Open Hi-Hat Pan 0~127 39
02 34 Open Hi-Hat Pitch 0~127 3A
02 39 Open Hi-Hat Level 0~127 3B
02 3A Open Hi-Hat Decay 0~127 3C
02 3B Open Hi-Hat Motion Seq Type 0~2 : Off/Smooth/TrigHold 3D
02 3C Crash Low Boost 0~127 3E
02 3D Crash Pan 0~127 3F
02 3E Crash Pitch 0~127 40
02 43 Crash Level 0~127 41
02 44 Crash Decay 0~127 42
02 45 Crash Motion Seq Type 0~2 : Off/Smooth/TrigHold 43
02 46 H.Clap Low Boost 0~127 44
02 47 H.Clap Pan 0~127 45
02 48 H.Clap Pitch 0~127 46
02 4D H.Clap Level 0~127 47
02 4E H.Clap Decay 0~127 48
02 4F H.Clap Motion Seq Type 0~2 : Off/Smooth/TrigHold 49
02 50 Audio In 1 Low Boost 0~127 4A
02 51 Audio In 1 Pan 0~127 4B
02 57 Audio In 1 Level 0~127 4C
02 58 Audio In 1 Decay 0~63 4D
02 59 Audio In 1 Motion Seq Type 0~2 : Off/Smooth/TrigHold 4E
02 5A Audio In 2 Low Boost 0~127 4F
02 5B Audio In 2 Pan 0~127 50
02 61 Audio In 2 Level 0~127 51
02 62 Audio In 2 Decay 0~63 52
02 63 Audio In 2 Motion Seq Type 0~2 : Off/Smooth/TrigHold 53
02 64 Delay Depth 0~127 54
02 65 Delay Time 0~127 55
02 66 Ring (Synth1 & Synth2) 0~63/64~127 : Off/On 56
02 67 Ring (Synth4 & Audio In) 0~63/64~127 : Off/On 57
02 68 Input Gain 1 0~100 58
02 69 Input Gain 2 0~100 59
02 6A Accent Level 0~127 5A
02 6B Delay Type 0~2 : Off/MotionSeq/TempoDelay 5B
Tempo 5C
02 6C Mute 1 5D
02 6D Mute 2 5E

5 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

Leave a Reply

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