Using Reason’s RPG-8 within Ableton Live

…and without Max for Live getting involved.

The one thing I really enjoy about both Ableton Live and Reason is the amount of tweaking they’ll allow you to do. In most cases there is no “right” or “wrong” way to solve a problem, instead there are a dozen different ways to get something done and each will have its advantage or disadvantages. But the best part is that both programs will easily allow you to do totally crazy stuff, things totally out of the ordinary.  And here is yet another example of that…

Live and Reason over rewire usage; the dry theory…

Normally when you want to use Reason together with Live you’ll setup a rewire connection. In this setup Live will control the communication with your hardware (midi controllers, audio interfaces, etc.) as well as provide Reason with midi data to process after which it will pick up the produced audio by Reason again and sent this across its regular channels.

Rewire is all about sending out midi and receiving audio. People are working on the next version of the rewire protocol which should allow for more extensive communication, but in the mean time we are limited to sending midi out and getting audio back whenever we’re using rewire slaves.

That is, up until now…

Getting midi from Reason into Live

As mentioned above both Reason and Live allow for much tweaking. In Reason you have both the environment itself which provides massive routing capabilities just like some of its devices. In particular Thor; the routing capabilities of this synthesizer are rivalled only by the Reason environment itself. And these capabilities are what we’ll be using here.

Although it is not possible to send midi over rewire channels back into Live you can send audio into Live. And that made a few people think about this; Thor’s extensive routing capabilities provide all the facilities you need to send out midi data over an audio channel.

So when this “midi audio” comes into the rewire master all you’d need is to somehow process the audio and “extract” the midi data which was sent. And that is basically what we’re going to do here…

Don’t worry, it sounds much more difficult than it actually is.

Preparations

First of all let it be well known that in this case I’m but the messenger. I was one of the first people who picked up on this with Ableton Live and set it up (after being quite the unbeliever and critic over it as well) but I’m not the one who thought it all up. That credit belongs to a guy named Zenmonkey, you can find him on both the Reaper and Live forums (more active on the Reaper forums).  See for all the details the last part of this blog post.

Zenmonkey is both a Reaper and Reason user. And he too understands the extreme extensiveness which Reason has to offer, and so came up with the idea to send midi data using audio channels. He solved the problem with sorting out the midi data again by writing a javascript program for it.

So, all we basically need is to setup Reason as a rewire slave and configure it so that it sends the midi data generated by its RPG-8 arpeggiator out of the audio channels, obviously we need Zenmonkey’s javascript code and finally we need to have a way of using this javascript code within Ableton Live.

ReaPlugs VST FX Suite

Reaper is a DAW which heavily utilizes external plug-ins. And fortunately for us its authors also provide a freely available plug-in suite which consists of many very useful utilities. Compressors, equalizers, delay effects but in this case we’re after the ReaJS plug-in. A user-editable effect processor which allows you to program audio effects in javascript and use them inside this plug-in.

You can download the ReaPlugs here, and you can download Zenmonkey’s code here (be sure to check out the rest of the thread in that forum, its a good read).

Showing the ReaPlug structure.The ReaPlugs need to be installed in a place where they are reachable by Live. Keep in mind that merely creating shortcuts to the .dll files will not cut it since ReaJS depends on a specific directory structure, as can be seen to the right.

As you can see I keep all of my vst’s in the VST sub directory of my ‘Ableton’ data directory. This ‘Ableton’ directory also contains stuff like my library, samples, some Komplete related data and some of the freely available livepacks which Ableton provides for download.

Now, what is important here is that you put the javascript files from Zenmonkey in a place where they can be loaded by reajs. I think the best way is to create a sub directory (I called mine ‘Reason’) and put the scripts in there. This will also make sure that you don’t turn things into a big mess.  Once again, you can see in the picture here how I have set things up.

Rewired Reason

The next requirement is to setup Reason so that it acts as a rewire slave for Live. You can easily test this by pulling in an instrument such as Thor and use this to play some sounds. If that works you know that Reason is ready.

Setting up

Now that we’re all prepared start by pulling the reajs plugin onto a midi track in Live. Because it is an audio effect you’ll notice that there will be some space left before it; that’s quite ok, just ignore that for now.

Now click on the ‘load’ button, find the directory you created and inside this directory you should find 3 javascript files: “CV Note Gate“, “CV Curve Midi CC” and “CV Curve Midi PB CP“. Load the “Note Gate” javascript file.

Once the file is loaded you should end up with a window like the one which you can see below.

ReaJS screenshot.Now, pay attention to the channels its using. You don’t have any influence on the midi channel since Live takes care of all that, so just ignore that one.

However, do pay close attention to the audio channels on which it expects to receive midi data. By default, as can be seen here, note cv data comes over the left channel whereas gate cv data is picked up on the right channel.

 

Be very careful to always keep the option “audio passthrough” set to its default of no.

The reason for that should be pretty obvious; under normal circumstances you do not want to hear the noise which your midi data will produce. And believe me; it can produce some very horrific and unwanted noise indeed. Now its time to setup Reason..

Configuring the Reason part

In your Reason rack all you basically need is a Thor synth and obviously the RPG-8 arpeggiator.

Reason setup.I would advice you to initialize the Thor patch so that you will end up with an empty routing section, this makes it a whole lot easier to set everything up.

The patching is pretty sub standard, as can be seen here. Connect the Gate CV out of the RPG8 to the CV1 inlet of Thor and the Note CV out should go to the CV2 inlet of Thor.

Next you can simply connect Thor’s audio outputs to those of the hardware device. If you pulled in Thor without keeping the shift key pressed its likely that Reason will have already setup these connections for you.

Now comes the “hard” part; telling Thor that it should send out the data coming into its cv inlets right to its audio outlets.

Now, this could be a bit confusing but we actually need to do a little cross wiring. Remember the situation above?  reajs expects gate CV to come into the right audio channel and note CV to go into the left audio channel.

So; CV1 input should be send out of audio outlet 2 whereas CV2 input should be send out of audio outlet 1. Of course you can also easily do some “cross patching” by connecting the left outlet with the right inlet of the hardware device, but that’s all up to you.

Thor's routing section.I prefer to do the routing in the routing section of Thor itself, this also makes the cable section look less confusing and will possibly prevent any mistakes from getting made (I can see myself loading a Reason song but only to conclude that audio out 1/2 should be connected to outlet’s 1/2 of the hardware device).

Configuring the Live part

Configuring the Live part.The easiest way to setup the rewire section in Live is by pulling in an external instrument before the reajs plug-in. Now be careful to set it up so that it will send the midi output to the arpeggiator (the Arp device) and not to an instrument like Thor.  Also be sure to setup the incoming audio to the first 2 audio channels.

This may sound confusing at first but don’t forget that Thor is only being used to route the midi data, and nothing else. In our setup Thor is not an instrument but merely a crude “relay point”.

The thing which really matters to us is the arpeggiator, and to make it process any midi data we obviously need to send it some, that’s what we’ll be doing here.

Now we’re almost done…

The only problem we face now is to make some good use of the incoming midi data. On first hand this may seem very tricky since the ‘reajs’ plug-in is picked up as an audio effect by Live. In other words; the only kind of data which Live expects coming from reajs is audio data.

Setting up the routing in Live.I think the best way to overcome this problem is to pull in another midi track and tell that one to accept only midi coming from the “rewire track”. As you can see I prefer pinpointing the midi data to come from the reajs plugin, but you can also use the “post fx” option, that will make no real difference.

To make it easier on your end I’d suggest switching monitoring to “In” so that you only have to worry about having to arm 1 midi track; the one which will directly control the Reason arpeggiator.

After that you should be all setup…

Configure the Reason arpeggiator in a specific way, arm the midi track and start playing a note. For example; I really love the “3-1″ kind of options combined with an octave change (‘up + down’ for example).

That is the kind of effect which Live’s native arpeggiator effect simply doesn’t support at this time.

And before I forget.. Don’t worry if you spot a signal coming in from Reason which seems to stay constant all the time. This is perfectly normal, see for an example the screenshot below. This is why I warned you earlier to keep the option “audio passthrough” set to no.

A constant sound signal is coming in.

And there you have it

Now you should be able to easily use Reason’s ARP effect within Ableton Live.

Obviously you’re not merely limited to just the arpeggiator, I’d also advice you to experiment a little more. Although Live’s midi editor can easily prevail it might still be an interesting experience to check up on the Matrix effect to see what you can do with that one.

However, its been my experience so far that out of all devices the arpeggiator works the best.

Now, to give you a quick recap of the interesting URL’s again:

  • The original discovery by Zenmonkey is posted in this forum thread. Here you can also download his javascript code.
  • This got also discussed on the Ableton forums, you can find that thread here.
  • You can grab the excellent ReaPlug suite here.

Summing up….

I think examples like these are solid proof that although a DAW may seem “small” (like Reaper) or “limited” (like Reason) one shouldn’t judge a DAW by its appearance or even common reputation alone. Get your hands dirty, look into it and who knows.. you may come out surprised at the sheer impact too.

To close..  While speaking of other DAW’s I can’t help mention / sharing this video which shows you some of the upcoming features in the next FL Studio version. FL Studio, formerly known as Fruity Loops, is one of those DAW’s which many people approach with a certain bias and maybe even some disdain. When I first came into contact with FL Studio I felt completely lost, never really tried it again.

But that doesn’t mean I don’t try to keep up…  Quite frankly; a video such as this, and especially the sound track which accompanies it, makes me very glad that I didn’t.

Have fun!

8 comments

  1. Sondance says:

    This almost makes me want to buy reason *LOL*. Looks pretty cool!

  2. your the man says:

    thanks for doing the walk thru. I never got around to do this in live.

    All hail zen monkey for his greatcontribution

  3. you the man question says:

    so I got everything setup and tried to play some stuff via the rpg 8 and live 8.2.1 crashed on me.

    Now I have no effects or anything when I load up the reaper plug on a midi track.

    I’ll try to uninstall and reinstall but wondering what version of live your on.

    oh yeah i’m on reason4

    any help or suggestions would be great

  4. The Sheriff says:

    What the heck ?!!

    U can send MIDI from Reason to a DAW?

    This looks awesom, does this work with cubase too?

    Cool blog man!

    pretty fun website too; long texts though *LOL*

    (cool stuff bto)

  5. ShelLuser says:

    Hi there,

    Thanks for the comments.

    It seems I’m using the exact same versions as yourself. I use Live 8.2.1 (well; Suite, but that shouldn’t make a difference) together with Reason 4.  The reaplugs suite hasn’t been updated since (iirc) february this year so that shouldn’t matter either.

    Never experienced crashes myself, perhaps it can help to start by setting up a rewire connection with Reason (so actually play something using thor for example) and after that work your way to this setup.

    Can you pinpoint when the crash occurred ?

  6. ShelLuser says:

    Not sure on how you’d set it up in Cubase, but since it also supports vst plugins this should be doable.

    The main requirement is that you can use reajs as an audio effect. And that you can setup some kind of routing to extract / use the midi data which it sends out.

  7. Nitpicker says:

    Me again ;-)

    In your ending stuff you say not to underestimate daws. Named reaper and reason. BUT.. Reason is not a daw :-)

    HEY; I know i r teh nitpicker…

    Love your post, tried it and it fucking works too. Amazing stuff!

    All hail Zenmonkey and ShelLuser!!! :)

  8. your the man says:

    I’ll get some time tonight to play with it. I use reason 4 rewired into ableton all the time. I’ll just have to redownload and install the replugs again and see if they are their.

    Either way I’ll get back to you.

    What do you mean by pinpoint the crash? It crashed when I had finished the entire process and I tried to play something.

    Either way I’ll try it again later.