Jump to content

MIDI CC -> SYSEX String Conversion


toneburst
 Share

Recommended Posts

Quick query:

would it be possible to write a MIOS application to take a MIDI CC as an input, and output a sysex string? I have an old MIDI synth module, whose sounds are editable via sysex, but my favoured DAW, Ableton Live, actively filters out sysex, so it would be cool to retrofit the synth so the sounds could be edited via CCs.

I've never done any MIOS coding, but I'd love to see what the program above would look like. If someone could post a snipped demonstrating how to convert a single CC to a sysex string I'd be really grateful.

Cheers,

a|x

Link to comment
Share on other sites

Basically it would look like this example:

http://www.ucapps.de/mios_c_cc_to_nrpn.html

But instead of void MyFun_Send_MC303_NRPN() you would write something like:


void MyFun_Send_OldSynth_SysEx(
unsigned char evnt0, unsigned char sysex_parameter, unsigned char value)
{
MIOS_MIDI_TxBufferPut(0xf0); // SysEx Header
MIOS_MIDI_TxBufferPut(0x11); // to your
MIOS_MIDI_TxBufferPut(0x22); // old Synth
MIOS_MIDI_TxBufferPut(0x33); // however it looks like
MIOS_MIDI_TxBufferPut(0x44); // too bad that you haven't posted a spec
MIOS_MIDI_TxBufferPut(sysex_parameter); // parameter number (specified when calling this function)
MIOS_MIDI_TxBufferPut(value); // the CC value
MIOS_MIDI_TxBufferPut(0xf7); // end of SysEx (or do you need a checksum before?)
}
[/code]

Best Regards, Thorsten.

Link to comment
Share on other sites

Wow, thanks for the instant response, tk!

That looks relatively simple. So would the complete application forward all other MIDI events to the MIDI out unchanged?

a|x

Basically it would look like this example:

http://www.ucapps.de/mios_c_cc_to_nrpn.html

But instead of void MyFun_Send_MC303_NRPN() you would write something like:


void MyFun_Send_OldSynth_SysEx(

  unsigned char evnt0, unsigned char sysex_parameter, unsigned char value)

{

  MIOS_MIDI_TxBufferPut(0xf0); // SysEx Header

  MIOS_MIDI_TxBufferPut(0x11); // to your

  MIOS_MIDI_TxBufferPut(0x22); // old Synth

  MIOS_MIDI_TxBufferPut(0x33); // however it looks like

  MIOS_MIDI_TxBufferPut(0x44); // too bad that you haven't posted a spec

  MIOS_MIDI_TxBufferPut(sysex_parameter); // parameter number (specified when calling this function)

  MIOS_MIDI_TxBufferPut(value); // the CC value

  MIOS_MIDI_TxBufferPut(0xf7); // end of SysEx (or do you need a checksum before?)

}

Best Regards, Thorsten.

Link to comment
Share on other sites

However you may find that the Synth expects non 7bit sysex message..

like my roland TD6V drumkit, to change the sound, has 1024 different values, so it uses 2 bytes to choose it. to change the pitch, also is 920. etc.

and somethings may be on/off.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...