Tutorial: VST MIDI out in Reason with polyphony and velocity

Have an urge to learn, or a calling to teach? Want to share some useful Youtube videos? Do it here!
Post Reply
User avatar
Stygian Abyss
Posts: 110
Joined: 17 Jun 2019

31 Mar 2020

Even if it is not currently possible to use VST MIDI effects in Reason, we can build this missing feature using a few additional tools.

We will need:
- A VST that outputs MIDI data: I will use Scaler from Plugin Boutique in this tutorial, but it could be Xfer Cthulhu, Waves Ovox...
- A VST modular synth: I will use Voltage Modular (Up to 4 voices of polyphony), but any plugin with multiple audio outs that allows free patching of CV to audio signal outputs will certainly work. If you have Reaktor and want to use it instead (Up to 8 voices of polyphony), you will find valuable information from Selig in this thread.
- Blue Cat Audio Patchwork, or any other VST wrapper that transmits MIDI data between hosted plugins. Alternatively, you could load the VST MIDI effect directly into the VST modular synth if it offers an appropriate plugin host module. This is possible with Voltage and Mux Modular but not with Reaktor.
- Robotic Bean CV-I Audio to CV - you can use several instances of Thor instead but it will be a little bit cumbersome.
- Lectric Panda CV Player Tap.

Signal flow:
- Scaler emits polyphonic MIDI data (Chords) in response to monophonic MIDI data sent by Reason.
- Patchwork transmits them to Voltage Modular.
- Voltage Modular converts received polyphonic MIDI data into separate audio rate note and gate CV signals and outputs them through its 8 available audio outs: that's why we have up to 4 voices of polyphony.
- CV-I converts these audio rate note and gate CV signals to Reason's standard CV signals.
- CV Player Tap aggregates these CV signals and allows to play an instrument polyphonically and record MIDI tracks in Reason's sequencer.

Warning:
Create the patches in the order I suggest. If you don't repatch the Combinator in Reason first, the Voltage Modular patch will send CV into the audio outputs, and it may damage your monitors, especially if your audio interface is DC coupled, as most MOTU models are. When experimenting with software or hardware modulars, a general recommendation is to protect your monitoring system by inserting a DC offset blocker and a limiter in your master section. A DC offset blocker is simply a high-pass filter without resonance and cutoff at 30 Hz: it will remove any unwanted low frequency content, including accidental output of CV signals that may cause audio distortion and damage monitors.

Let's go !

Create a Combinator. Inside of it, create a Patchwork Synth VST instrument, 2 instances of CV-I and a CV Player Tap with an instrument of your choice. In the Combinator programmer, deactivate MIDI notes reception for all devices except Patchwork. Activate the direct record option in CV Player Tap, then open the Patchwork device CV programmer and flip the Rack to reveal the additional audio outputs. Connect all the Left audio outputs to the first CV-I (Notes) audio inputs and all the Right outputs to the second (Gates), in the same order. Connect respective note and gate CV outputs from the two CV-I into the note-gate pairs of CV Player Tap. Finally, connect the instrument you've chosen - Europa in my example - to the Combinator From Device audio inputs.

Reason VST MIDI out 1.png
Reason VST MIDI out 1.png (606.59 KiB) Viewed 5177 times

Flip the Rack, make sure the Combinator has keyboard focus and open the Patchwork interface. Load Scaler in the Parallel 1:1 slot, deactivate its audio output, close the interface window and set its MIDI output to Port A. Load Voltage Modular in Parallel 1:2, close the interface and set its MIDI input to Port A -> All channels. Don't forget to remove its MIDI input set by default to Host by setting it to None or some notes will be played twice and polyphony lost ! Open the Voltage Modular interface, initialize the patch and play some notes on your keyboard. If you hear nothing, but see Voltage's MIDI activity flash, you're on the right way !

Reason VST MIDI out 2.png
Reason VST MIDI out 2.png (265.96 KiB) Viewed 5177 times

All what's left to do is to create a very simple, 4 modules patch: 2 Poly to Mono, 1 Poly Amplifier and 1 Poly Scale and Offset from developer Benard. This module will be a very convenient solution to adapt internal CV from Voltage Modular to Reason's standard, but if you don't have it, you could certainly insert a few instances of Janitor CV Shaper between the Notes CV-I and CV Player Tap to do the same task.

First, set the number of voices to 4 in Voltage, or nothing will work correctly ! Connect the 4 first red lit outputs of the first (Notes) Poly to Mono module to the 4 Left audio outputs. Do the same with the second (Gates) instance, to the 4 Right audio outputs, in the same order. To have velocity, we scale our Poly Gate signal by the Poly Vel signal using the Poly Amplifier module, and we connect its output to the Gates Poly to Mono module.

Reason VST MIDI out 3.png
Reason VST MIDI out 3.png (327.62 KiB) Viewed 5177 times

Now, connect the upper Poly Scale and Offset between the Poly Pitch output and the Notes Poly to Mono module, and play notes in the middle of your keyboard. You should normally hear the instrument you have chosen, be able to play up to four note chords, but the keyboard is completely out of tune, and lefmost and rightmost notes are unresponsive, because Voltage Modular and Reason's internal CV standards are different. A Scale 1 value of 47.1 % and an Offset 1 value of 1.45 V give the best results I have found yet, and you can press the Ctrl key while dragging the rotaries if you need finer tuning.

Now save the patches, open Scaler, choose or detect a scale, press Record on Transport and click on some chords to test if everything works. Enjoy Reason with VST MIDI output !

User avatar
nooomy
Posts: 543
Joined: 16 Jan 2015

01 Apr 2020

Seams really cool!

Could you try to explain how you do this in Reaktor?
I read the selig thread but i still dont understand how to split the MIDI to seprate CV signals

User avatar
Stygian Abyss
Posts: 110
Joined: 17 Jun 2019

01 Apr 2020

nooomy wrote:
01 Apr 2020
Could you try to explain how you do this in Reaktor?
I read the selig thread but i still dont understand how to split the MIDI to seprate CV signals
Nooomy, I've actually planned to create a Reaktor version - that's why the Combinator is already patched for 8 voices of polyphony in my screen captures, even if Voltage Modular only allows 4 - and will post it here if I succeed, but I need some time, Reaktor is far from beeing as easy as Voltage Modular and I'm no way an expert. If Selig reads this thread, i'll be glad to get some advice from him.

One of the advantages of Reaktor is that it has its own internal audio sample rate, and as the patch will only process MIDI and CV, there's no problem using the lowest available (1/4 of the host's sample rate), it's still faster than Reason's own CV sample rate (1/64). It will be interesting to compare the Reaktor 8 voices version to the Voltage 4 voices version regarding CPU usage.

To split a polyphonic signal to 8 separate mono signals, the solution I'm going to try is to connect 8 Fr. V (From Voice module, Primary manual page 273) to the output of the polyphonic signal source I want to split. The voice number will be specified by a constant module with value 1 to 8 at each V input.

User avatar
nooomy
Posts: 543
Joined: 16 Jan 2015

01 Apr 2020

Stygian Abyss wrote:
01 Apr 2020
nooomy wrote:
01 Apr 2020
Could you try to explain how you do this in Reaktor?
I read the selig thread but i still dont understand how to split the MIDI to seprate CV signals
Nooomy, I've actually planned to create a Reaktor version - that's why the Combinator is already patched for 8 voices of polyphony in my screen captures, even if Voltage Modular only allows 4 - and will post it here if I succeed, but I need some time, Reaktor is far from beeing as easy as Voltage Modular and I'm no way an expert. If Selig reads this thread, i'll be glad to get some advice from him.

One of the advantages of Reaktor is that it has its own internal audio sample rate, and as the patch will only process MIDI and CV, there's no problem using the lowest available (1/4 of the host's sample rate), it's still faster than Reason's own CV sample rate (1/64). It will be interesting to compare the Reaktor 8 voices version to the Voltage 4 voices version regarding CPU usage.

To split a polyphonic signal to 8 separate mono signals, the solution I'm going to try is to connect 8 Fr. V (From Voice module, Primary manual page 273) to the output of the polyphonic signal source I want to split. The voice number will be specified by a constant module with value 1 to 8 at each V input.
Cool! Please share the patch if it works! :)

User avatar
Carly(Poohbear)
Competition Winner
Posts: 2871
Joined: 25 Jan 2015
Location: UK

02 Apr 2020

Nice one, will have to try this...

At the moment I send midi data out via the EMI\Midi Out hit the device that I want Midi data from (e.g. Instachord) and then bring the data back into Reason via surface controller and then I can record it to Seq. or play instruments with it.

EDIT: you can use this method from Reason 7...

User avatar
nooomy
Posts: 543
Joined: 16 Jan 2015

04 Apr 2020

Hey guys!

I made a MIDI to CV converter (for reason) in Reaktor it has 6 voices. All odd numbers audio out channels are gate signals (1,3,5,7,9,11).All even numbers audio out channels are pitch signals (2,4,6,8,10,12).

Send the reaktor patch a polyphonic midi signal and it will split and convert it to 6 different Gate and CV signals in audio format. To convert it to reason CV you need to send the audio signal to a thor and convert it to CV.

https://www.dropbox.com/s/lh3vnhqfwdu1j ... n.ens?dl=0
Last edited by nooomy on 04 Apr 2020, edited 1 time in total.

User avatar
nooomy
Posts: 543
Joined: 16 Jan 2015

04 Apr 2020

After like 3-4 hours i made it work with Cthulu and reaktor! :D Finaly we can use MIDI out VST's inside reason! :D

Here is a video of the setup


User avatar
Stygian Abyss
Posts: 110
Joined: 17 Jun 2019

05 Apr 2020

Carly(Poohbear) wrote:
02 Apr 2020
At the moment I send midi data out via the EMI\Midi Out hit the device that I want Midi data from (e.g. Instachord) and then bring the data back into Reason via surface controller and then I can record it to Seq. or play instruments with it.
This is how I tried to do it first, using LoopBe30 and the standalone version of Patchwork as a VST host. It's probably the less CPU intensive method, has no polyphony limit, but it failed in my case, because, as I discovered it, the standalone version of Patchwork doesn't allow to select a MIDI input and doesn't output MIDI data ! This is a shame for such a good program, it's an at least 6 year old feature request...

So, I designed this Combinator-enclosed version instead.
nooomy wrote:
04 Apr 2020
After like 3-4 hours i made it work with Cthulu and reaktor! :D Finaly we can use MIDI out VST's inside reason! :D
Your Blocks patch is nice but I think that there is a design problem with it: you're using Thor to make it velocity-sensitive. That means you're using the MIDI data as they are before entering the VST MIDI effect to apply velocity to the MIDI data it generates.

Even if it seems to work correctly, especially with a monophonic output like an arpeggiator, this is not a logic way to do it: if you want to make this patch work exactly as if Reason had VST MIDI out, velocity has to be processed from the MIDI data generated by the VST MIDI effect, and then sent to Reason by Reaktor (Or Voltage Modular in my tutorial), or you will lose the relationship between the note/gate CV pairs. Velocity will be randomly distributed among notes, and with VST MIDI effects that output chords, the results will be unpredictable.

I'm working on a 8 voices Reaktor patch created using Primary and will hopefully post it soon.

User avatar
nooomy
Posts: 543
Joined: 16 Jan 2015

05 Apr 2020

Stygian Abyss wrote:
05 Apr 2020
Carly(Poohbear) wrote:
02 Apr 2020
At the moment I send midi data out via the EMI\Midi Out hit the device that I want Midi data from (e.g. Instachord) and then bring the data back into Reason via surface controller and then I can record it to Seq. or play instruments with it.
This is how I tried to do it first, using LoopBe30 and the standalone version of Patchwork as a VST host. It's probably the less CPU intensive method, has no polyphony limit, but it failed in my case, because, as I discovered it, the standalone version of Patchwork doesn't allow to select a MIDI input and doesn't output MIDI data ! This is a shame for such a good program, it's an at least 6 year old feature request...

So, I designed this Combinator-enclosed version instead.
nooomy wrote:
04 Apr 2020
After like 3-4 hours i made it work with Cthulu and reaktor! :D Finaly we can use MIDI out VST's inside reason! :D
Your Blocks patch is nice but I think that there is a design problem with it: you're using Thor to make it velocity-sensitive. That means you're using the MIDI data as they are before entering the VST MIDI effect to apply velocity to the MIDI data it generates.

Even if it seems to work correctly, especially with a monophonic output like an arpeggiator, this is not a logic way to do it: if you want to make this patch work exactly as if Reason had VST MIDI out, velocity has to be processed from the MIDI data generated by the VST MIDI effect, and then sent to Reason by Reaktor (Or Voltage Modular in my tutorial), or you will lose the relationship between the note/gate CV pairs. Velocity will be randomly distributed among notes, and with VST MIDI effects that output chords, the results will be unpredictable.

I'm working on a 8 voices Reaktor patch created using Primary and will hopefully post it soon.
Ah yeah thats true!

I need to edit the Poly Note in Block so it maintain the gate lvl signal, if its possible?

User avatar
Stygian Abyss
Posts: 110
Joined: 17 Jun 2019

05 Apr 2020

nooomy wrote:
05 Apr 2020
I need to edit the Poly Note in Block so it maintain the gate lvl signal, if its possible?
I don't know, I had never seen this rack block before watching your video, because I haven't played much with Reaktor since the 6.3 update. I don't find it in the factory library or the community. Where does it come from ?

User avatar
nooomy
Posts: 543
Joined: 16 Jan 2015

06 Apr 2020

Stygian Abyss wrote:
05 Apr 2020
nooomy wrote:
05 Apr 2020
I need to edit the Poly Note in Block so it maintain the gate lvl signal, if its possible?
I don't know, I had never seen this rack block before watching your video, because I haven't played much with Reaktor since the 6.3 update. I don't find it in the factory library or the community. Where does it come from ?


https://www.toyboxaudio.com/
It is a free block pack from toy box

I Will Try to add velocity to it with this guide
https://www.native-instruments.com/foru ... ve.336339/

User avatar
Carly(Poohbear)
Competition Winner
Posts: 2871
Joined: 25 Jan 2015
Location: UK

07 Apr 2020

Stygian Abyss wrote:
05 Apr 2020
.......
I just happened to be talking to someone about a loopback and just knocked this out for them.

I still need to try your solution as it looks fun and up my street :D
Attachments
Capture.JPG
Capture.JPG (451.42 KiB) Viewed 4671 times

User avatar
Stygian Abyss
Posts: 110
Joined: 17 Jun 2019

07 Apr 2020

nooomy wrote:
06 Apr 2020
It is a free block pack from toy box
I Will Try to add velocity to it with this guide
I didn't know Toybox. Interesting discovery I'm going to download. :)
But... isn't velocity already present in the gate signal in this block ? It is the case with the polyphonic gate in Primary, it works just like the gate signal in Reason.
Carly(Poohbear) wrote:
07 Apr 2020
I just happened to be talking to someone about a loopback and just knocked this out for them.
Once built, the new Reaktor based Combi patch i'm currently fine tuning loads in a few seconds. But it takes time to build and eats my laptop's CPU. :lol:

User avatar
nooomy
Posts: 543
Joined: 16 Jan 2015

07 Apr 2020

Stygian Abyss wrote:
07 Apr 2020
nooomy wrote:
06 Apr 2020
It is a free block pack from toy box
I Will Try to add velocity to it with this guide
I didn't know Toybox. Interesting discovery I'm going to download. :)
But... isn't velocity already present in the gate signal in this block ? It is the case with the polyphonic gate in Primary, it works just like the gate signal in Reason.
Carly(Poohbear) wrote:
07 Apr 2020
I just happened to be talking to someone about a loopback and just knocked this out for them.
Once built, the new Reaktor based Combi patch i'm currently fine tuning loads in a few seconds. But it takes time to build and eats my laptop's CPU. :lol:
That’s the weird thing, the gate signal Is maxed out. It is probably something in the signal splitter that remove the gate signals “original” velocity value.
I made a post in the reaktor forum to see if anyone could help us out

User avatar
Stygian Abyss
Posts: 110
Joined: 17 Jun 2019

07 Apr 2020

nooomy wrote:
07 Apr 2020
That’s the weird thing, the gate signal Is maxed out. It is probably something in the signal splitter that remove the gate signals “original” velocity value.
I made a post in the reaktor forum to see if anyone could help us out
Weird indeed. I can't help you with the module, it's included in one the paid bundles, I don't own any of them but I have to say I'm interested. Would you recommend those you own, especially regarding sound quality ?

kurtg
Posts: 49
Joined: 10 Apr 2018

09 Aug 2022

Stygian Abyss wrote:
31 Mar 2020
Even if it is not currently possible to use VST MIDI effects in Reason, we can build this missing feature using a few additional tools.
Thank you for this tip. :thumbup: I build this by your specs. Works great, except, sometimes wrong notes. I will try playing with the offset and scale.

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 7 guests