-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChataigne.ReaperOSC
531 lines (426 loc) · 24.2 KB
/
Chataigne.ReaperOSC
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
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
# OSC pattern config file.
# Make a copy of this file, rename it, and edit the file to create a
# custom pattern configuration.
# For basic information about OSC and REAPER, see
# http://www.cockos.com/reaper/sdk/osc/osc.php .
# ----------------------------------------------------------------
# Default settings for how this device displays information.
# (these can all be overridden by the device sending OSC messages, search for these
# names below to see the messages)
#
# DEVICE_TRACK_COUNT is how many tracks this device can display at once
# (the track bank size).
# DEVICE_SEND_COUNT/DEVICE_RECEIVE_COUNT is how many sends and receives this
# device can display at once.
# DEVICE_FX_COUNT is how many track insert FX this device can display at once.
# DEVICE_FX_PARAM_COUNT is how many FX parameters this device can display at once
# (the FX parameter bank size).
# DEVICE_FX_INST_PARAM_COUNT is how many FX instrument parameters this device can
# display at once (the FX instrument parameter bank size).
# DEVICE_MARKER_COUNT is how many markers for which this device would like to
# receive information
# DEVICE_REGION_COUNT is how many regions for which this device would like to
# receive information
DEVICE_TRACK_COUNT 8
DEVICE_SEND_COUNT 4
DEVICE_RECEIVE_COUNT 4
DEVICE_FX_COUNT 8
DEVICE_FX_PARAM_COUNT 16
DEVICE_FX_INST_PARAM_COUNT 16
DEVICE_MARKER_COUNT 0
DEVICE_REGION_COUNT 0
# ----------------------------------------------------------------
# Default values for how this device behaves. The device has a selected track, bank
# of tracks, and FX, which are not necessarily the same as the selected track or FX
# in the REAPER window.
# REAPER_TRACK_FOLLOWS determines whether the selected track in REAPER changes
# only when the user changes it in the REAPER window, or if it follows the track
# currently selected in the OSC device.
# Allowed values: REAPER, DEVICE
# DEVICE_TRACK_FOLLOWS determines whether the selected track in the device changes
# only when the device changes it, or if it follows the last touched track in the
# REAPER window.
# Allowed values: DEVICE, LAST_TOUCHED
# DEVICE_TRACK_BANK_FOLLOWS determines whether the selected track bank in the device
# changes only when the device changes it, or if it follows the REAPER mixer view.
# Allowed values: DEVICE, MIXER
# DEVICE_FX_FOLLOWS determines whether the selected FX in the device changes only
# when the device changes it, or if it follows the last touched or currently focused
# FX in the REAPER window.
# Allowed values: DEVICE, LAST_TOUCHED, FOCUSED
# DEVICE_EQ determines whether sending any FX_EQ message will automatically insert
# ReaEQ on the target track if it does not exist, or the message will only affect
# an existing instance of ReaEQ.
# Allowed values: INSERT, EXISTING
# DEVICE_ROTARY_CENTER defines the argument that represents no change, for rotary
# controls.
# Allowed values: 0, 0.5
REAPER_TRACK_FOLLOWS REAPER
DEVICE_TRACK_FOLLOWS DEVICE
DEVICE_TRACK_BANK_FOLLOWS DEVICE
DEVICE_FX_FOLLOWS DEVICE
DEVICE_EQ INSERT
DEVICE_ROTARY_CENTER 0
# ----------------------------------------------------------------
# Each line below is an action description in all caps, followed by a number of OSC
# message patterns. You can add, remove, or change patterns, delete lines, or comment
# out lines by adding '#', but do not change the action descriptions.
# The patterns following the action are the messages that REAPER will send and receive
# to and from the OSC device. An action can have no patterns (and will be ignored),
# one pattern, or many patterns.
# The patterns may contain the wildcard character '@'. (This is REAPER-only, not part
# of the OSC specification.) The '@' wildcard is used to specify the action target.
# ----------------------------------------------------------------
# The OSC device sends patterns to trigger actions, and REAPER sends patterns to the
# device as feedback. OSC patterns can include arguments, which are be interpreted
# in various ways, defined by a flag immediately before the pattern.
# n: normalized floating-point argument. 0 means the minimum value, and 1 means the
# maximum value. This can be used for continous controls like sliders and knobs.
# Example: TRACK_VOLUME n/track/volume n/track/@/volume
# The device sends /track/3/volume 0.5 to set the volume to 0.5 for track 3, or
# /track/volume 0.5 to set the volume for the track that is currently selected in
# the device. REAPER sends /track/3/volume 0.5 when track 3 volume changes to 0.5.
# If track 3 is currently selected in the device, REAPER will also send
# /track/volume 0.5. The floating-point argument represents as the track fader
# position in the REAPER window. 0 sets the fader all the way down, 1 sets the fader
# all the way up, 0.5 sets the fader exactly in the middle. Therefore, the actual
# volume that is set depends on the REAPER track fader preference settings.
# f: raw floating-point argument. The argument is interpreted directly, to set or
# report a value.
# Example: TEMPO f/tempo/raw
# The device sends /tempo/raw 100.351 to change the REAPER tempo to 100.351 bpm.
# REAPER sends /tempo/raw 120 when the tempo changes to 120 bpm.
# Normalized and raw floating-point arguments also support multiple parameters
# sent from the device.
# Example: FX_PARAM_VALUE n/track/@/fx/@/fxparam/@/value
# The device can send /track/3/fx/1,2,5/fxparam/6,7,7/value 0.25 0.5 0.75
# to set three FX parameter values at once, to 0.25, 0.5, 0.75 respectively.
# b: binary argument, either 0 or 1. The device sets or clears the state when
# sending the message. Can be used to emulate switches or momentary controls.
# Example: TRACK_MUTE b/track/mute b/track/@/mute
# The device sends /track/3/mute 1 to mute track 3, or /track/mute 1 to mute the
# track that is currently selected in the device. /track/3/mute 0 will unmute
# track 3. REAPER sends /track/3/mute 1 when track 3 is muted, and /track/3/mute 0
# when track 3 is unmuted. If track 3 is currently selected in the device, REAPER
# will also send /track/mute 1 and /track/mute 0.
# Example: REWIND b/rewind
# The device sends /rewind 1 to begin rewinding, and sends /rewind 0 to stop
# rewinding. REAPER sends /rewind 1 when the rewind button in the REAPER window is
# pressed, and /rewind 0 when the button is released.
# t: trigger or toggle message. The device triggers the action, or toggles the
# state, when the pattern is sent with no arguments, or with an argument of 1.
# The feedback values REAPER sends are identical to those sent for binary
# arguments.
# Example: METRONOME t/click
# The device sends /click or /click 1 to toggle the metronome on or off. REAPER
# sends /click 1 when the metronome is enabled, and /click 0 when the metronome
# is disabled.
# r: rotary. The device triggers the action in the forward direction when sent
# with an argument greater than ROTARY_CENTER, and in the reverse direction when
# sent with an argument less than ROTARY_CENTER. For some messages, the magnitude
# of the argument affects the rate of change. REAPER does not send feedback for
# these messages.
# Example: SCRUB r/scrub
# The device sends /scrub 1 to scrub forward, and /scrub -1 to scrub in reverse
# (if ROTARY_CENTER is 0).
# s: string. These messages include a string argument. Many of these messages
# are sent from REAPER to the device for feedback/display, but some can be sent
# from the device to REAPER.
# Example: TRACK_NAME s/track/name s/track/@/name
# The device sends /track/3/name "vox" to rename track 3 in REAPER, or /track/name
# "vox" to rename the track that is currently selected in the device. REAPER sends
# /track/3/name "vox" to report that name of track 3 is "vox". If track 3 is
# currently selected in the device, REAPER will also send /track/name "vox".
# Example: DEVICE_FX_FOLLOWS s/fxfollows
# The device sends /fxfollows "FOCUSED" to inform REAPER that the selected FX in the
# device will now follow the FX that is focused in the REAPER window.
# i: integer. These messages include an integer argument, and are sent from the
# device to REAPER.
# Example: ACTION i/action t/action/@
# The device sends /action 40757 or /action/40757 to trigger the REAPER action
# "split items at edit cursor". See the REAPER actions window for a complete list
# of action command ID numbers.
# Example: DEVICE_TRACK_BANK_SELECT i/bankedit t/bankedit/@
# The device sends /bankedit 2 or /bankedit/2 to inform REAPER that the active
# track bank is bank 2. If NUM_TRACKS is 8, that means REAPER will now interpret
# a message like /track/1/volume as targeting the volume for track 9, and REAPER
# will only send the device feedback messages for tracks 9-16.
# ----------------------------------------------------------------
# Note: the default configuration includes a lot of feedback messages, which can
# flood the device. Avoid flooding by removing messages (by deleting the patterns,
# or commenting out the lines) that the device does not want, especially the
# TIME, BEAT, SAMPLES, FRAMES, VU, FX_PARAM, LAST_MARKER, LAST_REGION messages.
# Note: FX parameter feedback will only be sent for the track that is currently
# selected in the device. If messages exist that can target FX on other tracks,
# feedback will be sent whenever the parameter values change. This can be a lot of
# data, so only include those messages if you want the feedback.
# Example: FX_PARAM_VALUE /fxparam/@/value /fx/@/fxparam/@/value
# This action can only target FX on the currently selected track, so feedback will
# only be sent for that track.
# Example: FX_PARAM_VALUE /fxparam/@/value /fx/@/fxparam/@/value /track/@/fx/@/fxparam/@/value
# This action can target FX on any track, so feedback will be sent for all tracks.
# Note: multiple patterns for a given action can all be listed on the same line,
# or split onto separate lines.
# ----------------------------------------------------------------
# The default REAPER OSC pattern configuration follows. To create a custom
# configuration, copy this file and edit the copy.
SCROLL_X- b/scroll/x/- r/scroll/x
SCROLL_X+ b/scroll/x/+ r/scroll/x
SCROLL_Y- b/scroll/y/- r/scroll/y
SCROLL_Y+ b/scroll/y/+ r/scroll/y
ZOOM_X- b/zoom/x/- r/zoom/x
ZOOM_X+ b/zoom/x/+ r/zoom/x
ZOOM_Y- b/zoom/y/- r/zoom/y
ZOOM_Y+ b/zoom/y/+ r/zoom/y
TIME f/time s/time/str
BEAT s/beat/str
SAMPLES f/samples s/samples/str
FRAMES s/frames/str
METRONOME t/click
REPLACE t/replace
REPEAT t/repeat
RECORD t/record
STOP t/stop
PLAY t/play
PAUSE t/pause
AUTO_REC_ARM t/autorecarm
SOLO_RESET t/soloreset
ANY_SOLO b/anysolo
REWIND b/rewind
FORWARD b/forward
REWIND_FORWARD_BYMARKER t/bymarker
REWIND_FORWARD_SETLOOP t/editloop
GOTO_MARKER i/marker t/marker/@
GOTO_REGION i/region t/region/@
SCRUB r/scrub
PLAY_RATE n/playrate f/playrate/raw r/playrate/rotary s/playrate/str
TEMPO n/tempo f/tempo/raw r/tempo/rotary s/tempo/str
# writing a marker or region time may change its index -- you should use the *ID_ versions below if needed
MARKER_NAME s/marker/@/name
MARKER_NUMBER s/marker/@/number/str
MARKER_TIME f/marker/@/time
REGION_NAME s/region/@/name
REGION_NUMBER s/region/@/number/str
REGION_TIME f/region/@/time
REGION_LENGTH f/region/@/length
LAST_MARKER_NAME s/lastmarker/name
LAST_MARKER_NUMBER s/lastmarker/number/str
LAST_MARKER_TIME f/lastmarker/time
LAST_REGION_NAME s/lastregion/name
LAST_REGION_NUMBER s/lastregion/number/str
LAST_REGION_TIME f/lastregion/time
LAST_REGION_LENGTH f/lastregion/length
# these are write-only, ID is the "NUMBER" field from above -- if not found, creates the marker/region
MARKERID_NAME s/marker_id/@/name
MARKERID_TIME f/marker_id/@/time
MARKERID_NUMBER i/marker_id/@/number
REGIONID_NAME s/region_id/@/name
REGIONID_TIME f/region_id/@/time
REGIONID_LENGTH f/region_id/@/length
REGIONID_NUMBER i/region_id/@/number
LOOP_START_TIME f/loop/start/time
LOOP_END_TIME f/loop/end/time
MASTER_VOLUME n/master/volume s/master/volume/str
MASTER_PAN n/master/pan s/master/pan/str
MASTER_VU n/master/vu
MASTER_VU_L n/master/vu/L
MASTER_VU_R n/master/vu/R
MASTER_SEND_NAME s/master/send/@/name
MASTER_SEND_VOLUME n/master/send/@/volume s/master/send/@/volume/str
MASTER_SEND_PAN n/master/send/@/pan s/master/send/@/pan/str
TRACK_NAME s/track/name s/track/@/name
TRACK_NUMBER s/track/number/str s/track/@/number/str
TRACK_MUTE b/track/mute b/track/@/mute t/track/mute/toggle t/track/@/mute/toggle
TRACK_SOLO b/track/solo b/track/@/solo t/track/solo/toggle t/track/@/solo/toggle
TRACK_REC_ARM b/track/recarm b/track/@/recarm t/track/recarm/toggle t/track/@/recarm/toggle
TRACK_MONITOR b/track/monitor b/track/@/monitor i/track/monitor i/track/@/monitor
TRACK_SELECT b/track/select b/track/@/select
TRACK_VU n/track/vu n/track/@/vu
TRACK_VU_L n/track/vu/L n/track/@/vu/L
TRACK_VU_R n/track/vu/R n/track/@/vu/R
TRACK_VOLUME n/track/volume n/track/@/volume
TRACK_VOLUME s/track/volume/str s/track/@/volume/str
TRACK_VOLUME f/track/volume/db f/track/@/volume/db
TRACK_PAN n/track/pan n/track/@/pan s/track/pan/str s/track/@/pan/str
TRACK_PAN2 n/track/pan2 n/track/@/pan2 s/track/pan2/str s/track/@/pan2/str
TRACK_PAN_MODE s/track/panmode s/track/@/panmode
TRACK_SEND_NAME s/track/send/@/name s/track/@/send/@/name
TRACK_SEND_VOLUME n/track/send/@/volume n/track/@/send/@/volume
TRACK_SEND_VOLUME s/track/send/@/volume/str s/track/@/send/@/volume/str
TRACK_SEND_PAN n/track/send/@/pan n/track/@/send/@/pan
TRACK_SEND_PAN s/track/send/@/pan/str s/track/@/send/@/pan/str
TRACK_RECV_NAME s/track/recv/@/name s/track/@/recv/@/name
TRACK_RECV_VOLUME n/track/recv/@/volume n/track/@/recv/@/volume
TRACK_RECV_VOLUME s/track/recv/@/volume/str s/track/@/recv/@/volume/str
TRACK_RECV_PAN n/track/recv/@/pan n/track/@/recv/@/pan
TRACK_RECV_PAN s/track/recv/@/pan/str s/track/@/recv/@/pan/str
TRACK_AUTO s/track/auto
TRACK_AUTO_TRIM t/track/autotrim t/track/@/autotrim
TRACK_AUTO_READ t/track/autoread t/track/@/autoread
TRACK_AUTO_LATCH t/track/autolatch t/track/@/autolatch
TRACK_AUTO_TOUCH t/track/autotouch t/track/@/autotouch
TRACK_AUTO_WRITE t/track/autowrite t/track/@/autowrite
TRACK_VOLUME_TOUCH b/track/volume/touch b/track/@/volume/touch
TRACK_PAN_TOUCH b/track/pan/touch b/track/@/pan/touch
FX_NAME s/fx/name s/fx/@/name s/track/@/fx/@/name
FX_NUMBER s/fx/number/str s/fx/@/number/str s/track/@/fx/@/number/str
FX_BYPASS b/fx/bypass b/fx/@/bypass b/track/@/fx/@/bypass
FX_OPEN_UI b/fx/openui b/fx/@/openui b/track/@/fx/@/openui
FX_PRESET s/fx/preset s/fx/@/preset s/track/@/fx/@/preset
FX_PREV_PRESET t/fx/preset- t/fx/@/preset- t/track/@/fx/@/preset-
FX_NEXT_PRESET t/fx/preset+ t/fx/@/preset+ t/track/@/fx/@/preset+
FX_PARAM_NAME s/fxparam/@/name s/fx/@/fxparam/@/name
FX_WETDRY n/fx/wetdry n/fx/@/wetdry n/track/@/fx/@/wetdry
FX_WETDRY s/fx/wetdry/str s/fx/@/wetdry/str s/track/@/fx/@/wetdry/str
FX_PARAM_VALUE n/fxparam/@/value n/fx/@/fxparam/@/value n/track/@/fx/@/fxparam/@/value
FX_PARAM_VALUE s/fxparam/@/value/str s/fx/@/fxparam/@/value/str
FX_EQ_BYPASS b/fxeq/bypass b/track/@/fxeq/bypass
FX_EQ_OPEN_UI b/fxeq/openui b/track/@/fxeq/openui
FX_EQ_PRESET s/fxeq/preset s/track/@/fxeq/preset
FX_EQ_PREV_PRESET s/fxeq/preset- s/track/@/fxeq/preset-
FX_EQ_NEXT_PRESET s/fxeq/preset+ s/track/@/fxeq/preset+
FX_EQ_MASTER_GAIN n/fxeq/gain n/track/@/fxeq/gain
FX_EQ_MASTER_GAIN f/fxeq/gain/db f/track/@/fxeq/gain/db s/fxeq/gain/str
FX_EQ_WETDRY n/fxeq/wetdry n/track/@/fxeq/wetdry
FX_EQ_WETDRY s/fxeq/wetdry/str s/track/@/fxeq/wetdry/str
FX_EQ_HIPASS_NAME s/fxeq/hipass/str
FX_EQ_HIPASS_BYPASS b/fxeq/hipass/bypass
FX_EQ_HIPASS_FREQ n/fxeq/hipass/freq n/track/@/fxeq/hipass/freq
FX_EQ_HIPASS_FREQ f/fxeq/hipass/freq/hz f/track/@/fxeq/hipass/freq/hz
FX_EQ_HIPASS_FREQ s/fxeq/hipass/freq/str s/track/@/fxeq/hipass/freq/str
FX_EQ_HIPASS_Q n/fxeq/hipass/q n/track/@/fxeq/hipass/q
FX_EQ_HIPASS_Q f/fxeq/hipass/q/oct f/track/@/fxeq/hipass/q/oct
FX_EQ_HIPASS_Q s/fxeq/hipass/q/str s/track/@/fxeq/hipass/q/str
FX_EQ_LOSHELF_NAME s/fxeq/loshelf/str
FX_EQ_LOSHELF_BYPASS b/fxeq/loshelf/bypass
FX_EQ_LOSHELF_FREQ n/fxeq/loshelf/freq n/track/@/fxeq/loshelf/freq
FX_EQ_LOSHELF_FREQ f/fxeq/loshelf/freq/hz f/track/@/fxeq/loshelf/freq/hz
FX_EQ_LOSHELF_FREQ s/fxeq/loshelf/freq/str s/track/@/fxeq/loshelf/freq/str
FX_EQ_LOSHELF_GAIN n/fxeq/loshelf/gain n/track/@/fxeq/loshelf/gain
FX_EQ_LOSHELF_GAIN f/fxeq/loshelf/gain/db f/track/@/fxeq/loshelf/gain/db
FX_EQ_LOSHELF_GAIN s/fxeq/loshelf/gain/str s/track/@/fxeq/loshelf/gain/str
FX_EQ_LOSHELF_Q n/fxeq/loshelf/q n/track/@/fxeq/loshelf/q
FX_EQ_LOSHELF_Q f/fxeq/loshelf/q/oct f/track/@/fxeq/loshelf/q/oct
FX_EQ_LOSHELF_Q s/fxeq/loshelf/q/str s/track/@/fxeq/loshelf/q/str
FX_EQ_BAND_NAME s/fxeq/band/str
FX_EQ_BAND_BYPASS b/fxeq/band/@/bypass
FX_EQ_BAND_FREQ n/fxeq/band/@/freq n/track/@/fxeq/band/@/freq
FX_EQ_BAND_FREQ f/fxeq/band/@/freq/hz f/track/@/fxeq/band/@/freq/hz
FX_EQ_BAND_FREQ s/fxeq/band/@/freq/str s/track/@/fxeq/band/@/freq/str
FX_EQ_BAND_GAIN n/fxeq/band/@/gain n/track/@/fxeq/band/@/gain
FX_EQ_BAND_GAIN f/fxeq/band/@/gain/db f/track/@/fxeq/band/@/gain/db
FX_EQ_BAND_GAIN s/fxeq/band/@/gain/str s/track/@/fxeq/band/@/gain/str
FX_EQ_BAND_Q n/fxeq/band/@/q n/track/@/fxeq/band/@/q
FX_EQ_BAND_Q f/fxeq/band/@/q/oct f/track/@/fxeq/band/@/q/oct
FX_EQ_BAND_Q s/fxeq/band/@/q/str s/track/@/fxeq/band/@/q/str
FX_EQ_NOTCH_NAME s/fxeq/notch/str
FX_EQ_NOTCH_BYPASS b/fxeq/notch/bypass
FX_EQ_NOTCH_FREQ n/fxeq/notch/freq n/track/@/fxeq/notch/freq
FX_EQ_NOTCH_FREQ f/fxeq/notch/freq/hz f/track/@/fxeq/notch/freq/hz
FX_EQ_NOTCH_FREQ s/fxeq/notch/freq/str s/track/@/fxeq/notch/freq/str
FX_EQ_NOTCH_GAIN n/fxeq/notch/gain n/track/@/fxeq/notch/gain
FX_EQ_NOTCH_GAIN f/fxeq/notch/gain/db f/track/@/fxeq/notch/gain/db
FX_EQ_NOTCH_GAIN s/fxeq/notch/gain/str s/track/@/fxeq/notch/gain/str
FX_EQ_NOTCH_Q n/fxeq/notch/q n/track/@/fxeq/notch/q
FX_EQ_NOTCH_Q f/fxeq/notch/q/oct f/track/@/fxeq/notch/q/oct
FX_EQ_NOTCH_Q s/fxeq/notch/q/str s/track/@/fxeq/notch/q/str
FX_EQ_HISHELF_NAME s/fxeq/hishelf/str
FX_EQ_HISHELF_BYPASS b/fxeq/hishelf/bypass
FX_EQ_HISHELF_FREQ n/fxeq/hishelf/freq n/track/@/fxeq/hishelf/freq
FX_EQ_HISHELF_FREQ f/fxeq/hishelf/freq/hz f/track/@/fxeq/hishelf/freq/hz
FX_EQ_HISHELF_FREQ s/fxeq/hishelf/freq/str s/track/@/fxeq/hishelf/freq/str
FX_EQ_HISHELF_GAIN n/fxeq/hishelf/gain n/track/@/fxeq/hishelf/gain
FX_EQ_HISHELF_GAIN f/fxeq/hishelf/gain/sb f/track/@/fxeq/hishelf/gain/db
FX_EQ_HISHELF_GAIN s/fxeq/hishelf/gain/str s/track/@/fxeq/hishelf/gain/str
FX_EQ_HISHELF_Q n/fxeq/hishelf/q n/track/@/fxeq/hishelf/q
FX_EQ_HISHELF_Q f/fxeq/hishelf/q/oct f/track/@/fxeq/hishelf/q/oct
FX_EQ_HISHELF_Q s/fxeq/hishelf/q/str s/track/@/fxeq/hishelf/q/str
FX_EQ_LOPASS_NAME s/fxeq/lopass/str
FX_EQ_LOPASS_BYPASS b/fxeq/lopass/bypass
FX_EQ_LOPASS_FREQ n/fxeq/lopass/freq n/track/@/fxeq/lopass/freq
FX_EQ_LOPASS_FREQ f/fxeq/lopass/freq/hz f/track/@/fxeq/lopass/freq/hz
FX_EQ_LOPASS_FREQ s/fxeq/lopass/freq/str s/track/@/fxeq/lopass/freq/str
FX_EQ_LOPASS_Q n/fxeq/lopass/q n/track/@/fxeq/lopass/q
FX_EQ_LOPASS_Q f/fxeq/lopass/q/oct f/track/@/fxeq/lopass/q/oct
FX_EQ_LOPASS_Q s/fxeq/lopass/q/str s/track/@/fxeq/lopass/q/str
FX_INST_NAME s/fxinst/name s/track/@/fxinst/name
FX_INST_BYPASS b/fxinst/bypass b/track/@/fxinst/bypass
FX_INST_OPEN_UI b/fxinst/openui b/track/@/fxinst/openui
FX_INST_PRESET s/fxinst/preset s/track/@/fxinst/preset
FX_INST_PREV_PRESET t/fxinst/preset- t/track/@/fxinst/preset-
FX_INST_NEXT_PRESET t/fxinst/preset+ t/track/@/fxinst/preset+
FX_INST_PARAM_NAME s/fxinstparam/@/name
FX_INST_PARAM_VALUE n/fxinstparam/@/value n/track/@/fxinstparam/@/value
FX_INST_PARAM_VALUE s/fxinstparam/@/value/str
LAST_TOUCHED_FX_TRACK_NAME s/fx/last_touched/track/name
LAST_TOUCHED_FX_TRACK_NUMBER s/fx/last_touched/track/number/str
LAST_TOUCHED_FX_NAME s/fx/last_touched/name
LAST_TOUCHED_FX_NUMBER s/fx/last_touched/number/str
LAST_TOUCHED_FX_PARAM_NAME s/fxparam/last_touched/name
LAST_TOUCHED_FX_PARAM_VALUE n/fxparam/last_touched/value s/fxparam/last_touched/value/str
# these send MIDI to the vkb MIDI input. parameters are raw MIDI.
# for notes, if two, first wildcard is channel (0-15). MIDI note number is required (as decimal integer only!)
# if parameter value is 0, note-off, otherwise note-on
VKB_MIDI_NOTE i/vkb_midi/@/note/@ f/vkb_midi/@/note/@ i/vkb_midi/note/@ f/vkb_midi/note/@
# similar, but for 0xA0 (poly aftertouch)
VKB_MIDI_POLYAFTERTOUCH i/vkb_midi/@/polyaftertouch/@ f/vkb_midi/@/polyaftertouch/@ i/vkb_midi/polyaftertouch/@ f/vkb_midi/polyaftertouch/@
# for CCs, if two, first wildcard is channel (0-15). MIDI CC number is required (as decimal integer only!)
VKB_MIDI_CC i/vkb_midi/@/cc/@ f/vkb_midi/@/cc/@ i/vkb_midi/cc/@ f/vkb_midi/cc/@
# program change (0xC0) can take channel as wildcard, or value only
VKB_MIDI_PROGRAM i/vkb_midi/@/program f/vkb_midi/@/program i/vkb_midi/program f/vkb_midi/program
# channel pressure (aftertouch) (0xD0) can take channel as wildcard, or value only
VKB_MIDI_CHANNELPRESSURE i/vkb_midi/@/channelpressure f/vkb_midi/@/channelpressure i/vkb_midi/channelpressure f/vkb_midi/channelpressure
# pitch can take channel as wildcard, or value only
VKB_MIDI_PITCH i/vkb_midi/@/pitch f/vkb_midi/@/pitch i/vkb_midi/pitch f/vkb_midi/pitch
ACTION i/action s/action/str t/action/@ f/action/@/cc
ACTION_SOFT f/action/@/cc/soft
ACTION_RELATIVE f/action/@/cc/relative
MIDIACTION i/midiaction t/midiaction/@
MIDILISTACTION i/midilistaction t/midilistaction/@
# ----------------------------------------------------------------
# The following messages are sent from the device, to inform REAPER
# of a change in the device state, behavior, or display capabilities.
DEVICE_TRACK_COUNT i/device/track/count t/device/track/count/@
DEVICE_SEND_COUNT i/device/send/count t/device/send/count/@
DEVICE_RECEIVE_COUNT i/device/receive/count t/device/receive/count/@
DEVICE_FX_COUNT i/device/fx/count t/device/fx/count/@
DEVICE_FX_PARAM_COUNT i/device/fxparam/count t/device/fxparam/count/@
DEVICE_FX_INST_PARAM_COUNT i/device/fxinstparam/count t/device/fxinstparam/count/@
DEVICE_MARKER_COUNT i/device/marker/count t/device/marker/count/@
DEVICE_REGION_COUNT i/device/region/count t/device/region/count/@
REAPER_TRACK_FOLLOWS s/reaper/track/follows
REAPER_TRACK_FOLLOWS_REAPER t/reaper/track/follows/reaper
REAPER_TRACK_FOLLOWS_DEVICE t/reaper/track/follows/device
DEVICE_TRACK_FOLLOWS s/device/track/follows
DEVICE_TRACK_FOLLOWS_DEVICE t/device/track/follows/device
DEVICE_TRACK_FOLLOWS_LAST_TOUCHED t/device/track/follows/last_touched
DEVICE_TRACK_BANK_FOLLOWS s/device/track/bank/follows
DEVICE_TRACK_BANK_FOLLOWS_DEVICE t/device/track/bank/follows/device
DEVICE_TRACK_BANK_FOLLOWS_MIXER t/device/track/bank/follows/mixer
DEVICE_FX_FOLLOWS s/device/fx/follows
DEVICE_FX_FOLLOWS_DEVICE t/device/fx/follows/device
DEVICE_FX_FOLLOWS_LAST_TOUCHED t/device/fx/follows/last_touched
DEVICE_FX_FOLLOWS_FOCUSED t/device/fx/follows/focused
DEVICE_TRACK_SELECT i/device/track/select t/device/track/select/@
DEVICE_PREV_TRACK t/device/track/-
DEVICE_NEXT_TRACK t/device/track/+
DEVICE_TRACK_BANK_SELECT i/device/track/bank/select t/device/track/bank/select/@
DEVICE_PREV_TRACK_BANK t/device/track/bank/-
DEVICE_NEXT_TRACK_BANK t/device/track/bank/+
DEVICE_FX_SELECT i/device/fx/select t/device/fx/select/@
DEVICE_PREV_FX t/device/fx/-
DEVICE_NEXT_FX t/device/fx/+
DEVICE_FX_PARAM_BANK_SELECT i/device/fxparam/bank/select t/device/fxparam/bank/select/@
DEVICE_FX_PARAM_BANK_SELECT s/device/fxparam/bank/str
DEVICE_PREV_FX_PARAM_BANK t/device/fxparam/bank/-
DEVICE_NEXT_FX_PARAM_BANK t/device/fxparam/bank/+
DEVICE_FX_INST_PARAM_BANK_SELECT i/device/fxinstparam/bank/select t/device/fxinstparam/bank/select/@
DEVICE_FX_INST_PARAM_BANK_SELECT s/device/fxinstparam/bank/str
DEVICE_PREV_FX_INST_PARAM_BANK t/device/fxinstparam/bank/-
DEVICE_NEXT_FX_INST_PARAM_BANK t/device/fxinstparam/bank/+
DEVICE_MARKER_BANK_SELECT i/device/marker/bank/select t/device/marker/bank/select/@
DEVICE_PREV_MARKER_BANK t/device/marker/bank/-
DEVICE_NEXT_MARKER_BANK t/device/marker/bank/+
DEVICE_REGION_BANK_SELECT i/device/region/bank/select t/device/region/bank/select/@
DEVICE_PREV_REGION_BANK t/device/region/bank/-
DEVICE_NEXT_REGION_BANK t/device/region/bank/+