How to control MIDIPoet with a mobile phone
(there are many ways of doing it; this is just one of them...)
The big idea:
* Generate a Bluetooth signal when you press a key on your phone's keypad
* Receive these signals on your computer and convert them into MIDI messages
* Send these MIDI messages to MIDIPoet using a virtual MIDI port
* A Bluetooth, Java-compatible mobile phone
* A PC/Windows with a Bluetooth antenna
* Eyesweb 3.2.0
OK. Let's see...
1. Bluetooth signals from the phone
First, make sure that your phone is a Java-compatible smartphone. We will use Mobile Processing, so the phone must be compatible with the CLDC 1.0, MIDP 1.0 versions of J2ME. I have tried this on an old Nokia 6680 (Series 60 2nd Edition)
Here is the source code for the MIDIPoet control application. The code is based on this application for controlling the Roomba robot via Bluetooth. If you wish to modify the MIDIPoet control application, you will need to substitute the Bluetooth library that comes with Mobile Processing with this version.
If you don't want to learn Mobile Processing, you can download the MIDlet here.
Normally, you just need to send the .jar file to your phone in order to install the application... the phone should recognize that it is an application, and install it automatically. However, this may vary depending on your phone.
The MIDIPoet control application is really basic: it detects the key that is being pressed, and send its ASCII code via Bluetooth.
2. Receiving the signals on your PC
You need a Bluetooth antenna for your PC. Each antenna is different, so you will have to find out how to configure your antenna's serial port service. When it has been successfully configured, Windows should inform you which serial port is being used for Bluetooth (for example COM3, COM7, etc.) ... write down this number for future use.
Install Eyesweb and MIDIYoke. We will use Eyesweb to receive the signals coming from the Bluetooth serial port, and convert them to MIDI messages. Then, we will use one of MIDIYoke's virtual ports to transmit the MIDI messages from Eyesweb to MIDIPoet.
Here is the Eyesweb patch that receives the signals coming from the phone and converts them to MIDI. In the 'Serial input' block you must enter the serial port used by Bluetooth. You must also change the 'MIDI output' block in order to send the MIDI messages through the virtual port of your choice (by default, the patch sends them through virtual port number 1) ... The patch does a very straightforward conversion from serial to MIDI: it receives the ASCII code of the key being pressed on the phone (for example 48, which corresponds to key '0') and uses it as the MIDI note value. It then sends the note message through MIDI channel 1, with an intensity of 127.
When everything is ready, follow these steps to control MIDIPoet with your phone:
1. Activate the Bluetooth antenna on your PC
2. Run the 'Midipoet control' application on your phone. The application will search for your PC and will let you choose it from a list of devices by choosing the appropriate numeric option... after this, the application is ready for use.
3. Run the Eyesweb patch and leave it in the background... you can minimize the window.
4. Run MIDIPoet and, before interpreting the composition that will be controlled with the mobile phone, remember to choose the correct virtual MIDI port as the MIDI input.
Here is a MIDIPoet composition that will respond to your phone. Use keys 0,2,4,5,6,7,8 and 9, and find out what it does for yourself!
all pictures: Chris Funkhouser // Interrupt 08