Sending And Controling Sysex With Renoise

Unfortunatly, sending sysex-data with Renoise is not supported. I tried to find a workaround, because my synth Access VirusC accepts sysex-messages on certain parameters only (in this example I will control the LFO1 Amount-Parameter of the VirucC). I think this will work for any other synth as well, simply adjust the Sysex-Message (for the format have a look into the synth’s manual) and of course the parameter number.

The workaround:
Control the the sysex-parameter with the MidiCC Device. Assign an (unused) CC-Number and translate it to sysex and send it to the synth.
So you can deal sysex commands as if they are normal MidiCC commands! See the picture below.

[center]
LFO1 Amount is controlled by MidiCC #12 and will be translated to sysex
Cutoff is a normal MidiCC #40 parameter[/center]

How it works:
It is done with a great tool called Bomes Midi Translator. It translates incoming Midi-Messages (here: midi cc) to custom output midi-messages (here: sysex). [img]

What you need:
Bome’s Midi Translator
(translates incoming Midi-Messages to custom output messages)
Midi Yoke
(establishes virtual midi-devices for connecting two software programs via midi)

How to:
First of all, install the MidiTranslator and MidiYoke, reboot, then start Renoise and MidiTranslator.

I. Renoise Settings:

  1. Instrument Settings/Midi: Set the Midi-Device to Midi Yoke 1 and the midi-channel your synth is adressed. (in this example Channel 4)
  2. Add a MidiCC Device in the track where you want to control the synth. Choose an (unused) Midi-Controller Number (in this example #12) (see first picture)

II. MidiTranslator Settings:

  1. Do the following settings (via pull down-menues):
  • Midi-In: Midi Yoke 1
  • Midi-Out: your real midi out device where the synth is connected to
  • Options: Enable Midi Thru (!!)
  1. Make a new preset and give it a name. Here you can store all your midicc->sysex translations for the current synth.
  2. Click on Add Translator and give it a name (here: LFO1 Amount)
  3. Edit the translation like the following (note that the number format is HEX!):
  • General: Enable “Active”, Disable “Stop processing…”
  • Incoming: Here enter the MidiCC of Renoise in hex format. Just enable “Capture Midi” and change the slider in renoise. Then you should get the MidiCC Message in the required format. In this example it is B3 0C oo (B3: Effect1 on Channel 4; 0C: the Controller#12; oo: a variable for the value = process every value)
  • Outgoing: The parameter of the synth you want to control via the MidiCC. This is the sysex-command. For the exact format have a look at the manual of your synth. Every synth has a different format!!
    For the VirusC the sysex message looks like:
    F0 00 20 33 01 10 71 03 50 oo F7
    (F0: Start sysex; 00 20 33 01: Manufacturer IDs; 10: device ID omni; 71: page B; 03: midi channel 4; 50: Parameter LFO1 Amount (dec. 80); oo: variable parameter value = process every value; F7: end of sysex)
  1. Click apply to save the translation
  2. Now switch to Renoise play a note on your synth while changing the assigned MidiCC Slider or make an automation curve. You should hear a difference :)
  3. Do step 4 for every parameter you want to control.

[center]
The Miditranslator settings for LFO1 Amount[/center]

I think it should work with Aftertouch-Messages also, and the other way round (sending sysex to renoise, but I haven’t tested it).

If you can test this working the other way around i’m gonna pin this topic.

@vv: I have tested it, and it works also the other way round. (but not both ways at one time at the moment; either getting sysex or sending sysex). Btw. it would be nice to have at least two more Midi-In Devices :)

I. MidiTranslator Settings:
Like above, only the other way round:

    • Midi-In: your real midi in device where the synth is connected to
  • Midi-Out: Midi Yoke 2
  • Incoming: The Sysex Message of the controller of the synth (Just activate “capture Midi” to get it)
  • Outgoing: The Renoise MidiCC Device Number in HEX Format. (Here Device#12: B3 0C oo)

II. Renoise Settings:

  1. Setting Midi Yoke 2 as your Midi-In Device (Midi-Out in Instrument-Settings stay the real Midi-Out)

  2. Go to the midi-map parameter menue, select the controller you would like to control with your synth-knob sending sysex (here: Delay/Send) and move the knob. Renoise should recognize the movements as MidiCC #12 events.
    So now you can record your sysex-knob-movements as if they were MidiCC and use your synth for controlling every Renoise-Parameter that is midi-mapable.*

Remember: If you want to record the “real” synth-parameter (in this case LFO1 Amt) you will not hear the recorded movements when you press play. Therefore you have to make the settings the other way round (see first post). As far as I can figure it out, you can either getting sysex or sending sysex, but not both at the same time. So if you want to record and play back the “real” synth-parameter you have to change the settings everytime (but once you have made the preferences, it is just switching the MidiTranslator-Presets and the In/Out Settings, so no real big effort)


*Maybe it is worthwhile for you to check the other possibilities of the MidiTranslator. As it supports keystrokes, it is imaginable to start/stop/etc. Renoise with your synth.

Acknowledged.

I would include this in the monthly news or even in the newsletter, like in a “do you know that…” section, as some people could have lost interest in Renoise because of the inability to send SYSEX messages

Well, it seems to work if two instances of the Midi-Translator are launched. Then simply activate on the first instance the sysex-in configuration and on the second the sysex-out config.

Any chance that Renoise will fully support Sysex in the future ?

I would love to be able to dig deep into my Yamaha sw1000 + plg cards via sysex (which I can do with Cubase SX and Podium) …

1 Like

I’ve been using this workaround for a while now. Works great!

Thanks.

I was hoping this thread had a work around for sending/receiving SysEx DUMPS (to send / receive patch changes at the beginning and during the song).

The process outlined in this thread is just another way to send controller changes… which can be useful in many cases depending on the capabilities of your hardware, but for many renoise/hardware users, the key missing element is the ability to send and receive (record) patch changes for external gear… this method would allow your xrns files to manage the patches in all of your external hardware w/o having to use a patch librarian, or remember which patch has already been used before saving over the patch on the hardware. Synths like many of the clavia pieces, don’t give you the ability to name patches on the hardware, so there is no way to tell if you have already used bank C patch 117 (for example) in a song before saving over it on your hardware synth.

Regarding the request for more than two midi controller ports, would a routable 8x8 midi interface solve this problem? I use a motu timepiece and just do my routing with Motu’s ClockWorks application… it’s dead simple. They’re cheap (especially if you have a parallel port on your computer and dont mind getting one used)

Cheers!!!

Hi from Here!! :guitar:

Well, I have found this about SysEx implementation in Renoise…

Could be great!

http://www.cougar.lu/renoise/sysex/

Peace!

:drummer:

Please… do it! :dribble:

I’d kill for something like that, if Renoise would receive and record Sys-ex, communication with my synth (Evolver DSI) would be perfect, that little bitch only sends sysex, not CC

I am a new renoise user (bought it yesterday), i would also like this feature added for my hardware (especially my Yamaha DB50XG).

Or some way of just passing the SYSEX thru Renoise to the external device, no need to ‘record’ the data in renoise ( i can control the wavetable i have in XGgold, send the data to renoise thru MIDI Yoke, rightnow renoise only reconizes the CC stuff and program changes ).

Cheers.

At least it would be cool to have Renoise let through all Sysex Messages via the MIDI Filter. I use Edirols PCR-300 Controller which can send SysEx Messages. But unfortunalety Renoise (now 2.6 Beta) filters them out.

I remember running across this too… but it’s just a stub someone created who started taking a stab at something using delphi. . i’ve still since heard of no interest perusing this coming from the renoise dev team, regardless of the fact that the guy posted his source.

I’d be curious what a renoise developer might have to say about when more robust sysex handling might find a home in renoise??

Recently someone was experimenting with Sysex in the Lua script-engine.
He ran into some problems regarding the format, i don’t know how far he got, but the Midi API should allow to communicate sysex messages as well.

Imho, sysex handling - at least simple static recording and sending to catch synth settings - would lead renoise a big step further to catch up with the big ones. It hurts me most not to be able to save the synth settings in the song, where it belongs to.

1 Like

Hello all,

i stumbled across this workaround Cie posted here the other day and i want to use this to control my DSI Evolver. some of its parameters can be controlled with CCs but the vast majority is Sysex only, so it’d be nice to manipulate them out of Renoise too.

So i got MidiYoke and Bome’s Midi Translator installed and connected everything like written in the workaround. i got as far as sending a CC from Renoise’ Midi CC Device to Midi Translator, which captured the input correctly as Incomming.

Now what i can’t get done is to come up with the right Sysex command to be transmitted to my Evolver. This is obviously on behalf of my very own stupidity and not a mere technical problem. :blink: I never used sysex before…

I know all info i need is is my Evolver handbook, but looking at this data is more confusing than anything and i just can’t get this right. Here’s what it says (as an example i want to modulate the Output Hack Amount that is listed as a Program Parameter Data):

[i]System Exclusive Messages - Program Parameters

Status Description

1111 0000 System Exclusive (SysEx)
0000 0001 DSI ID
0010 0000 Evolver ID
0000 0001 File Version
0000 0001 Program Parameter
0vvv vvvv Parameter Number 0-127
0000 vvvv Parameter Value, LS Nibble
0000 vvvv Parameter Value, MS Nibble
1111 0111 End of Exclusive (EOX)

the data for Output Hack Amount is:

Parameter: 39
Range: 0-14[/i]

So my question is how can i make a sysex command out of this data that will work?

So if someone with Sysex Knowledge could help me out with this or put me in the right direction that’d be great!

Thanks,
Tonschabe

EDIT: nevermind. i got it working now. amazing! thanks for sharing this tip Cie!

I’d like this implented too :)

hey,

i just managed to send sysex all from in renoise using an instance of ctrlr… have a look at my findings here:

http://ctrlr.org/viewtopic.php?f=48&t=587&start=0

(see last post)

you can automate too :)