Sign in to follow this  
Followers 0
toneburst

Sysex > CC Translation

13 posts in this topic

Hi,

this is slightly off-topic I'm afraid, but doesn't really neatly fit into any of the MIDIBox forums, so this one is probably the nearest match.

I have an old rackmount synth (a Korg EX-8000), whose sounds can be edited via sysex commands. Unfortunately, while I have a MIDI controller what can happily send out the relevant strings, my sequencer of choice (Ableton Live) not only won't record my sound tweaks, it actively filters them out.

Soo.. it just occurred to me that I could possibly use one of my spare MIDIBox Core modules to translate standard MIDI Continuous-Controller messages to the correct Sysex strings, so that  could tweak the sounds by sending CCs from my controller and record my changes in Live (since it will happily work with this kind of data).

Just wondering if anyone out there has done anything similar, or knows if this would be a feasible thing to attempt. I've never tried coding anything for the MIOS platform before, but I have some experience of PHP, JavaScript and a few other interpreted languages.

Anyone any thoughts?

a|x

Share this post


Link to post
Share on other sites

Probably pretty easy man :) It won't be as responsive as it would if it supported CC's natively, as in, you won't get realtime control out of it, but it's do-able.

What do the required sysex strings look like?

Share this post


Link to post
Share on other sites

yeah it's unfortunate, but live doesn't seem to respond to sysex at all.  even with liveapi, i couldn't get it to work.  but writing a midibox application for this shouldn't be too difficult.

i would think you can get realtime control out of it.  for an application i'm writing for mios and liveapi, i'm having to use 3 sets of 3 byte midi messages instead of sysex to get detailed information into live, and receive sysex via live (sometimes many bytes at a time) and it's been very responsive.

connect your controller to midiOX, turn a knob, and paste us a few lines of what the controller data that sends out the sysex looks like.  it might be difficult to translate if the controller data has a much higher resolution or contains more than two bytes of control information.

alternatively, i know that a script could be written for liveapi that sends out the correct sysex strings, but i don't think you can "catch" the midi recorded to a channel and translate it.  you'd only be able to receive incoming midi and bounce sysex to the output.

Share this post


Link to post
Share on other sites

Oops yeh... if it's just for live, do it in live :)

Share this post


Link to post
Share on other sites

Seems I caused some confusion... The midibox will convert CC to sysex in real time, no worries. But I doubt the synth will respond accordingly... As you already know I'm sure, the response to sysex on these old boxes is usually far from musical (many of them simply drop out when receiving sysex) ;)

Share this post


Link to post
Share on other sites

Seems I caused some confusion... The midibox will convert CC to sysex in real time, no worries. But I doubt the synth will respond accordingly... As you already know I'm sure, the response to sysex on these old boxes is usually far from musical (many of them simply drop out when receiving sysex) ;)

Actually, the EX-8000 seems pretty good in this respect. You can tweak controls via sysex in realtime, while playing notes and it doesn't seem to introduce any particular latency or glitching. And you can alter parameters while a note is held (filter cutoff for example).

a|x

Share this post


Link to post
Share on other sites

Thanks for all your responses, guys!

This is all very helpful stuff. I'm now thinking maybe I should go the route ultra suggests, and try making something using the Live API. I'm still a little unsure that I'd be able to do what I want this way though. I'm definitely veering off-topic here, but what I want to do essentially is:

• Send CCs from my controller to Live (using a new custom template I'd design myself)

• Record CCs in Live

• Have a plugin to take the MIDI output of a channel and translate the CCs into Sysex before outputting them to the EX-8000, along with any recorded note data. This would hopefully allow realtime tweaking of controls when in Monitor mode, and playback of pre-recorded control-tweaks.

Is this possible?

In terms of the hardware approach, the advantage of this would be that potentially, I could install a MIOS-based hardware mod inside the synth case to retrofit MIDI CC support, which would work in any MIDI sequencer.

Unfortunately, I'm at work at the moment, so I don't have access to the actual Sysex strings the synth uses. I do have documentation on it though, as I made a custom template for my Novation XStation to send out the relevant data. I'll dig them out as soon as I get home.

Cheers guys,

a|x

Share this post


Link to post
Share on other sites

Actually, the EX-8000 seems pretty good in this respect. You can tweak controls via sysex in realtime, while playing notes and it doesn't seem to introduce any particular latency or glitching. And you can alter parameters while a note is held (filter cutoff for example).

Rare gold. Noted, thanks man!

Share this post


Link to post
Share on other sites

I guess because it's partly analogue under digital control, it's more likely not to glitch out when you edit sounds than, say, an old FM synth, which is completely digital. Wild speculation, of course, but I do know the TX-81Z, an otherwise quite cool synth, never responded very well to realtime sound-editing attempts via sysex.

a|x

Share this post


Link to post
Share on other sites

A couple of years ago my friend and I set up a MIDIBOX to translate Sysex to CC for my pipe organ project.  I think the version that we're using was done in assembly since that was before the availability of the c environment.  Should be even easier to code in c.

Share this post


Link to post
Share on other sites

alternatively, i know that a script could be written for liveapi that sends out the correct sysex strings, but i don't think you can "catch" the midi recorded to a channel and translate it.  you'd only be able to receive incoming midi and bounce sysex to the output.

Oh, hang on, is this the unofficial 3rd-party Live API you're talking about? If so, it's just ruled itself out, sadly, since I'm a Mac user, and it's Windows-only, apparently. :(

a|x

Share this post


Link to post
Share on other sites

Hiya,

dredging this thread up from the depths here ;)

I've been away from MIDIBox, and general music-related stuff for a while now, but recently had a bit of time to work on an old track in Live ( if anyone's interested), and I got to thinking about this old problem again. It turns out some Python boffins have been looking into this, and have discovered a way to send Sysex out of Live by writing custom MIDI Remote Scripts. It should be possible to then send and receive arbitrary sysex messages from a Max4Live MIDI Effect instance. I bought M4L a while back, but never got around to trying it out, but once I get my head around how it works, I should be able to knock together an Editor for the EX-8000 that can be used on a Live MIDI channel, and automated in the same way as any plugin in Live. I've just bought a 2nd-hand Novation ReMOTE SL Zero, so I'm also hoping that it will work nicely with Automap, so I'll be able to select the M4L patch in Live, and see all the parameters for my EX-8000 come up, nicely named, on the ReMOTE SL's screen.

Here's the (ongoing) thread on the Ableton forum

http://forum.ableton.com/viewtopic.php?f=35&t=133983

a|x

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0