CNTRLR

From Livid Wiki
Jump to: navigation, search

Contents

Introduction

This instrument is built with all the familiar controls of a standard MIDI controller, instrument, or mixer.
The CNTRL-R features assignable RGB LED backlighting, custom designed rubber buttons, and high quality sliders and knobs.
The control layout was co-designed with Richie Hawtin and the crew from his M_nus record label.
CNTRL-R users will find the controller to be highly intuitive and adaptable to a variety of music, lighting, and video software.
The CNTRL-R makes an ideal companion for hardware such as analog synthesizers, video mixers, DJ software, step sequencing, Max For Live patches, lighting equipment, and other musical instruments.

What’s in the box

  • Livid CNTRL-R, er, Controller
  • USB Cable
  • Registration Card

Features

  • 60 Buttons with RGB indicators
    • 12 Encoders Pushbuttons
    • 16 Large Buttons in a 4x4 grid
    • 32 Small Buttons in a 16x2 array
  • 32 Analog Controls
    • 24 Rotary Potentiometers
    • 8 Faders
  • 12 Endless Encoders
    • With LED Ring indicators
  • 60 RGB Indicator LEDs
    • Located Underneath all buttons and beneath the Encoders for Encoder Pushbutton indicator
  • Black Aluminum Body
  • Remappable Buttons, Analog Controls, and LEDs
  • Dimmable Backlights
  • Four Banks of Settings on Four Channels
  • Expansion Jacks for adding Analog Controls
  • MIDI in/out for additional control

Controls and Connections

File:CNTRLRlayout.gif
While any of the controls on the CNTRL-R can be used for a wide range of functionality, here are some basic terms and uses for the controls.

Pushbutton Encoders 4x4 Grid 16x2 Button Array Potentiometers Sliders

Mididin.gif


  1. MIDI IN – The MIDI Input port provides a standard 5 PIN MIDI jack for connecting other MIDI devices to the CNTRL-R.
    MIDI input data is then routed over USB to the host computer, and is available to your software on the second port named “CNTRL-R External” (on Windows XP, “USB Audio Device[2]”)
  2. MIDI OUT - The MIDI Output port provides a standard 5 PIN MIDI jack for outputting MIDI from your computer, over the USB cable, and to the MIDI jack. The CNTRL-R will also send its data out the MIDI jack. This MIDI Output can be accessed on your computer via the port named “CNTRL-R External” (on Windows XP, “USB Audio Device[2]”)
  3. USB – USB Port for powering the CNTRL-R and sending MIDI message to and from the instrument.

Expansion Jacks

The CNTRL-R has expansion jacks for connecting additional analog controls. You can use the 1/4" jacks to connect Roland style expression pedals, or wiring your own devices such as sensors, fader, rotary knobs, and more. The pin header connections allow you direct access to the Brain of the CNTRL-R for wiring up to 8 additional analog controls.
Block expansion.jpg

A - 2 - 1/4" Input Jacks

WARNING this jack is designed ONLY for passive input.
Plugging anything with voltage (that includes an audio signal) will damage the unit and void your warranty.

WARNING this jack is NOT designed for switch style pedals. It is designed explicitly for TRS style jacks. Use of a switching pedal (or any TS style 1/4" jacks) will short part of the power supply of your controller,and repeated exposure could damage it.
These jacks were designed to be used with Roland style foot pedals (the DP8, specifically).
(note: the Roland EV-5 is a different style of design and is NOT compatible with the Expansion Jacks).

You can also use the 1/4" Jacks as analog controls with a variable resistor wired to them (i.e. fader, rotary knob, sensor).
If you are rewiring an alternative pedal or your own variable resistor, the pins are as follows:
- The Tip is power, the Ring is wiper (or signal), and the Sleeve is ground.

B - Expansion Pins

Expansion pins.jpg
This pin header lets you connect up to eight additional analog controls to the CNTRL-R. The 10-pin analog pin header has Power (Pin1 lower left) and Ground (Pin2 top left), and 8 more pins for individual inputs (Pins 3-10). Each pot should have its outer pins connected to Ground and Power, with the wiper pin connected to one individual input pin (Pins 3-10). The numbering in the diagram relates the expansion jack's pins to the pin numbers of an analog pin header on the Brain.

C - Dip Switch

The dip switches next to the pin header allow you to activate the analog inputs. To activate the analogs you need to put them in the up position. If you are not using an analog on the pin header it needs to be in the down position as this grounds the connection and prevents it from sending data. Switches 1-8 correspond to pin 3-10 on the pin header as pin 1 and 2 are ground and power.

Connecting

To make the CNTRL-R controller compatible with industry standard sound and video equipment, the controller comes equipped with both a USB and MIDI out connection. The USB is designed to connect directly to a computer and the MIDI out can be used to connect to a MIDI interface, PC soundcard, external soundcard, or any of the hundreds of MIDI processors and synthesizers using a standard MIDI cable. The CNTRL-R is completely USB powered and does not require an external power supply.

For Direct USB Connectivity

The CNTRL-R is class-complaint and does not require drivers when using the USB connectivity.

  1. Connect the USB cable from the computer to the USB port on the CNTRL-R.
  2. When the backlights on the CNTRL-R are illuminated, the device is powered.

For MIDI Connectivity

Using a standard five-pin MIDI cable, connect the CNTRL-R MIDI in and out to the MIDI in and out of your sound-card or other MIDI interface. The CNTRL-R must be plugged into a USB host and have MIDI software running (even if it's something basic like MIDI Monitor (http://www.snoize.com) or MIDI OX (http://www.midiox.com) running. This is a by-product of USB-powered class-compliant devices with no external power source. However, once you have the CNTRL-R connected to a computer and some simple MIDI application running, you can send the CNTRL:R's MIDI out the MIDI output jack.
 It is worth noting that there is a special "MIDI Merge" function that determines if the MIDI data from using the controls on the CNTRL-R will be sent out the MIDI jack. By default, MIDI Merge is enabled, however, if you are not getting MIDI data from the CNTRL-R out the MIDI jack, it is worth double-checking MIDI Merge in the Editor.

Looking at the back of the CNTRL-R, the MIDI OUT is the input jack on the right located next to the USB port, and the MIDI IN is the jack on the left.

Renegade Mode

CNTRLR RenegadeMode 335x303.png
If you push-in the top-right Encoder Push-Button, while you plug in the USB Cable,
Cntrl:r will enter Renegade Mode.
In Renegade Mode, the Cntrl:r ignores USB Protocol, and starts sending MIDI and displaying feedback as soon as it gets power.
This allows your Cntrl:r to operate as a standalone device without a Computer Connection.
You just need to connect your Cntrl:r's USB Port to a 5V DC Adapter (commonly used for smart phone chargers). Ideally, the adapter should be rated at least 450mA.

If you are in Windows, Booting the Controller in Renegade Mode, will also allow the Encoders, Buttons, LED Rings, and MIDI In and Out Ports to operate without opening any MIDI Software. Renegade mode ignores USB Specifications for USB Sleep, which makes the Cntrl:r an outlaw. For this reason, it is not advised that you run the Cntrl:r in Renegade Mode on your computer. The Cntrl:r will work in this condition, but your operating system may complain about it, especially if you have a lot of LEDs on when the computer tries to enter a sleep state.

Please note that your MIDI Merge Output setting must be Saved in the 'On' Position on for the controller data to be sent out of the MIDI Jacks.
The MIDI Merge Output Setting is On by default on the Cntrl:r.

Troubleshooting


Make sure your USB cable is properly connected. If you are using a USB hub, try connecting the CNTRL-R USB cable directly to your computer. The lights should come on once the CNTRL-R is connected.

If you are using a Macintosh Computer running OSX, make sure you have CNTRL-R selected as your device in the Audio MIDI setup. To access Audio MIDI go to Applications>Utilities>Audio MIDI Setup.

Check to make sure your software is configured to use the CNTRL-R. Open your application’s preferences to verify that the software is configured to receive the MIDI messages from the CNTRL-R controller.

Windows XP will show the port names as “USB Audio Device” and “USB Audio Device[2]”, though the “New Hardware Found” popup will show the device as “CNTRL-R”.

Windows 7 will show your controller as CNTRL-R and will automatically recognize the device.

If you are still having problems, confirm that you are receiving MIDI data using MidiMonitor (for OS X) at http://www.snoize.com/MIDIMonitor/ or MIDIOX (for Windows) http://www.midiox.com.

Editor

For details on editing the MIDI assignments on the CNTRL-R, click here: CNTRL-R Editor

Support

For questions or support please visit our forums at http://forums.lividinstruments.com Here you will find answers to many of your questions and ask new ones. We will do our best to answer most of of your questions within 24 hours.

Appendix

Default MIDI Settings

CNTRLR MIDI Defaults.png Additionally, the LED rings around the encoders can be controlled by CC's 100-111. This only affects the LED ring, and not the value of the encoders.

Ableton Live Remote Script Mappings

The CNTRL:R Remote Script provides full integration into Ableton Live. Documentation and details here.

CNTRL-R Sysex

SYSTEM EXCLUSIVE COMMAND BYTES

The System Exclusive message includes the official MIDI Manufacturer ID for Livid, a Product number, and the Command number. A "wild card" Product number allows the same commands to be shared across multiple Livid products. These messages can be almost any number of bytes from 7 to (183) bytes.

Note: In this specification, all numbers are hexadecimal unless parenthesized or otherwise noted, in which case they are decimal.

F0 00 01 61 08 NN ... F7

The Product number is 08 for the CNTRL-R, and the Command numbers, NN, are described below.

COMMAND SUMMARY

00 : individual button map (not supported) *
01 : individual control map (not supported) *
02 : Save User Settings
03 : read presets (ignored) *
04 : Set all LED indicators
05 : Recall User Settings
06 : Factory Reset
07 : Request, multiple subtypes:
07.04 : Request all LED indicators
07.06 : Request Control Surface Snapshot
07.08 : Request MIDI Settings (Local Control, etc.)
07.09 : Request Single MIDI Input mapping
07.0A : Request Analog mapping
07.0B : Request Button mapping
07.0C : Request MIDI Basic Channel
07.0D : Request MIDI Output Merge setting
07.10 : Request Encoders
07.11 : Request Encosion Style
07.16 Request Bank Channel
07.17 Request Bank Channels
07.1A Request Current Bank
07.21 : Request Expansion Analogs mapping
07.22 : Request Color Scheme
07.23 : Request Note Map for LED Indicators
07.24 : Request CC Map for LED Indicators
07.25 : Request LEDs All Banks
07.26 : Request Encoder Values
07.27 : Request Encoder Values All Banks
08 : MIDI Settings Response
09 : Map Single LED Indicator
0A : Map Analog Inputs
0B : Map Buttons
0C : Set MIDI Basic Channel
0D : Set MIDI Output Merge
0E : Erase entire MIDI Input Map
0F : (reserved - Set crossfader Flip)
10 : Encoder MIDI mapping
11 : Encosion Style mapping
12 : (reserved - Analog Chs)
13 : (reserved - Button Chs)
14 : (reserved - Encoder Chs)
15 : (reserved - LED Chs)
0F : Set crossfader Flip
16 : Set Bank Channel
17 : Set All Bank Channels
18 : Save Current Bank Settings
19 : Save All Bank Settings
1A : Current Bank Number
1B : (reserved - Button Map 2)
1C : Restore Current Bank
1D : Set Ring Mode (all encoders)
1E : Set Encoder Speed
1F : Set LED Ring indicators
20: : Local Ring Control
21 : Map Expansion Analog Inputs
22 : Map Color Scheme
23 : Map All Notes to LED Indicators
24 : Map All CCs to LED Indicators
25 : LEDs All Banks
26 : Encoder Values
27 : Encoder Values All Banks
7E : NAK Negative Acknowledge
7F : ACK Positive Acknowledge
* Commands 0, 1, and 3 are Ohm "classic" System Exclusive commands. Even though the MIDI Manufacturer ID is different, and the command structure is different as well, these skipped command numbers pay tribute to what came before.

COMMAND DETAILS

02 : Save User Settings

F0 00 01 61 08 02 F7

All User Settings which can be remembered will be stored in Flash and automatically restored whenever the CNTRL-R is powered up.

The CNTRL-R responds with ACK when finished processing this command.

04 : Set all LED indicators

F0 00 01 61 08 04 B*30 F7

All (60) LED indicators can be set to one of 7 colors or off with this command. There are (30) bytes. Values must be 7F or less. The first 3 bits in a Byte control the R, G, and B values respectively for a single indicator, the next three bits control the RGB for the next LED in the column, and the last bit is ignored. The positions in the list do not conveniently line up with the positions of indicators on the CNTRL:R.

The LED columns and rows do not conveniently match up with the physical layout of the Button columns and rows. Using codes as C.R to specify column and row, the LED codes are as follows (all codes are decimal in this table):

4x4 grid buttons are:

0, 4, 8, 12
1, 5, 9, 13
2, 6, 10, 14
3, 7, 11, 15

Encoder buttons are:

48, 49, 50, 51
52, 53, 54, 55
56, 57, 58, 59

The 16x2 rows:

16, 32, 17, 33, 18, 34, 19, 35, 20, 36, 21, 37, 22, 38, 23, 39
24, 40, 25, 41, 26, 42, 27, 43, 28, 44, 29, 45, 30, 46, 31, 47

The CNTRL-R responds with ACK when finished processing this command.

Explanation by way of example:

Each byte controls 2 LEDs. If you set the first byte's value to 0x3F (63) then it would turn the top left button in the 4x4 grid and the button one row down from it (use the chart in the above link to determine byte "position" and physical location - those are the buttons labeled 0 and 1 in the chart) the color white. If you made the first two bytes value 0x11 and 0x34 the far left column of the RGB Grid would look like:

RED
GREEN
BLUE
CYAN

Looked at another way, the byte value 0x11 looks like this in binary, with the first 3 bits controlling the onstate of the RGB leds in the top right button, the next 3 bits the RGB states of the button one down from it:
1 0 0 0 1 0 0
R G B R G B -
so those two buttons will show RED and GREEN respectively
The value 0x34 looks like:
0 0 1 0 1 1 0
R G B R G B -
so those two buttons will be BLUE and GREEN+BLUE (CYAN).

Finally the message would look like this (these are hex values) for the above example:
F0 0 1 61 8 4 11 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F7 and in decimal:
240 0 1 97 8 4 17 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247

05 : Recall User Settings

F0 00 01 61 08 05 F7

Recall User Settings from storage, just like what happens on power up.

The CNTRL-R responds with ACK if the User Settings are valid, or NAK when no setting have been saved or the memory is unreadable.

06 : Factory Reset

F0 00 01 61 08 06 F7

This will erase the User Settings so that the CNTRL-R is factory fresh.

The CNTRL-R responds with ACK when finished processing this command.

07 : Request

F0 00 01 61 08 07 RR .. F7

This command allows several types of information to be requested. Each request type, RR, will be detailed below. Some request messages require additional information bytes to specific which particular item is being requested.

The CNTRL-R responds with the specified data.

07.04 : Request all LED indicators

F0 00 01 61 08 07 04 F7

Request state of all LED indicators. The CNTRL-R will respond with Command 04, and the bits are interpreted identically.

07.06 : Request Control Surface Snapshot

F0 00 01 61 08 07 06 F7

Request values for all Analog inputs. The CNTRL-R will re-scan every analog input and report the value with the usual MIDI Channel Message, even if it has not changed.

07.08 : Request MIDI state (Channel Mode, etc)

F0 00 01 61 08 07 08 F7

Request state of settings that are controlled by MIDI messages, such as Local Control, Omni, Mono/Poly Mode. The CNTRL-R will respond with Response Command 08.

07.09 : Request Single MIDI Input mapping

F0 00 01 61 08 07 09 LL HH F7

Request the current mapping of incoming MIDI messages. This tells you what notes or ccs will control the LEDs. Alternatively, you can use Command 23,24, and 25. LL HH is the 8-bit map code defined under Command 09 below. Both values must not exceed 7F. LL holds the lower 7 bits, HH holds the most significant bit. Values of HH greater than 1 are reserved. The CNTRL-R will respond with Command 09, which repeats LL and HH followed by the LED code as CR.

07.0A : Request Analog mapping

F0 00 01 61 08 07 0A F7

Request MIDI map for all Analog inputs. The CNTRL-R will respond with Command 0A, and the bits are arranged identically.

07.0B : Request Button mapping

F0 00 01 61 08 07 0B F7

Request MIDI map for all Buttons. The CNTRL-R will respond with Command 0B, and the bits are formatted identically.

07.0C : Request MIDI Basic Channel

F0 00 01 61 08 07 0C F7

Request MIDI Basic Channel. The CNTRL-R will respond with Command 0C.

07.0D : Request MIDI Output Merge setting

F0 00 01 61 08 07 0D F7

Request MIDI Output Merge setting. The CNTRL-R will respond with Command 0D.

07.10 : Encoder MIDI mapping

F0 00 01 61 08 07 10 F7 Request Encoder MIDI mapping. The CNTRL-R will respond with Command 10.

07.11 : Encosion Style mapping

F0 00 01 61 08 07 11 F7 Request Encosion Style mapping. The CNTRL-R will respond with Command 11.

07.16 Request Bank Channel

F0 00 01 61 08 07 16 F7

Request current Bank Channel. The CNTRL-R will respond with Command 16.

07.17 Request Bank Channels

F0 00 01 61 08 07 17 F7

Request all Bank Channels. The CNTRL-R will respond with Command 17.

07.1A Request Current Bank

F0 00 01 61 08 07 1A F7

Request current bank number. The CNTRL-R will respond with:

F0 00 01 61 08 1A BANK F7

where BANK is the current bank number 00-03.

07.21 : Request Expansion Jack Map

F0 00 01 61 08 07 21 F7

Request MIDI settings for the expansion jacks. The CNTRL-R will respond with Command 21.

07.22 : Request Color Map

F0 00 01 61 08 07 22 F7

Request the velocity-to-color mapping. The CNTRL-R will respond with Command 22.

07.23 : Request LED Maps-Notes

Request the LED Note Map. The CNTRL-R will respond with Command 23.

07.24 : Request LED Maps-CCs

Request the LED CC Map. The CNTRL-R will respond with Command 24.

07.25 : Request LEDs All Banks

Request the LED settings for all banks. The CNTRL-R will respond with Command 25.

07.26 : Request Encoder Values

Request the current values of all encoders. The CNTRL-R will respond with Command 26.

07.27 : Request Encoder Values All Banks

Request the current values of all encoders as set in all banks. The CNTRL-R will respond with Command 27.

08 : MIDI Settings Response

F0 00 01 61 08 08 XX F7

Individual MIDI settings, such as the Channel Mode flags, are combined into the data of this message, XX. Bit 1 is Omni Mode Off/On. Bit 3 is Local Control Off/On. All other bits, including 0 and 2, are Reserved. They may reflect other settings, but they may change in future releases. Note that this is a response command only, and it will be ignored if received by the CNTRL-R. Use the official MIDI messages to change these settings.

09 : Map Single LED Indicator

F0 00 01 61 08 09 LL HH CR F7

This command updates the MIDI Input map for a single entry. If HH is 00, then LL specifies the Note number. If HH is 01, then LL specifies the Control number, but only valid control numbers are accepted from 00 to 78. Values of HH above 1 are reserved. CR is the LED indicator Column and Row (see Command 04 for details), or 7F to clear the mapping for the specified entry.

The CNTRL-R responds with a Single MIDI Input mapping for the specified message.

0A : Map Analog Inputs

F0 00 01 61 08 0A (32)*[LL HH] F7

This command updates the MIDI map for all (32) Analog inputs. If HH is 00, then LL specifies the 7-bit Control number, but only valid control numbers 00 to 78 are accepted.
If HH is 01, then LL selects between 14-bit Control numbers and Pitch Bend.
If HH is 02, then the control at that position is unmapped.
In the case HH is 1, LL between 60 and 6F specifies a Pitch Bend message on Channel (1) through (16), respectively. Otherwise, LL selects a 14-bit Control number, of which the only valid control numbers are 00 to 1F. All other values for LL, 20 through 5F and 70 through 7F are reserved for future use. Values of HH above 2 are similarly reserved.

There are (32) sets of LL HH value pairs in this message, each corresponding to the index of an Analog input. These indices do not conveniently match up with the physical layout. The index codes are arranged as follows (all indices are decimal in this table, and start with 0):

Left Side Knobs:

08, 13, 05, 04
10, 11, 07, 02
12, 09, 06, 00

Right Side Knobs

22, 20, 28, 27
23, 18, 26, 29
21, 16, 24, 31

Sliders:

14, 15, 03, 01, 19, 17, 25, 30

The CNTRL-R responds with ACK when finished processing this command.

0B : Map Buttons

F0 00 01 61 08 0B (60)*[LL HH] F7

This command updates the MIDI map for all (60) Buttons. If HH is 00, then LL specifies the Note number.
If HH is 01, then LL specifies the Control number, but only valid control numbers are accepted from 00 to 78. Larger values of LL and HH are reserved, with 7A (start), 7B (continue), and 7C (stop) used for MMC, 7E is used for bank cycling. Bank cycling will allow a button to cycle through the bank programs 1-4 and change the color of the LED to indicate the current bank:

  • 1=white
  • 2=red
  • 3=green
  • 4=blue

If HH is 02 or above, then button will be unmapped.
There are (60) sets of LL HH value pairs in this message, each corresponding to the index of a Button. These indices do not conveniently match up with the physical layout, and there are seven missing codes near the end which are reserved. The index codes are arranged as follows (all indices are decimal in this table, and start with 0):

4x4 grid buttons are:

0, 4, 8, 12
1, 5, 9, 13
2, 6, 10, 14
3, 7, 11, 15

Encoder buttons are:

48, 49, 50, 51
52, 53, 54, 55
56, 57, 58, 59

The 16x2 rows:

16, 32, 17, 33, 18, 34, 19, 35, 20, 36, 21, 37, 22, 38, 23, 39
24, 40, 25, 41, 26, 42, 27, 43, 28, 44, 29, 45, 30, 46, 31, 47

The CNTRL-R responds with ACK when finished processing this command.

0C : Set MIDI Basic Channel

F0 00 01 61 08 0C NN F7

This command sets the MIDI Basic Channel to NN, where 00 through 0F are valid and the rest are reserved. During operation, incoming Channel messages are ignored if Omni Mode is Off and the Channel does not match. If Omni Mode in On, then the incoming Channel is not checked, and all messages are interpreted. For outgoing MIDI messages, the Basic Channel is always used unless an Analog input is mapped to Pitch Bend, in which case the Channel number is specified by the mapping entry.

The CNTRL-R responds with ACK when finished processing this command.

0D : Set MIDI Output Merge

F0 00 01 61 08 0D NN F7

This command allows the Control Surface to merge its messages onto the MIDI output jack, in addition to USB. NN can be 00 (off) or 01 (on). Other values are reserved.

The CNTRL-R responds with ACK when finished processing this command.

0E : Erase entire MIDI Input Map

F0 00 01 61 08 0E F7

This command erases all MIDI Input message mappings. These affect the remote control of LED indicators, so no remote control will be available immediately after the map is erased. Because there are as many as (256) possible MIDI Input messages that can be mapped to an LED, and because multiple assignments to the same LED can cause conflicts, it is best to start the LED indicator mapping process by first erasing all entries before filling in the desired mappings, no more than (75), preferably.

The CNTRL-R responds with ACK when finished processing this command.


10 : Encoder MIDI mapping

F0 00 01 61 08 10 (12)*[LL HH] F7

This command updates the MIDI map for all (12) Encoder controls. If HH is 00, then LL specifies the 7-bit Control number, but only valid control numbers 00 to 78 are accepted.
If HH is 01, then LL selects between 14-bit Control numbers and Pitch Bend. In the latter case, LL between 60 and 6F specifies a Pitch Bend message on Channel (1) through (16), respectively. Otherwise, LL selects a 14-bit Control number, of which the only valid control numbers are 00 to 1F.
if HH is 02, then the encoder is unmapped.
All other values for LL, 20 through 5F and 70 through 7F are reserved for future use. Values of HH above 2 are similarly reserved.

There are (12) sets of LL HH value pairs in this message, each corresponding to the index of a Button. These indices do not conveniently match up with the physical layout. Matching the encoder button layout with index position, we get:

0 1 2 3
4 5 6 7
8 9 10 11

11 : Encosion Style mapping

F0 00 01 61 08 10 E1 E2 E3 E4 F7

This command sets the Mode for each encoder as "absolute" or "inc/dec". Absolute mode behaves as a linear poteniometer sweeping from 0-127. Inc/dec will send a value of 127 on a CW turn, and a value of 1 on a CCW turn. E1: Acceptable Values: 0-7F. Setting the individual bits for this byte controls mode for Encoders 1-7. A '0' for a bit sets the mode to "absolute," a '1' sets the mode to "inc/dec." E2: Acceptable Values: 0-7F Setting the individual bits for this byte controls mode for Encoder 8. Any byte value greater than 0 will set Encoder 7 to "inc/dec" mode. E3: controls Encoders 9-12 E4: unmapped

CC 116: Encoder Output Mode Toggle

When the Cntrl:R Receives CC 117, the Cntrl:R interprets the Value of that Messages as an 'Encoder Mapping'. The Cntrl:R then toggles the Encoder Output Mode of the Encoder with that Mapping. For Example, with a Code with Default Settings, sending CC 116, MIDI Channel 1, Value 48 Will toggle the Encoder Output Mode of the Top-Left Encoder from Absolute to Relative (inc/dec) Mode. Sending the same Message again, will toggle the Encoder back to Absolute Mode.

1D : Set Ring Mode (all encoders)


F0 00 01 61 08 1D B1 B2 B3 B4 F7 All (12) Encoder LED Ring indicators can have their display mode set with this command. There are (4) bytes.. Values must be 7F or less. A 1 bit turns on Fill Mode for an encoder, a 0 puts the ring in Walk Mode (only 1 LED will light for indication).

  • B1: RingMode (Encoders 01-07)
  • B2: RingMode (Encoder 08)
  • B3: RingMode (Encoders 09-12)
  • B4: RingMode (umapped)

Ring mode can also be toggled using CC 117.

CC 117: Ring Mode Toggle

When the Cntrl:R Receives CC 117, the Code interprets the Value of that Messages as an 'Encoder Mapping'. The Cntrl:R then toggles the Ring Mode of the Encoder with that Mapping. For Example, with a Code with Default Settings, sending CC 117, MIDI Channel 1, Value 48 Will toggle the Ring Mode of the Top-Left Encoder from Walk to Fill Mode. Sending the same Message again, will toggle the Ring Mode back to Walk Mode.

1E : Set Encoder Speed


F0 00 01 61 08 1E S1 S2 F7 This command sets the sensitivity of all encoders. Encoders can travel at any multiple of the normal speed. S1 and S2 describe the speed multiplier. S1 is the "normal" speed, and S2 is the speed when the Speed Button is depressed. When set to 00 or 01, the encoder will have a normal sensitivity. For values from 02 to 0F, the encoder will respond more quickly. When set to 02, the encoder will have double speed, 03 will have 3x speed, and so on, up to a multiplier of 0F (15) times normal. For values 42 to 4F, the encoder will respond more slowly. When set to 42, the encoder will respond with half speed, 43 will respond with 1/3 speed, and so on up to 4F (1/15th speed). See "Speed Control Button" below.

1F : Set LED Ring indicators


F0 00 01 61 08 1F BYTE*(24) F7 There are 64 bytes that make up the bulk of this message. This command sets the on/off state for each LED on the Encoder LED Rings. A bit value of 1 will turn the LED on, a bit value of 0 will turn it off:

  • BYTE01: LEDRing01: LEDs 01-07
  • BYTE02: LEDRing01: LEDs 08-13
  • BYTE03: LEDRing02: LEDs 01-07
  • BYTE04: LEDRing02: LEDs 08-13
  • BYTE05: LEDRing03: LEDs 01-07
  • BYTE06: LEDRing03: LEDs 08-13

. . .

  • BYTE23: LEDRing11: LEDs 01-07
  • BYTE24: LEDRing12: LEDs 08-13

16: Set Bank Channel

F0 00 01 61 08 16 CH F7

This command will set the input and output channel for all controls in the current bank. CH specifies the channel, in the range of 0-0F. This does not change the controller's Main channel, which is used for communicating with the device for program changes, and other standard MIDI commands.

17: Set All Bank Channels

F0 00 01 61 08 17 CH*4 F7

This command will set the input and output channel for all controls in all (4) program banks. CH specifies the channel, in the range of 0-0F. This does not change the controller's Main channel, which is used for communicating with the device for program changes, and other standard MIDI commands.

18: Save Current Bank Settings

F0 00 01 61 08 18 F7

This command will save all settings to flash memory for the current bank.

19: Save All Bank Settings

F0 00 01 61 08 19 F7

This command will save all banks to flash memory.

1A: Current Bank

F0 00 01 61 08 1A BANK F7

Contains the Bank number in the BANK byte. This message is sent in response to 07 1A in addition to a bank button press on the controller.

21 : Map Expansion Analog Inputs

F0 00 01 61 08 21 (10)*[LL HH] F7

This command updates the MIDI map for all (10) Expansion Analog inputs. If HH is 00, then LL specifies the 7-bit Control number, but only valid control numbers 00 to 78 are accepted. If HH is 01, then LL selects between 14-bit Control numbers and Pitch Bend. In the latter case, LL between 60 and 6F specifies a Pitch Bend message on Channel (1) through (16), respectively. Otherwise, LL selects a 14-bit Control number, of which the only valid control numbers are 00 to 1F. All other values for LL, 20 through 5F and 70 through 7F are reserved for future use. Values of HH above 1 are similarly reserved.

There are (10) sets of LL HH value pairs in this message, each corresponding to the index of an Analog input. The relationship of LL HH pairs (called "BB" below) to the physical pins on the expansion jack are like so:
Exp-bytes.png
The CNTRL-R responds with ACK when finished processing this command.

22 : Color Map

F0 00 01 61 08 22 (7)*[COLOR CODE] F7

The color values that are triggered by note velocity and cc value can be changed. The COLOR CODES are:

  • 0 -> No Color (LED Off)
  • 0x01 (100) -> Red
  • 0x02 (010) -> Green
  • 0x03 (110) -> Yellow (Red+Green)
  • 0x04 (001) -> Blue
  • 0x05 (101) -> Magenta (Red+Green)
  • 0x06 (011) -> Cyan (Blue+Green)
  • 0x07 (111) -> White (Red+Blue+Green)

Looked at another way, the color value in any of the 7 slots will match up with the following velocities:

0 1 2 3 4 5 6 7
0 1-3 4-7 8-15 16-31 32-63 64-126 127

currently, the default is 0 7 6 5 1 4 3 2:

  • 000-000: OFF
  • 001-003: White
  • 004-007: Cyan
  • 008-015: Magenta
  • 016-031: Red
  • 032-063: Blue
  • 064-126: Yellow
  • 127-127: Green

23 : Map LED All Notes

F0 00 01 61 08 23 (128)*[CR CODE] F7 Command 23 is an alternative to Command 09. The position index of the (128) bytes represent a note number, and the byte value represents the CR Code (see CR Code map). For example, the CR Code (15) in position 0 would map note 0 to the bottom right button in the 4x4 Grid. A CR Code of:

  • 7F (127) means that the note at that position will not control any LED.
  • 7E (126) the CC maping will not change from what it currently is stored as on the controller. (Ignore Mapping)
  • CR > Maximum Value of CR, as 7F.

'Note: If you run this command, you must run Command 16 (0x10) to Remap your Encoder Input Mappings Afterward'

24 Map LED All CCs

F0 00 01 61 08 24 (128)*[CR CODE] F7 Command 24 is an alternative to Command 09. The position index of the (128) bytes represent a continuous controller number, and the byte value represents the CR Code (see CR Code map). For example, the CR Code (16) in position 0 would map cc 0 to the top left button's LED in the 16x2 array. A CR Code of (127) in any position in the 128 byte list means that the cc at that position will not control any LED. 'Note: If you run this command, you must run Command 16 (0x10) to Remap your Encoder Input Mappings Afterward'

25 : Set All LEDs For All Banks

F0 00 01 61 08 25 (B1*42) (B2*42) (B3*42) (B4*42) F7

Similar to Command 04, this will change the LED states for all banks. The result is that any stored LED settings in a bank will be overwritten by the states described in Command 25. The (42) bytes B1 will describe the states for bank 01, the (42) bytes B2 will describe the states for bank 02, and so on. It is worth noting that these settings will not be saved to flash memory, however, unless a Command 18 or 19 is send to the device.

26 : Encoder Values

F0 00 01 61 08 26 (12)*VV F7 All values for the Encoders can be updated using this sysex message, rather than sending individual control messages. The value VV can range from 00-7F. The position in the string relates to physical position of the encoder according to this table: Encoders:

0 1 2 3
4 5 6 7
8 9 10 11

27 : Encoder Values All Banks

F0 00 01 61 08 27 (12)*B1 (12)*B2 (12)*B3 (12)*B4 F7 Similar to Command 26, but the values for the encoders in all preset banks can be updated using this command, where B1 is values for the for Bank 1, B2 for Bank 2, and so on.


7E : NAK Negative Acknowledge

F0 00 01 61 08 7E F7

This is intended as a way for the CNTRL-R to indicate a problem with the previous message. Unfortunately, when messages are sent too fast, it becomes impossible for the CNTRL-R to reply with anything reliably, even NAK.

The best approach is to wait for ACK (see below) after sending each message, rather than depend on NAK to indicate an error. The one exception is Recall User Settings, where the CNTRL-R will reply with NAK if the contents of User memory are empty or otherwise corrupted.

7F : ACK Positive Acknowledge

F0 00 01 61 08 7F F7

ACK means the previous message was handled correctly. Some messages (e.g. Map Single LED Indicator) simply reply with a specific command instead of ACK, when more context is needed than a simple acknowledgment.

MAPPING SUMMARY

  • Analog to CC; 121 control numbers; 7-bit value
  • Analog to CC; 32 control numbers; 14-bit value
  • Analog to Pitch Bend; 16 channels; 14-bit value
  • Button to Note; 128 note numbers; 1-bit value
  • Button to CC; 121 control numbers; 1-bit value
  • Button to MMC; 3 types; no value
  • LED from Note; 128 note numbers; 1-bit value
  • LED from CC; 121 control numbers; 1-bit value

MIDI IMPLEMENTATION

The following standard MIDI messages are implemented.

System Real Time:

  • MIDI System Reset

Channel Mode Messages:

  • Reset All Controllers
  • Local Control (connects buttons to corresponding LED indicators)
  • Poly On / Mono On (both set Omni Off)
  • Omni On/Off
  • All Notes Off (turns off all LED indicators)

Controller Numbers:

  • 76 (118) : backlight dimmer
  • 74 (116): Toggle Encoder Mode: Channel = Channel of the Bank of the Encoder you want to change. Message Value = Encoder Number. If Encoder Number >= Number of Encoders, the message is discarded
  • 75 (117): Toggle Ring Mode: Channel = Channel of the Bank of the Encoder you want to change. Message Value = Encoder Number. If Encoder Number >= Number of Encoders, the message is discarded

Note Velocity and CC value input (all proceeding values in decimal):

  • 000-000: OFF
  • 127-127: Color7
  • 064-126: Color6
  • 032-063: Color5
  • 016-031: Color4
  • 008-015: Color3
  • 004-007: Color2
  • 001-003: Color1

(Refer to command 22)

Program Change:

  • Sending a program change number 1-4 to the CNTRL-R on the MIDI Basic Channel (cmd 0C) will change the bank number.