diff options
author | Christian Pointner <equinox@helsinki.at> | 2014-06-17 23:58:33 (GMT) |
---|---|---|
committer | Christian Pointner <equinox@helsinki.at> | 2014-06-17 23:58:33 (GMT) |
commit | f3244ebe20b56ebbd512e037bb80c7867941f931 (patch) | |
tree | a63c5cc1efe89455e332b943fae2a9fff82a95ca /software/rhmixxx | |
parent | 678c0e1daf622a0b5d63562d5d2e9cc17f22c076 (diff) |
added midi command description
Diffstat (limited to 'software/rhmixxx')
-rw-r--r-- | software/rhmixxx/midi-commands.txt | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/software/rhmixxx/midi-commands.txt b/software/rhmixxx/midi-commands.txt new file mode 100644 index 0000000..8925770 --- /dev/null +++ b/software/rhmixxx/midi-commands.txt @@ -0,0 +1,177 @@ +OUTGOING (commands sent by the controller): +=========================================== + +There are 3 possible sources for messages sent by the controller + + - Keypad .. a key/button has been pressed or released (note offset 0x00) + - GPIO .. a GPI has changed its state (note offset 0x20) + - Analog .. the analog value of an input has changed (note offset 0x40) + + +Keypad: +------- + + - the 16 buttons are numbered 0-15 (note 0x00-0x0F) + - a key press event sends the following command: + + 0x90 <key nr + 0x00> 0x7F + + - a key release event sends the following command: + + 0x80 <key nr + 0x00> 0x00 + + Example: + Key 14 is pressed and released: + + 0x90 0x0D 0x7F + 0x80 0x0D 0x00 + + +GPIO: +----- + + - the 4 inputs are numbered 0-3 (note 0x20-0x23) + - a low to high transition sends the following command: + + 0x90 <input nr + 0x20> 0x7F + + - a high to low transition sends the following command: + + 0x80 <input nr + 0x20> 0x00 + + Example: + input 1 goes from low to high and back to low: + + 0x90 0x20 0x7F + 0x80 0x20 0x00 + + +Analog: +------- + + - the 8 analog inputs are numbered 0-7 (note 0x40-0x47) + - by default all inputs are disabled. See below to find out how + to enable/disable analog inputs + - on every change of the value of the analog port the following command + is sent: + + 0xB0 <input nr + 0x40> <value> + + (value is between 0x00 and 0x7F -> 0..127) + + Example: + input 7 changes its value to 42: + + 0xB0 0x46 0x2A + + + + +INCOMING (commands understood by the controller): +================================================= + +There are 3 possible sinks for messages sent to the controller + + - Keypad .. controls the led of a key/button (note offset 0x00) + - GPIO .. sets or unsets a GPO (note offset 0x20) + - Analog .. enables or disables an analog input (note offset 0x40) + + +Keypad: +------- + + - the 16 leds are numbered 0-15 (note 0x00-0x0F) + - all leds can be changed by the special address 0x1F + - switch a led on: + + 0x90 <key nr + 0x00> 0x00 + + - toggle a led: + + 0x90 <key nr + 0x00> 0x01 + + - led blinking: + + 0x90 <key nr + 0x00> 0x02..0x1F + + the value controls the blinking speed. Smaller values correspond to + higher blinking frequencies. + + - switch a led off + + 0x80 <key nr + 0x00> 0x00 + + Examples: + Turn led 3 on: + + 0x90 0x03 0x7F + + Toggle led 5: + + 0x90 0x05 0x01 + + led 6 blinking fast: + + 0x90 0x06 0x03 + + led 14 blinking slow: + + 0x90 0x0D 0x40 + + turn all leds off: + + 0x80 0x1F 0x00 + + +GPIO: +----- + + - the 4 outputs are numbered 0-3 (note 0x20-0x23) + - all outputs can be controlled by the special address 0x3F + - for a low to high transition send the following command: + (this does nothing if the port is already high) + + 0x90 <output nr + 0x20> 0x00 + + - for a high to low transition send the following command: + (this does nothing if the port is already low) + + 0x80 <output nr + 0x20> 0x00 + + - for a state change send the following command: + + 0x90 <output nr + 0x20> 0x01 + + Example: + toggle the state of output 3: + + 0x90 0x22 0x01 + + set all outputs to high: + + 0x90 0x3F 0x00 + + +Analog: +------- + + - the 8 analog inputs are numbered 0-7 (note 0x40-0x47) + - all inputs can be controlled by the special address 0x5F + - after a reset all inputs are disabled. + - to enable an input send the following command: + + 0x90 <input nr + 0x40> 0x00 + + - to disable an input send the following command: + + 0x80 <input nr + 0x40> 0x00 + + + Example: + enable input 2: + + 0x90 0x41 0x00 + + disable all inputs: + + 0x80 0x5F 0x00 |