TouchKeys emulation with TouchOSC

User documentation

It's possible to use the TouchKeys software without the hardware, emulating the TouchKeys with an iOS device. This document describes the steps to configure TouchKeys emulation.

Required Materials:

TouchOSC Configuration

In addition to the TouchOSC app, you will need the TouchOSC Editor computer program which can be downloaded from the TouchOSC website (scroll down to "Downloads").

Ensure that the computer and the iOS device are on the same wi-fi network. Open the TouchKeys layout file in the TouchOSC editor. Now click the "Sync" button (near upper-right corner of the TouchOSC Editor window).

Meanwhile, in the iOS app, go to the Layout menu and choose "Add". Your computer should show up in the "Found Hosts" list. Tap to select the computer and the sync should complete. If the computer doesn't show up in the list, you can enter its IP address manually. More information on editing and synchronising layouts can be found in the TouchOSC documentation.

Once the layout has been transferred to the iOS device, configure the OSC settings (under "Connections"). Enter the IP address of the computer in the "Host" field. Set the outgoing port to 8001 (other values will work fine, as long as the TouchKeys software uses the same value). It's safe to ignore the "Port (incoming)" field.

Important: Z-axis messages need to be enabled in TouchOSC for this emulation to work. In the Options menu, set "Touch Messages (/z)" to ON. The remaining options can remain off.

Return to the main menu and confirm that the TouchKeys layout is selected. Tap "Done". Your iOS device is now ready to be used as a TouchKeys emulator!

TouchKeys Software Configuration

To configure the TouchKeys software to work with TouchOSC, do the following:

  • Select "TouchKeys Standalone" in the MIDI Input section. This tells the TouchKeys software to trigger notes based on touches, rather than using a separate MIDI keyboard.
  • Tick "Enable OSC Input". Ensure the port matches what you set in TouchOSC.
  • Select a MIDI device in the MIDI Output section. This might be a hardware MIDI port or a virtual MIDI port, for example using the IAC MIDI Driver on Mac (see here for IAC setup instructions). You can also use the TouchKeys Virtual Port option to create a MIDI port that other applications can see.

At this point, playing the keys on your iOS device should trigger notes on the MIDI output port. The next step is to configure the mappings you want to use:

  • Click the "Add Mapping..." button to add a new mapping, for example vibrato, pitch bend or control change. These map the touch location to pitch or other dimensions of your choice.
  • For independent control over every note (especially to achieve independent pitch bend on each note), it's necessary to use one MIDI channel per note. To enable this mode, select "Polyphonic" in the Mode menu under MIDI Output. You can set the range of MIDI channels to use in the text fields below. You can also select "Monophonic" mode, which uses a single MIDI channel but only enables the mappings on the most recent note you play, which is useful with monophonic synths (e.g. wind and string instrument emulations).
  • You can change the octave of the TouchOSC input using the "Lowest Octave" control in the TouchKeys section (upper left).
  • More sophisticated setups can be created by splitting the keyboard into multiple zones, each of which has different mappings and, potentially, goes to a different MIDI output. Given the limited 12-note range of the iOS emulation, this feature is not likely to be particularly useful but it can be tested.

Note for Linux users: The TouchKeys software uses the ALSA MIDI driver. To connect TouchKeys to the commonly-used JACK MIDI environment, I suggest using a2jmidid. These are available as packages for many Linux distributions (e.g. on Ubuntu, install jackd and a2jmidid).