RK005 sysex ----------- fmt: F0 00 21 23 00 05 F7 - each command will be acknowledged with a response from the 005. - are 7-bit packed: 7 bytes of 7-bit data is prequelled by a byte containing the MSBs 0x00:INQUIRY request (USB HOST chip) F0 00 21 23 00 05 00 F7 0x40:INQUIRY response (USB HOST chip) F0 00 21 23 00 05 40 00 10 00 12 00 F7 | | | | | | | | | | +--+-- SW version 16 bit, little endian, BCD: so in this example 12 00 = 0x0012 = 0.1.2 (highest nibble not used) | | +--+-------- HW version 16 bit, little endian, BCD: so in this example 10 00 = 0x0010 = 1.0 (both highest nibbles not used) | +-- MSBs +----- INQUIRY RESPONSE 0x10:INQUIRY request (USB DEVICE chip) F0 00 21 23 00 05 10 F7 0x50:INQUIRY response (USB DEVICE chip) F0 00 21 23 00 05 50 00 10 00 12 00 F7 note: normally USB HOST / USB DEVICE should have same firmware / hardware SETPARAM_REQ F0 00 21 23 00 05 03 00 F7 SETPARAM_RSP F0 00 21 23 00 05 43 00 F7 GETPARAM_REQ F0 00 21 23 00 05 04 00 F7 GETPARAM_RSP F0 00 21 23 00 05 43 00 F7 FACTORY_RESET_REQ F0 00 21 23 00 05 05 F7 FACTORY_RESET_RSP F0 00 21 23 00 05 45 F7 COMMIT_PARAMS_REQ F0 00 21 23 00 05 07 F7 COMMIT_PARAMS_RSP F0 00 21 23 00 05 47 F7 GETNMBUSBDEV_REQ F0 00 21 23 00 05 0B F7 (count the number of USB devices connected to the host) GETNMBUSBDEV_RSP F0 00 21 23 00 05 4B 00 xx F7 xx = # usb devices connected to the host LSUSB_REQ F0 00 21 23 00 05 0D 00 xx F7 xx = device index (0..#devices-1) LSUSB_RSP F0 00 21 23 00 05 4D F7 list USB device VID/PID example: --> F0 00 21 23 00 05 0B F7 (= count number of USB devices) <-- F0 00 21 23 00 05 4B 00 02 F7 (= #devices = 2) --> F0 00 21 23 00 05 0D 00 00 F7 (= get device[0]) <-- F0 00 21 23 00 05 4D 14 00 00 40 16 62 08 F7 | | | | | | | | | | | | +--+----- PID = 08E2 | | | +--+----------- VID = 16C0 | | +----------------- RSVD | +-------------------- device[0] +----------------------- MSBs --> F0 00 21 23 00 05 0D 00 01 F7 (= get device[1]) <-- F0 00 21 23 00 05 4D 00 01 00 44 09 15 01 F7 | | | | | | | | | | | | +--+----- PID = 0115 | | | +--+----------- VID = 0944 | | +----------------- RSVD | +-------------------- device[1] +----------------------- MSBs note: it is not strictly necessary to get # devices beforehand, simply fetching device[0] will always return first connected device (when VID/PID==0/0 indicates there is no device connected) 0 = MIDIIO_MODE : DIN output mode 0=output, 1=bidirectional (default = 0) 1 = DIN_SOFTTHRU : 0=never, 1=always, 2=auto mode: only when in stand-alone mode (default = 2) 2 = BOOT_INTTEMPO : internal tempo in bmp after boot, 0=off (default = 0) 3 = LEDIND_R : RED LED value 0..255 (default = 0) 4 = LEDIND_G : GRN LED value 0..255 (default = 0) 5 = LEDIND_B : BLU LED value 0..255 (default = 0) 6 = LEDIND_A : internal pattern intensity 0..255 (default = 255) 7 = SYNC_OUT_PPSN : pulses per sixteenth note for sync-out (default = 8) 8 = FILT0_VID_L : filter #0 VID Low byte (VID: 0xFFFF=USB_HOST_ALL, 0xFFFE=USB_DEVICE, 0xFFFD=DIN, 0x0000=disabled) 9 = FILT0_VID_H : filter #0 VID High byte 10 = FILT0_PID_L : filter #0 PID Low byte (PID: 0xFFFF=all) 11 = FILT0_PID_H : filter #0 PID High byte 12 = FILT0_CHN_L : filter #0 channels 1..8 (bit0=channel1, bit1=channel2, etc.) 13 = FILT0_CHN_H : filter #0 channels 9..16 (bit0=channel9, bit1=channel10, etc.) 14 = FILT0_EV : filter #0 event filter: b76543210 |||||||+--> midi clock ||||||+---> midi start/stop/continue |||+++----> reserved ||+-------> OUT direction |+--------> INP direction +---------> ALL events 15 = FILT0_RESERVED 16 = FILT1_VID_L : filter #1 17 = FILT1_VID_H 18 = FILT1_PID_L 19 = FILT1_PID_H 20 = FILT1_CHN_L 21 = FILT1_CHN_H 22 = FILT1_EV 23 = FILT1_RESERVED 24 = FILT2_VID_L : filter #2 25 = FILT2_VID_H 26 = FILT2_PID_L 27 = FILT2_PID_H 28 = FILT2_CHN_L 29 = FILT2_CHN_H 30 = FILT2_EV 31 = FILT2_RESERVED 32 = FILT3_VID_L : filter #3 33 = FILT3_VID_H 34 = FILT3_PID_L 35 = FILT3_PID_H 36 = FILT3_CHN_L 37 = FILT3_CHN_H 38 = FILT3_EV 39 = FILT3_RESERVED 40 = JACK_TIP_MODE 0 = off 1 = clock (default) 2 = gated clock 3 = start/stop 4 = keygate_S (low-active) 5 = keygate_V (high-active) 16 = CV latest key 17 = CV lowest key 18 = CV highest key 19 = CV velocity 20 = CV controller 21 = CV pitchbend 22 = CV aftertouch 41 = JACK_RING_MODE 0 = off (default) 1 = clock 2 = gated clock 3 = start/stop 4 = keygate_S (low-active) 5 = keygate_V (high-active) 42 = JACK_CV_CHN 0 = omni, 1..16 = channel 1..16 43 = JACK_CV_CONTROLLER controller number for CV mode 20 44 = JACK_CV_KEYBASE lowest key (default = 48) 45 = JACK_CV_FLAGS b76543210 |+-- default HOLD pedal pressed +--- default LEGATO pedal pressed 46 = JACK_CV_RESERVED