Can you convert CC's to sysex via the E1?

Can you convert CC’s to sysex via the E1 ?

Want to be able to control my sysex only synth Yamaha DX100 with my hardware sequencer which only sends CC’s ?
Thank you for any info.
Rob.

1 Like

Yes, theoretically it is possible. Electra can run different firmwares - it can be seen as if the firmware was an application running inside Electra hardware. I was considering developing a small app to demonstrate this, but due to lack of time and putting all the effort to the MIDI controller app, I did not give it a priority. A bi-directional CC-SysEx converter and a sequencer were two apps I was considering.

I feel it will happen but not in near future, possibly 2021.

3 Likes

I wouldn’t necessarily need a conversion, controlling the mks80 via sysex from the Elektra and controlling the Elektra via cc/nrpn would be fine for me. So would it be easier to “attach” a cc to a parameter which then sends out sysex?

2 Likes

great idea to bridge newer daws, like ableton, with older gear that just takes sysex. It would be great to have nrpns to sysex too, to overcome the 128 values of cc

2 Likes

@martin if I might be so blunt as to push this feature request? Now that we have virtual controls, wouldn’t it be “easy” to control a sysex parameter via cc (see above for my initial idea).
Thx in advance :blush:

2 Likes

Also interested since it’s easier to work with 14bit cc messages in a DAW than it is with sysex data.

2 Likes

I think using of virtual parameters would be cumbersome. I would like to make this possible but it might get implemented as a completely different firmware. To me it feels like it does not fit in the realm of the midi controller. Not decided yet, though.

1 Like

The conversion part or the attachment part?
FYI the kiwi tech midi controller offers exactly that feature (cc to controller, sysex from controller to synth). The use case is (for me), controlling the Mks-80 from ableton

In my opinion this translation would be really good to have inside the ‘midi control app’.
For example I got a Matrix 6 controller that does this.
It allows automation in a DAW.

1 Like

I had a talk about this one with @markus.schloesser at the superbooth and gave it some thinking time. I think there is a good way to add it to the midi controller app. The preset JSON allows each Control to have number of inputs. This is now used only for assignment of knobs. It is possible, however, to define extra inputs, such would be a MIDI CC message or MIDI 2.0 property. To me it seems to be a very neat way of implementing that.

3 Likes

Ah I think I played with that assignments for creating a ‘macro’.

The way you suggest seems to be a logical way to do this.
You can also also easily extend it this way.

Have there been any updates on midi cc to sysex translation?

I think it would be very nice feature to have.

I have an Alpes Machines controller for my Matrix 6 that does this.
I allows for all parameters to be sequenced or automated in a DAW.

I think you can in LUA with something like:

function midi.onControlChange (midiInput, channel, controllerNumber, value)
    if controllerNumber == 56 then
        midi.sendSysex (PORT_1, likely_some_function_for_CCtoSysex(value))
    end
end

So if you want CC56 to send a particular Sysex you’d need to make a function to translate the CC value to Sysex Data.

2 Likes

that would be cool if that works.

I might do something like creating a table of functions and then use the incoming CC number as the index into the table. That way, you could have dummy functions that do nothing (or just pass through the CC) and add specific functions for each CC you want to transform.

1 Like

Keep in mind you need to turn off forwarding if you want to replace the messages as it will forward the original and lua output one with it active currently.

If the destination like the Matrix 6 only responds to Sysex that shouldn’t cause problems but since I’m doing replacement stuff I have it turned off so only the lua sends the processed output.

With this approach you have to manually opt in and forward stuff in lua that you want sent.

I believe @martin had mentioned there’s more granular routing somewhere on the roadmap but it’s not currently available to my knowledge.

A way to resolve this, is by changing MIDI channel at the E1. Then the CC MIDI channel sent to the E1 is set different from the CC channel the destination would be listening to. If at the same time there is other info that needs to travel from origin to destination via the E1 (such as note on/off, or pitch bend), you’d have to foresee that when these messages arrive at the E1, the E1 copies and forwards them at the destination’s MIDI channel.
I tested this is the past, with the Notes Transmitter .

With some MIDI routers like iConnectivity MioXL or MioXM you may also choose to filter out certain messages to the destination. In that case the E1 would transmit the original CC messages, but the iConnectivity MIDI routers filters them out for you. I haven’t tested this though.

1 Like

This will likely work provided the controller in question is a basic midi keyboard not sending a ton of data.

If it’s something like a PolyAT keyboard/Wind Controller it could work if you don’t get too much data.

This approach would break down though for something like MPE where it’s already sending multiple channels (and often a fair bit of data).

Still it’s a bit bandwidth inefficient.

1 Like

That is true, but it would be a surprise a synth that uses SysEx instead of CC or NRPN, is able to interprete MPE anyways.

1 Like