# 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. # NOTE: There's an addon to this configuration with some MIDI CC bindings on # the ALT layer, see XTouchMini+.midizaprc. # Copyright (c) 2018 Albert Graef # 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 for the device and Ardour. JACK_IN1 X-TOUCH MINI MIDI 1 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. PASSTHROUGH SYSTEM_PASSTHROUGH # 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. # 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: # [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: # [CLICK] [SOLO] [TRACK] [SEND] [PAN] [PLUGIN] [EQ] [INST] [BANK LEFT] # [SHIFT] [ALT] [REW] [FFWD] [LOOP] [STOP] [PLAY] [REC] [BANK RIGHT] # 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, the ALT layer. Since Ardour requires some of the keys to be # combined with the MC SHIFT key to get at some functions (in particular, # SHIFT + SELECT/MARKER/NUDGE), we provide those shifted bindings on this # layer. We also throw in some more MC keys (cursor and zoom): # [^SELECT] ... [UP] # [LEFT] [RIGHT] [ZOOM] [^MARKER] [^NUDGE] [DOWN] # Note that the way I've configured this layer is somewhat tailored to Ardour, # so you may want to adjust it to your liking. The SHIFT layer, in contrast, # should be pretty generic, and work fine as is with most DAWs. [MIDI] # 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 = channel left/right ^C7 C4 # channel left ^C#7 C#4 # channel right # 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 ^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 # 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 # Encoders and fader are disabled on the ALT layer, to accommodate the MIDI CC # bindings in XTouchMini+.midizaprc. 2^CC16~ NOP 2^CC17~ NOP 2^CC18~ NOP 2^CC19~ NOP 2^CC20~ NOP 2^CC21~ NOP 2^CC22~ NOP 2^CC23~ NOP 2^PB[]-9 NOP [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}'