Record 1.0 bug workaround



One of the bugs I reported during Record Beta testing, relates to a Master Section missing "In" target, when trying to redirect MIDI channel data to a specific device.

Why would I care about this tiny little forgotten thing?

Well, since I'm using an M-Audio Axiom 61, and don't find the fader section useful for Synth parameter tweaking (non motorized faders cause weird and sudden parameter value jumps and I find that distracting) I made my custom M-Audio Axiom Remote codec SysEx block (the bunch of data that gets sent to the recognized controller to set it up properly each time we start Record or Reason) have that fader section send its MIDI data to MIDI Channel 16.

This would allow me to "Channel Lock" the faders to the Master Section in Record, so I could easily control the Record's Main Mixer with those faders.


** A little explanation here: When I wrote this, I wasn't aware that the Advance MIDI Device bypasses Remote, so any MIDI sent to devices this way, is sent "raw" and isn't processed by the Remote layer, meaning, devices will only respond to Reason's "raw" MIDI Implementation (please check the "MIDI Implementation Chart.pdf" included in Reason's Documentation) and not to any Remote Map related to the controller in that port. Also, but this I knew already, this bypass includes the sequencer, so it's impossible to record anything sent this way to a device. This make sense, really, because it's like connecting a MIDI cable to your hardware synth, in this case, we're directly connecting the rack device to an external MIDI source.
Since the rest of this post still provides useful information for other uses, I'm not editing anything. So... carry on and thank you for your time :) **


Well... this little bug spoiled my initial plans, unfortunately (so I had to devise a more complex solution... erm... keep reading, please :P)

So, let me show you what I'm talking about with some nice fancy pics ^^

See how we can redirect MIDI Channel 1 data to a Mix Channel ?
This allows us to control its respective Main Mixer strip. The volume fader, and all those cool strip knobs :)


...or to a Combinator, besides being able to select one of the enclosed devices, of course.

Well, the Record 1.0 bug I'm talking about makes it impossible to use a specific MIDI Channel to control the Master Section:

See ? No "In" target for the Master Section :(

This would allow us to use a specific MIDI Channel to control all the existing Mixer strips at once. The default usually works in groups of 8 strips, because there's a Remote function to jump the control target to the next/previous 8 mixer strips. A very nice touch of the product specs designer(s).

As I said, I just had to find a workaround to this, and I did.

Since Record and Reason allows us to lock controllers to devices, I just had to make those Axiom faders look like a separate (virtual) controller. That's to say that, I had to make my Axiom look like 2 controllers instead of 1.

So "Axiom Standard" would present itself to Record like an Axiom minus the Faders type of controller and "Axiom Faders" would present itself like a 9xFaders controller, and this would finally allow me to lock that virtual "Axiom Faders" controller to the Main Section device :)

(btw, I did the same with the pads, creating an "Axiom Pads" virtual device, but... that's another long story, unfortunately, since there's no multi MIDI recording in either Record nor Reason, I wasn't able to record with those as an extra locked keyboard device).



How did I split my physical Axiom controller into 2 (or 3 with the pads) virtual controllers?

Using MIDI-OX filtered routing :]

This may look a bit confusing but it's very easy to explain.

As you can see, "USB Audio Device" (that's the Axiom) is sending a copy of the MIDI stream to "MIDI Yoke: 3" filtering out any Channel 16 data (becoming the virtual "Axiom Standard" without the Faders). See the filtering settings here:
(Double-clicking those grey squares get you this filtering pop-up.
The blue-dotted ones have filters set.)

Another copy of the same "USB Audio Device" MIDI stream is sent to "MIDI Yoke: 6" with all Channels but 16 filtered, becoming the virtual "Axiom Faders" controller:

With all this set, I just had to simply go to Record's Edit, Preferences, Keyboards and Control Surfaces and add an extra "faders" control surface receiving data from "MIDI Yoke: 6", not forgetting to set my usual Axiom codec to now receive data from "MIDI Yoke: 3"


...and that's it :)

Now, I can lock that "Axiom Faders" device to the Master Section (save that empty .record file as a Template) and take advantage of something I added to my custom codec: being able to use standard Bank MSB to make those next/previous base track jumps :)




I delayed this post as much as I could, waiting for a Record update that still hasn't come, unfortunately. One can only hope that Record 1.x comes soon and fixes this and other still existing bugs. Hopefully it'll also take care of some tiny annoying missing features, because Record and Record users deserve it!

Comments

  1. Koshdukai,
    So correct me if I'm wrong, but this will essentially ensure that the faders are set to the same parameters that the main faders are set to on-screen when you first open Record? One of the things that annoys me without motorized faders is the fact that you have to continually reset them to what you see on-screen, before you can actually "Control" your song channels. If you've found a solution for this, then you truly are a miracle worker.

    Rob
    http://www.reason101.net

    ReplyDelete
  2. Unfortunately the only thing this ensures is that the Axiom faders can be lockable to Record main mixer faders and that's about it.

    The advantage (to me) is that, it's easier to quickly set mixer faders to whatever values are already set on screen than using those same faders to tweak synth parameters that, as soon as we touch the (unsynched) fader, we can make a mess out of the synth patch.

    So, again, unfortunately, I'm not solving the syncing problem any non-motorized fader has... I'm just diverting the faders use to something that doesn't usually make a big mess (in my case) i.e. the main mixer.

    Sorry for not providing the miracle you (and many of us) would wish with non-motorized faders :(


    ...although, now that I'm thinking about this, there may be a way to implement something similar to Ableton Live's "Takeover Mode: Pickup" within my custom Axiom Remote codec .lua script! hmmm... as soon as I have time, I'll do some tests and see what is/isn't possible.

    ReplyDelete
  3. I see now. That makes more sense. I think it's next to impossible to do what I would like, and have the faders "locked" to what you see on-screen. The physics/logic of it just wouldn't work.

    But thanks for the interesting article. It was a good read. ;-)

    Rob
    http://www.reason101.net

    ReplyDelete
  4. Yeah, only through magic one would make those non-motorized faders "move" to the positions shown on-screen ;)

    But, as I said in the end, there might be a way to at least implement a "only move the on-screen fader as soon as the physical fader gets to that value" ...better than nothing, eh ? :) Well, if I can find a way to implement it from the Remote codec end, although it would be nicer to have that option built-in in Record/Reason, like Ableton Live has.

    If there's any news in this front, I'll post about it.

    Until then, thanks for checking the blog! :)

    ReplyDelete

Post a Comment

Popular posts from this blog

Generic MIDI Channel aware Remote Codec+Map

Arturia SparkLE Remote Codec+Map

Random access to a CV values list