-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Midi Controller Taxonomy
On this page we document and name every different type of MIDI controller feature we have ever seen.
If you are going to add to this page, please include specific MIDI message descriptions, not general descriptions of the behavior.
The VCI-100 has various different firmwares so this can vary. This is for the left deck. The deck # is typically encoded in the control.
Vinyl mode is a button on the VCI-100 whose status (including LED) is controlled by the hardware. Presses only emit the standard "button pressed" message:
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x6B, val 0x7F"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x6B, val 0x00"
When the VCI-100 jog wheel touch sensor is not active, ticks of the jog wheel look like this:
CW 1-tick
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x6B, val 0x7F"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x6B, val 0x00"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x3A, val 0x7F"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x3A, val 0x00"
CCW 1-tick
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x6B, val 0x7F"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x6B, val 0x00"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x3B, val 0x7F"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x3B, val 0x00"
The 0x6B control means "button pressed" and is emitted when any button on the VCI-100 is pressed. CW and CCW is encoded in the control. Pitch bend is not affected by the "vinyl mode" toggle.
Magnitude of the tick is measured in distance from 0x40.
Touch start
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x6B, val 0x7F"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x6B, val 0x00"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x30, val 0x7F"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x2E, val 0x7F"
CW turn, Vinyl Mode On
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x10, val 0x41"
CW turn
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x12, val 0x41"
CCW turn, Vinyl Mode On
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x10, val 0x3F"
CCW turn
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x12, val 0x3F"
Release
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x2E, val 0x00"
Debug [Controller]: "MIDI status 0x90 (ch 1, opcode 0x9), ctrl 0x30, val 0x00"
Like the VCI-100, the LED state and toggle state of this button is controlled by the hardware. But the toggle state is communicated via MIDI. The hardware disables the touch sensor when vinyl mode is disabled.
Enable
Debug [Controller]: "MIDI status 0x92 (ch 3, opcode 0x9), ctrl 0x06, val 0x7F"
Disable
Debug [Controller]: "MIDI status 0x92 (ch 3, opcode 0x9), ctrl 0x06, val 0x00"
Touch Start
Debug [Controller]: "MIDI status 0x92 (ch 3, opcode 0x9), ctrl 0x27, val 0x7F"
Touch End
Debug [Controller]: "MIDI status 0x92 (ch 3, opcode 0x9), ctrl 0x27, val 0x00"
Regardless of vinyl mode, touch sensor state these messages are always the same. Magnitude of the tick is measured in distance from 0x40.
CW
Debug [Controller]: "MIDI status 0xB2 (ch 3, opcode 0xB), ctrl 0x13, val 0x41"
CCW tick
Debug [Controller]: "MIDI status 0xB2 (ch 3, opcode 0xB), ctrl 0x13, val 0x3F"
The 4-Mx has no touch sensors or vinyl mode. The platter is simply a two's complement ticker:
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x01, val 0x01"
Debug [Controller]: "MIDI status 0xB0 (ch 1, opcode 0xB), ctrl 0x01, val 0x7F"
Magnitude from 0x00 is the number of ticks.
Mixxx is a free and open-source DJ software.
Manual
Hardware Compatibility
Reporting Bugs
Getting Involved
Contribution Guidelines
Coding Guidelines
Using Git
Developer Guide
Creating Skins
Contributing Mappings
Mixxx Controls
MIDI Scripting
Components JS
HID Scripting