Rework the X-Touch Mini and ONE examples.

This commit is contained in:
Albert Graef 2018-10-13 19:26:03 +02:00
parent 56ea96686a
commit d0477d27d2
5 changed files with 204 additions and 314 deletions

View File

@ -11,9 +11,9 @@ This folder contains a couple of sample midizap configurations for different con
- [nanoKONTROL2.midizaprc](nanoKONTROL2.midizaprc): fix up the marker keys of the Korg nanoKONTROL2 in Cubase mode for use in Ardour
- [XTouchONE.midizaprc](XTouchONE.midizaprc): map the SCRUB key to the more important SHIFT key which the X-Touch ONE lacks
- [XTouchMini.midizaprc](XTouchMini.midizaprc): adds a bunch of Mackie control functions to make the device more useful in MC mode
- [XTouchONE2.midizaprc](XTouchONE2.midizaprc): an improved config for the X-Touch ONE which turns the SCRUB key into an internal shift key, and offers more advanced configuration options
- [XTouchONE.midizaprc](XTouchONE.midizaprc): adds a bunch of Mackie control functions to make the device more useful in MC mode
Other interesting items:

View File

@ -1,7 +1,12 @@
# Mapping for the X-Touch Mini in MC mode which takes care of the most glaring
# issues with this (rather nice) device: (1) no bank change keys, (2) no
# channel selection, and (3) no faders (except for the master fader).
# While the X-Touch Mini is very popular as a Lightroom controller, musicians
# often complain that its Mackie control mode is just too basic. But midizap
# makes it easy to add most of the essential MC functions that are missing, so
# that the unit becomes really usable as a control surface.
# NOTE: This configuration assumes that the X-Touch Mini is in MC mode, which
# is the case if the MC MODE LED on the right side is lit. If necessary, you
# can switch the device to MC mode by holding the MC key while powering it up.
# Copyright (c) 2018 Albert Graef <aggraef@gmail.com>
@ -15,8 +20,8 @@ JACK_PORTS 2
# automatic connections
JACK_IN1 X-TOUCH MINI MIDI 1
JACK_IN2 ardour:mackie control out
JACK_OUT1 ardour:mackie control in
JACK_IN2 ardour:mackie control out
JACK_OUT2 X-TOUCH MINI MIDI 1
# Pass everything through, except for the translations below.
@ -24,45 +29,77 @@ JACK_OUT2 X-TOUCH MINI MIDI 1
PASSTHROUGH
SYSTEM_PASSTHROUGH
# The idea of this mapping is to leave the original bindings mostly untouched,
# and just add few things on top of it. Note that the device, besides the
# encoders and the master faders, has two rows of 8 buttons and 2 buttons on
# the right which are laid out in MC mode as follows:
# The idea of this mapping is to leave the original bindings mostly untouched.
# In order to accommodate the missing MC functions, we add two shifted layers.
# To access these layers, we reassign the first two keys in the bottom row as
# internal shift keys, denoted SHIFT and ALT in the following.
# [CLICK] [SOLO] [TRACK] [SEND] [PAN] [PLUGIN] [EQ] [INST] [MARKER]
# [DROP] [REPLACE] [REW] [FFWD] [LOOP] [STOP] [PLAY] [REC] [NUDGE]
# Note that the device, besides the encoders and the master fader, has two
# rows of 8 buttons and 2 buttons on the right which are laid out in MC mode
# as follows:
# We turn the MC/DROP key into an internal SHIFT key and remap the other keys
# as follows (with the shifted bindings given above and below in parentheses;
# these become active when holding down the MC/SHIFT key):
# [CLICK] [SOLO] [TRACK] [SEND] [PAN] [PLUGIN] [EQ] [INST] [MARKER/A]
# [DROP/MC] [REPLACE] [REW] [FFWD] [LOOP] [STOP] [PLAY] [REC] [NUDGE/B]
# This midizap configuration remaps them as follows:
# (SELECT) (SELECT) ... (MARKER)
# [CLICK] [SOLO] [TRACK] [SEND] [PAN] [PLUGIN] [EQ] [INST] [BANK LEFT]
# [SHIFT] [REPLACE] [REW] [FFWD] [LOOP] [STOP] [PLAY] [REC] [BANK RIGHT]
# (DROP) (NUDGE)
# [SHIFT] [ALT] [REW] [FFWD] [LOOP] [STOP] [PLAY] [REC] [BANK RIGHT]
# That is, the shifted REPLACE key makes up for the remapped DROP key, and the
# MARKER and NUDGE keys must now be shifted to get these functions, while the
# unshifted keys are used to change banks. In addition, the eight buttons in
# the top row, when shifted, select the corresponding channel. And last but
# not least, the encoders, when operated while holding down the MC/SHIFT key,
# become the missing faders.
# Note the two shift keys (SHIFT and ALT) in the lower button row, and the
# bank switch keys on the right. Other than that, the unshifted layer is
# unchanged. On the SHIFT layer, the bindings are as follows:
# [SELECT] ... [CHAN LEFT]
# [DROP] [REPLACE] [FLIP] [MARKER] [NUDGE] [CHAN RIGHT]
# Note that the remapped functions (DROP, REPLACE, MARKER, NUDGE) are now
# available as shifted keys in the bottom row. We also added the FLIP key
# there. The shifted keys in the top row are bound to the channel SELECT
# functions. Moreover, our translations for the SHIFT layer also assign the
# master fader to the first channel, like on the X-Touch ONE, and the encoders
# become the eight channel faders.
# Finally, since Ardour requires some of the keys to be combined with the MC
# SHIFT key to get at some functions (SHIFT + SELECT/MARKER/NUDGE), we provide
# a third ALT layer with those shifted bindings:
# [^SELECT] ... [UP]
# [LEFT] [RIGHT] [ZOOM] [^MARKER] [^NUDGE] [DOWN]
# We also threw in some other useful MC keys (cursor and zoom) there. You may
# want to adjust this layer as needed for your DAW program. The SHIFT layer,
# in contrast, should be pretty generic, and work fine as is with most DAWs.
[MIDI]
# MC = shift button, with direct feedback
# Note that, as explained in the midizap manual, you can change the SHIFT and
# ALT keys to CapsLock-style keys by removing the RELEASE part of the
# sequence. They will then work as toggles. With the RELEASE sequence, they
# work as momentary switches, i.e., you need to hold them down to invoke a
# shifted function.
# MC = SHIFT button, with direct feedback
D#7 SHIFT ^D#7 RELEASE SHIFT ^D#7
# ALT button
E7 SHIFT2 ^E7 RELEASE SHIFT2 ^E7
# A/B buttons on the right = bank left/right
C7 A#3 # bank left
C#7 B3 # bank right
# shifted A/B buttons = MARKER/NUDGE
^C7 C7
^C#7 C#7
# shifted A/B buttons = channel left/right
^C7 C4 # channel left
^C#7 C#4 # channel right
# shifted REPLACE button = DROP
^E7 D#7
# other shifted buttons
^G7 D#7 # REW = DROP
^G#7 E7 # FFWD = REPLACE
^D7 D4 # LOOP = FLIP
^A7 C7 # STOP = MARKER
^A#7 C#7 # PLAY = NUDGE
# ^B7 # REC, currently unassigned
# shifted top row = SELECT
^F7 C2
@ -84,21 +121,52 @@ C#7 B3 # bank right
^CC22~ PB[129]-7
^CC23~ PB[129]-8
# fader goes to first channel in bank when shifted
^PB[]-9 PB-1
# ALT layer. This uses the same trick (the explicit RELEASE sequence) as in
# XTouchONE.midizaprc to transmit the MC SHIFT key (A#5) in the right order.
# ALT top row = SHIFT+SELECT
2^F7 A#5 C2 RELEASE C2 A#5
2^F#7 A#5 C#2 RELEASE C#2 A#5
2^E3 A#5 D2 RELEASE D2 A#5
2^F3 A#5 D#2 RELEASE D#2 A#5
2^F#3 A#5 E2 RELEASE E2 A#5
2^G3 A#5 F2 RELEASE F2 A#5
2^G#3 A#5 F#2 RELEASE F#2 A#5
2^A3 A#5 G2 RELEASE G2 A#5
2^A7 A#5 C7 RELEASE C7 A#5 # ALT+STOP = SHIFT+MARKER
2^A#7 A#5 C#7 RELEASE C#7 A#5 # ALT+PLAY = SHIFT+NUDGE
2^G7 D8 # ALT+REW = LEFT
2^G#7 D#8 # ALT+FFWD = RIGHT
2^D7 E8 # ALT+LOOP = ZOOM
2^C7 C8 # ALT+A = UP
2^C#7 C#8 # ALT+B = DOWN
[MIDI2]
# feedback for the BANK LEFT/RIGHT buttons
A#3 C7
B3 C#7
# dummy feedback for the faders, to take advantage of automatic feedback
# (see the alternative XTouchMini2.midizaprc configuration for some more
# comprehensive bindings which do some actual feedback using the LED rings
# of the encoders)
PB[]-1 NOP
PB[]-2 NOP
PB[]-3 NOP
PB[]-4 NOP
PB[]-5 NOP
PB[]-6 NOP
PB[]-7 NOP
PB[]-8 NOP
# We also provide feedback for the *faders* here, so that the current values
# are shown on the LED rings of the encoders while the faders are being
# operated. Note that the fader values are shown in "fan" mode (arc from zero
# to the current value) so that they're distinguishable from pan values which
# will be shown in "pan" mode (single tick indicating left/right position).
# NOTE: This is still experimental. Overloading the encoders in this manner is
# convenient and seems to work reasonably well in Ardour at least, but having
# some encoders display pan and others volume may be confusing at times.
PB[1536]{0}-1 CC48{33-43}'
PB[1536]{0}-2 CC49{33-43}'
PB[1536]{0}-3 CC50{33-43}'
PB[1536]{0}-4 CC51{33-43}'
PB[1536]{0}-5 CC52{33-43}'
PB[1536]{0}-6 CC53{33-43}'
PB[1536]{0}-7 CC54{33-43}'
PB[1536]{0}-8 CC55{33-43}'

View File

@ -1,110 +0,0 @@
# This is essentially the same as XTouchMini.midizaprc, but it assigns the
# shifted A/B keys to channel left/right, and also provides some other useful
# additional bindings and feedback on the SHIFT layer.
# Copyright (c) 2018 Albert Graef <aggraef@gmail.com>
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice and
# this notice are preserved. This file is offered as-is, without any
# warranty.
JACK_NAME "midizap-XTouchMini"
JACK_PORTS 2
# automatic connections
JACK_IN1 X-TOUCH MINI MIDI 1
JACK_IN2 ardour:mackie control out
JACK_OUT1 ardour:mackie control in
JACK_OUT2 X-TOUCH MINI MIDI 1
# Pass everything through, except for the translations below.
PASSTHROUGH
SYSTEM_PASSTHROUGH
# As with XTouchMini.midizaprc, the MC button is the shift key, holding it
# while pressing a button or operating the encoders provides additional MC
# functions. The other controls are assigned as usual in unshifted state,
# except that the A/B keys switch banks. When shifted, the master fader is
# assigned to the first channel, like on the X-Touch ONE, and the encoders
# become the eight channel faders. The bindings of the buttons are shown
# below, shifted bindings are indicated above and below in parentheses.
# (SELECT) (SELECT) ... (CHAN LEFT)
# [CLICK] [SOLO] [TRACK] [SEND] [PAN] [PLUGIN] [EQ] [INST] [BANK LEFT]
# [SHIFT] [REPLACE] [REW] [FFWD] [LOOP] [STOP] [PLAY] [REC] [BANK RIGHT]
# (DROP) (MARKER) (NUDGE) (FLIP) (CHAN RIGHT)
[MIDI]
# MC = shift button, with direct feedback
D#7 SHIFT ^D#7 RELEASE SHIFT ^D#7
# A/B buttons on the right = bank left/right
C7 A#3 # bank left
C#7 B3 # bank right
# shifted A/B buttons = channel left/right
^C7 C4 # channel left
^C#7 C#4 # channel right
# other shifted buttons
^E7 D#7 # REPLACE = DROP
^G7 C7 # REW = MARKER
^G#7 C#7 # FFWD = NUDGE
^D7 D4 # LOOP = FLIP
# SHIFT STOP/PLAY/REC are currently unassigned
# ^A7 # STOP
# ^A#7 # PLAY
# ^B7 # REC
# shifted top row = SELECT
^F7 C2
^F#7 C#2
^E3 D2
^F3 D#2
^F#3 E2
^G3 F2
^G#3 F#2
^A3 G2
# shifted encoders = channel faders
^CC16~ PB[129]-1
^CC17~ PB[129]-2
^CC18~ PB[129]-3
^CC19~ PB[129]-4
^CC20~ PB[129]-5
^CC21~ PB[129]-6
^CC22~ PB[129]-7
^CC23~ PB[129]-8
# fader goes to first channel in bank when shifted
^PB[]-9 PB-1
[MIDI2]
# feedback for the BANK LEFT/RIGHT buttons
A#3 C7
B3 C#7
# We also provide feedback for the *faders* here, so that the current values
# are shown on the LED rings of the encoders while the faders are being
# operated. Note that the fader values are shown in "fan" mode (arc from zero
# to the current value) so that they're distinguishable from pan values which
# will be shown in "pan" mode (single tick indicating left/right position).
# NOTE: This is still experimental. Overloading the encoders in this manner is
# convenient and seems to work reasonably well in Ardour at least, but having
# some encoders display pan and others volume may be confusing at times.
PB[1536]{0}-1 CC48{33-43}'
PB[1536]{0}-2 CC49{33-43}'
PB[1536]{0}-3 CC50{33-43}'
PB[1536]{0}-4 CC51{33-43}'
PB[1536]{0}-5 CC52{33-43}'
PB[1536]{0}-6 CC53{33-43}'
PB[1536]{0}-7 CC54{33-43}'
PB[1536]{0}-8 CC55{33-43}'

View File

@ -1,6 +1,12 @@
# The X-Touch ONE is quite capable as it is, it just lacks a SHIFT key.
# The sole purpose of this utterly trivial config is to provide one.
# The X-Touch ONE is a very capable Mackie device as it is, but it can still
# be improved a bit with some midizap magic. Most notably, the device lacks a
# SHIFT key, so we remap one of the lesser-used keys to provide an extra
# shifted layer which can be assigned freely to additional MC functions which
# aren't readily available on the device.
# NOTE: This config assumes that the X-Touch ONE is in its default Mackie
# mode. Otherwise you will have to adjust the mapping accordingly.
# Copyright (c) 2018 Albert Graef <aggraef@gmail.com>
@ -12,23 +18,98 @@
JACK_NAME "midizap-XTouchONE"
JACK_PORTS 2
# automatic connections
# Automatic connections for the device and Ardour.
JACK_IN1 X-Touch One MIDI 1
JACK_IN2 ardour:mackie control out
JACK_OUT1 ardour:mackie control in
JACK_IN2 ardour:mackie control out
JACK_OUT2 X-Touch One MIDI 1
# Pass everything through, except for the one mapping below.
# Pass everything through, except for the mappings below.
PASSTHROUGH
SYSTEM_PASSTHROUGH
# NOTE: This assumes that you use the default Mackie mode of the ONE.
# Otherwise you'll have to adjust the key mapping accordingly. I use the
# SCRUB key as a replacement (F8 in MC mode), because Ardour doesn't use
# it. If you do need that key, use another one that you can spare.
[MIDI]
F8 A#5
# I use the SCRUB key (F8 in MC mode) as the SHIFT key, because Ardour doesn't
# need it. YMMV, though, so if you need that key, you'll have to substitute
# another one that you can spare in the rule below.
F8 SHIFT ^F8 RELEASE SHIFT ^F8
# Remap the shifted F1 .. F4 keys to do something useful. I have them bound to
# the most important encoder assignment keys here, but of course you can
# change them to anything you want.
^F#4 E3 # Track (Trim in Ardour)
^G4 F#3 # Pan
^G#4 F3 # Send
^A4 G3 # Plugin (not supported by Ardour)
# Remap the shifted F5 and F6 keys to F7 and F8 which are missing on the ONE.
^A#4 C5
^B4 C#5
# If you're using the encoder assignment keys, then most likely you also want
# to have a FLIP button; we (rather arbitrarily) assign it to the shifted SOLO
# button in the TRANSPORT section.
^F#7 D4 # Flip
# Since the X-Touch ONE is a single-channel controller, I like to have the
# bank and channel keys linked up with channel SELECT, so that the current
# channel is also selected in the DAW when switching banks. Therefore I have
# bound these functions to the shifted bank and channel keys here, but of
# course you can change them to anything you want.
^A#3 A#3 C2 # BANK< SELECT
^B3 B3 C2 # BANK> SELECT
^C4 C4 C2 # CHAN< SELECT
^C#4 C#4 C2 # CHAN> SELECT
# With the translations below, the other shifted buttons are simply passed
# through along with the MC SHIFT key (A#5). You can either assign these
# combinations in the DAW (e.g., I have the shifted left/right keys bound to
# the previous/next marker functions in Ardour), or just directly edit the
# bindings below as you see fit.
# NOTE: We use an explicit RELEASE sequence here, to prevent the MC SHIFT key
# from being released too early. (Note that by default, midizap will release
# MIDI key events in the same order in which they are pressed, which may not
# work in some key combinations. At least I found that this confuses Ardour in
# some cases.)
^C8 A#5 C8 RELEASE C8 A#5 # Up
^C#8 A#5 C#8 RELEASE C#8 A#5 # Down
^D8 A#5 D8 RELEASE D8 A#5 # Left
^D#8 A#5 D#8 RELEASE D#8 A#5 # Right
^E8 A#5 E8 RELEASE E8 A#5 # Zoom
^C0 A#5 C0 RELEASE C0 A#5 # SHIFT REC
^G#0 A#5 G#0 RELEASE G#0 A#5 # SHIFT SOLO
^E1 A#5 E1 RELEASE E1 A#5 # SHIFT MUTE
^C2 A#5 C2 RELEASE C2 A#5 # SHIFT SELECT
^C7 A#5 C7 RELEASE C7 A#5 # SHIFT MARKER
^C#7 A#5 C#7 RELEASE C#7 A#5 # SHIFT NUDGE
^D7 A#5 D7 RELEASE D7 A#5 # SHIFT CYCLE
^D#7 A#5 D#7 RELEASE D#7 A#5 # SHIFT DROP
^E7 A#5 E7 RELEASE E7 A#5 # SHIFT REPLACE
^F7 A#5 F7 RELEASE F7 A#5 # SHIFT CLICK
^G7 A#5 G7 RELEASE G7 A#5 # SHIFT REW
^G#7 A#5 G#7 RELEASE G#7 A#5 # SHIFT FFWD
^A7 A#5 A7 RELEASE A7 A#5 # SHIFT STOP
^A#7 A#5 A#7 RELEASE A#7 A#5 # SHIFT PLAY
^B7 A#5 B7 RELEASE B7 A#5 # SHIFT REC
[MIDI2]
A#5 F8
# feedback for the (shifted) F1 .. F6 bindings and the remapped SOLO key
E3 F#4
F#3 G4
F3 G#4
A3 A4
C5 A#4
C#5 B4
D4 F#7 # FLIP -> SOLO

View File

@ -1,149 +0,0 @@
# This is an improved configuration for the X-Touch ONE which uses an internal
# SHIFT key instead. Setting up your own bindings in midizap offers a lot more
# possibilities than relying solely on your DAW's mapping abilities (you can
# still use those in conjunction with midizap, too).
# Copyright (c) 2018 Albert Graef <aggraef@gmail.com>
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice and
# this notice are preserved. This file is offered as-is, without any
# warranty.
JACK_NAME "midizap-XTouchONE"
JACK_PORTS 2
# automatic connections
JACK_IN1 X-Touch One MIDI 1
JACK_IN2 ardour:mackie control out
JACK_OUT1 ardour:mackie control in
JACK_OUT2 X-Touch One MIDI 1
# Pass everything through, except for the mappings below.
PASSTHROUGH
SYSTEM_PASSTHROUGH
[MIDI]
# NOTE: This assumes that you use the default Mackie mode of the ONE.
# Otherwise you will have to adjust the mapping accordingly. I use the SCRUB
# key (F8 in MC mode) as the SHIFT key, because I don't need that function
# (it's not available in Ardour yet). If you need that key, you'll have to use
# another one that you can spare.
F8 SHIFT ^F8 RELEASE SHIFT ^F8
# Remap the shifted F1 .. F4 keys to do something useful. I have them bound to
# the most important encoder assignment keys here, but of course you can
# change them to anything you want.
^F#4 E3 # Track (Trim in Ardour)
^G4 F#3 # Pan
^G#4 F3 # Send
^A4 G3 # Plugin (not supported by Ardour)
# If you're using the bindings above, then most likely you also need the FLIP
# button which swaps fader and encoder; we (rather arbitrarily) assign it to
# the shifted SOLO button in the TRANSPORT section.
^F#7 D4 # Flip
# Here's an alternative binding to the utility keys which you may find useful.
# Uncomment these lines (and comment out the encoder assignment section above)
# to use these instead.
#^F#4 G#6 # Save
#^G4 A6 # Undo
#^G#4 A#6 # Cancel
#^A4 B6 # Enter
# Remap the shifted F5 and F6 keys to F7 and F8 which are missing on the ONE.
^A#4 C5
^B4 C#5
# Since the X-Touch ONE is a single-channel controller, I like to have the
# bank and channel keys linked up with channel SELECT, so that the current
# channel is also selected in the DAW when switching banks. Therefore I have
# bound these functions to the shifted bank and channel keys here, but of
# course you can change them to anything you want.
# NOTE: You might have to configure a bank size of 1 for the ONE, so that all
# tracks become accessible. A suitable device description for Ardour is
# included (see x-touch-one.device).
^A#3 A#3 C2 # BANK< SELECT
^B3 B3 C2 # BANK> SELECT
^C4 C4 C2 # CHAN< SELECT
^C#4 C#4 C2 # CHAN> SELECT
# Pass through the shifted cursor keys. This assumes that they're already
# mapped to something in the DAW; e.g., I have the shifted left/right keys
# bound to the previous/next marker functions in Ardour.
# NOTE: We use an explicit RELEASE sequence here, so that the SHIFT key (A#5)
# is released last. By default, midizap will release MIDI key events in the
# same order in which they are pressed, which may not work in some key
# combinations, since the SHIFT key gets released too early. (At least I found
# that this confuses Ardour in some cases, YMMV.)
^C8 A#5 C8 RELEASE C8 A#5 # Up
^C#8 A#5 C#8 RELEASE C#8 A#5 # Down
^D8 A#5 D8 RELEASE D8 A#5 # Left
^D#8 A#5 D#8 RELEASE D#8 A#5 # Right
# With the translations below, most other shifted keys in the CHANNEL and
# TRANSPORT sections are simply passed through along with the SHIFT key as
# well. You can either assign these combinations in the DAW, or edit the
# bindings below.
^C0 A#5 C0 RELEASE C0 A#5 # SHIFT REC
^G#0 A#5 G#0 RELEASE G#0 A#5 # SHIFT SOLO
^E1 A#5 E1 RELEASE E1 A#5 # SHIFT MUTE
^C2 A#5 C2 RELEASE C2 A#5 # SHIFT SELECT
^C7 A#5 C7 RELEASE C7 A#5 # SHIFT MARKER
^C#7 A#5 C#7 RELEASE C#7 A#5 # SHIFT NUDGE
^D7 A#5 D7 RELEASE D7 A#5 # SHIFT CYCLE
^D#7 A#5 D#7 RELEASE D#7 A#5 # SHIFT DROP
^E7 A#5 E7 RELEASE E7 A#5 # SHIFT REPLACE
^F7 A#5 F7 RELEASE F7 A#5 # SHIFT CLICK
^G7 A#5 G7 RELEASE G7 A#5 # SHIFT REW
^G#7 A#5 G#7 RELEASE G#7 A#5 # SHIFT FFWD
^A7 A#5 A7 RELEASE A7 A#5 # SHIFT STOP
^A#7 A#5 A#7 RELEASE A#7 A#5 # SHIFT PLAY
^B7 A#5 B7 RELEASE B7 A#5 # SHIFT REC
# Experiment with shifted controls. This remaps the shifted fader, encoder and
# jog wheel on the ONE to CC1..CC3. As these controls aren't used by MCP, they
# can be assigned freely, e.g., to some plugin parameters, using MIDI learn.
# (To make this work in Ardour, you have to connect midizap's midi_out port to
# Ardour's MIDI control in port, in addition to the Mackie control in port.)
# NOTE: Touching the fader also emits a note message (G#8), which will get in
# the way with MIDI learn, so we disable it here.
^G#8 NOP
^PB[128]{0} CC1'
^CC16~ CC2
^CC60~ CC3
[MIDI2]
# feedback for the (shifted) F1 .. F6 bindings
E3 F#4
F#3 G4
F3 G#4
A3 A4
D4 F#7 # FLIP -> SOLO
#G#6 F#4
#A6 G4
#A#6 G#4
#B6 A4
C5 A#4
C#5 B4