Add an example config for the X-Touch Mini.

master
Albert Graef 2018-10-11 19:03:51 +02:00
parent a90a0c0361
commit cb90678434
2 changed files with 175 additions and 54 deletions

View File

@ -0,0 +1,99 @@
# 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).
# 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
# Pass everything through, except for the translations below.
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:
# [CLICK] [SOLO] [TRACK] [SEND] [PAN] [PLUGIN] [EQ] [INST] [MARKER]
# [DROP] [REPLACE] [REW] [FFWD] [LOOP] [STOP] [PLAY] [REC] [NUDGE]
# 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):
# (SELECT) ... (MARKER)
# [CLICK] [SOLO] [TRACK] [SEND] [PAN] [PLUGIN] [EQ] [INST] [BANK LEFT]
# [SHIFT] [REPLACE] [REW] [FFWD] [LOOP] [STOP] [PLAY] [REC] [BANK RIGHT]
# (DROP) (NUDGE)
# 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.
[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 = MARKER/NUDGE
^C7 C7
^C#7 C#7
# shifted REPLACE button = DROP
^E7 D#7
# 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
[MIDI2]
# feedback for the BANK LEFT/RIGHT buttons
A#3 C7
B3 C#7
# NOTE: We might also want to provide some actual feedback for the *shifted*
# faders here in the future, so that the current values are shown in the LED
# rings of the encoders while the faders are being operated.
# dummy feedback for the faders, to take advantage of automatic feedback
PB[129]-1 NOP
PB[129]-2 NOP
PB[129]-3 NOP
PB[129]-4 NOP
PB[129]-5 NOP
PB[129]-6 NOP
PB[129]-7 NOP
PB[129]-8 NOP

View File

@ -1,128 +1,150 @@
<!DOCTYPE patchbay>
<patchbay name="midizap2" version="0.5.3">
<patchbay name="midizap" version="0.5.4">
<output-sockets>
<socket exclusive="off" name="Ctlra Maschine" client="a2j" type="jack-midi">
<socket type="jack-midi" name="Ctlra Maschine" exclusive="off" client="a2j">
<plug>Ctlra Maschine Mk3.*</plug>
</socket>
<socket exclusive="off" name="midizap-Maschine" client="midizap-Maschine" type="jack-midi">
<socket type="jack-midi" name="midizap-Maschine" exclusive="off" client="midizap-Maschine">
<plug>midi_out</plug>
</socket>
<socket exclusive="off" name="midizap-Maschine 2" client="midizap-Maschine" type="jack-midi">
<socket type="jack-midi" name="midizap-Maschine 2" exclusive="off" client="midizap-Maschine">
<plug>midi_out2</plug>
</socket>
<socket exclusive="off" name="Ardour mackie out" client="ardour" type="jack-midi">
<socket type="jack-midi" name="Ardour mackie out" exclusive="off" client="ardour">
<plug>mackie control out</plug>
</socket>
<socket exclusive="off" name="nanoKONTROL2" client="a2j" type="jack-midi">
<socket type="jack-midi" name="nanoKONTROL2" exclusive="off" client="a2j">
<plug>nanoKONTROL2.* MIDI 1</plug>
</socket>
<socket exclusive="off" name="midizap-nanoKONTROL 1" client="midizap-nanoKONTROL2" type="jack-midi">
<socket type="jack-midi" name="midizap-nanoKONTROL 1" exclusive="off" client="midizap-nanoKONTROL2">
<plug>midi_out</plug>
</socket>
<socket exclusive="off" name="midizap-nanoKONTROL 2" client="midizap-nanoKONTROL2" type="jack-midi">
<socket type="jack-midi" name="midizap-nanoKONTROL 2" exclusive="off" client="midizap-nanoKONTROL2">
<plug>midi_out2</plug>
</socket>
<socket exclusive="off" name="X-Touch" client="a2j" type="jack-midi">
<socket type="jack-midi" name="X-Touch" exclusive="off" client="a2j">
<plug>.*X-Touch MIDI 1</plug>
</socket>
<socket exclusive="off" name="X-Touch One" client="a2j" type="jack-midi">
<socket type="jack-midi" name="X-Touch MINI" exclusive="off" client="a2j">
<plug>.*X-TOUCH MINI MIDI 1</plug>
</socket>
<socket type="jack-midi" name="midizap-XTouchMini 1" exclusive="off" client="midizap-XTouchMini">
<plug>midi_out</plug>
</socket>
<socket type="jack-midi" name="midizap-XTouchMini 2" exclusive="off" client="midizap-XTouchMini">
<plug>midi_out2</plug>
</socket>
<socket type="jack-midi" name="X-Touch One" exclusive="off" client="a2j">
<plug>X-Touch One.* MIDI 1</plug>
</socket>
<socket exclusive="off" name="midizap-XTouchONE 1" client="midizap-XTouchONE" type="jack-midi">
<socket type="jack-midi" name="midizap-XTouchONE 1" exclusive="off" client="midizap-XTouchONE">
<plug>midi_out</plug>
</socket>
<socket exclusive="off" name="midizap-XTouchONE 2" client="midizap-XTouchONE" type="jack-midi">
<socket type="jack-midi" name="midizap-XTouchONE 2" exclusive="off" client="midizap-XTouchONE">
<plug>midi_out2</plug>
</socket>
<socket exclusive="off" name="APCmini" client="a2j" type="jack-midi">
<socket type="jack-midi" name="APCmini" exclusive="off" client="a2j">
<plug>APC MINI.* MIDI 1</plug>
</socket>
<socket exclusive="off" name="midizap-APCmini 1" client="midizap-APCmini" type="jack-midi">
<socket type="jack-midi" name="midizap-APCmini 1" exclusive="off" client="midizap-APCmini">
<plug>midi_out</plug>
</socket>
<socket exclusive="off" name="midizap-APCmini 2" client="midizap-APCmini" type="jack-midi">
<socket type="jack-midi" name="midizap-APCmini 2" exclusive="off" client="midizap-APCmini">
<plug>midi_out2</plug>
</socket>
<socket exclusive="off" name="MPKmini2" client="a2j" type="jack-midi">
<socket type="jack-midi" name="MPKmini2" exclusive="off" client="a2j">
<plug>MPKmini2.* MIDI 1</plug>
</socket>
<socket exclusive="off" name="midizap-MPKmini 1" client="midizap-MPKmini2" type="jack-midi">
<socket type="jack-midi" name="midizap-MPKmini 1" exclusive="off" client="midizap-MPKmini2">
<plug>midi_out</plug>
</socket>
<socket exclusive="off" name="shuttlepro" client="shuttlepro" type="jack-midi">
<socket type="jack-midi" name="shuttlepro" exclusive="off" client="shuttlepro">
<plug>midi_out</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" name="midizap-Maschine" client="midizap-Maschine" type="jack-midi">
<socket type="jack-midi" name="midizap-Maschine" exclusive="off" client="midizap-Maschine">
<plug>midi_in</plug>
</socket>
<socket exclusive="off" name="midizap-Maschine 2" client="midizap-Maschine" type="jack-midi">
<socket type="jack-midi" name="midizap-Maschine 2" exclusive="off" client="midizap-Maschine">
<plug>midi_in2</plug>
</socket>
<socket exclusive="off" name="Ctlra Maschine" client="a2j" type="jack-midi">
<socket type="jack-midi" name="Ctlra Maschine" exclusive="off" client="a2j">
<plug>Ctlra Maschine Mk3.*</plug>
</socket>
<socket exclusive="off" name="Ardour mackie in" client="ardour" type="jack-midi">
<socket type="jack-midi" name="Ardour mackie in" exclusive="off" client="ardour">
<plug>mackie control in</plug>
</socket>
<socket exclusive="off" name="midizap-nanoKONTROL 1" client="midizap-nanoKONTROL2" type="jack-midi">
<socket type="jack-midi" name="midizap-nanoKONTROL 1" exclusive="off" client="midizap-nanoKONTROL2">
<plug>midi_in</plug>
</socket>
<socket exclusive="off" name="midizap-nanoKONTROL 2" client="midizap-nanoKONTROL2" type="jack-midi">
<socket type="jack-midi" name="midizap-nanoKONTROL 2" exclusive="off" client="midizap-nanoKONTROL2">
<plug>midi_in2</plug>
</socket>
<socket exclusive="off" name="nanoKONTROL2" client="a2j" type="jack-midi">
<socket type="jack-midi" name="nanoKONTROL2" exclusive="off" client="a2j">
<plug>nanoKONTROL2.* MIDI 1</plug>
</socket>
<socket exclusive="off" name="X-Touch" client="a2j" type="jack-midi">
<socket type="jack-midi" name="X-Touch" exclusive="off" client="a2j">
<plug>.*X-Touch MIDI 1</plug>
</socket>
<socket exclusive="off" name="midizap-XTouchONE 1" client="midizap-XTouchONE" type="jack-midi">
<socket type="jack-midi" name="midizap-XTouchMini 1" exclusive="off" client="midizap-XTouchMini">
<plug>midi_in</plug>
</socket>
<socket exclusive="off" name="midizap-XTouchONE 2" client="midizap-XTouchONE" type="jack-midi">
<socket type="jack-midi" name="midizap-XTouchMini 2" exclusive="off" client="midizap-XTouchMini">
<plug>midi_in2</plug>
</socket>
<socket exclusive="off" name="X-Touch One" client="a2j" type="jack-midi">
<socket type="jack-midi" name="X-Touch MINI" exclusive="off" client="a2j">
<plug>.*X-TOUCH MINI MIDI 1</plug>
</socket>
<socket type="jack-midi" name="midizap-XTouchONE 1" exclusive="off" client="midizap-XTouchONE">
<plug>midi_in</plug>
</socket>
<socket type="jack-midi" name="midizap-XTouchONE 2" exclusive="off" client="midizap-XTouchONE">
<plug>midi_in2</plug>
</socket>
<socket type="jack-midi" name="X-Touch One" exclusive="off" client="a2j">
<plug>X-Touch One.* MIDI 1</plug>
</socket>
<socket exclusive="off" name="midizap-APCmini 1" client="midizap-APCmini" type="jack-midi">
<socket type="jack-midi" name="midizap-APCmini 1" exclusive="off" client="midizap-APCmini">
<plug>midi_in</plug>
</socket>
<socket exclusive="off" name="midizap-APCmini 2" client="midizap-APCmini" type="jack-midi">
<socket type="jack-midi" name="midizap-APCmini 2" exclusive="off" client="midizap-APCmini">
<plug>midi_in2</plug>
</socket>
<socket exclusive="off" name="APCmini" client="a2j" type="jack-midi">
<socket type="jack-midi" name="APCmini" exclusive="off" client="a2j">
<plug>APC MINI.* MIDI 1</plug>
</socket>
<socket exclusive="off" name="midizap-MPKmini 1" client="midizap-MPKmini2" type="jack-midi">
<socket type="jack-midi" name="midizap-MPKmini 1" exclusive="off" client="midizap-MPKmini2">
<plug>midi_in</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable output="Ctlra Maschine" input="midizap-Maschine" type="jack-midi"/>
<cable output="midizap-Maschine" input="Ardour mackie in" type="jack-midi"/>
<cable output="midizap-Maschine 2" input="Ctlra Maschine" type="jack-midi"/>
<cable output="Ardour mackie out" input="midizap-Maschine 2" type="jack-midi"/>
<cable output="Ardour mackie out" input="X-Touch" type="jack-midi"/>
<cable output="Ardour mackie out" input="midizap-APCmini 2" type="jack-midi"/>
<cable output="Ardour mackie out" input="midizap-XTouchONE 2" type="jack-midi"/>
<cable output="Ardour mackie out" input="midizap-nanoKONTROL 2" type="jack-midi"/>
<cable output="X-Touch" input="Ardour mackie in" type="jack-midi"/>
<cable output="X-Touch One" input="midizap-XTouchONE 1" type="jack-midi"/>
<cable output="nanoKONTROL2" input="midizap-nanoKONTROL 1" type="jack-midi"/>
<cable output="APCmini" input="midizap-APCmini 1" type="jack-midi"/>
<cable output="midizap-APCmini 1" input="Ardour mackie in" type="jack-midi"/>
<cable output="midizap-APCmini 2" input="APCmini" type="jack-midi"/>
<cable output="MPKmini2" input="midizap-MPKmini 1" type="jack-midi"/>
<cable output="midizap-MPKmini 1" input="Ardour mackie in" type="jack-midi"/>
<cable output="shuttlepro" input="Ardour mackie in" type="jack-midi"/>
<cable output="midizap-XTouchONE 1" input="Ardour mackie in" type="jack-midi"/>
<cable output="midizap-XTouchONE 2" input="X-Touch One" type="jack-midi"/>
<cable output="midizap-nanoKONTROL 1" input="Ardour mackie in" type="jack-midi"/>
<cable output="midizap-nanoKONTROL 2" input="nanoKONTROL2" type="jack-midi"/>
<cable type="jack-midi" output="Ctlra Maschine" input="midizap-Maschine"/>
<cable type="jack-midi" output="midizap-Maschine" input="Ardour mackie in"/>
<cable type="jack-midi" output="midizap-Maschine 2" input="Ctlra Maschine"/>
<cable type="jack-midi" output="Ardour mackie out" input="midizap-Maschine 2"/>
<cable type="jack-midi" output="Ardour mackie out" input="X-Touch"/>
<cable type="jack-midi" output="Ardour mackie out" input="midizap-APCmini 2"/>
<cable type="jack-midi" output="Ardour mackie out" input="midizap-XTouchONE 2"/>
<cable type="jack-midi" output="Ardour mackie out" input="midizap-nanoKONTROL 2"/>
<cable type="jack-midi" output="Ardour mackie out" input="midizap-XTouchMini 2"/>
<cable type="jack-midi" output="nanoKONTROL2" input="midizap-nanoKONTROL 1"/>
<cable type="jack-midi" output="midizap-nanoKONTROL 1" input="Ardour mackie in"/>
<cable type="jack-midi" output="midizap-nanoKONTROL 2" input="nanoKONTROL2"/>
<cable type="jack-midi" output="X-Touch" input="Ardour mackie in"/>
<cable type="jack-midi" output="X-Touch One" input="midizap-XTouchONE 1"/>
<cable type="jack-midi" output="midizap-XTouchONE 1" input="Ardour mackie in"/>
<cable type="jack-midi" output="midizap-XTouchONE 2" input="X-Touch One"/>
<cable type="jack-midi" output="APCmini" input="midizap-APCmini 1"/>
<cable type="jack-midi" output="midizap-APCmini 1" input="Ardour mackie in"/>
<cable type="jack-midi" output="midizap-APCmini 2" input="APCmini"/>
<cable type="jack-midi" output="MPKmini2" input="midizap-MPKmini 1"/>
<cable type="jack-midi" output="midizap-MPKmini 1" input="Ardour mackie in"/>
<cable type="jack-midi" output="shuttlepro" input="Ardour mackie in"/>
<cable type="jack-midi" output="X-Touch MINI" input="midizap-XTouchMini 1"/>
<cable type="jack-midi" output="midizap-XTouchMini 1" input="Ardour mackie in"/>
<cable type="jack-midi" output="midizap-XTouchMini 2" input="X-Touch MINI"/>
</cables>
</patchbay>