-
Notifications
You must be signed in to change notification settings - Fork 69
Configurable features
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. Configuration can be done either via SysEx configuration or using Web configuration tool.
This block contains parameters applied globally.
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.
- 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.
- 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.
- DIN MIDI - Used to enable or disable traffic on DIN MIDI ports. Note: Not available on Arduino Uno.
MIDI merge section currently has only one parameter: Merge type. Merge type can be any of the following:
- DIN to USB - When configured, all input from DIN MIDI in will be forwarded to USB interface.
- DIN to DIN - When configured, all input from DIN MIDI in will be forwarded to DIN MIDI out interface. No processing is done in this scenario to avoid latency - every received packet is immediately forwarded to DIN MIDI out.
- OpenDeck master - This type is used when daisy-chaining more OpenDeck boards via DIN MIDI. One board in chain must be specified as master. Data from all other boards (slaves) in the chain is forwarded to OpenDeck master, and everything sent to master board via USB is forwarded to all slave boards.
- OpenDeck slave - This type is used when daisy-chaining more OpenDeck boards via DIN MIDI.
DIN MIDI must be enabled to use this feature. Note: Not available on Arduino Uno.
This section contains the following parameters related to presets:
- Active preset - Currently active preset.
- Preset preservation - Controls whether or not active preset is preserved after the board is reset. Disabled by default (first preset will be always active on start-up).
Presets aren't available on official OpenDeck board due to the lack of free EEPROM, therefore, only single preset is used.
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. Depending on message type, this setting can be ignored.
Buttons can send following messages:
- Notes (default setting)
- Program change (sent on press only - button type is ignored)
- Program change, increment - Every press of the button will increase the value of program for specified channel (sent on press only - button type is ignored).
- Program change, decrement - Every press of the button will decrease the value of program for specified channel (sent on press only - button type is ignored).
- CC (sent on press only - button type is ignored)
- CC with 0 reset - Same as CC but on release (depending on button type) CC with value 0 will be sent.
- 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 start message will be sent on first press and recording stop message on second (sent on press only - 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)
- Change OpenDeck preset - No MIDI message is being sent (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 number
- 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
- Change OpenDeck preset - ID is preset being activated when the button is pressed
Each button can have assigned any MIDI velocity (for notes) or control value (for CC messages) between 1 and 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.
Disabled by default for all encoders. If enabled, acceleration is used if encoding mode is set to Control Change (both 7 and 14-bit variants), Pitch Bend or 7/14-bit NRPN. Acceleration can be set to the following values:
- Disabled
- Slow
- Medium
- Fast
Encoders can have several encoding types:
- 7Fh01h - Sends CC message with value 1 in one direction, and value 127 in other direction.
- 3Fh41h - Sends CC message 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 7-bit - Sends CC message with continuous range (0-127), with positive increments by one in one direction, and negative in other.
- CC 14-bit - Sends CC message with continuous range (0-16383), with positive increments by one in one direction, and negative in other. Sent as two CC messages with second having ID offset of 32 (if CC ID is set to 0, second message will have CC ID set to 32). When used, ID must be set to lower than 96, otherwise no data will be sent.
- Pitch bend - Sends Pitch Bend message with continuous range (0-16383), with positive increments by one in one direction, and negative in other.
- 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), with positive increments by one in one direction, and negative in other.
- 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), with positive increments by one in one direction, and negative in other.
- Change OpenDeck preset - switches between OpenDeck presets with positive increments by one in one direction, and negative in other.
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.
Amount of pulses encoder generates per step. Default value is 4 for all encoders.
When enabled, received CC value will be assigned to encoder if the following criteria is met:
- Encoder is in continuous CC mode
- Received MIDI channel is the same as the one configured on encoder
- Received MIDI ID is the same as the one configured on encoder
Disabled by default 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:
- Control change (7-bit) - Sends CC message with control value being 0-127 depending on applied voltage, that is, potentiometer position. This is default option.
- Control change (14-bit) - Sends CC messages with continuous range (0-16383) depending on applied voltage, that is, potentiometer position. Sent as two CC messages with second having ID offset of 32 (if CC ID is set to 0, second message will have CC ID set to 32). When used, ID must be set to lower than 96, otherwise no data will be sent.
- 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).
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.)
Default lower CC limit is 0. When any other lower limit is used, default CC range 0-127 gets scaled.
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.
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.
Sets activation ID (Note, CC number or program value) which will control the LED.
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.
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.
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.
This block is used to configure display connected to OpenDeck boards.
This section is used to configure hardware controller on display. Section has the following settings:
- Display enabled - Controls whether the display usage is enabled or not.
- Display controller - Specifies controller used on display. Currently only SSD1306 controller is supported.
- Display resolution - Specifies display resolution. Currently supported resolutions are 128x64px and 128x32px.
This section controls various display settings:
- Welcome message on startup - If enabled, "Welcome!" text will be displayed one character at the time when the board is powered on.
- Version info on startup - If enabled, firmware and board version will be displayed when the board is powered on. If welcome message is enabled as well, this info will be displayed after that message.
- MIDI event retention - If enabled, last MIDI input or output event will stay on display indefinitely.
- MIDI event time - Specifies time in seconds the last MIDI event will stay on the display if MIDI event retention isn't enabled. Allowed values are 1-5 seconds.
- Alternate note display - When disabled, MIDI notes will be displayed as numbers (0-127). Otherwise, note/octave notation will be used instead (ie. C#4). Disabled by default.
Hardware
- Supported microcontrollers
- Supported components
-
Supported boards
- Adafruit
- Arduino
- Generic
- LILYGO
- Nordic Semiconductor
- Olimex
- PJRC
- Raspberry Pi
- Shantea Controls
- Silicognition
- STMicroelectronics
- Waveshare
- WIZnet
- Recommended components and where to get them
- LED indicators
Configuration and usage
- Configurable features
- Output control
- OSC
- Presets
- Timing and latency
- Configuring touchscreens
- Firmware update via bootloader
Advanced