Tag Archives: midi controller

General MIDI layout for TouchOSC

I was experimenting with TouchOSC‘s new MIDI capabilities and created this layout:

 There are four octaves of keys – it was a bit of a pain to go to one after another and enter the pitches so I figured I’d share the fruits of my labor. The other controls are just X, Y and XY slider controls that send MIDI CC messages. They’re arranged in a “well, let’s use up this space and see what happens” pattern. I figure I’ll fine tune it after playing it for a while.

Download it here.

UPDATE: I lowered the range by an octave so C3 is on the upper row left, which I think is more sensible.  Get it here.

Modding Spacedrone for keyboard control

Any sound generator in Reaktor can be modified to give MIDI note control over the output level. Here’s how to do it in Spacedrone:

Easy peasy. An ADSR envelope multiplies the signal going to the output. You can also use a selective note gate module instead of a vanilla gate module so only one specific note will trigger output. Adjust the attack, decay, sustain and release to taste.

Download the modded ensemble here. (oops, link was broken, should work now)

If you’re looking for an interesting way to manipulate recorded samples of Spacedrone or other audio material, try my sampler pack.

UPDATE: added pitch control too. It doesn’t work the way a normal synth would because the pitches of individual voices have a random factor but you can control the range.

Sending MIDI CC with the Channel Message module


I’ve been working with someone on creating custom MIDI controllers for use in Ableton and thought I’d share ideas. The most flexible way to send MIDI in Reaktor 5 is to use the Channel Message module.

The input ports, from bottom to top, work like so:

  • Val: self explanatory. This is where you send the value of the message you want to transmit. By default the range is zero to one, but you can change this in the module properties.
  • Nr: In this case, the number of the MIDI CC to transmit.
  • Ch: The MIDI channel to transmit on. This overrides the settings of the instrument containing the module, but you can go into the module properties and tell it “always use instrument’s send channel”.
  • St: Status – this determines what kind of message will be sent. We’re sending type 3 which is a MIDI controller message. You can also send note on/off information, pitch bend, and so forth.

The tricky bit: this module only sends data when it receives events at the St input. When it receives an event there, it transmits whatever values are at its other inputs. That’s why I’m using the order and value modules, to ensure that every control change is followed by an event with the value “3” at St. Hover over St and the other ports for hints on what values they accept and what the values mean.

I’ve deliberately kept the structure as simple as possible for clarity… some enhancements you might make are to add panel controls to set the MIDI channel and CC#, and to rig up a more interesting event source than a knob. How about the LFO module? Try it but keep in mind the default range of the LFO is -1 to +1, not 0 to 1. You can either compensate with a few math modules or (not recommended) change the default range in the Channel Message module’s properties.

Here’s the test ensemble – build something fun with it!