Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Q&A, Tips, Tricks and Howto

Reply
 
Thread Tools Display Modes
Old 08-05-2010, 06:51 PM   #1
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default Getting MIDI out of Reason 4.0+ via Rewire!


Hello Everyone!

With the release of Reason 5.0 just around the corner I was saddened to see the Props once again didn't support MIDI output via Rewire, even if the Rewire protocol itself supports MIDI transport.

I remember seeing a video by Peff about a year ago on using Reason 4.0 to send CV/Gate commands to analog gear via a standard USB/Firewire interface. While not intuitively obvious this technique would actually lead me to a working solution for note, gate, and curve CV signals!

HOW IT WORKS
There are two parts to getting this to work. First we have to convert all CV signals into audio signals. The only device that can do this in Reason is the Thor Synthesizer. This is why Reason 4.0 or greater is required. I have created two Combinators to facilitate this conversion and are included in the zip file.
  • CV Curve.cmb - generates 4 discrete audio CV curve signals from inputted CV cables. This combinator is colored ORANGE for easy identification.
  • CV Note Gate.cmb - generates 4 discrete audio CV signals in pairs of note/gate for a total of 2 pairs. This combinator is colored BLUE for easy identification.
The second part requires converting those discrete CV audio signals into MIDI protocol messages. This is where my Jesusonic scripts are used, also included in the zip file.
  • JS: CV Curve MIDI CC - converts up to 4 audio Curve CV signals into MIDI Control Change messages (CC).
  • JS: CV Curve MIDI PB CP - converts channel 1(L) to MIDI Pitch bend and channel 2(R) to MIDI Channel Pressure (aftertouch).
  • JS: CV Note Gate - converts channel 1(L) CV Note and channel 2(R) CV Gate into MIDI note on and note off events. Gate is used to determine note velocity as well as tied note events.

REASON: CV CURVE COMBINATOR
(click to enlarge)
Above is a close-up picture of the CV Curve Combinator. The performance controls are used to adjust signals. Knobs 1-4 attenuate or trim the outgoing audio signal. This works much in the same way as the small CV Trim knobs found on the back of Reason devices. The buttons 1-4 mute all audio for the corresponding CV. This allows you to disable/enable CV curves on the fly.

Button muting is also useful if you have more than 1 curve CV generating data and you want to use a VST's midi-learn function. All you need to do is mute all channels but the one you want to learn. Next go to your VST and enable midi CC learning. The corresponding control should start moving.

Flipping the rack over we can see 4 Spider CVs and 4 Spider Audio devices. The Spider CVs are set to merge up to 4 CV signals each for a total of 16 CV inputs. On the right side we have 4 audio outputs per CV Curve. This allows you to send 4 CV Curves into 1 converter and receive 4 CV audio signals out. Refer to the image below for a screenshot of the wiring usage:
(click to enlarge)

The audio outputted by the CV Curve combinator is safe to send through mixers such as the reMIX 14:2 or the microMIX 6:2 should you desire to do so.

I recommend connecting the outputs from the CV Curve directly to the Reason Hardware Device outputs as seen here:
(click to enlarge)

This is how I developed and tested my Jesusonic scripts and is the most likely configuration to work painlessly for you.

REASON: CV NOTE GATE COMBINATOR
(click to enlarge)
Above is a close-up picture of the CV Note Gate Combinator. Only the performance buttons are mapped in this combi. Button 1-2 mute their corresponding note/gate CV pairs.

Flipping the rack over we can see 2 Spider CV and 2 Spider Audio devices. The input for Note CV is "Split A" and the input for Gate CV is "Split B". On the right hand side out of the Spider Audio interface you'll see both Left and Right are used. Left out is Note CV Audio and Right out is Gate CV Audio. This makes cabling up the combinator easy as Reason will automatically place the second cable for you at your destination.
Refer to the image below for a screenshot of the wiring usage:
(click to enlarge)

You might have noticed I'm not using the CV merger section for incoming signals. This is important. DO NOT MERGE GATE AND/OR NOTE CV SIGNALS. The Jesusonic code to convert an audio signal into MIDI relies on specific note intervals. Changing this signal will result in incorrect notes and/or note on/off timings.

Another important note! Do not connect these audio outputs to anything other than the Reason Hardware device outputs. Mixers like the reMIX 14:2 or the microMIX 6:2 will adjust the signal and potentially screw up the conversion to MIDI.

I recommend connecting the outputs from the CV Note Gate as shown below:
(click to enlarge)

This is how I developed and tested my Jesusonic scripts and is the most likely configuration to work painlessly for you.

JS: CV CURVE MIDI CC
(click to enlarge)
Above shows the parameters for the CV Curve MIDI CC script. It's designed to take in up to 4 audio signals generated from the CV Curve Combinator.

The same group of options are available for up to 4 Curve CV audio signals.
  • MIDI Channel - Selects what MIDI channel the outputted CC signal will transmit on. Valid values are 1-16.
  • MIDI CC - The control change (CC) value to use for the corresponding CV signal.
  • Polarity - Determines how to interpret the incoming signal. Choices are Unipolar, Bipolar, and Rectify. Unipolar assumes the signal is from 0.00 to 1.00, all negative values will be scaled to 0.00. Bipolar supports the entire -1.00 to 1.00 signal range and treats 0.00 as the middle point (MIDI value 64). Useful for any controls like pan. Rectify supports the entire -1.00 to 1.00 signal as well but inverts all negative signals into positive ones. This converts a sine wave LFO into a bunch of "Hills". Useful if you find your modulation getting "stuck" for a period of time at 0.
  • Offset - designates an offset from 0 (or 64 for balanced) for the incoming signal. This combined with the CV Curve trim knobs allows you to select precisely what range to modulate over.

The final option, "Audio Passthrough" disables or enables the CV audio signals. As these signals may potentially harm devices I recommend leaving this set to "No". However, I've given the user the option for "Yes". This would be useful should she want to cascade multiple copies of the CV Curve MIDI CC plugin and have multiple different MIDI CC signals generated from the same CV Curve audio signal. The last JS plugin in the chain would terminate the audio signal.

JS: CV CURVE MIDI PB CP
(click to enlarge)
Above shows the parameters for the CV Curve MIDI PB CP script. It's designed to take in up to 2 signals generated from the CV Curve Combinator.

There are similar options found in the CV Curve MIDI CC script. There are a few differences. There are only 2 inputs supported in this plugin. The 1(L) input always processes CV curve audio into MIDI Pitch Bend (14-bit resolution). Likewise, the 2(R) input always processes CV curve audio into MIDI Channel Pressure (commonly called aftertouch) messages (7-bit resolution).

The "Input Pitch Bend" and "Input Channel Pressure" dropboxes only have 1 value. It's there to remind you which signal goes to which input, nothing more.

Otherwise the set of parameters operate identically to the ones found in JS:CV Curve MIDI CC.

JS: CV NOTE GATE
(click to enlarge)
Above shows the parameters for the CV Note Gate script. It's designed to take in up to 2 signals generated from the CV Note Gate Combinator.

The "MIDI Channel" and "Audio Passthrough" paramters have been discussed previously. The "Note CV Channel" and "Gate CV Channel" parameters are informational only and are there to remind you how to wire up the inputs.

Please note that this plugin can only deal with monophonic midi data. It does the right thing for tied notes and will even generated polyphonic aftertouch messages if the same note is triggered more than once, is tied together, and the velocities are different. Very useful with VSTi's that support polyphonic aftertouch.

I exhaustivly tested all 128 notes to make sure they were being converted correctly. To aid in this I created another Combinator named Note Test.cmb. I've included it in the package should someone want to test it themselves or find it useful.
zenmonkey is offline   Reply With Quote
Old 08-05-2010, 06:52 PM   #2
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

REAPER USERS ON MAC AND WINDOWS
You can natively use these scripts inside of Reaper. Just load Reaper, select "Options"->"Show REAPER resource path in explorere/finder...". This will open up a Finder / Explorer window for you. Select the "Effects/" Folder. Inside of here create a folder of whatever name you like such as "CV_Reason". Then just copy the files found in the JS/ folder of the zip file into the new folder. Now in your FX pane if you search for "CV" you should see all three scripts:
(click to enlarge)

If any Mac users out there try the scripts please let me know if they do or do not work! I've developed these on Windows 7.

WINDOWS USERS OF OTHER DAWS
Good news! The kind people at Cockos have released the ReaPlugs as free for everyone. Included in this suite is the JS interpreter ReaJS. Should your host support ReWire and allow you to route audio data to plugins you should be set.

I've only tested these scripts with Reaper on Windows 7. If anyone out there successfully uses ReaPlugs and my scripts please let me know!

MAC USERS OF OTHER DAWS
Unfortunately the ReaPlugs suite has not been ported to OS X. I recommend trying it with the unlicensed demo version first and if you get it working to purchase a Reaper license.

You don't necessarily need to use Reaper as a DAW though. Since OS X has a built-in virtual MIDI device called the IAC Driver you should be able to route the MIDI out of Reaper into the IAC and then out into whatever DAW you are using. Here is an instructional video on how to set up IAC:
The IAC Driver

(Reaper forum user tomoe97 has verified the Mac version of Reaper can successfully send MIDI via the IAC virtual Midi bus out of Reaper and into his external synths. Thanks tomoe97!)

KNOWN PROBLEMS/ISSUES
I haven't been able to record MIDI generated by reason to a Reaper track. I can't get Note, CC, PB, CP data to be recorded to the lane. It might have to do with the MIDI being generated and not coming from an external device. If someone figures this out I'd appreciate it! I think it might be possible if you feed midi data out of one track as the input to another track. I'll investigate this more but wanted to get the package out to everyone first.

I don't know how to get MIDI data from Reason's track sequencer to be send as an audio CV signal. I don't really consider this important since this can be exported and saved then re-opened. If someone figures out how to do this I'd happily add it to the notes and archive.

I designed the plugins to be as CPU and RAM conservative as possible given the constraints of Jesusonic. Even so they do take a little bit of CPU and RAM. I haven't tried loading up dozens of them. Depending on your computer there may be limits to how many of these you can load.

FINAL THOUGHTS
This has changed how I use Reason. I have had so much fun routing out LFOs, RPG-8, Matrix sequencers, into my VSTs. I no longer feel like Reason is an isolated box.

Please PM me with bugs or email me at the address listed in the plugins (Just load the plugin, open it, and select "EDIT" to see my address). If you are a MAX user or are just plain interested in how to convert the CV audio signals into MIDI I'd be happy to talk more about with you.

And finally, many many thanks to the Reaper developers. Without thier simple yet powerful Jesusonic language I wouldn't have been able to convert audio into MIDI.

Last edited by zenmonkey; 08-20-2010 at 03:48 PM. Reason: Updated mac information
zenmonkey is offline   Reply With Quote
Old 08-05-2010, 06:55 PM   #3
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

PUTTING IT ALL TOGETHER
Let's say you want to send a Matrix note pattern to a VSTi (u-he's A.C.E. in this case). You also want to use one of Maelstrom's Mod sources to modulate the VSTi's Pan parameter.

Step 1, open Reaper, create a new track, and add ReWire: Reason to the track.
(click to enlarge)

Step 2, Add the CV Note Gate, CV Curve, Matrix, and Maelstrom to your Reason Rack. Program in your note pattern in the Matrix and Select your mod parameter settings for Maelstrom's MOD A. Be sure to remove all the cables Reason automatically connected to the Combinators, Matrix, and Maelstrom.
(cick to enlarge)

Step 3, Connect up the devices in the Rack. Hit TAB to flip the rack over and make the following connections:
  1. Maelstrom:>Mod A -> CV Curve:CV 1 IN:Merge CV 1
  2. Matrix:Note CV -> CV Note Gate:1 NoteA GateB:Split A
  3. Matrix:Gate CV -> CV Note Gate:1 NoteA GateB:Split B
  4. CV Note Gate:1 Audio Out:A(L) -> Hardware Device:1
  5. CV Note Gate:1 Audio Out:B(R) -> Hardware Device:2
  6. CV Curve:Audio 1 Out:A(L) -> Hardware Device:3
(click to enlarge)

Step4, Add 4 Channels to the Reaper Track. Click on the "Sends, Receives, and Hardware Output Options" button on the track and change the number of Track Channels to 4.
(click to enlarge)

Step 5, Activate the extra channels in Reason's Rewire FX pane in Reaper. Open the track "FX" tab, select the "Rewire: Reason" device, and choose the "Audio From Rewire" tab. Right-click on the Track channel "<none>" for "3:Channel 3" and change it to "Channel 3". Right-click on the Track channel "<none>" for "4: Channel 4" and change it to "Channel 4".
(click to enlarge)

Step 6, Add the JS: CV Note Gate and the JS:CV Curve MIDI CC plugins after Rewire: Reason in the FX rack.
(click to enlarge)

Step 7, route audio inputs 1,2 into JS: CV Note Gate. Open the JS: CV Note Gate pane, click on the "4 in 4 out" button. Select the inputs as shown in the picture below. You will know if audio is flowing into the plugin if you see the audio meter on the left showing a signal on L and R.
(click to enlarge)

Step 8, route audio inputs 3,4 into JS: CV Curve MIDI CC. Open the JS: CV Curve MIDI CC pane, click on the "4 in 4 out" button. Select the inputs as shown in the picture below. You will know if audio is flowing into the plugin if you see the audio meter on the lrft showing a signal on L. We did not connect R in this case so that will not be moving.
(click to enlarge)

Step 9, change the CC mode in JS: CV Curve MIDI CC. Select JS: CV Curve MIDI CC in the FX window and set "MIDI CC 1(L)" to "2 Breath M" and "Polarity 1(L)" to "Bipolar".
(click to enlarge)

Step 10, Load a VSTi and MIDI-learn a parameter. In my case I'm loading u-he's A.C.E. and am going to MIDI-learn Pan. If all goes well you should see the selected parameter start to move on its own from the CC #2 messages.
(click to enlarge)

Step 11, Turn on the Matrix Pattern Sequencer in Reason. If all goes well you should hear your pattern coming out of the VSTi and at the same time see the Pan knob moving from CC modulation.
(click to enlarge)

Step 12 (optional), Adjust the CV trim in reason to make the Pan modulation a bit more subtle. In Reason, go to the CV Curve combinator device and turn down the "CV 1 TRIM" knob. Now the panning effect should be less extreme.
(click to enlarge)

Last edited by zenmonkey; 08-06-2010 at 06:38 AM. Reason: Updated content.
zenmonkey is offline   Reply With Quote
Old 08-09-2010, 01:05 PM   #4
SiKo
Human being with feelings
 
SiKo's Avatar
 
Join Date: Aug 2008
Location: dusty hot place
Posts: 1,492
Default

Thanks for this zenmonkey!

I set it up with Reaper 3.66 x64 and Reason 4.0.1.

Notes from matrix play fine, but I can't get the mod A from the mal to control any parameter on my vsti (i tried 2, alien 303 and imposcar). I might try it tomorrow with the x86 (32 bit) version of Reaps to see if that matters.

Maybe I'm overlooking something else, but this is great stuff!


N i c e _ O n e !!!

__________________
... yOu aNd mE are ...
SiKo is offline   Reply With Quote
Old 08-09-2010, 01:34 PM   #5
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Quote:
Originally Posted by SiKo View Post
Notes from matrix play fine, but I can't get the mod A from the mal to control any parameter on my vsti (i tried 2, alien 303 and imposcar). I might try it tomorrow with the x86 (32 bit) version of Reaps to see if that matters. Maybe I'm overlooking something else, but this is great stuff!
Thanks for the kind words SiKo. I tried the Malstrom curve using Reaper x64 just now. Please try the attached test Reaper and Reason saves. If all goes well you should see a ton of modwheel events out of the midi logger (CC #1) as shown in the screen cap below:
(click to enlarge)


I was able to get this working in both Reaper and Reaper x64 on Windows 7.

EDIT: It's possible you had trouble because the default CC message is 1 (Modwheel). Many synths don't let you use that CC value as a learn target because of its special nature. Try changing "JS: CV Curve MIDI CC", "MIDI CC 1(L)" to a non-registered value such as "102". Make sure the order of plugins are:
[x] Rewire: Reason
[x] JS: CV Curve MIDI CC
[x] VSTi: impOSCar

You can also tell if the JS plugin is getting audio data by looking at the Left Fader on the plugin edit screen. The left channel of the left fader should be lit and moving to the modulation input. If it's not there's a routing error.
Attached Files
File Type: zip siko_test.zip (83.2 KB, 434 views)

Last edited by zenmonkey; 08-09-2010 at 02:15 PM. Reason: edited comment
zenmonkey is offline   Reply With Quote
Old 08-10-2010, 01:31 AM   #6
SiKo
Human being with feelings
 
SiKo's Avatar
 
Join Date: Aug 2008
Location: dusty hot place
Posts: 1,492
Default

Quote:
Originally Posted by zenmonkey View Post
Thanks for the kind words SiKo. I tried the Malstrom curve using Reaper x64 just now. Please try the attached test Reaper and Reason saves. If all goes well you should see a ton of modwheel events out of the midi logger (CC #1) as shown in the screen cap below:
(click to enlarge)


I was able to get this working in both Reaper and Reaper x64 on Windows 7.
Just before testing the special siko attachment (thanks!), I get this when inserting a midi_logger:

(click to enlarge)


Quote:
Originally Posted by zenmonkey View Post
EDIT: It's possible you had trouble because the default CC message is 1 (Modwheel). Many synths don't let you use that CC value as a learn target because of its special nature. Try changing "JS: CV Curve MIDI CC", "MIDI CC 1(L)" to a non-registered value such as "102". Make sure the order of plugins are:
[x] Rewire: Reason
[x] JS: CV Curve MIDI CC
[x] VSTi: impOSCar
Check, this is the order I used! As you can see, I changed the CC 1(L) value to 2.

Also using your test, I see a constant stream of midi events being logged. All good, but I'm just missing the way to get this midi to a knob on my vst. (Also with Oatmeal, I don't get midi learn to function).

Am I missing basic Reaper usage skills?

Quote:
Originally Posted by zenmonkey View Post
You can also tell if the JS plugin is getting audio data by looking at the Left Fader on the plugin edit screen. The left channel of the left fader should be lit and moving to the modulation input. If it's not there's a routing error.
We've got signal!
Again this is great stuff, just the last bits to get the curve data to my vst!

Thanks again.
__________________
... yOu aNd mE are ...

Last edited by SiKo; 08-11-2010 at 12:06 PM.
SiKo is offline   Reply With Quote
Old 08-10-2010, 07:48 AM   #7
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Every VSTi midi learns differently. I've made a short video showing how to do it with impOSCar, a synth you mentioned you had.
(click to enlarge)
zenmonkey is offline   Reply With Quote
Old 08-10-2010, 09:34 AM   #8
SiKo
Human being with feelings
 
SiKo's Avatar
 
Join Date: Aug 2008
Location: dusty hot place
Posts: 1,492
Default

Quote:
Originally Posted by zenmonkey View Post
Every VSTi midi learns differently. I've made a short video showing how to do it with impOSCar, a synth you mentioned you had.
(click to enlarge)
Man! That works ... in the 32 bit version (3.66). I had no luck in the 3.67pre2 x64 version.

Awesome, I mean, Nice One!

Thanks for this, gonna play with it

*edit*

What's up with the Reaper MIDI learn functionality? I mean, why are the cc messages not picked up by the reaper midi learn function?
__________________
... yOu aNd mE are ...

Last edited by SiKo; 08-10-2010 at 02:18 PM. Reason: extend question
SiKo is offline   Reply With Quote
Old 08-20-2010, 01:07 PM   #9
tomoe97
Human being with feelings
 
Join Date: Aug 2010
Posts: 3
Default

Amazing! You've accomplished what the Propellerheads could not! Thank you!

It works fine on a Mac. I just substituted Reason's RPG-8 Arp for Matrix and am in seventh heaven running my external synths.

Can the same thing be accomplished in Ableton Live w/o Reaper?
tomoe97 is offline   Reply With Quote
Old 08-20-2010, 01:22 PM   #10
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Quote:
Originally Posted by tomoe97 View Post
Amazing! You've accomplished what the Propellerheads could not! Thank you! I just substituted Reason's RPG-8 Arp for Matrix and am in seventh heaven running my external synths.
You're quite welcome, I'm glad you've found it useful. I had a ton of fun using the RPG-8 on several external synths once I got the code for monophonic notes debugged. It's a shame polyphony can't work with this method; I'd really love to see native MIDI in Record/Reason.

Quote:
Originally Posted by tomoe97
It works fine on a Mac.Can the same thing be accomplished in Ableton Live w/o Reaper?
Ah, excellent! My first confirmed Mac user. When you say "external synths" do you mean virtual VSTi/AUs or actual gear? I'm curious if you tried to use the Mac IAC bus to route MIDI signals outside of Reaper. If you used the IAC you should be able to route the MIDI via IAC out of Reaper and back into Ableton. I was having trouble getting this to work on Windows with Midi Yoke, I'm not sure why.

Even so, great news that the signal amplitudes are identical on Mac and Win. I was a tiny bit concerned they might vary a bit.
zenmonkey is offline   Reply With Quote
Old 08-20-2010, 02:43 PM   #11
tomoe97
Human being with feelings
 
Join Date: Aug 2010
Posts: 3
Default

Native polyphonic midi would be ideal, but this is quite an effective monophonic alternative. I hope you'll report your developments to Propellerhead so that they can publicize it on their site. Zenmonkey, you're a genius!

I'm using your Reason midi out trick to drive actual hardware synthesizers via the IAC bus and Midi Patchbay. This is so much better than having to resort to using a MOTU Firewire device for CV handling (I tried Peff's method but couldn't get the settings quite right--my analogue synths always sounded a little bit out of tune via that method).

I have had no difficulty getting Reason's midi out stream into Ableton Live via IAC; however, I'm wondering if what you achieved in Reaper can also be done via Max for Live, thereby removing Reaper from the equation altogether. I've only just started to scratch the surface of what Max for Live can do.
tomoe97 is offline   Reply With Quote
Old 08-20-2010, 03:44 PM   #12
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Quote:
Originally Posted by tomoe97 View Post
Native polyphonic midi would be ideal, but this is quite an effective monophonic alternative.
Note CV in Reason is always monophonic; That's why the Matrix and RPG-8 can't generate chords. Reason/Record must use a different internal mechanism to send note data from the sequencer to rack devices. This has to do with how the note signal is encoded. If you're interested we can talk details via PM so we don't fill this thread up with program snippets.

Quote:
Originally Posted by tomoe97 View Post
I hope you'll report your developments to Propellerhead so that they can publicize it on their site. Zenmonkey, you're a genius!
I did let Kurt Kurasaki (aka Peff) and James Bernard know about the converter and they both thought it was interesting. James works for Propellerhead so they know. The jury is still out if they'll do anything about it. The ideal solution (in my humble opinion) is to have native Midi out. I didn't send any emails to Props directly; I'm sure they're busy with the impending Reason 5 / Record 1.5 release in a few days.

Quote:
Originally Posted by tomoe97 View Post
I'm using your Reason midi out trick to drive actual hardware synthesizers via the IAC bus and Midi Patchbay. This is so much better than having to resort to using a MOTU Firewire device for CV handling (I tried Peff's method but couldn't get the settings quite right--my analogue synths always sounded a little bit out of tune via that method).
Cool! I'll update the Windows Reaper section of the install instructions above. Thanks for confirming the setup.

Quote:
Originally Posted by tomoe97 View Post
I have had no difficulty getting Reason's midi out stream into Ableton Live via IAC; however, I'm wondering if what you achieved in Reaper can also be done via Max for Live, thereby removing Reaper from the equation altogether. I've only just started to scratch the surface of what Max for Live can do.
Absolutely it can be done by another tool. I just chose Jesusonic because I know it already and it's dead-easy to process signals on a per-sample interval. I don't know Max but I've heard how powerful it is and I'm sure someone that knows how to program it can implement the JS: side of things. The Reason/Record combinators aren't really anything special; they're just a convenient wrapper around Thor's ability to convert CV signals into audio.

The Jesusonic scripts you downloaded are actually text files. You can open them with Notepad on Windows or Textedit on Mac. If you do know how to program I'd recommend looking at JS:CV Curve MIDI CC first. Converting a curve to Midi is just a matter of taking a -1.0<->1.0 float and scaling it to a 0<->127 int and then wrapping that value in a Midi message. Once you've understood that script I recommend looking at JS: CV Note Gate. That was much harder to write, tied notes were particularly tricky to decode. Feel free to PM me if you want to discuss the code details further, I'd be happy to get this solution implemented in alternative formats. I even saw someone on KVR is making a VST wrapper for the language Lua. That'd be more than capable of doing this conversion too provided it can get audio inputs and generate Midi output.

Thanks again for the kind words and I'm really happy you're enjoying it. I had so much fun with it when I finally debugged it.
zenmonkey is offline   Reply With Quote
Old 08-22-2010, 12:23 PM   #13
tomoe97
Human being with feelings
 
Join Date: Aug 2010
Posts: 3
Default

Your Jesusonic scripts are way beyond my meager Max for Live abilities, but I have taken the liberty of sharing news of your achievement with our cohorts on the Ableton Live forum. Perhaps someone more adept than me at M4L programming will take up the challenge to duplicate your scripts in M4L and tighten the integration between Reason and Live further.

However, even w/o M4L, the Reason/Reaper/Live network works great! I find it mind-blowing to be able to finally use Reason's MIDI devices with non-Reason plugins, DAWs, and external synths. Hopefully, your achievement will light a fire under the Propellerheads' butts to finally make native MIDI a reality in Reason. Three cheers to Zenmonkey!
tomoe97 is offline   Reply With Quote
Old 08-22-2010, 04:23 PM   #14
penningt
Human being with feelings
 
Join Date: Aug 2010
Posts: 1
Default

zenmonkey - this is really great may thanks for sharing this. I have tested this out on Ableton Live (no Reaper installed - just the reajs plugin) and here are my findings ...

I have only played about with the CV Note stuff so far.

I opened your Reason file "Reason CV to MIDI.rns" and swapped the Matrix device with an RPG-8 arpeggiator - this allowed me to send midi data direct from the sequencer (need to switch arpeggiator off).

I then created a two tracks in Ableton - one to receive audio from Reason (this has reajs CV Note Gate) and one to get the midi generated from the first track.

I can record the midi in Live and it even seems to accept chords however - and this is the only problem so far - notes do not end when more than one note is being processed at a time. I'll do some more testing - hopefully its something I can change on the RPG-8 to improve this behaviour.

Anyway, thanks again - I'll let you know if I make any useful discoveries.
penningt is offline   Reply With Quote
Old 08-31-2010, 09:52 AM   #15
Flandersh
Human being with feelings
 
Join Date: Oct 2009
Location: Trondheim, Norway
Posts: 1
Default

It should be no big problem to do the same thing in Ableton Live. I did the same thing via a reaktor patch I loaded into Cubase a year ago, and it was no problem and a really simple algorithm. In short words you have to convert the voltage values (0 to x in example) into midi values (0 to 127). As alternative one can use the Virtual Audio Cable software instead of rewire, and make a vst in synthedit as converter for support in all software that hosts VST.

According to the problem with notes hanging, this is a behaviour as a consequence of the midistandard where it is needed two different events to turn the note on and off, and will best be solved in the converter algorithms. One can to a certain degree fix it with the RPG-8, but it will not be the best and most stable solution.

I don't think propellerheads will do any midi out cause of this "patch". I was in contact both with Peff and a programmer in propellerheads when I made the reaktor vst last year, so they certainly know about it. If their plan is midi out, they will come with it once. They are great programmers there so its not missing cause they don't know how to do it, but because it has not been a plan yet.
Flandersh is offline   Reply With Quote
Old 12-28-2010, 10:04 PM   #16
tiffanyscott
Human being with feelings
 
Join Date: Dec 2010
Location: Atlanta, GA
Posts: 1
Default You know what?

I'm a dynamic female producer (or just another producer really...regardless of sex but there aren't too many females commenting on this forum so I thought I'd distinguish my presence) and I'd like to think of myself as being very Reason savvy. I've switched from the cumbersome Cubase SX 5 64-bit with Reason 4.0 to Reaper 3.74 with Reason 5.0 this past Sunday afternoon and I must say that me and my computer couldn't be happier. I have a degree in computer science and I immediately dug the customization flexibility. I don't plan on writing any plugins but if I need to modify a few, I can do it. Anyway, there's my introduction but the one thing that had me stomped was Pitch Bend. I didn't realize how much I used it until I was converting my compositions over and heard all of the loop holes. So I was manually recording them in with my controller (Ozonic). I found your solution the first day but I wasn't in the mindset to really wrap my mind around turning the pitch bend into an audio signal. Finally I got frustrated with a really "big" song and had to revisit it. Then all of a sudden it made since to me! So I loaded the CV combinator that was so graciously provided and patched my racks into the "From Device" inputs on the backs of the combinators... pure magic. I'm not one to comment on forums very much but I absolutely HAD TO stop by and give big props on this one. ZENMONKEY you're a genius man. Bless you! Bless you! Bless you! Someone should hire you. lol I'll come back one day and post the album so that all can hear it for free. Until then...thanks again!

Last edited by tiffanyscott; 12-28-2010 at 10:06 PM. Reason: typos
tiffanyscott is offline   Reply With Quote
Old 12-28-2010, 10:23 PM   #17
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Quote:
Originally Posted by tiffanyscott View Post
I'm not one to comment on forums very much but I absolutely HAD TO stop by and give big props on this one. ZENMONKEY you're a genius man. Bless you! Bless you! Bless you! Someone should hire you. lol I'll come back one day and post the album so that all can hear it for free. Until then...thanks again!
Hi Tiffany! I'm really glad you found my work useful. I too have a computer science degree and yes someone has hired me to do (sadly) non-music related programming for a living.

I do things like this for fun as a hobby and I'm really glad people find ways to use it. I also love Reason's flexibility but am still frustrated by all the limitations of ReWire/Reason such as no MIDI out and no Audio in.

As I mentioned previously in this thread the JS scripts are actually text files and you can open them in any editor to view the code. I tried to comment them so others can extend and learn from them. If you do decide to look at them I'd recommend examining the CV Curve one first, that conversion code is much simpler than the MIDI note one.

Take care and the best of luck on your next album! I'm afraid I geek out too much with synths and scripts that I have a hard time actually completing compositions...but at least I'm having fun! Feel free to PM me if you have any other questions, comments, or suggestions for the scripts and combinators.

Cheers!
-Brian
zenmonkey is offline   Reply With Quote
Old 12-29-2010, 09:44 AM   #18
PeWe
Human being with feelings
 
Join Date: Dec 2007
Location: Hamburg/germany
Posts: 54
Default

Quote:
Originally Posted by zenmonkey View Post
Hi Tiffany! I'm really glad you found my work useful.
Cheers!
-Brian
Hi zeamonkey !

This is interesting stuff and I´d like to try that out.
The pics you linked in your posts here won´t enlarge here on my machine.
Is there eventually a chance to download larger ones somewhere.
That would be a great help for me.

best

PeWe
__________________
Intel DC 3.86GHz, 4GB PC800 Mushkin Redline, WinXP Pro 32Bit SP3, NVidia 9500, 3x WD Caviar Black 640GB, Sonic Core XITE-1 & SCOPE 5.1, Nuendo8 I/O, Nuendo TimelockPro, MQ8portSE, Tannoy DTM-8, Bryston3B Pro, Alesis M1 mkII, Alesis RA150.
PeWe is offline   Reply With Quote
Old 12-29-2010, 10:07 AM   #19
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Quote:
Originally Posted by PeWe View Post
The pics you linked in your posts here won´t enlarge here on my machine.
Is there eventually a chance to download larger ones somewhere.
That would be a great help for me.
Hi PeWe,
All the pictures are uploaded to tinypic (http://tinypic.com/). You should be able to access that site from Germany. I just tested all the pictures and they all loaded for me so tinypic hasn't removed them.

If you're still having problems send me a PM with your email address and I'll send you a zipped folder of all the pictures.

Cheers!
-Brian
zenmonkey is offline   Reply With Quote
Old 12-29-2010, 11:01 AM   #20
PeWe
Human being with feelings
 
Join Date: Dec 2007
Location: Hamburg/germany
Posts: 54
Default

Quote:
Originally Posted by zenmonkey View Post
Hi PeWe,
All the pictures are uploaded to tinypic (http://tinypic.com/). You should be able to access that site from Germany. I just tested all the pictures and they all loaded for me so tinypic hasn't removed them.

If you're still having problems send me a PM with your email address and I'll send you a zipped folder of all the pictures.

Cheers!
-Brian
PM sent,- thx !

:-)
__________________
Intel DC 3.86GHz, 4GB PC800 Mushkin Redline, WinXP Pro 32Bit SP3, NVidia 9500, 3x WD Caviar Black 640GB, Sonic Core XITE-1 & SCOPE 5.1, Nuendo8 I/O, Nuendo TimelockPro, MQ8portSE, Tannoy DTM-8, Bryston3B Pro, Alesis M1 mkII, Alesis RA150.
PeWe is offline   Reply With Quote
Old 10-02-2011, 03:01 PM   #21
ADDIKTION
Human being with feelings
 
ADDIKTION's Avatar
 
Join Date: Jun 2009
Location: London, UK
Posts: 423
Default A Dream Came True!! Thank you :)

Hey ZenMonkie! You can't imagine how much I'm happy to have your plugs! Thank you a LOT for this awesome secret feature! I knew it could be possible, but you did it for real.

I've been waiting for this since I'm using Reason 2.5... I'm now driving external synths with the Reason Matrix and it works great!!

I've tried to send Reason's sequencer notes to VST or external synths. Instead of using "CV1" and "CV2" as sources in Thor's modulation matrix, I tried "Key Note" and "Key Gate", or "MIDI Note" and "MIDI Gate".
But pitches are not correct. Do you know why?
For now, I solved this writing notes on a RPG-8 sequencer track, and routing the RPG-8 "Gate CV Out" and "Note CV Out" to "CV1" and "CV2" inputs of the Thor. And it works
__________________
Sound Design & Music
ADDIKTION is offline   Reply With Quote
Old 10-02-2011, 03:26 PM   #22
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Quote:
Originally Posted by ADDIKTION View Post
Hey ZenMonkie! You can't imagine how much I'm happy to have your plugs! Thank you a LOT for this awesome secret feature! I knew it could be possible, but you did it for real.
Hi ADDIKTION, I'm really glad you're finding this software useful and you're welcome.

Quote:
Originally Posted by ADDIKTION View Post
I've tried to send Reason's sequencer notes to VST or external synths. Instead of using "CV1" and "CV2" as sources in Thor's modulation matrix, I tried "Key Note" and "Key Gate", or "MIDI Note" and "MIDI Gate". But pitches are not correct. Do you know why?
The key to this conversion is the algorithm I used to calculate the note pitch, it's this section of code found in JS:CV Note Gate:
Code:
    // Emperical testing of the spacing between notes out of Reason yielded this result.  Reaper
    // listed this value as 0.007874x where x was anything from 0, 1, 4, 7.  I took the final
    // digit to be rounding error and/or presision error.  I've tested this value with all 128 note
    // values using Thor step sequencers and Matrix devices.  You can find the preset "Note Tester.cmb"
    // distributed with this code should you wish to test.
    NOTE_DELTA = 0.0078740; 
n = floor(spl0 / NOTE_DELTA); // spl0 is the audio signal, a float from 0.0 to 1.0
I created that constant using the audio signal Reason sent out of the blue combinator. If you look on the back you'll see the trim knobs are set to 127 and the matrix values are set to +100. If you change any of those numbers then you'l change how the constant converts the audio signal into discrete (0-127) MIDI notes.

But you do have a good point -- it's probably possible to take sequenced data and use the matrix to work with note and gate values directly...hrm. It should be possible to test Note/Gate in the Matrix and calculate a different Delta. I don't see a reason why that wouldn't work.

Quote:
Originally Posted by ADDIKTION View Post
For now, I solved this writing notes on a RPG-8 sequencer track, and routing the RPG-8 "Gate CV Out" and "Note CV Out" to "CV1" and "CV2" inputs of the Thor. And it works
This is exactly how I use it to send monophonic MIDI from the sequencer:

1. Make an RPG-8 track and add MIDI notes to it
2. Turn *OFF* the RPG-8, connect the RPG-8 Gate CV Out (Velocity) (*) plug to Combinator 1 NOTE A GATE B Split B (*) plug.
3. Connect the RPG-8 Note CV Out (*) to Combinator 1 NOTE A GATE B Split A (*) plug.

It sounds like you already figured that out. The instructions are here for others that may be interested.
zenmonkey is offline   Reply With Quote
Old 10-03-2011, 03:29 PM   #23
ADDIKTION
Human being with feelings
 
ADDIKTION's Avatar
 
Join Date: Jun 2009
Location: London, UK
Posts: 423
Default

Thank you for your explanations about the constant and your programming. Really clear and interesting.
This shows that the more difficult (the big step) was to think about doing that routing (CV>AUDIO>REWIRE>JS plugin>MIDI).

I'm really glad I found your "translators plugins"

Yes for now working with the RPG8 is great, as it adds the possibility to actually use the arpeggio if desired
__________________
Sound Design & Music
ADDIKTION is offline   Reply With Quote
Old 10-03-2011, 05:15 PM   #24
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Quote:
Originally Posted by ADDIKTION View Post
This shows that the more difficult (the big step) was to think about doing that routing (CV>AUDIO>REWIRE>JS plugin>MIDI).
I got the basis of the idea from Peff's video and post from 2009:
http://www.peff.com/journal/2009/06/...analog-synths/

I remember watching that and thinking..."Too bad that's not midi data" and then a day or two later I realized when I was programming a JS plugin that it should be possible to convert the same audio data to MIDI after thor converts it to audio first. It's a bit convoluted but so far it's the only way I've found to do this.

Peff now has a project himself that he wrote in Max/MSP that does the same thing, called m0xr. I still prefer mine because it works great with Reaper and on the PC w/o any expensive applications.

http://www.peff.com/journal/2011/09/...xr-update-519/


Quote:
Originally Posted by ADDIKTION View Post
Yes for now working with the RPG8 is great, as it adds the possibility to actually use the arpeggio if desired
Yep! It's a shame that we can't do chords though -- here's to hoping one day Propellerhead makes this patch pointless with native midi out.
zenmonkey is offline   Reply With Quote
Old 10-08-2011, 04:14 PM   #25
ADDIKTION
Human being with feelings
 
ADDIKTION's Avatar
 
Join Date: Jun 2009
Location: London, UK
Posts: 423
Default My version of your combinators

Sorry for the late answer
Yes, your plugins work very good and as I am loving Reason and Reaper, it's perfect for me too
Of course, native MIDI is still a dream (the true solution), but what we have now is kind of taking the magic of Reason in the real world, and I really like that

I have done a simplified version of your work (well for me it's simplified), that is explained below. Maybe it will be useful for some people!
https://stash.reaper.fm/10181/Rewire_CV.zip

1 COMBINATOR containing :
- 1 Matrix to generate the CV notes and gates (Midi notes)
- 4 Matrix to generate 4 CV curves (MIDI CCs)
- 1 RPG-8 allowing to use the Combinator Track in the sequencer to play notes (and adding the possibility to use arpeggios if needed)
- The 3 Thors are here to do "CV to Audio translation", and allow the control of CV curves via the combinator Rotary knobs






1 SINGLE REAPER TRACK TEMPLATE with your 2 plugins configured :
- The track is receiving the 6 channels from Reason : channels 1-2 are routed to plugin [CV Note Gate], channels 3-6 are routed to plugin [CV Curve MIDI]

Routing 6 Rewire Inputs to the track template


Routing the track template to an external synth MIDI port
__________________
Sound Design & Music
ADDIKTION is offline   Reply With Quote
Old 10-08-2011, 06:11 PM   #26
zenmonkey
Human being with feelings
 
zenmonkey's Avatar
 
Join Date: Jun 2007
Location: Texas
Posts: 109
Default

Nice work there ADDIKTION! I hope someone finds it useful, thansk for sharing!
zenmonkey is offline   Reply With Quote
Old 10-09-2011, 04:37 AM   #27
ADDIKTION
Human being with feelings
 
ADDIKTION's Avatar
 
Join Date: Jun 2009
Location: London, UK
Posts: 423
Default

Everybody is welcome, at least for me it is useful Now I want to have audio going in Reason when Rewire is active, but it's not possible :'(
__________________
Sound Design & Music
ADDIKTION is offline   Reply With Quote
Old 03-20-2012, 07:24 PM   #28
Phobik
Human being with feelings
 
Join Date: Nov 2009
Posts: 8
Default

Quote:
Originally Posted by ADDIKTION View Post
Everybody is welcome, at least for me it is useful Now I want to have audio going in Reason when Rewire is active, but it's not possible :'(
I think Reaper's kernel stream can be used for audio IO but at the expense of not using Rewire. However, midi sync can be achieved using Reaper sync generator. It's convoluted, but should work.
Phobik is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:22 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.