by: kertikristof


Digital audio workstations, VST plugins and other audio software can send out MIDI. Grid can receive and process these incoming MIDI messages. This article will show an example configuration made with Grid and Ableton.

The MIDI receive functionality can be accessed through the midi rx event in the system events tab. The midi rx event is where actions can be configured to react to received MIDI data.

Actions triggered by system events are unique to each module. To have a control surface where each module reacts to MIDI, you have configure each module's midi rx event.

Basic Setup

Usually the MIDI data sent out by audio software will have the MIDI message in the following format: Command, Parameter 1 (CC or Note), Parameter 2 (CV or Velocity).

The command itself contains the channel information. Control Change 178 means that the MIDI command is 176 and channel is 2.

To enable and see MIDI OUT in action on the DAW's side:

  • Enable MIDI OUT for Intech Studio: AC (Grid) midi preferences
  • Map a control element on a Grid controller to a parameter
  • You should see a blinking a indicator for sending MIDI OUT midi indicator

To see results in Grid Editor here are few tips:

  • Select the control element MIDI mapped

  • Under system events choose the midi rx event system events - midi rx

  • Add a Codeblock action and call the print function on the variables found in the Local Variables action

    <?lua --[[@cb]] print(ch,cmd,param1,param2)?>

    print midi

    The variables defined in the Local Variables action are on the module by default.

  • Open the debug panel on the left

  • Upon interacting with the control element's mapping, you should see MIDI data. midi debug

Great! Now you have a communication between the DAW and Grid, let's see an actual configuration.

LED Value controlled by Ableton

  • Map control elements 12 and 13 in Ableton on two volume fader, by default when EN16 is plugged in it will be assigned to CC44 and CC45 ableton midi map

  • Remove LED Value actions from the encoder event on control element 12 and 13 remove led value

  • Select the System Events tab and the midi rx event system events - midi rx

  • Add a new variable to Local Variable with name lednum lednum variable

  • Add Lookup below the Local Variables action

    <?lua --[[@glut]] lednum=glut(param1,44,12,45,13) ?>

    add lookup in prompt

    • This Lookup action has a source, in this case the param1, which contains MIDI OUT param1.

    • Input 44 will be mapped to control element 12

    • Input 45 will be mapped to control element 13

    • Assign destination to the lednum variable, for later usage.

    lookup configuration

  • Add a LED Value action

    • Set the LED Number input to lednum,
    • Layer to 2 (encoder turn),
    • Set the Intensity to param2 (this is MIDI OUT param2)

    led value

The encoder event by default triggers the LED Value action on the mapped control element. In default configuration, this is why you see LED intensity change above the turned encoder. We now mapped the intensity to see changes transmitted by Ableton instead of the encoder itself.

Extra: set the minimum LED brightness

By default, each encoder control element has a minimum LED brightness for both encoder and button events. This is a nicify feature, where the module's LEDs will shine even if turned down. Also an encoder control element has two LED color layers, where the two layers are mixed if used together. For example if you push the encoder while turned up, the two colors and their intensity will be combined to give feedback about the interaction.

To set the minimum to 0 instead of a minimum nicified value, call the led_color_min() function on the init event. The code below will set the minimum led color to none on layer 2, which is the led color layer of the encoder rotation.

<?lua --[[@cb]] led_color_min(num,2,0,0,0) ?>

If you want to zero out both the encoder and button events default color, call the led_color_min() function on both layers, like seen on the image below.

led color min

Receive MIDI from Ableton with Grid controllers

In this article