Grid Layer Mode
This function adds a layer mode for interacting directly with external hardware, e.g. the Norns device.
The Grid layer is a simple layer type that generates MIDI messages when LED switches are pressed, and lights up LEDs in response to incoming MIDI messages. It allows the TNR to be used as a control surface for other hardware. It was originally aimed at the Monome Norns, via the midigrid interface, but can be used as an interface to Ableton, other hardware, etc.
The Grid layer generates no sounds itself.
This page provides the details of the TNR side of the interface. For implementing with midigrid, a specific Lua script is needed, this was developed and tested by PAKL and is hosted here.
Grid layer mode is selected in the same way as Score/Random etc., by going into the Layer menu, and changing the mode:
![]() |
![]() |
---|
When keys are pressed, Grid mode will send out MIDI messages on the channel selected under Layer/MIDI channel. LEDs are illuminated based on messages received with MIDI channel matching the layer number. For this reason, it is important to make sure that the Outgoing Layer MIDI channel matches the layer number.
![]() |
![]() |
---|
The rest of this page assumes that the Grid layer is layer 1, and the MIDI channel is set to 1.
LED Messaging
The top half and the bottom half of the LED grid generate and respond to different messages (this is required because the MIDI specification limits note numbers to 128).
The top half generates MIDI Note on messages with velocity=127 (0x90 nn 7F), with nn being 0x00 to 0x7F, when LEDs are pressed, and MIDI Note On messages with velocity 0 (0x90 nn 00) when the LED is released. ‘nn’ here is the MIDI note, running from 0x00 to 0x7F. Note that the MIDI specification interprets Note-on with velocity zero as note off (0x80).
Similarly, the LEDs in the tophalf respond to incoming Note on messages. The incoming velocity is interpreted as brightness, with 0 meaning off, 1-63 / 64-97 / 98-127 meaning brigthness 1/2/3 respectively.
The bottom half generates MIDI Polyphonic Aftertouch (0xA0) messages, with similar logic : keypresses generate 0xA0 nn 7F and releases generate 0xA0 nn 00. LEDs light up in response to the same messages with the amount of aftertouch setting the brightness in the same way.
Other keys
The OK/Cancel and [R1]-[R5] keys work in the normal TNR way. The Clear button, and [L1]-[L5] keys are not useful in the Grid layer, so they generate MIDI messages in case the external device can make use of them. The messaging uses a new Grid Control Change 0x55 (85 decimal), with codeing
- 0xB0 55 jk
- j = 0 means button released, j = 1 means button pressed
- k = button ID, 0x4=Clear, 0xA=L1, 0xB=L2,…, 0xE=L5
Configuration message
The same CC message is used with a different meaning
- 0xB0 55 40 : Clear all LEDs
- 0xB0 55 41 : Set this layer (1) to Grid type
- 0xB0 55 42 : Set the outbound midi channel on this layer to the same as the number (1)
- 0xB0 55 43 : Equivalent to 0x41 + 0x42
- 0xB0 55 44 : Change the visible layer to this one
- 0xB0 55 45 : Equivalent to 0x44 + 0x41
- 0xB0 55 46 : Equivalent to 0x44 + 0x42
- 0xB0 55 47 : Equivalent to 0x44 + 0x42 + 0x41
The last is a expected to be the most useful one when connecting to an external device.
Other remarks
It is highly recommended to disable the TNR’s on-board screensaver feature, in order to prevent confusion if this and the norns are both running. This is disabled by selecting the “Saver Time” submenu found under the “Interior”, and setting the time to “Off”.
Compatibility Issues
None known.
Releases
First included in A042