Skip to content

Configurable features

paradajz edited this page Feb 13, 2022 · 157 revisions

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.

Global block

This block contains parameters applied globally.

MIDI features

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. This setting can cause issues on older MIDI gear so it's best to leave it disabled. DIN MIDI state must be enabled in order to use this option.
  • 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.
  • DIN MIDI - Used to enable or disable traffic on DIN MIDI ports.
  • Pass USB messages to DIN - If enabled, all incoming USB messages will be passed to DIN MIDI out. If DIN to USB MIDI merge is enabled with this option, OpenDeck board can be used as full DIN to USB MIDI converter or SysEx programmer for devices without USB MIDI support.

MIDI merge

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.

DIN MIDI must be enabled to use this feature.

Presets

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).

DMX

This section currently has only one option for DMX:

  • Enable - Used to enable or disable DMX transmitter. Receiving isn't currently supported. DMX signals are constantly being transmitted through UART. Timing is done in firmware so it does not rely on PC. Open Lighting Architecture (OLA) plugin usbserial can be used to interface with OpenDeck since the firmware implements Enttec DMX USB Pro Widget API.

Button block

Button block is used to configure buttons connected to OpenDeck boards.

Type section

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.

Message type section

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.
  • Multi Value IncReset Note - Each successive press will send MIDI note with increasing velocity. In this mode, velocity value is treated like step value by which each next sent velocity value is summed. For example, if velocity is set to 32, first sent MIDI note will have velocity 32, then 64, then 96 etc. Once the value reaches 127, next press will start from configured velocity (step) value. Sent on press only - button type is ignored.
  • Multi Value IncDec Note - Similar to Multi Value IncReset Note mode - once the velocity reaches maximum value, next presses will decrement the value until 0 is reached. This is more akin to how the actual multi-position switches behave. Sent on press only - button type is ignored.
  • Multi Value IncReset CC - Same as Multi Value IncReset Note, only CC message is sent instead of Note.
  • Multi Value IncDec CC - Same as Multi Value IncDec Note, only CC message is sent instead of Note.

MIDI ID

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 - ID is MIDI CC number
  • MMC - ID is MMC channel number
  • Real Time - ID is ignored
  • Change OpenDeck preset - ID is preset being activated when the button is pressed

MIDI velocity/control value

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).

MIDI channel

Each button can have assigned any MIDI channel (1-16). Default value is channel 1.

Encoder block

This block is used to configure encoders connected to digital inputs on OpenDeck boards.

Enable/disable section

Enables or disables encoder. All encoders are disabled by default, since enabling single encoder disables two buttons.

Invert section

Encoders send different values when rotating in different directions. Those values can be inverted using this option. Disabled by default.

Acceleration section

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

Encoding type section

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 - Also called "High resolution MIDI" in Ableton. 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 (ie. if CC ID is set to 0, second message will have CC ID set to 32). When used, ID must be set 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.

MIDI ID

Each encoder can have assigned any MIDI ID between 0-127. By default, encoder has same MIDI ID as its index (encoder 0 has ID 0, encoder 1 has ID 1 etc.).

MIDI channel

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.

Remote CC sync

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

Analog block is used to configure components connected to analog section on OpenDeck boards.

Enable/disable section

All analog inputs are disabled by default. Before using any component connected to analog input, input must be enabled first.

Invert section

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.

Type section

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) - Also called "High resolution MIDI" in Ableton. Sends CC message 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 (ie. 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 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 (1 in web configurator) is configured as button, that button is configured in button block with button index 65 (or 66 in web configurator). Every other analog input setting is ignored once this option is enabled.
  • 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).

MIDI ID

Each analog input can have assigned any MIDI ID between 0-127. By default, analog input has same MIDI ID as its index (analog input 0 has ID 0, analog input 1 has ID 1 etc.).

Lower limit section

Default lower limit is 0. When any other lower limit is used, default range 0-127 gets scaled.

Upper limit section

Default upper limit is 127. When any other upper limit is used, default range 0-127 gets scaled.

MIDI channel

Each analog input can have assigned any MIDI channel (1-16). Default value is channel 1.

Lower ADC offset section

Specifies lower offset percentage which is used to calculate minimum ADC value upon which MIDI values will be based. Useful for inputs which cannot reach minimum ADC value. If for example, the board has nominal ADC range 0-4095, setting this value to 10 will calculate MIDI values based on 409-4095 range (assuming the upper offset is 0), that is, lower 10% of ADC range will be cut off. Set to 0 by default.

Upper ADC offset section

Specifies upper offset percentage which is used to calculate maximum ADC value upon which MIDI values will be based. Useful for inputs which cannot reach maximum ADC value. If for example, the board has nominal ADC range 0-4095, setting this value to 10 will calculate MIDI values based on 0-3685 range (assuming the lower offset is 0), that is, upper 10% of ADC range will be cut off. Set to 0 by default.

LED block

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 v1.
  • 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. 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.

MIDI channel

Each LED can have assigned any MIDI channel (1-16) which will control the selected LED. Default value is channel 1.

Display block

This block is used to configure display connected to OpenDeck boards.

Settings section

This section has the following settings:

  • 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.
  • MIDI event time - Specifies time in seconds the last MIDI event will stay on the display if MIDI event retention isn't enabled. If value 0 is set, it will be interpreted as infinite message duration, that is, last sent/received MIDI message will stay on display until it's powered off.
  • Octave normalization - Used to increase or decrease octave display when note display is used instead of MIDI note number.
  • I2C address - Sets the I2C address of the display.

Features section

This section controls various display settings:

  • Display enabled - Controls whether the display usage is enabled or not.
  • 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.
  • 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.

Touchscreen block

This block is used to configure touchscreen connected to OpenDeck boards.

Settings section

This section has the following settings:

  • Display enabled - Specifies whether the usage of touchscreen is enabled or disabled.
  • Touchscreen model - Specifies touchscreen model/manufacturer. Nextion and Stone HMI/Viewtech are supported.
  • Brightness - Specifies touchscreen brightness. The following values are available:
    • 10%
    • 25%
    • 50%
    • 75%
    • 80%
    • 90%
    • 100%
  • Initial screen - Specifies the screen index which will be shown once the board is powered on.
  • Flashing mode - Used to bypass communication with the screen to the virtual OpenDeck serial port (CDC). Useful when flashing the screen via Nextion GUI. When enabled, screen is unavailable to MIDI part of the firmware. Once the board is rebooted, this setting is cleared.

Icon X position section

This section is used to specify X position of touchscreen icon on display. Touchscreen resolution should be taken into account here.

Icon Y position section

This section is used to specify Y position of touchscreen icon on display. Touchscreen resolution should be taken into account here.

Icon width section

This section is used to specify width of touchscreen icon on display. Touchscreen resolution should be taken into account here.

Icon height section

This section is used to specify height of touchscreen icon on display. Touchscreen resolution should be taken into account here.

Icon on screen section

This section is used to specify screen on which icon in on state is located. Values 0-15 are allowed.

Icon off screen section

This section is used to specify screen on which icon in off state is located. Values 0-15 are allowed.

Page switch enabled section

This section is used to specify whether the specific touchscreen icon/button can be used to switch to another page on screen.

Page switch index section

This section is used to specify page to which specific touchscreen icon/button should switch to if page switching functionality for this icon/button is enabled. Values 0-15 are allowed.

Clone this wiki locally