Thursday, July 12, 2012

Rack Extensions: The Remote side of it... Part II

Missed Part I ? Click here ...or, just jump right into Part III with a link to ready made Remote Templates and some info on how to use them :)

Q3: Is there a better, full-proof way to get the proper Remoteables list used by a Rack Extension device ?

A3: Sure, from the Rack Extension device's documentation... if/when available :)
(or, the tedious manual way already mentioned on the previous Part I post)

So, try getting the Rack Extension User Manual, Remote Mapping Chart or even the MIDI Implementation Chart if available and check the index or (usually) the last pages of the User Manual (or try searching for "Remote", "Mapping", "Chart").

The only current example (that I know) of proper Remote documentation:

 Buffre Beat Repeater
: Go to the "Product website" or the "Product support page" and download the Operation Manual. Check Page 35 (true for v1.0.1) and there it is, the Remote Mapping Chart.

The previous page has the current MIDI Implementation Chart, if you need or want to control Buffre purely through MIDI CCs, without messing around with Remote mapping.

Some examples of how a MIDI Implementation Chart can also be helpful:

Propellerhead Pulsar Dual LFO: Go to the "Product website" and at the bottom of the page, look for the "MIDI Controller Chart" and download it. Not really a Remote Mapping Chart but you can check the Parameter column and try those parameter IDs as Remoteables. I know, I know, still hit'n'miss territory here... but if there's no Remote Mapping Chart, this could be the closest thing.
...oh and don't forget to get the Operation Manual and take a look at it. There's always something in there that you missed while simply using the device ;)

Propellerhead Polar Dual Pitch Shifter: Go to the "Product website" and again, at the bottom of the page, look for the "MIDI Controller Chart" and download it. Exact same thing as above... not really the Remote Mapping Chart but you can try using those parameters and see if those work as the Remoteables. Also, get the Operation Manual and check if there's anything you didn't know about Polar :)

Propellerhead Radical Piano: Already implemented on the "factory" provided Remote Maps, installed with Reason 6.5 but, like the above, there's a "MIDI Controller Chart" available, if needed in the "Product website" link :)

At the time of this post (and last update), I wasn't able to find anything like the above for:
  • Audio Damage
  • Synapse
  • Sugar Bytes: There are manuals but no MIDI Implementation or anything Remote related.
  • Softube: There are VST-version manuals with no specific info for the Rack Extension versions.
  • iZotope's Ozone Maximizer: A User's Guide exists with lots of interesting info, but no reference to Remote or MIDI Implementation.
  • FXpansion's Etch Red: Lots of excellent information, videos, demos and documentation, but nothing about Remote. Maybe the best would be to ask them in the dedicated support forum :)
  • GForce's Re-Tron: Excellent User Manual, video and demos but nothing about Remote or MIDI Implementation
  • Korg's Polysix: Lots of interesting and useful info but nothing about Remote Mapping.
  • AudioRealism's ABL2: There's a Manual (draft) but no Remote or MIDI Implementation info (yet?).
  • Sonic Charge's Bitspeek: User Guide exists, but nothing about Remote or MIDI implementation.

Friday, June 22, 2012

Rack Extensions: The Remote side of it...

Update: Maybe you should just skip all this and jump right into Part III since there's a link to ready made Remote Templates and some explanation on how to use them :)
But... if you still want to know how those Templates were made, here's some details that helped achieve that:

So, we finally got 3rd party devices inside "THE RACK" uh? :)

After all the fuss, hype...iness, trying every available Rack Extension possible and buying the "must have" ones, there's an issue related with the Remote side of each one of these new devices inside our Reason 6.5 rack:

The only Rack Extension supported by default on all the "factory" provided Remote Codecs+Maps is Propellerhead's own Radical Piano.

Yup... so now what ?

Here's some tricks for every Remote Dev/"hacker"/enthusiast and/or power user that knows how to or likes to keep their own customized versions of their controller Remote Codecs and Maps.

Q1: What's the quickest way to list all the Rack Extension Remoteables ?

A1: Besides the traditional and tedious way of engaging the Options, Remote Override Edit Mode, and going through each of the device controls, hovering the mouse over them and taking notes of its Remote designation, there's a quicker and easier way to do this for the Rack Extensions.

As you may already know, there's a new patch file format introduced with the Rack Extensions known as RePatch (extension .repatch).

This new file type is really, and fortunately (for many reasons, including what I'm about to explain) in plain text format, specifically, it's in XML format :)

Great uh? Yup, it's awesome!
(at this point, you may have noticed that I have to keep answering my own questions -.-')

This new format allows many patch generating/editing tricks (maybe I'll post about it in the future) but, the first thing you'll get out of this is easy access to the internal names of each control (knob/fader/button/...) of the Rack Extension that saved that .repatch file. this point, you may ask:

"What about all the other Rack Extensions that don't have Patch saving capabilities ?"

well... as usual, the Combinator comes to the rescue, in this case too ;)

Simply put the Rack Extension device you're trying to figure out its Remoteables, inside a Combinator, save that as a Combinator patch (.cmb file) and open that file with a text editor (that doesn't get confused with extra non-printable characters!). This will get you access to the same type of information I was talking about in the .repatch file, since all the Rack Extension parameters/controls are also saved in that .cmb file, as an XML block of plain text, which solves our problem :)

Ok, let's see an example, shall we?

Let's say I want to add support to Pulsar on my custom version of the M-Audio Axiom 61 Remote Map.

Here are the basic steps:

1) Start Reason 6.5

2) Create a Pulsar device

3) Combine it (i.e. put it inside a Combinator)

4) Save that Combinator as something like "PulsarInside.cmb" (remember the folder where you saved it!)

5) Start your preferred text Editor and open that same " PulsarInside.cmb" file with it.

You'll end up with something like this:

...and if you sort those lines, or filter them for "Value property" you'll get something like this:

See? After some Search/Replacing, you'll get this clean list of Pulsar remoteables:
Level1 Modulation Input
Level2 Modulation Input
Phase1 Modulation Input
Phase2 Modulation Input
Rate1 Modulation Input
Rate2 Modulation Input
Shuffle1 Modulation Input
Shuffle2 Modulation Input
Which is then what you can use (i.e. try) to map to your controller controls with lines like:
Map Fader 1 Attack
Note that, sometimes, you may need to replace any "_" char for a white space " ", so if there's an internal parameter name like "EG_ATTACK", as a remoteable it might become "EG ATTACK", being the one you want to use inside your .remotemap file!

Also, because internal parameter names used in patches aren't exactly the names declared as remoteables, you should expect some kind of trial'n'error with this, also because not every saved parameter is supposed to be exposed as a remoteable, so... don't be surprised if some of these simply don't work, ok? :) ...this is just a "brute force" way to quickly get everything.

For instance, that raw list will need some adjustments, when you compare it with what you'll get when doing a check of each Remote Override naming.

So, in this case of Pulsar, you see some differences when comparing with this list:
Keyboard Track
LFO1 Env Level
LFO1 Env Rate
LFO1 Env Sync
LFO1 Lag
LFO1 Level
LFO1 Phase
LFO1 Rate Free
LFO1 Rate Synced
LFO1 Shuffle
LFO1 Tempo Sync
LFO1 Waveform
LFO2 Enabled
LFO2 Env Level
LFO2 Env Rate
LFO2 Lag
LFO2 Level
LFO2 Phase
LFO2 Rate Free
LFO2 Rate Synced
LFO2 Shuffle
LFO2 Tempo Sync
LFO2 to LFO1 Level
LFO2 to LFO1 Rate
LFO2 Triggers Envelope
LFO2 Waveform
Sync LFO1 to LFO2
You'll always have to check, but I prefer to edit and correct a raw list extracted in bulk than going one by one and manually taking notes on each Remoteable. Just a personal preference. Now that you know this additional method, you're the one to choose which works best for you :)

Q2: What about the Scope line ? How do I identify the Rack Extension as a Scope?

A2: Well, there are 2 things you'll need to know to make the Scope line: The device ID and... the CompanyID that made it.

So, with those 2 informations, you'll be able to make a line like:
Scope {CompanyID} {RackExtensionID}
 ...and this is how you get those 2:

1) To get the Rack Extension ID, you'll need to check the folder where the Rack Extensions are kept (saved/installed). I don't own a Mac (sorry!) so I'll give you the Windows path (and maybe someone in the comments can add the OS X equivalent).

Edit: Thanks to electricfusion laboratory, here's the OS X path:
'your user account'/Library/Application Support/Propellerhead Software/Rack Extensions

So, navigate your Windows explorer to the path "%AppData%\Propellerhead Software\RackExtensions" and you'll see a list of folders per installed Rack Extension.

Continuing with the Pulsar example, you can easily spot a folder named "se.propellerheads.Pulsar.1.0.0" right?
So, excluding the version part, that "se.propellerheads.Pulsar" is what we will use as the Rack Extension ID in our scope line
Scope {CompanyID} se.propellerheads.Pulsar

2) Now, to get the Company ID, that's the easiest part :)

Simply press F8, to open the Tool Window, and find the Rack Extension you're working with... in our example, Pulsar

See the "Propellerhead Software" group ? Well... that's the "Company ID" you should use in:

Scope Propellerhead Software se.propellerheads.Pulsar

and... you're ready to go and do your own custom maps for the new Rack Extension devices :)

uh... more Company ID examples ? Ok... so, lets check a few more:

so, these would make scopes like:
Scope FXpansion Audio UK Ltd. com.fxpansion.EtchRack
Scope Peff  com.peff.Buffre
Scope Sonic Charge com.soniccharge.Bitspeek
Scope Sugar Bytes com.sugarbytes.SliceArranger

I hope this will help all the Remote enthusiasts to get started with their custom maps of all the current and future Rack Extensions! :)

For more on this, please check Part II

Tuesday, February 28, 2012

Teaser II (?): Improved MIDI output Codec demo...

uh... well... users kept asking me if this'n'that was possible, so, while explaining how to do it I ended up adding stuff to the Codec, namely, it even sends MIDI Program Change now :]

Here I'm showing the larger note range: 104 notes now, from C-1 to G7 through the use of 4 Codec instances, each controlling 32 note segments, like shown at the end of the video.

These technical demos are always a bit boring, I know, especially non-voiced over ones (and with lame note/chord sequences ;), but I'm in a noisy room at the moment so... I preferred doing yet another "silent" video with just the synths output being recorded. Sorry :)

oh, and I keep using VSTi's just because it's easier to capture everything on screen, but any external hardware device could be the target of the MIDI output. Then you can simply record its audio into a Reason audi track, et voila'!

Tuesday, February 14, 2012

Teaser (?): A bit of fun with MIDI output from Reason

Hi ! :)

Made this little demo video today, showing something I tried a while back just to see if it was possible and... yeah, it is, but quite cumbersome and limited of course...

Aaaanway, since I mentioned it on a Prop forum thread about MIDI out, I felt like I should at least show I wasn't crazy or lying ;)

But... I won't waste any more time on this. I prefer to wait for a proper MIDI output solution from Propellerhead, like I did wait for a proper solution for Audio Input, Sampling and Recording.

Monday, January 16, 2012

Teenage Engineering OP-1 Remote Codec & Map

FYI: Reason 6.5 and above includes a newer version of TE OP-1 Remote Codec & Map! You can read jump to the Quick Reference Guide down below to get some info about it :)


Hey! :)

You're a Reason 6 user and you just installed the recent Reason 6.0.2 update ?
(No? What are you waiting for!?!?)

Do you have a TE OP-1 ?
(Yeah? Congratz! ;)

...and if you still haven't upgraded your OP-1's firmware to at least OS #12234 (or newer), you should really update your OP-1's OS ASAP!:)

Yeah, so now you can use your OP-1 as a Control Surface for Reason ! Neat uh ? :)

Before going into some quick basics about this new functionality, let me tell you that there's a newer version of this TE OP-1's Remote Map. It's basically a maintenance release to fix a couple of bugs I've noticed and fixed after the first release. This (or a higher) version will surely be included in future versions of Reason, but if you want it now, here's how:

Download the following zip archive, by clicking this Teenage Engineering OP-1 Remote Codec+Map (Official V.1.2).zip link.

This archive includes the following files:
  • Codecs\Lua Codecs\Teenage Engineering\OP-1.luacodec
  • Codecs\Lua Codecs\Teenage Engineering\OP-1.lua
  • Codecs\Lua Codecs\Teenage Engineering\OP-1.png
  • Maps\Teenage Engineering\OP-1.remotemap

Extract those 2 folders (Codecs and Maps) to the following path:

on Mac OSX:
Library:Application Support:Propellerhead Software:Remote

on Windows:
%ALLUSERSPROFILE%\Propellerhead Software\Remote

which usually translates to:

on Windows Vista or Windows 7:
C:\ProgramData\Propellerhead Software\Remote

on Windows XP or 2000:
C:\Documents and Settings\All Users\Application Data\Propellerhead Software\Remote

Confirm, if asked about overwriting the existing files
(since you already have the older V.1.1 version ones installed)

Start Reason and if you already had TE OP-1 added as a control surface, all should be good. If not, just connect the OP-1 and do a quick auto-detect, just like you see in the video.

Quick Reference Guide

These are some of the general rules that apply to the TE OP-1 Remote Map:
  • Transport buttons Rec, Play, Stop, < and > work as expected.

  •  + 
    To change the keyboard Octave, use Shift + < or Shift + >

  • Lift / Drop buttons work as Previous / Next Sequencer Track target.

  • Synth / Drum buttons work as Previous / Next patch, ID8 preset, Channel FX Insert or Base Channel, depending on what's the target or locked rack device being controlled.

  • There's a notion of control pages or "Modes" selected by the Mixer (default mode) and T-keys (the big 1, 2, 3 and 4 buttons below the display). So each of the 4 encoders (the Blue, Green, White and Red knobs) and the 8 buttons (smaller numbers, below the encoders) can do different things depending on the Mode selected.

  • As expected, Shift is also used to quickly access an alternate function of all these buttons and encoders. So, you can have 5 modes (default Mixer, T1, T2, T3 and T4) plus another 5 (Shift+Mixer, Shift+T1, etc...)
     +, when exploring what's possible to control with the OP-1, first try the encoders and the 1-8 buttons. Then try them again with Shift pressed. ...and you're still only using the default mode. Press T1 (the bigger 1 button) and try the encoders and buttons again... then try T2, etc... some devices, like Thor and Kong use almost all the 10 modes, so Shift+T4 will actually work and change the encoders function.

  • Tap Tempo button works as expected too... See also what happens with all the other buttons I didn't mentioned, like the ...
    Tape button to toggle the transport Loop mode

    Metronome Click On/Off

    Quantize Record

  • One other important notion to learn is that the encoders can be pushed ("clicked") down to achieve higher value resolution, when needed.

  • The Mic button is usually used to trigger Reason 6's Sample feature when controlling a sampler device like NN19, NN-XT, Kong or ReDrum (well, on ReDrum, it engages an extra Sampling mode and then choose the channel to sample on with 1-8 buttons, including Shift+7 or Shift+8 for sampling on Channels 9 or 10 always, press Mixer button to return to the default mode).

Other generic rules that are usually true when possible:

  • Blue encoder controls the Mod Wheel
    (when in default mode = Mixer button). Combinator is the exception to this rule. Press Shift+Blue Encoder to get to the Mod Wheel, or T1 to lock that. Mixer to unlock (i.e. return to the Default mode).
    Green and White encoders are usually mapped to Filter Cutoff and Resonance or generic knobs like ID8 or Thor.

  • Red encoder is mostly mapped to Volume.
  •  + 
    Shift+Play is always mapped to Run type devices, like Matrix, ReDrum, Thor, Dr. OctoRex, etc...

  • Button 8 is by default mapped to Bypass/On/Off status switch found on Effect and Combinator devices.

...and I guess this is quite enough for now. I'll let you figure out the rest by exploring yourself :)