Hacking Reason for MIDI madness!

This forum is for discussing Reason. Questions, answers, ideas, and opinions... all apply.
jimmyklane
Posts: 740
Joined: 16 Apr 2018

20 Jul 2018

So, I’ve been working on hacking MIDI in the same manner I’ve hacked SMPTE for my system.

If I were to record SysEx dumps as an audio file (by hacking a MIDI cable into a TRS housing) and then use Thor to change audio to CV, and then use the free CV-MIDI converter to get them back it seems like I could now have my project files truly auto-recall. Send the MIDI out to my hardware synths ready to accept SysEx dumps and boom, my patches are recalled just as I saved them. No more saving everything in my samplers and on labelled floppies or SCSI/IDE drives waiting to die a grinding death!




Any thoughts?
Discuss!



PS: yes, I have and use MIDIOx, and it does it’s job, but the only thing I miss from Nuendo is the ability to work with ANY kind of MIDI...seamlessly....because Nuendo comes from Cubase and Cubase started life sequencing external hardware with all that implies. Since I do little else but sequence external hardware, I’d love access to 14-bit MIDI controllers, Poly AT, NRPNs, and SysEx....if Reason made a modernized MIDI sequencer and bolted it on to what we’ve got now I’d never leave the music room.
DAW: Reason 12

SAMPLERS: Akai MPC 2000, E-mu SP1200, E-Mu e5000Ultra, Ensoniq EPS 16+, Akai S950, Maschine

SYNTHS: Mostly classic Polysynths and more modern Monosynths. All are mostly food for my samplers!

www.soundcloud.com/jimmyklane

User avatar
jam-s
Posts: 3035
Joined: 17 Apr 2015
Location: Aachen, Germany
Contact:

20 Jul 2018

I'd be surprised if the CV-MIDI converter would (reliably) generate sysex messages.

User avatar
rcbuse
RE Developer
Posts: 1175
Joined: 16 Jan 2015
Location: SR388
Contact:

20 Jul 2018

jimmyklane wrote:
20 Jul 2018

If I were to record SysEx dumps as an audio file (by hacking a MIDI cable into a TRS housing) and then use Thor to change audio to CV, and then use the free CV-MIDI converter to get them back
This is not possible.

jimmyklane
Posts: 740
Joined: 16 Apr 2018

20 Jul 2018

rcbuse wrote:
20 Jul 2018
jimmyklane wrote:
20 Jul 2018

If I were to record SysEx dumps as an audio file (by hacking a MIDI cable into a TRS housing) and then use Thor to change audio to CV, and then use the free CV-MIDI converter to get them back
This is not possible.
Explain why. “This is not possible” is not the most demonstrative of answers.

I DO know that you can record both MIDI clock and MIDI data as an audio stream. The rest I’m unsure of. Explain why it won’t work, please?
DAW: Reason 12

SAMPLERS: Akai MPC 2000, E-mu SP1200, E-Mu e5000Ultra, Ensoniq EPS 16+, Akai S950, Maschine

SYNTHS: Mostly classic Polysynths and more modern Monosynths. All are mostly food for my samplers!

www.soundcloud.com/jimmyklane

jimmyklane
Posts: 740
Joined: 16 Apr 2018

20 Jul 2018

rcbuse wrote:
20 Jul 2018
jimmyklane wrote:
20 Jul 2018

If I were to record SysEx dumps as an audio file (by hacking a MIDI cable into a TRS housing) and then use Thor to change audio to CV, and then use the free CV-MIDI converter to get them back
This is not possible.
Nevermind. I see the flaws in my logic here
DAW: Reason 12

SAMPLERS: Akai MPC 2000, E-mu SP1200, E-Mu e5000Ultra, Ensoniq EPS 16+, Akai S950, Maschine

SYNTHS: Mostly classic Polysynths and more modern Monosynths. All are mostly food for my samplers!

www.soundcloud.com/jimmyklane

botnotbot
Posts: 290
Joined: 26 Oct 2017

21 Jul 2018

jimmyklane wrote:
20 Jul 2018
rcbuse wrote:
20 Jul 2018


This is not possible.
Nevermind. I see the flaws in my logic here
Can you elaborate for the electronically challenged?

At first blush, it makes some intuitive sense a galvanic MIDI transmission could be recorded and re-streamed. I assume DC coupling is required. Is that something that doesn't get recorded to audio?

Thanks in advance for clearing it up.

User avatar
jappe
Moderator
Posts: 2437
Joined: 19 Jan 2015

21 Jul 2018

botnotbot wrote:
21 Jul 2018
jimmyklane wrote:
20 Jul 2018


Nevermind. I see the flaws in my logic here
Can you elaborate for the electronically challenged?

At first blush, it makes some intuitive sense a galvanic MIDI transmission could be recorded and re-streamed. I assume DC coupling is required. Is that something that doesn't get recorded to audio?

Thanks in advance for clearing it up.
Perhaps because scrambled midi codes when converting from audio to lower resolution CV in Thor?

jimmyklane
Posts: 740
Joined: 16 Apr 2018

21 Jul 2018

botnotbot wrote:
21 Jul 2018
jimmyklane wrote:
20 Jul 2018


Nevermind. I see the flaws in my logic here
Can you elaborate for the electronically challenged?

At first blush, it makes some intuitive sense a galvanic MIDI transmission could be recorded and re-streamed. I assume DC coupling is required. Is that something that doesn't get recorded to audio?

Thanks in advance for clearing it up.
Theoretically, DC coupling would be better, but the sample rate should be high enough to handle the square wave signals.

Recording the midi transmission as audio isn’t the problem, the problem is that Reason only RECOGNIZES note on/off, performance controllers, and the MIDI CCs. Since SysEx isn’t note data you’d have no joy getting it back OUT again. In addition, MIDI is transmitted in 10-bit words at a rate of 31.25 kbit/sec....or 3.125kHz, which is approximately 10x the maximum frequency of CV communication. You’d have a seriously corrupted data stream. So, while you could record the data in, you couldn’t get it back out.

As an aside, for those with vintage synths that have a tape output, you most certainly can dump single or bank dumps via audio as that’s what the interface was made for.
DAW: Reason 12

SAMPLERS: Akai MPC 2000, E-mu SP1200, E-Mu e5000Ultra, Ensoniq EPS 16+, Akai S950, Maschine

SYNTHS: Mostly classic Polysynths and more modern Monosynths. All are mostly food for my samplers!

www.soundcloud.com/jimmyklane

User avatar
rcbuse
RE Developer
Posts: 1175
Joined: 16 Jan 2015
Location: SR388
Contact:

21 Jul 2018

botnotbot wrote:
21 Jul 2018

Can you elaborate for the electronically challenged?
First, the physical layer isn't compatible.
Audio line levels run at a peak of around 2 volts.
MIDI is a current based signal, where logic 0 is 5mA.
I wouldn't recommend putting a constant current into an audio input. Depending on the MIDI interface driving it, it could create some large voltages attempting to reach 5mA, potentially damaging the input.

So say you are lucky enough that the above works out with your interface and you can actually record the midi bit stream. MIDI has a bit rate of 31250 bits per second. You are going to need to sample at least twice as fast which is 62KHz.

Now say you sampled at a high rate and you actually have a good audio sample of the MIDI sysex.
Now what?

There wouldn't be any point in converting it to Reason CV, Reason CV is a 64th the rate of audio. But say you sampled it fast enough (4MHz) that converting it to CV worked. There isn't any way to record and store CV data in reason. But say you don't care about storing it as CV, you do it on the fly, converting audio to CV.

You still have a binary stream of the MIDI sysex.
010100101101001110101

There is no way to get that back out of reason onto a MIDI bus. There is nothing that exists that could take a audio or CV based MIDI message and get that back out into a real MIDI message.

User avatar
Catblack
Posts: 1020
Joined: 15 Apr 2016
Contact:

21 Jul 2018

Reason can only handle Sysex at the Remote level. (Remote is the lua scripted interface for tying midi controllers into it.) It can detect and send sysex no problem. I send sysex messages to my launchpad pro codec to change the pad lights and it's pretty fast the way I've coded it.

But you can't get anything but something remotemappable (or notes) back into Reason.

You could, conceivably, write a codec for your device that took sysex and outputted it to something in the rack that's automatable in the sequencer and record it there... except that what happens is that you run into 'the wall', which is that everything in remote, to send a message out to Reason, needs a midi input to tie it into. So you couldn't send, say, a stream of bytes to a combi dial and record that. I call this dilemma 'the wall' because I always hit it when I stop and think things through. You have to tie the remotables with an incoming event, you can't send a remotable in the lua and then 20ms later send another. You can't send a note sequence, either, or believe me I'd have made a Remote based arpeggiator by now. But you can set as many remotables to an incoming event, like a sysex message, as you like.

Now maybe you could find a large rack extension with 100+ remotables you could use. Whatever the size of your sysex message. And then accept your sysex message in the codec and then change all those remotables and you could store that patch into a combi or whatever. (You can detect track and device patch name changes so you can use that to send them back to your device, though you have to be careful with that, or you'll keep sending it every time you switch back to the device with your funky sysex message settings.) You could do that. It's a bit unwise because while you'd store the sysex load string in the codec, the early part of the message, you could possibly change a dial on your sysex patch device and then maybe break your hardware by changing a byte.

It took me 2 years to get really good with lua to feel finished with my codec -- well enough that I use it as my keyboard and play it daily -- but I'd warn you that madness and despair is what you are likely to find when you venture into the Remote. Turn back now!
If you ain't hip to the rare Housequake, shut up already.

Damn.

User avatar
rcbuse
RE Developer
Posts: 1175
Joined: 16 Jan 2015
Location: SR388
Contact:

21 Jul 2018

This is what I had dreamed of back when Record was the new hotness. circa 2010.
Image

User avatar
Catblack
Posts: 1020
Joined: 15 Apr 2016
Contact:

22 Jul 2018

rcbuse wrote:
21 Jul 2018
This is what I had dreamed of back when Record was the new hotness. circa 2010.
Image
I almost went to the rack and started looking for it!

I've got so many midi devices here in my studio but no codecs for them. I wish there was something like that, something simple to use like that!
If you ain't hip to the rare Housequake, shut up already.

Damn.

botnotbot
Posts: 290
Joined: 26 Oct 2017

22 Jul 2018

Thanks for the explanations, jimmy and rcbuse.

Regarding the screenshot of an automation to MIDI mapper, I've also wondered why this is such an absent feature in DAWs.

As far as I know, Cubase is the only DAW that ships with something that is specifically designed build a "frontend" for a physical synth by giving it virtual knobs and such.

You can rig something up in Logic's environment, as well, since you can do it in Mainstage.

But the first time I load up "Hardware Instrument" in a new DAW and see no knobs, all I can wonder is "What am I missing?"

Why hasn't a company (in the last 20 years) done what MIDI Quest (allegedly) did or Ctrlr tries to do?

I guess we can only wait and cross our fingers that we finally get the MIDI upgrade the rack has been waiting for. At that point it would be 'easy money' for RE developers to start developing frontends for popular synths. Sysex seems like it would be a key part of the puzzle here, obviously.

User avatar
Ahornberg
Posts: 1904
Joined: 15 Jan 2016
Location: Vienna, Austria
Contact:

22 Jul 2018

You can do a lot with MIDI sysex in Reaper with Reascript and rewire Reason into Reaper.

jimmyklane
Posts: 740
Joined: 16 Apr 2018

22 Jul 2018

Ahornberg wrote:
22 Jul 2018
You can do a lot with MIDI sysex in Reaper with Reascript and rewire Reason into Reaper.
Don’t get me wrong, I was creating device panels in Cubase when they first became available...I’m pretty good with both NRPN messages and SysEx data. Most of my synths communicate that way, and two of my samplers can record and retransmit the patches for my entire studio in one burst....however, that is clunky, and a workaround designed for this particular shortcoming inside of Reason. What I really want is to have bar 1 have the SysEx for all my synths lines up on their tracks and therefore have recall when i hit play.
DAW: Reason 12

SAMPLERS: Akai MPC 2000, E-mu SP1200, E-Mu e5000Ultra, Ensoniq EPS 16+, Akai S950, Maschine

SYNTHS: Mostly classic Polysynths and more modern Monosynths. All are mostly food for my samplers!

www.soundcloud.com/jimmyklane

User avatar
Ahornberg
Posts: 1904
Joined: 15 Jan 2016
Location: Vienna, Austria
Contact:

22 Jul 2018

jimmyklane wrote:
22 Jul 2018
Ahornberg wrote:
22 Jul 2018
You can do a lot with MIDI sysex in Reaper with Reascript and rewire Reason into Reaper.
Don’t get me wrong, I was creating device panels in Cubase when they first became available...I’m pretty good with both NRPN messages and SysEx data. Most of my synths communicate that way, and two of my samplers can record and retransmit the patches for my entire studio in one burst....however, that is clunky, and a workaround designed for this particular shortcoming inside of Reason. What I really want is to have bar 1 have the SysEx for all my synths lines up on their tracks and therefore have recall when i hit play.
On a per-song-base this is not possible in Reason.

jimmyklane
Posts: 740
Joined: 16 Apr 2018

22 Jul 2018

Ahornberg wrote:
22 Jul 2018
jimmyklane wrote:
22 Jul 2018


Don’t get me wrong, I was creating device panels in Cubase when they first became available...I’m pretty good with both NRPN messages and SysEx data. Most of my synths communicate that way, and two of my samplers can record and retransmit the patches for my entire studio in one burst....however, that is clunky, and a workaround designed for this particular shortcoming inside of Reason. What I really want is to have bar 1 have the SysEx for all my synths lines up on their tracks and therefore have recall when i hit play.
On a per-song-base this is not possible in Reason.
Oh, I know. It’s the one and only temptation to move back to Nuendo and Rewire. I’m sincerely hoping that we get an overhaul that truly allows External MIDI Instruments/Devices to shine.

I can do a fair amount with my effects units by programming sequential presets and using Program Change messages, and I’ve also been able to address multiple CCs via both CV (via the single input on the EMI using multiple EMI devices as purely CV—>MIDI conversion) as well as the drop down menu for automation.

That said, I own numerous synths that need to be controlled via NRPN and/or SysEx. I also have a few that will send 14-bit MIDI and PolyAT. Since I can not access these functions, I’ve managed to find some workaround editors that will send the proper messages when presented with a CC....and they usually require an entire MIDI port or they freak out.

Before VST was introduced, I was sure that this was because PH didn’t want us leaving the Reason ecosystem but now I just think that they don’t believe external MIDI to be all that important.
DAW: Reason 12

SAMPLERS: Akai MPC 2000, E-mu SP1200, E-Mu e5000Ultra, Ensoniq EPS 16+, Akai S950, Maschine

SYNTHS: Mostly classic Polysynths and more modern Monosynths. All are mostly food for my samplers!

www.soundcloud.com/jimmyklane

User avatar
Ahornberg
Posts: 1904
Joined: 15 Jan 2016
Location: Vienna, Austria
Contact:

22 Jul 2018

jimmyklane wrote:
22 Jul 2018
Before VST was introduced, I was sure that this was because PH didn’t want us leaving the Reason ecosystem but now I just think that they don’t believe external MIDI to be all that important.
IMO PH thinks MIDI is only note-on and note-off ... no channels, no poly aftertouch ... even the Players (a fairly new kind of REs in Reason) cannot create CC-messages. I miss support for MPE, MIDI tuning standard and of course for sysex.

jimmyklane
Posts: 740
Joined: 16 Apr 2018

22 Jul 2018

Ahornberg wrote:
22 Jul 2018
jimmyklane wrote:
22 Jul 2018
Before VST was introduced, I was sure that this was because PH didn’t want us leaving the Reason ecosystem but now I just think that they don’t believe external MIDI to be all that important.
IMO PH thinks MIDI is only note-on and note-off ... no channels, no poly aftertouch ... even the Players (a fairly new kind of REs in Reason) cannot create CC-messages. I miss support for MPE, MIDI tuning standard and of course for sysex.
I actually don’t mind using multiple EMIs as channel support. It’s very easy to see what your sampler/synth is doing. On the other hand, having a “MIDI Player” like that mentioned above would be simply stunning, but that’s just a pipe dream I think, because of the paradigm inherent in Reason: a rack full of external synths. By this measure of logic, we don’t need anything else outside of the program. I’m not sure what made them place such an anemic link to the outside world, but it’s what we’ve got. At least 64 EMIs don’t use any (or much) CPU!!! I’ve found that I can get a ton of mileage out of my studio using those tools that are unique to Reason....another interesting aspect is when using multiple EMIs it is more tempting...or maybe intuitive...to see each MIDI part in an interconnected manner. My favorite synth, the “cream” of my studio is a Matrix-12, and you can break it down from a 12-voice polysynth all the way to 12 seperate monosynths each with a different preset...and anything in between. Same with my samplers...using tools like Distributor to make 8 EMIs play the same sample on different channels with slight tuning differences.

While I make the most of what I’ve got, I’d love to see more possible in a grown-up sequencer!
DAW: Reason 12

SAMPLERS: Akai MPC 2000, E-mu SP1200, E-Mu e5000Ultra, Ensoniq EPS 16+, Akai S950, Maschine

SYNTHS: Mostly classic Polysynths and more modern Monosynths. All are mostly food for my samplers!

www.soundcloud.com/jimmyklane

User avatar
rcbuse
RE Developer
Posts: 1175
Joined: 16 Jan 2015
Location: SR388
Contact:

22 Jul 2018

If you really want to nerd out, I suggest using something like
http://ctrlr.org/

Its a general purpose MIDI panel builder, I made one a while ago for my novation supernova. But what this allows you to do is have a VST to External MIDI bridge. So you could potentially have Reason Automation driving any MIDI messages you wanted. This allows you to bypass the EMI device as well to send external midi.

User avatar
syncanonymous
Posts: 477
Joined: 16 Mar 2015
Location: UK and France
Contact:

11 Oct 2018

very cool
yes please, I want to send parameter change sysex from Reason :-)
RSN 10.4d4_9878_RME UFX+_Intel Core i7-8700K 3.7 GHz__Corsair Vengeance 64GB DDR4-3000
ASRock Fatal1ty Z370__Palit GeForce GTX 1050 Ti KalmX__Samsung 960 PRO/ M.2-2280 NVME SSD
:reason: :re: :recycle: :PUF_figure: :rebirth: :refill:

User avatar
Re8et
Competition Winner
Posts: 1511
Joined: 14 Nov 2016

16 Oct 2018

rcbuse wrote:
21 Jul 2018
This is what I had dreamed of back when Record was the new hotness. circa 2010.
Image
2010 was not so long ago, why was it abandoned back then? It looked pretty good!

User avatar
rcbuse
RE Developer
Posts: 1175
Joined: 16 Jan 2015
Location: SR388
Contact:

16 Oct 2018

Re8et wrote:
16 Oct 2018
rcbuse wrote:
21 Jul 2018
This is what I had dreamed of back when Record was the new hotness. circa 2010.
Image
2010 was not so long ago, why was it abandoned back then? It looked pretty good!
This was just a photoshop mockup before the External MIDI Instrument existed. Before Rack Extensions Existed. Before Lectric Panda existed. So there was really nothing to abandon, it just didn't exist except for a PNG file.

User avatar
Ahornberg
Posts: 1904
Joined: 15 Jan 2016
Location: Vienna, Austria
Contact:

17 Oct 2018

I do not understand why Players only support MIDI notes.
Players supporting MIDI CC would be more powerful.

User avatar
syncanonymous
Posts: 477
Joined: 16 Mar 2015
Location: UK and France
Contact:

20 Oct 2018

well, baby steps for me with Ctrlr...lots of them

Lack of documentation leads right into a minefield...gotta be persistent and not get derailed easily.
Every day I think it isn't going to work...and I spend a day on it and find solutions.
Recording SysEx into Reason? I don't have any idea about that yet...Maybe Catblack's "Wall" is looming. I also want to record GSP2101 footcontroller toggles (midi CCs). So might need to make a Cntrlr fer that too.

In standalone mode, the mapped CCs do control my CyberTwins. I turned on TouchOSC just for a look see and that worked controlling my standalone Ctrlr panel doing nothing to Ctrlr...awesome! And got me re-inspired.

When I started (past 2 weeks), I was using the latest version 5.5.2 and "built" (placed modulators and formatted, no Lua) a basic midi cc controller. But that 5.5.2 version doesn't load in a VST host (shows up an empty VST. You need load ctrlr.dll into a VST host in order to save a dll version of a panel...that is the way Ctrlr works). I've been working in standalone only, whoops. I installed Ctrlr version 5.3.201 and thar she blows, I can save my panel as a dll. My dll doesn't work on first load, tho :-/ Likely, I gonna hafta make my panel in 5.3.201 as described here. Not a huge problem....I only have 18 sliders so far. I keep all my settings in a separate doc, so it's a copy and paste fest.
Last edited by syncanonymous on 20 Oct 2018, edited 1 time in total.

Post Reply
  • Information