"MIDIKeys"
Wireless WiFi MIDI Keyboard Controller
for the iPhone and iPod Touch

by Michael Eskin

MIDIKeys Icon

Now available on the iTunes App Store


MIDIKeys is a wireless MIDI Keyboard Controller for the iPhone and iPod Touch.

MIDIKeys doesn't produce any sound on its own, it is designed for controlling hardware or software VST-style MIDI synthesizers via a WiFi connection to a Windows or Mac OS X based computer.

Multiple iPhone or iPod Touch devices (up to 16) can run MIDIKeys simultaneously, each sending messages on its own MIDI channel to the hardware or software synthesizer.

The entire range may be transposed up or down up to two octaves in semitone increments using the "Transpose (semitones)" slider on the settings page.

Both fixed or variable note MIDI Note On event velocity based on touch position within the key are available as options.

While playing, you may also optionally send real-time volume, expression, modulation, or wind controller MIDI messages by tilting the iPhone/iPod Touch to the right or left.

Touch anywhere on the background image at the top of the screen to cycle through the available skins. Settings are saved for the next time MIDIKeys is run.

MIDIKeys requires two pieces of software to do its job. The first is the MIDIKeys app itself, running on your iPhone or iPod Touch.

The other is a small free open-source DSWiFiMIDI server application that you run on your PC or Mac before launching MIDIKeys.

The server application receives the MIDI messages from MIDIKeys via WiFi, and sends them along to either an external MIDI interface or a loopback MIDI driver to talk to software synthesizers running on the same computer.

Please read the instructions below for information on downloading and installing the open-source DSMIDIWiFi server application for your system.

For the most reliable performance with the lowest possible latency, I highly recommend that you connect the PC or Mac to the wireless access point that will be used by the iPhone/iPod Touch via a wired ethernet cable rather than use wireless for both the computer and the iPhone/iPod Touch. The computer and wireless gateway that the iPhone/iPod Touch is connected to must be on the same network.

To get the full benefit from MIDIKeys, you should be familiar with the use of MIDI control surfaces, hardware and/or software VST synthesizers.

If you have any concern about the compatibility of MIDIKeys with your own MIDI setup, I recommend first testing with one of these free DSMIDIWiFi-based apps available on the iTunes App Store before purchasing MIDIKeys:

iXY MIDI Motion Machine

iXY MIDI Controller


Skin #1:

MIDIKeys Skin #1


Skin #2:

MIDIKeys Skin #2


Skin #3:

MIDIKeys Skin #3


Skin #4:

MIDIKeys Skin #4


Skin #5:

MIDIKeys Skin #5


Skin #6:

MIDIKeys Skin #6


DSMIDIWiFi Server Reminder:

MIDIKeys DSMIDIWiFi Reminder Screen


MIDIKeys Settings

(Touch the MIDI connector icon at the top center of the main screen)

MIDIKeys Settings Screen

Touch the Tradlessons.com logo to go directly to the support website.

Set the transmit channel using the MIDI Channel slider. Any channel from 1-16 may be selected. Channel 1 is the default. Multiple devices can simultaneously talk to the MIDI synth, just make sure each device is on its own MIDI channel.

If you want to transpose the pitches being sent out, you may set a transpose value up to +/- two octaves in semitone increments on the Transpose (semitones) slider. No transpose is the default.

Note-on events may be sent with either a fixed or variable velocity based on where you touch on the key. Set the maximum velocity using the Velocity slider. Any value from 0-127 may be selected. Default value is 100.

Select between fixed or variable velocity mapped to the touch position using the selector. When the velocity is mapped to touch, the minimum velocity is approximately 20% of the value set on the Velocity slider and the max is 100% of the value. Touching lower or higher on the key (area below the black keys only for the white keys) results in lower or higher velocity values sent in the MIDI Note On event for the key.

MIDIKeys can send Volume, Expression, Modulation, or Breath Control message by tilting the device to the right or left.

Select a controller on the Tilt Controller selector. Default is no controller messages.

When a controller is enabled, tilting the device to the right or left will send the selected controller messages to the external device. Values increase as the device is tilted farther to the right.

You may set the tilt sensitivity using the Tilt Sensitivity slider. The range is from 1 to 4, with higher values being more sensitive. Default value is 1.5.

If you ever have "stuck" notes, you may touch the "!" icon on the main screen to send a MIDI "All Notes Off" message and stop the sounds.

All settings are saved when exiting MIDIKeys and restored the next time it is run.


LoopBe1 MIDI Loopback Driver and DSMIDIWifi Server Setup Instructions for Windows

Installing the LoopBe1 MIDI Loopback Driver

To communicate with your Windows MIDI applications such as software synthesizers or sequencers, the DSMIDIWiFi Server needs a MIDI Loopback driver to send the data through to your application. If you have a hardware MIDI interface, and only want to directly control external MIDI synthesizers with MIDIKeys, the loopback driver is not required and you can skip down to the section below on installing the DSMIDIWiFi server.

For non-commercial use, there is a free MIDI loopback driver called "LoopBe1" available from nerds.de (click on the image for more information):

The download page for LoopBe1 on nerds.de is at:

Download LoopBe1 MIDI Loopback Driver for Windows

The LoopBe1 installer is available for download at the bottom of that page. Click the link that says "Download setuploopbe1.exe"

Save the file to your hard drive and then run "setuploopbe1.exe" to install the loopback driver.

Download and Install the DSMIDIWiFi Server:

1. Please download the DSMI server installer for Windows from the DSMI Project Page on Google Code (click the image):

The file to download is labeled "dsmidiwifi-v1.01.zip - DSMI server for Windows"

2. Save the file "dsmidiwifi-v1.01.zip" to your hard drive.

3. Open the .zip archive by double-clicking on the downloaded file.

4. Copy all the files in the .zip archive to your desktop or another folder. This includes the DSMIDIWiFi.exe application and several supporting .dll files.

Running the DSMIDIWifi Server and Connecting via MIDI to your Music Programs:

1. Running the server is very easy, simply double-click the DSMIDIWiFi.exe application in the destination folder where you previously copied the unzipped files.

2. Select the MIDI Loopback driver as the MIDI output in the DSMIDI Server.

3. In your Windows MIDI application, select the loopback driver as your MIDI input.

4. Make sure your iPhone/iTouch is connected over WiFi and you should now be able to send MIDI data to your desktop applications.

Running the DSMIDIWifi Server and Connecting via MIDI to Hardware Synthesizers:

1. If you have a hardware MIDI interface on your computer connected to external hardware MIDI sythesizers, you may play them directly from your iPhone/iPod Touch. No additional loopback driver is required.

2. In the DSMIDIWiFi.exe Server application, select your hardware MIDI interface output port that is connected to the hardware synthesizers.

3. Please check that the hardware synthesizer is set to receive on the MIDI channel MIDIKeys is transmitting on (Channel 1 by default, but can be changed on the settings page).


DSMIDIWifi Server Setup Instructions for Mac OS X

Download and Install the DSMIDIWiFi Server:

1. Please download the DSMI server installer for Mac OS X from the DSMI Project Page on Google Code (click the image):

The file to download is labeled "dsmidiwifi-v1.02.dmg - DSMI Server for OSX"

2. Open the .dmg file by double clicking on the downloaded file.

3. Locate the DSMIDIWifi Server program file and copy it to your Applications folder

Running the DSMIDIWifi Server and Connecting via MIDI to your Music Programs:

1. Running the server is very easy, just double-click the DSMIDIWifi program in your Applications folder to start.

2. When the server is running, your MIDI capable applications will show a MIDI in port called "DSMIDIWifi-out". Choose this as your MIDI input.

3. Make sure your iPhone/iTouch is connected over WiFi and you should now be able to send MIDI data to your desktop applications.

Running the DSMIDIWifi Server and Connecting via MIDI to Hardware Synthesizers:

1. If you have a hardware MIDI interface on your computer connected to external hardware MIDI sythesizers, you may play them directly from your iPhone/iPod Touch.

2. In the DSMIDIWiFi Server application, select your hardware MIDI interface output port that is connected to the hardware synthesizers.

3. Please check that the hardware synthesizer is set to receive on the MIDI channel MIDIKeys is transmitting on (Channel 1 by default, but can be changed on the settings page).


Playing Tips:

Up to 16 iPhone or iPod Touch devices can run MIDIKeys simultaneously on the same network, just ensure that each is on its own MIDI channel using the MIDI Channel slider on the settings page and that each MIDI channel has been assigned to an instrument on the hardware or software synthesizer.


FAQ:

Q: What are the MIDI note number ranges?

A: The lowest note on the keyboard is referenced to Middle C, which is MIDI note 60. This value may be tranposed up or down two octaves in one semitone increments using the Transpose (semitones) slider on the settings page.

Q: What are the available MIDI realtime CC controller numbers?

A: Volume (7), Expression (11), Modulation (1), and Breath Controller (2). Only one realtime controller may be enabled at a time.

Q: What do you use as a hardware setup for portable use?

A: I use an older Windows XP based laptop (Pentium M based) and a small WiFi router that I connect to the laptop via Ethernet. LoopBe1 is installed on the laptop for MIDI loopback. I found this much simpler and more robust than trying to setup an Ad-Hoc WiFi network. I set the WiFi access point up with the SSID "DSMIDIWiFi" and then connect my iPhone via WiFi.I then run the DSMIDIWiFi program on the laptop and launch my software synth programs.

Q: I'm using MIDIKeys on Windows with the default "Microsoft GW Wavetable SW Synth" and the latency is very high, what's wrong?

A: That isn't anything having to do with my app, that's because the Microsoft GS synth wasn't designed for realtime playback. MIDIKeys really is intended for use with low latency VST software synths and/or hardware MIDI modules, I've tested on both of those configurations and have extremely low latency.

Q: I'm getting dropped notes and very bad latency, what can I do?

A: If your computer is connected to the network via a wireless adapter, try switching to a wired ethernet connection. The most reliable performance and lowest latency can only be acheived if the PC or Mac is connected to the network via a hardware ethernet interface. This is particularly true for older/slower laptops.

Q: I'm on a Windows system and nothing is working! Help!

A: Make sure that you don't have the Windows Firewall blocking data from getting to DSMIDIWiFi or the LoopBe1 driver. Also check that no other network-aware components, such as realtime network virus scanners are filtering or interfering with the flow of data from the network to the DSMIDIWiFi server.


Future Plans:

I am very interested in any suggestions for features or improvements to MIDIKeyss for future updates, please drop me an email anytime with your ideas!


More Apps to Enjoy:

Tradlessons iOS Apps Catalog


Known issues:

None at this time.


Acknowledgements:

A huge thank you to Art Tawanghar for generously providing some gorgeous artwork for the background skins and icons.


For more information, please contact Michael Eskin or visit the Tradlessons.com website:

Visit Tradlessons.com


Apple, iPhone, iPod Touch and the Apple logo are registered trademarks of Apple Inc. in the USA and other countries.