This is a simple one to six octave MIDI keyboard that can be shifted through the entire MIDI note range (or C0 to C4 in the free version). It is capable of 10 finger multitouch operation, but your mileage will vary with older Android versions and / or cheaper devices.

On top of the keyboard you will find an octave selector that can be used to freely shift the keyboard around. Touching it outside of the current key range window makes the keyboard jump to C-based octave boundaries.
At the top of the screen there are standard masterkeyboard pitch and modulation controllers plus two assignable sliders that can be set to any CC number of your choice. To do so touch the name of the currently assigned controller and select what you want to use from the upcoming dialog. The pitchwheel's range can be set in the same way. Modulation is fixed.

Most settings for the keyboard can be made directly on screen. Touch the gear icon on the top right (resp. between the modwheels and the faders in portrait mode) and the
keyrange selector will give way to a parameter entry tool as shown below. Here you can select the parameter with the arrow buttons on the left and change its value with the buttons on the right. Alternatively touch the display and select the desired value from a popup list.

Some further settings that are unlikely to be changed frequently are accessible via the app's settings.

Parameters available onscreen include:

MIDI Channel: Sets the channel on which notes, aftertouch and CC data are sent. The last entry switches the keyboard into MPE mode.

Velocity Mode: Determines the way Note On velocity is generated:

- Fixed / XML value: Velocity is fixed at 100 (hex 0x64).

- Touch Position: Velocity depends on where a note is hit. Values increase from top to bottom. This is the default setting.

- Touch Pressure: Android may send information on how much pressure you

execute when touching the screen. There is basically no device out in the wild that supports this in any reasonable way, though. On those who try, the value will usually only cover a tiny range and will generally be rather enigmatic. A scaleing option will appear in the app's settings when this option is selected.

- CC: Uses the value of the second onscreen slider, resp incoming MIDI with the CC number this slider is set to for velocity.

- Device Tilt: The further the device is tilt away from the user the higher the velocity.
Aftertouch: Send either channel or polyphonic (or no) aftertouch information depending on vertical movement of a finger after a note has been initially triggered. Values will increase in the direction set by the 'up' or 'down' options and decrease in the other.

Keyboard Type: Renders the keyboard either as a standard piano or as a continuous pad that will only include notes belonging to a selected scale.

Scale: Selects a note scale and - on the standard piano - disables all keys that are not part of that scale at the selected base note. If the keyboard type is 'Scalepad', the pad will only include notes belonging to the selected scale.

To revert to normal select the 'chromatic' scale or use the 'Clear' button on the popup list.

Additional scales can be xml-defined. See default.xml for examples.
Basenote: Sets the root key for note scales.

Hide Labels: Determines whether notenames will be displayed on the keys.

Some of these settings are mutually exclusive and may be hidden at times. MPE for example is only supported on the standard keyboard and itself does not support scales.

Two Rows / Channelsplit

The "Octaves" preference in the app's settings contains options that will render two rows of keys.

When set to 2 * x octaves, another control will appear to the left of the keyrange selector (which will contain two 'windows' then): The up / down arrows direct the selector as well as most parameter settings to either the upper or the lower keybed. Parameter names will be prefixed with up or down pointing triangles to indicate which keybed is edited as well. When the two keybeds are set to different MIDI channels then the up / down arrows also switch the MIDI channel for the pitch and modulation wheels and the faders.

Note that MPE mode is generally global. When either row is set to MPE then the other will follow.

Programmable Pads

The screen comes with a bunch of user-programmable pads that can be programmed to your needs in the same way as the launchpads on the XY screen.

One of the pad blocks contains an explicit bank / program change tool as well as a simple sysex librarian.

The first block of pads replaces the keyrange selector, resp. the settings editor upon repeated touches on the top-right gear icon. It can be accessible in parallel with the keyboard.

Further blocks are replacing the keyboard when you touch the downward pointing arrow button at the top-left, resp. when

resizing the controller part of the screen in portrait mode.

Whenever pads are visible, the screen's menu will contain an 'Edit Pads' entry that activates edit mode. The editing procedure and options are mostly equivalent to those on the XY screen. Please refer to the XML Customization manual page for details.

Note that there is one conceptual difference to the pads on the XY screen: The keyboard screen's pads generally follow the keyboard's MIDI channel setting including channel changes on two row layouts. 'Channel' options in the properties dialogs will be hidden or disabled. You can however globally enforce a block's MIDI channel with a dedicated 'MIDI Channel' message or the global 'Force Channel' option.

To come back to the keyboard touch the now upwards pointing arrow at the top left or its equivalent underneath the pads in the bottom right corner.

Program Changes, Sysex

The left block of pads is the only 'under keyboard' one that is also available in portrait mode. It contains two more pages that are selectable via the three dots in the lower left corner (over the pads in portrait mode). Page selection is stored separately for landscape and portrait mode.

In the center position you get a tool for sending combined bank / program changes.
Set the dials to the desired values, then touch the 'Send' button. The little arrow over that button can be used to make the dials send their values directly upon changes.It has three states indicated by brightness:
The first 'on' state will make only the

currently operated dial send its value, while the second will result in all values that are not off ("---") to be sent in combination when any dial is changed.

Touching the labels over the dials will change the display format between decimal and hexadecimal.

Finally in the rightmost position there is a very basic Sysex librarian. You can either import .syx files via a standard Android filepicker or record dumps.

For playback select an entry in the list and hit the play button. To remove an entry, wipe it out of the list.


As of version 1.7 the keyboard contains a poor man's implementation of the "Multidimensional Polyphonic Expression" specification made popular by 'continous' or 'expressive' controller hardware like the Haaken Continuum, Roli's Seaboard devices or the Linnstrument.

This is enabled by setting the keyboard's MIDI channel to "Note Per Channel (MPE)". Every note will then be assigned a unique MIDI channel and can be individually modulated by finger movements in the X (pitch), Y (usually brightness) and eventually Z (aftertouch) directions.

TouchDAW will default to a +-24 semitone pitch range, that is: It will go through the entire 14bit range of a pitchbend message over 4 displayed octaves, limited by what is actually available on screen. This can be reconfigured with RPN messages as per the MPE specs. Note that most standard synthesizers will just make 2 or 4 semitones out of this and only some MPE specific
ones will allow you to increase their pitchbend range to support the full range.

The Y axis is linked to the keyboard screen's third MIDI controller which is user setable (defaults to CC 74 - Sound Brightness). Depending on general Aftertouch settings MIDI Aftertouch will be generated as a third value.
Overall the MPE mode will definetly not replace the real things, but it can be quite expressive when paired with a capeable synthesizer nevertheless. Some DAWs - namely Cubase, Bitwig and Logic - have also steadily added support for the concept in their MIDI editors.

Wheels of Steel Pixels

A rather common usecase through the years has been adding pitch and modulation wheels to hardware keyboards that don't have any. As of version 1.8 the size ratio between keyboard and controller parts can be changed in portrait mode to provide some reasonably sized wheels.

Touch the little arrows in the center and pull up and down to adjust things to your needs. The chosen ratio will be recalled on future launches.

What happens in the lower part of the screen when the controllers are resized is governed by the 'Controller Resize' preference in the settings.

By default you will see the keyboard shrink a bit until it gets hidden and replaced by the program change tool at some point. The tool covers only a relatively small part of the screen. Remaining space is available to set the controllers to the size that best suits your needs.

Further options will allow you to keep the keyboard on screen with a continuously scaled down height or make everything but the controllers disappear, allowing for maximum pitchwheel and slider length.

Finally the keyboard brings a simple floating transport control as shown on the left, that is accessible via the extras icon in the top right corner (payed version only). Using this you can reposition the sequencer as well as start recording and playback.

This screen
  • always sends to the app's second MIDI connection (except from the floating controls and pads programmed to do DAW control stuff)
  • reads MIDI input only for MPE configuration and slider / pad feedback. There is no 'player piano' functionality.