14 Bit MIDI Receive Macro for Reaktor – Free Download

Someone asked about 14 bit MIDI on Twitter, then implemented their own solution while I was snoozing – different time zone? Red Bull? Who knows – so I thought I’d upload my own version for comparison.

It receives two MIDI controllers, one of which represents the most significant bit, the other of which represents the least significant bit. It uses a bit shift module in Core, which is always fun. Whee! The upshot is, you get extremely high resolution for controlling things that you don’t want to be overly steppy, like filter cutoff and sample playback position.

I’m not using it any more because Reaktor now has OSC in the plugin version, so I use OSC tools like Konkreet Performer, TouchOSC and Lemur for my hi-res controller needs. But for those of you who have hardware that supports 14 bit MIDI, this is going to be useful, as Reaktor has no native 14 bit controller support.

All you have to do is decide which controllers you’re using, set them in the controller properties, then use the NRML output for a normalized 0 to 1 control range.

Here’s the macro. Happy controlling!

Update: Thanks to the ever sharp eyed and vigilant lazyfish, I’ve been informed of a bug in the macro. It will work but it looks weird because there were two modules on top of each other in the core cell. Here they are separated:

You can either multiply the incoming MSB by 128 or bit-shift it by 7 bits. I had tried both, got the same basic results, and left both modules in the core cell but with only one connected of course.  Sorry for the confusion! I’ve uploaded a corrected macro.

Update 2: lazyfish asked the important question, why am I converting twice? I think I was programming Lemur-ese in Reaktor based on input from a template I was using on iPad at the time. Here is another iteration of the macro:

In this one, the value range of the controllers can be left at 0 to 1 which is the default in Reaktor, and the values, math and scaling happen in the core cell where everything’s explicit – I like to avoid having magic numbers hidden in properties whenever possible.