1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

Best ways to use reaktor as a plugin when sending MIDI from Reaktor on more than one MIDI Channel

Discussion in 'REAKTOR' started by John6455, Aug 25, 2014.

  1. John6455

    John6455 Member

    Messages:
    102
    Currently I use instances of reaktor VST in ableton live as a host. It is very stable and offers multicore CPU support to help make the most of reaktor, instead of running all reaktor instruments in a single instance (or standalone).

    However the issue of ableton live not being able to receive a single MIDI channel from a reaktor instance is providing to be very frustrating. I have tried OSC and even created a MIDI bus (ie routing multiple channels of MIDI through a single channel and devoting a single MIDI CC number to act as a routing control). Neither solution has proved successful - more experimentation is needed with OSC, as currently I cannot get multiple instances to connect automatically when opening a live set. It must be done manually every time you open the set, which is no good for a live music setup.

    Therefore it leads me to look elsewhere to see what can act as a host for reaktor. In which hosts is it possible to receive separate MIDI channels from an instance of reaktor?
     
  2. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,454
    well wait, can't you just set which channels a given ensemble responds to in the properties?
     
  3. John6455

    John6455 Member

    Messages:
    102
    The problem isn't sending MIDI messages into an instance of reaktor. Ableton tracks work only on a single channel of MIDI messages. You can send these "monochannel" tracks into a particular channel input on the reaktor instance, ie: Reaktor1, Reaktor2, Reaktor3 ........Reaktor16

    However if you wish to have MIDI messages come from the reaktor instance, then routed elsewhere by ableton live, all the MIDI channels of the reaktor instance are merged into a single channel.

    The example that I use in this video is 2 sequencers in a single reaktor instance which send MIDI notes on separate channels. However when you route these MIDI messages into live's channels, all the channels are merged into a single channel. So you would be unable to send those 2 channels to separate instruments.
     
  4. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,454
    i see.

    the only other host i am familiar with is maschine and it is far far worse than ableton for midi routing. which is a shame because in most other ways i prefer it.

    i can think of workarounds but they are ugly at best.... it wouldn't be so tough to use a MIDI CC as a kind of 'channel control' parameter. for example, when CC# 23 = 1, any message received is considered to be channel 1.

    then have a receiver instrument that has a knob for midi channel and filters out any messages not on that channel, then sends them on their way.

    like i said, it's pretty ugly. maybe i'll think of something better..
     
  5. John6455

    John6455 Member

    Messages:
    102
    Thanks. Actually I have already created a working MIDI bus system, in which each MIDI message is preceded by a MIDI CC 3 message. So CC3 val 0 would be channel 1, value 1 would be channel 2 etc. Then a receiving instance of reaktor would filter out messages which aren't preceded by the correct channel number.

    I liked this idea because you could send any MIDI message except something using MIDI CC 3. That seemed like an easy tradeoff. However, while the system "works" it is quite CPU intensive for what is essentially just sending simple MIDI messages. The amount of processing required to get a message from point a to point b was causing audio clicks. I thought about making it into a tutorial, but its not going to be a practical solution.
     
  6. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,454
    well if you do it the most efficient way possible, which i think could be done mostly with a router and a compare module and a few other things, it seems to me that there is only events being processed and not generally that often. maybe i am missing something, or maybe you are trying to send a ton of events?
     
  7. John6455

    John6455 Member

    Messages:
    102
    The actual reaktor processing is fairly straightforward and simple as you guess. I believe the heavy cpu usage comes down to the amount of MIDI traffic and the number of reaktor instances required. Lets say you want to route 4 channels of MIDI from an instance of reaktor to separate instruments in Live, the MIDI message flow will look like the attached picture:

    Flowchart.jpg

    Firstly consider as a general rule that you automatically double the number of messages coming from the 1st instance (because it sends MIDI CC 3 before it sends a message). Every midi message is sent to every receiving instance of reaktor, and also keep in mind that there is CPU purely for running an instance of reaktor, even before it does any processing.

    I don't know enough about the VST format, but there must be some inefficiency when you send MIDI from from VST, to live, to VST again, to live again, then finally to an instrument.
     
  8. sowari

    sowari Moderator Moderator

    Messages:
    27,759
    i think this is an Ableton Issue, but i will look into it tomorrow after holiday in the UK.

    sowari
     
  9. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,454
    maybe i'll give this a shot when i have a chance.

    i'm tempted to say you're doing something wrong, but it could just be very inefficient handling on ableton's part, and you seem to have a pretty good idea of what you're doing... but it should be possible.
     
    Last edited: Aug 25, 2014
  10. ZooTooK

    ZooTooK NI Product Owner

    Messages:
    1,751
    I've had some issues with pipeing midi from one plug to another in Live. I couldn't get a plug to listen to a specific midi channel.
    Reaper however is excellent in this repect.
     
  11. John6455

    John6455 Member

    Messages:
    102
    I might look into reaper if it is able to share the load of many plugins over all the cores of the CPU (and handle multi channel midi!). It seems well priced, and Im not particularly beholden to ableton live as a DAW.

    As an update on OSC, it seems very promising, except that the OSC settings get messed up when you close and reopen the live set. Ie the receiving port or the destination ports change, then your signal chain no longer works. I have to experiment more to be certain before submitting a bug report though.
     
  12. ZooTooK

    ZooTooK NI Product Owner

    Messages:
    1,751
    Yes, AFAIK Reaper load shares plugins on multi-core.
     
  13. John6455

    John6455 Member

    Messages:
    102
    Just downloaded reaper and have been trying it out. It just.....works. :)

    Considering the price I might just buy it anyways to see how well it functions as an alternative to ableton live, which is certainly much more suited to making loops, and mixing & matching clips.
     
  14. John6455

    John6455 Member

    Messages:
    102
    Another option which I havent thought of in a while is plogue bidule.
     
  15. tomtakestooth

    tomtakestooth NI Product Owner

    Messages:
    170
    I've found Sensomusic Usine to work really well. There's even a free version you can download on their website. I had so much trouble routing multichannel midi within both Ableton and Bidule, but everything works great within Usine. Highly reccomend it.
     
  16. John6455

    John6455 Member

    Messages:
    102
    Is there a specific problem with bidule? I have been messing around with it, and the MIDI signal flow seems to function well, including all MIDI channels. The only quirk being some strange issues when assigning certain modules to certain CPU cores, where MIDI signals wont propagate through the signal chain, while audio will, albeit with crackles. Still the environment seems promising. I tried it years ago when it came out, and its come a long way.
     
  17. tomtakestooth

    tomtakestooth NI Product Owner

    Messages:
    170
    It's been a while since I tried bidule, but I remember not being able to easily route midi from 3 BCR2000's all on separate midi channels into reaktor and back out again. This may have been improved since, or maybe I was just doing something wrong, but when I tried doing the same in Usine, it just worked immediately.
     
  18. sowari

    sowari Moderator Moderator

    Messages:
    27,759
    fwiw - using Pro Tools 11 - i just succeeded in sending MIDI from Reaktor using two ASQ Sequencers - on MIDI Channels 1 and 2 respectfully - to an instance of Kontakt with 2 Synths, one on MIDI Channel 1 the other on MIDI Channel 2.

    to do this i sent the MIDI from an 'Instrument Track' with Reaktor to two 'MIDI Instrument' Tracks and then sent the MIDI from those Tracks to an 'Instrument Track' with Kontakt. in Pro Tools, i can set which MIDI Channel the MIDI Instruments are receiving from Reaktor - this can't be done in Ableton. it would be great if you could choose which MIDI Channel you are receiving from but instead it is just 'Reaktor' - thus it merges the MIDI Output from the Reaktor Ensemble.

    sowari
     
  19. mpl

    mpl NI Product Owner

    Messages:
    496
    Bidule can now load as a midi fx plug in.I've had good results with this and logic x.It played back multiple channels in kontakt and omnisphere, and with the midi freeze plug in i was able to drag the midi to the arrange page for further editing(and for the first time i didn't have to quantise as the notes were where they should be,bang on tha beat).Although it would be good if reaktor was able to load as a midi FX plug in.
    mike
     
  20. tomtakestooth

    tomtakestooth NI Product Owner

    Messages:
    170
    what would be even better was if you could load vst's in Reaktor the same way as you can in Bidule or Usine.