-
Notifications
You must be signed in to change notification settings - Fork 22
/
UMK-4X4-SYSEX-IPL.TXT
312 lines (261 loc) · 14.2 KB
/
UMK-4X4-SYSEX-IPL.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
USBMIDIKLIK 4X4 - SYSEX IMPLEMENTATION - V2.1
(c) TheKikGen Labs - 2020.
All values are hexadecimal.
-------------------------------------------------------------------------------
USBMIDIKLIK 4X4 SYSEX HEADER : F0 77 77 78
-------------------------------------------------------------------------------
SYSEX FUNCTIONS OVERVIEW
FN Description / sub command
05 Configuration sysex dump
06 Global functions
00 Hardware reset
01 Identity request
02 Sysex acknowledgment toggle
03 Sysex acknowledgment
04 Factory settings
05 Clear all (midi, Ithru routing rules and pipelines..)
06 Save settings to flash memory
08 Reboot in configuration mode
09 Reboot in update mode
0B USB device settings
00 Set USB product string
01 Set USB vendor id and product id
0C Midi Clock settings
00 Enable/disable midi clock
01 Set midi clock bpm
02 Enable/disable Midi Time Clock
0E Intelligent thru mode settings
00 Reset to default
01 Disable
02 set USB idle
03 Set jack routing
0F Midi routing settings
00 Reset to default
01 set midi port routing
10 Bus mode settings
00 Enable bus mode
01 Set device Id
11 Midi transformation pipelines settings
Slot operations
00 00 Copy slot
00 01 Clear slot
00 02 Attach/detach port to slot
Pipe operations
01 00 Add pipe
01 01 Insert pipe
01 02 Replace pipe
01 03 Clear pipe by index
01 04 Clear pipe by id
01 05 pipe bypass
-------------------------------------------------------------------------------
SYSEX MESSAGES
-------------------------------------------------------------------------------
05 Configuration sysex dump
F0 77 77 78 05 <dump address:nn nn nn nn> F7
-------------------------------------------------------------
| Dump data | Dump address
-------------------------------------------------------------
| All | 7F 00 00 00
| USB device settings | 0B 00 00 00
| Midi clock settings | 0C <clock#:0-8> 00 00
| USB Idle | 0E 02 00 00
| IThru routing | 0E 03 <Jack In> 00
| In port midi routing | 0F 01 <in port type:0-2> <in port>
| Bus mode settings | 10 00 00 00
| In port attached slot | 11 00 <in port type:0-3> <in port>
| Pipes in slot | 11 01 <slot> <pipe index>
-------------------------------------------------------------
Clock #: 0-8 in port: 0-F
port type : cable = 0 | jack = 1 | virtual:2 | ithru = 3
-------------------------------------------------------------------------------
06 Global functions
06 00 Hardware reset
F0 77 77 78 06 00 F7
06 01 Identity request
F0 77 77 78 06 01 F7
06 02 Sysex acknowledgment toggle (on/off)
F0 77 77 78 06 02 F7
06 03 Sysex acknowledgment (received/never interpreted)
F0 77 77 78 06 03 <ack> F7
06 04 Factory settings
F0 77 77 78 06 04 F7
The device will reboot after the command.
06 05 Clear all (midi, Ithru routing rules and pipelines..)
F0 77 77 78 06 05 F7
06 06 Save settings to flash memory
F0 77 77 78 06 06 F7
06 08 Reboot in configuration mode
F0 77 77 78 06 08 F7
06 09 Reboot in update mode
F0 77 77 78 06 09 F7
-------------------------------------------------------------------------------
0B USB device settings
0B 00 Set USB product string
F0 77 77 78 0B 00 <usb product string not accentuated> F7
0B 01 Set USB vendor ID and product ID
F0 77 77 78 0B 01 <vendor id:nn nn nn nn> <product id:nn nn nn nn> F7
-------------------------------------------------------------------------------
0C Midi Clock settings
0C 00 Enable/disable midi clock
F0 77 77 78 0C 00 <clock #:0-3> <disable:0 enabled:1> F7
0C 01 Set midi clock bpm
F0 77 77 78 0C 01 <clock #:0-3> <bpm: msbn lsbn1 lsbn2> F7
Each 4 bits hex digit nibble must be serialized from the MSB to the LSB.
Bpm value must be x 10, and between 100 (10 bpm) and 3000 (300 bpm)
0C 02 Enable/disable Midi Time Clock
F0 77 77 78 0C 02 <clock #:0-3> <disable MTC:0 enabled MTC:1> F7
If clock # = 7F, then all clocks are updated (MTC must be set individually).
Due to the frequency of change, the clock state or BPM are not stored into
the flash memory after the execution of the sysex command.
However, the global function "Save settings" (06) can be used to save clocks.
-------------------------------------------------------------------------------
0E Intelligent thru
0E 00 Reset to default
F0 77 77 78 0E 00 F7
0E 01 Disable all
F0 77 77 78 0E 01 F7
0E 02 Set USB idle
F0 77 77 78 0E 02 < Number of 15s periods: 00-7F > F7
0E 03 Set jack routing
F0 77 77 78 0E 03 <JackIn port > [<out port type> [<out ports list: nn...nn>] ] F7
Allowed port type : jack=1 | virtual=2 port:0-F out port type/ports list are optional.
If only jackin is passed, this toggle on/off IThru if output ports exist.
If no out ports list passed, the entire out type will be cleared.
-------------------------------------------------------------------------------
0F Midi routing
0F 00 Reset to default
F0 77 77 78 0F 00 F7
0F 01 Set midi port routing
F0 77 77 78 0F 01 <in port type> <in port> <out port type>[out ports list: nn...nn] F7
port type : cable = 0 |jack=1 | virtual=2 port : 0-F out ports list is optional
A virtual port can't be routed to another virtual port.
-------------------------------------------------------------------------------
10 Bus mode
10 00 Enable/disable bus mode
F0 77 77 78 10 00 < enable:1 | disable:0 > F7
The device will reboot after the command if bus state changed.
10 01 Set device ID
F0 77 77 78 10 01 < deviceid:04-08 > F7
deviceid must be set to 4 when master.
The device will reboot after the command if id changed.
-------------------------------------------------------------------------------
11 Transformation pipelines
00 Slot operation
-----------------
11 00 00 slot copy
F0 77 77 78 11 00 00 < src slot:01-08 > < dest slot: 01-08 > F7
11 00 01 clear slot
F0 77 77 78 11 00 01 < slot: 01-08 | All slot:7F > F7
11 00 02 Attach/detach port to slot
F0 77 77 78 11 00 02 < in port type> < in port: 0-F> <slot: 00-08> F7
port type : cable = 0 | jack = 1 | virtual:2 | ithru = 3
When slot = 0, the port is considered as detached from any slot.
01 Pipe operation
-----------------
11 01 00 add pipe
F0 77 77 78 11 01 00 <slot:1-8> <pipe id: nn> <prm: nn nn nn nn > F7
11 01 01 insert pipe at
F0 77 77 78 11 01 01 <slot:1-8> <pipe idx:nn> <pipe id:nn> <prm:nn nn nn nn > F7
11 01 02 replace pipe
F0 77 77 78 11 01 02 <slot:1-8> <pipe idx:nn> <pipe id:nn> <prm:nn nn nn nn > F7
11 01 03 clear pipe index
F0 77 77 78 11 01 03 <slot:1-8> <pipe idx:nn> F7
11 01 04 clear first pipe id
F0 77 77 78 11 01 04 <slot:1-8> <pipe id:nn> F7
11 01 05 pipe bypass index
F0 77 77 78 11 01 05 <slot:1-8> <pipe index:nn> <no bypass:0 | bypass:1> F7
-----------------------------------------------------------------------------------------------
| PipeID | par1 | par2 | par3 | par4 |
|---------+--------------------+--------------------+--------------------+--------------------|
| MSGFLTR | Bits mask | include:0 | bits mask. | 00 (unused) |
| 00 | filter:0 | exclude:1 | ch voice:0001 (1) | |
| | | select:2 | Sys.cmn :0010 (2) | |
| | | | realtime:0100 (4) | |
| | | | sysex :1000 (8) | |
| | | | | |
| | MidiStatus | include:0 | midi status id1** OR midi status id2 |
| | dble filter:1 | exclude:1 | | if par4 unused:0 |
| | | select:2 | (see Midi status ids table for values) |
| | | | | |
| | midi channel | include:0 | from channel 0-F | to channel 0-F |
| | filter:2 | exclude:1 | | |
| | | select:2 | | |
| +--------------------+--------------------+--------------------+--------------------|
| | include : keep only matching midi messages |
| | exclude : drop matching midi messages |
| | select : Apply next transformation pipes in the slot only to matching messages |
|---------+--------------------+--------------------+--------------------+--------------------|
| NOTECHG | transpose+:0 | semitone:00-7F | 00 (unused) | 00 (unused) |
| 01 | transpose-:1 | semitone:00-7F | 00 (unused) | 00 (unused) |
|---------+--------------------+--------------------+--------------------+--------------------|
| CHANMAP | channel map:0 | srce ch:0-F|any:7F | dst ch:0-F | 00 (unused) |
| 02 | ch map to port:1 | source ch:0-F | midi port:0-F | 00 (unused) |
| | ch rotat.offset:2 | ch offset:0-F | 00 (unused) | 00 (unused) |
|---------+--------------------+--------------------+--------------------+--------------------|
| VELOCHG | include:0 | from vl value:0-7F | to vl value:0-7F | 00 (unused) |
| 03 | exclude:1 | from vl value:0-7F | to vl value:0-7F | 00 (unused) |
| | fixed:2 | value:0-7F | 00 (unused) | 00 (unused) |
| | add:3 | value:0-7F | 00 (unused) | 00 (unused) |
| | sub:4 | value:0-7F | 00 (unused) | 00 (unused) |
| | half:5 | 00 (unused) | 00 (unused) | 00 (unused) |
|---------+--------------------+--------------------+--------------------+--------------------|
| CCCHANG | map:0 | src cc :0-7F | dest cc:00-7F | 00 (unused) |
| 04 | include:1 | from cc value:0-7F | to cc value:0-7F | 00 (unused) |
| | exclude:2 | from cc value:0-7F | to cc value:0-7F | 00 (unused) |
| | invert:3 | src cc :0-7F | 00 (unused) | 00 (unused) |
|---------+--------------------+--------------------+--------------------+--------------------|
| CLKDIVD | ratio:2-10 | 00 (unused) | 00 (unused) | 00 (unused) |
| 05 | | | | |
|---------+--------------------+--------------------+--------------------+--------------------|
| LOOPBCK | dest port type. | inclusive filter | port:0-F | 00 (unused) |
| 06 | cbl out:0 | bits mask | | |
| | jk in:1 | (see MSGFLTR) | | |
| | virt.in:2 | | | |
| | no chg:3 | | | |
|---------+--------------------+--------------------+--------------------+--------------------|
| SLOTCHN | slot:1-8 | 00 (unused) | 00 (unused) | 00 (unused) |
| 07 | | | | |
|---------+--------------------+--------------------+--------------------+--------------------|
| KBSPLIT | split note: 0-7F | midi ch:0-F | no change:0 | 00 (unused) |
| 08 | | | transpose+:1 | semitone:00-7F |
| | | | transpose-:2 | semitone:00-7F |
|---------+--------------------+--------------------+--------------------+--------------------|
| VLSPLIT | split veloc.: 0-7F | midi ch:0-F | nochg:0 | 00 (unused) |
| 09 | | | fixed:1 | value:0-7F |
| | | | add:2 | value:0-7F |
| | | | sub:3 | value:0-7F |
|---------+--------------------+--------------------+--------------------+--------------------|
| VLCURV1 | value 1 : 0-7F | value 2 : 0-7F | value 3 : 0-7F | value 4 : 0-7F |
| 0A | | | | |
|---------+--------------------+--------------------+--------------------+--------------------|
| VLCURV2 | in 1 : 0-7F | out 1 : 0-7F | in 2 : in 1-7F | out 2 : 0-7F |
| 0B | | | | |
|---------+--------------------+--------------------+--------------------+--------------------|
| VLCURV3 | Hard player : 1 | 00 (unused) | 00 (unused) | 00 (unused) |
| 0C | Medium velo. : 2 | | | |
| | Comp.Expander : 3 | | | |
| | Low velo. 1 : 4 | | | |
| | Low velo. 2 : 5 | | | |
| | Ends cut : 6 | | | |
-----------------------------------------------------------------------------------------------
--------------------------------
| Midi status ids table |
|------------------------------|
| noteOffStatus | 0X08 |
| noteOnStatus | 0X09 |
| polyKeyPressureStatus | 0X0A |
| controlChangeStatus | 0X0B |
| programChangeStatus | 0X0C |
| channelPressureStatus | 0X0D |
| pitchBendStatus | 0X0E |
| midiTimeCodeStatus | 0X11 |
| songPosPointerStatus | 0X12 |
| songSelectStatus | 0X13 |
| tuneRequestStatus | 0X16 |
| timingClockStatus | 0X18 |
| startStatus | 0X1A |
| continueStatus | 0X1B |
| stopStatus | 0X1C |
| activeSensingStatus | 0X1E |
| systemResetStatus | 0X1F |
--------------------------------