MIDI mode and editing MIDI assignments

On both tablets and phones the mixer views can be switched from DAW control to a user-defineable MIDI mode. When in MIDI mode controls send to the second MIDI connection and also read input from there.

This was the first incarnation of something "user-defineable" in the app. It can not change anything about the screens' visual appearance beyond changing button titles, but is relatively convenient in that it offers a second controller while staying on the same screen. Often used to access a DAW's "control room" options. See Custom Controllers for other ways of creating individual setups.

To switch between modes use the Shift button (over the master fader on tablets).

MIDI assignments for MIDI mode are stored in xml files on the device's SD-card. There can be any number of mapping files put to the SD-card, the one to be used is selectable in Setup / MIDI Utilities / XML Mapping.

In MIDI mode all controls on the mixer can be customized in terms of what command they send and what title they show. If a MIDI setup has more than eight channels it becomes stepable using the bank and page controls that also step through channel blocks in DAW control mode.
On phones MIDI mode has a seperate Flip option. Faders will then send MIDI assigned to the encoders not present in the phone UI.

Editing MIDI Mappings

You can edit MIDI assignments either in the app, using MIDI learn or manual input, or by editing the xml itself in a text editor.

In-app Editing

When in MIDI mode use the context menu's 'Edit MIDI' entry to enter edit mode. TouchDAW will from there on try to guide you with explanations printed to the upper text displays.

Basic editing principles are as follows:
You select a control and will see a number of editable parameters being displayed as shown below.

These include:
  • MIDI Channel
  • Message Type
  • One or two MIDI data bytes
and for buttons additionally:
  • Title
  • Button mode

The parameter currently selected is highlighted. To edit another either touch it in the display or use the parameter selection controls shown on the right. On tablets values are entered using either the jog wheel or up / down arrows. Use the two single arrow buttons on phones.

When editing a component's title, entering a value will bring up an input dialog to type in.

Button modes include:
  • Momentary: High value sent when pressed, low value sent on release
  • Toggle: First press sends high value, next sends low value. Release is ignored.
  • Single: Only the high value is sent, low value and button release are ignored.
The high value will usually be defined as the second data byte (velocity, cc value). Low value is 0.

For encoders there are some special cases determined by the value you enter as data 2 to cover value combinations commonly used for value increment / decrement. These also make the encoder into an endless rotary control, while otherwise it will work like a linear potentiometer.
  • 0 - High value 0x41, low value 0x01
  • 1 - High value 0x41, low value 0x3F
  • 2 - High value 0x7F, low value 0x01
  • 3 - MCU specific variant of 0, incoming (LED ring feedback) and outgoing Data 1 values are 32 steps apart.

The editor by default displays MIDI databytes in hexadecimal format. You can switch that to decimal in the app's setup

To set a channel's title and subtitle, ie. the text that will be shown above each channel, long-click the text display you want to edit.

MIDI learn

Instead of manually assigning MIDI you can also learn it in. To do so touch the record button then select a control to arm for incoming MIDI. The next data received will then briefly be displayed and be assigned to the control. MIDI Learn will not work for (N)RPNs.

Exit / Save

When done with editing a particular control, touch another to continue with that one or press the context menu button to exit edit mode alltogether.

All editing is done in memory. If you want to persist your changes press the save button. You then either have the option to just overwrite the currently used xml or save the mapping under a different name.


Things that can not currently be done "in-app" include:
  • Sysex editing (Sysex can be learned, though).
  • Adding and deleting channels
If you need to do any of those you will have to edit the xml directly.

The location for the xml files is the 'midi_maps' subdirectory of the app's default private directory:

mnt / sdcard / Android / data / de.humatic.tdaw / files / midi_maps / default.xml

resp. for the free version:
mnt / sdcard / Android / data / de.humatic.tdf / files / midi_maps / default.xml

Note that these directories may not be visible from Windows when the device is mounted as external storage. You might need to use some Android file manager to access the directory.

As of TouchDAW 1.54 the xml selection popup contains another entry that will open a simple text editor to view and edit the currently selected xml file.


Some example MIDI maps can be found here. If you create something that you think would be useful for others, send it over and we will be happy to include it.