Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
This section lists all possible configurable features on OpenDeck boards. All features on OpenDeck boards are grouped into several blocks. Each block has one or more sections. For more details on how to actually configure those features, see SysEx configuration.
- MIDI block
- Button block
- Encoder block
- Analog block
- LED block
MIDI block has two sections: features and merge. This block allows configuration of various settings related to MIDI protocol and data transfer.
This section allows configuration of several features related to sending and receiving of MIDI messages. All features are disabled by default.
- Standard note off - When enabled, standard MIDI note off will be sent. If disabled, note off is sent as note on event with velocity 0.
- DIN MIDI - Used to enable or disable traffic on DIN MIDI ports. Note: Not available on Arduino Uno and Arduino Mega.
- Running status (DIN MIDI only) - When enabled, MIDI traffic can be reduced. See here for more info. DIN MIDI must be enabled to use this feature. Note: Not available on Arduino Uno and Arduino Mega.
- MIDI merge - When enabled, all traffic coming through input MIDI DIN port can be forwarded to USB MIDI, DIN MIDI out or both interfaces. DIN MIDI must be enabled to use this feature. Note: Not available on Arduino Uno and Arduino Mega.
Merge section currently has only one parameter: Merge interface. Merge interface can be any of the following:
- USB - When configured, all input from DIN MIDI in will be forwarded to USB interface.
- DIN MIDI out - When configured, all input from DIN MIDI in will be forwarded to DIN MIDI out interface.
DIN MIDI must be enabled to use this feature. Note: Not available on Arduino Uno and Arduino Mega.
Button block is used to configure buttons connected to OpenDeck boards.
Buttons can be configured as momentary or latching. When momentary type is set, different MIDI messages are sent when button is pressed or released. For example, if note message type is used, on press, note on will be sent with configured velocity, and that same message will be sent with velocity 0 on release. When latching type is set, MIDI note on is sent when button is pressed, and note off is sent when button is pressed again. Same applies for CC with 0 reset type. Default type is momentary.
Message type section
Buttons can send following messages:
- Notes (default setting)
- Program change
- Program change, increment (every press of the button will increase the value of program for specified channel)
- Program change, decrement (every press of the button will decrease the value of program for specified channel)
- CC (sent on press only - button type is ignored)
- CC with 0 reset (on release CC with controller value 0 will be sent - depends on button type)
- MMC Play (sent on press only - button type is ignored)
- MMC Stop (sent on press only - button type is ignored)
- MMC Pause (sent on press only - button type is ignored)
- MMC Record (recording will be started on first press and stopped on second - button type is ignored)
- Real Time Clock (sent on press only - button type is ignored)
- Real Time Start (sent on press only - button type is ignored)
- Real Time Continue (sent on press only - button type is ignored)
- Real Time Stop (sent on press only - button type is ignored)
- Real Time Active Sensing (sent on press only - button type is ignored)
- Real Time System Reset (sent on press only - button type is ignored)
- None - No MIDI message is being sent
Each button can have assigned any MIDI ID between 0-127. By default, button has same MIDI ID as its index (button 0 has ID 0, button 1 has ID 1 etc.). This ID represents different value depending on message type:
- Notes: ID is MIDI note numner
- Program change: ID is MIDI program number
- CC messages: ID is MIDI CC number
- MMC messages: ID is MMC channel number
- Real Time messages: ID is ignored
MIDI velocity/control value
Each button can have assigned any MIDI velocity (for notes) or control value (for CC messages) between 0-127 for press (release velocity is always 0 and it isn't configurable).
Each button can have assigned any MIDI channel (1-16). Default value is channel 1.
This block is used to configure encoders connected to digital inputs on OpenDeck boards.
Enables or disables encoder. All encoders are disabled by default, since enabling single encoder disables two buttons.
Encoders send different values when rotating in different directions. Those values can be inverted using this option. Disabled by default.
Encoding type section
Encoders can have several encoding types:
- 7Fh01h: sends MIDI CC event with value 1 in one direction, and value 127 in other direction
- 3Fh41h: sends MIDI CC event with value 63 in one direction, and value 65 in other direction
- Program change: increments program on current encoder channel in one direction, and decrements it in other direction
CC number section
All encoders send CC events. Each encoder can have any CC number between 0-127. By default, encoder has same CC number as its index (encoder 0 sends CC 0, encoder 1 sends CC 1 etc.)
Each encoder can have assigned any MIDI channel (1-16). Default value is channel 1.
Pulses per step
Amount of pulses encoder generates per step. Default value is 4 for all encoders.
Analog block is used to configure components connected to analog section on OpenDeck boards.
All analog inputs are disabled by default. Before using any component connected to analog input, input must be enabled first.
Potentiometers connected to OpenDeck boards send CC values 0-127, depending on their position. This setting can invert that range for any analog input. Disabled by default.
Analog input can be configured as following type:
- Potentiometer/CC: Sends CC message with control value being 0-127 depending on applied voltage, that is, potentiometer position. This is default option.
- Potentiometer/Note: Sends Note message with velocity being 0-127 depending on applied voltage, that is, potentiometer position.
- FSR: Used for FSR sensors. This type sends MIDI Note message with velocity being applied pressure on FSR (0-127).
- Button: Acts like normal button. When analog input is set to this type, further configuration is done in button block with button index being last button index + analog input index, ie. if maximum number of buttons is 64, and analog input 0 is configured as button, that button is configured in button block with button index 65.
- NRPN/7-bit: This message type is sent as three CC messages with first two being NRPN number (0-16383) and third one being CC value (0-127).
- NRPN/14-bit: This message type is sent as four CC messages with first two being NRPN number (0-16383) and last two being CC value (0-16383).
- Pitch Bend - Type used to send pitch bend messages with 14-bit range (0-16383).
CC number section
All analog inputs can have any CC number between 0-127. When FSR type is used, this number is used as MIDI note value. By default, analog input has same CC number as its index (analog input 0 sends CC 0, analog input 1 sends CC 1 etc.)
Lower CC limit section
Default lower CC limit is 0. When any other lower limit is used, default CC range 0-127 gets scaled.
Upper CC limit section
Default upper CC limit is 127. When any other upper limit is used, default CC range 0-127 gets scaled.
Each analog input can have assigned any MIDI channel (1-16). Default value is channel 1.
This block is used to configure LEDs connected to OpenDeck boards.
Global parameters section
This section is used to configure various global settings related to LEDs. Those settings are:
- Start-up animation - Enables or disables start-up animation. If enabled, all LEDs will slowly fade in, stay on for 2 seconds, and then slowly fade out when board is powered on. This option is disabled by default.
- Fade time - Sets LED fading time. Value can range from 0 to 10. Fade time is specified value multiplied by 10. This value is set to 0 by default, which means that fading is disabled. Note: Available only on official OpenDeck board.
- Blinking via MIDI clock - When this option is enabled, MIDI clock messages are used to sync clock pulses to LED blinking speed. Once the MIDI clock stops, all LEDs stop blinking as well (they will stay at the last state there were in before the clock has stopped and will continue blinking if the MIDI clock starts again). When disabled, MIDI clock is ignored and timer is used to control the LED blinking.
Activation ID section
Sets activation ID (Note, CC number or program value) which will control the LED.
RGB LED enable/disable section
Enables or disables RGB LED. Enabling RGB LED disables 3 single-color LEDs. All RGB LEDs are disabled by default. RGB LED is enabled by specifying single LED index which gets converted to RGB LED index in firmware. When RGB LED is enabled, MIDI channel, local control and activation ID parameters from requested single LED index are copied to other two LEDs (RGB LED is three normal LEDs handled as one LED in firmware). For instance, RGB LED 1 is actually single LED 1, 9 and 17. As an example, LED 1 has assigned MIDI channel 1, LED 9 has MIDI channel 2 and LED 17 has MIDI channel 3. If RGB LED enable command is requested for LED 17, LEDs 1, 9 and 17 will all have MIDI channel 3. Same is valid for local control and activation ID parameters.
Control type section
Specifies the mode in which LEDs are being controlled. Available modes are following:
- MIDI in - Note/State+CC/blinking
- MIDI in - CC/state+Note/blinking
- MIDI in - Program change/state only
- MIDI in - Note (State+Blinking)
- MIDI in - CC (State+Blinking)
- Local - Note/state only
- Local - CC/state only
- Local - Program change/state only
- Local - Note (State+Blinking)
- Local - CC (State+Blinking)
See LED control section for more details.
Activation velocity section
Note velocity or CC value which will turn on single-color LED. By default this value is set to 127 for all LEDs. When RGB LEDs are used, velocity table is used instead.
Each LED can have assigned any MIDI channel (1-16) which will control the selected LED. Default value is channel 1.