RoombaMidi: Roomba as MIDI instrument

[Update: an improved version of this idea, called RoombaMidi2, is available on the HackingRoomba.com Projects area.]

The Roomba has a piezo beeper that can play tunes. You’ve heard it.
And its motors make noise. Why not put them under MIDI control?

So here is RoombaMidi: a Mac OS X application that creates a virtual MIDI instrument for use by any Mac OS X MIDI sequencer, like Ableton Live, Logic, and so on.

If you don’t have a sequencer or just want to play with this quickly, grab the awesome and free app MidiKeys. It’s a little virtual MIDI keyboard.

RoombaMidi has the following features:
– provides GUI interface to controlling Roomba (MIDI not required)
– acts as normal MIDI interface to any MIDI application
– supports up to 16 Roombas, one per MIDI channel.
– responds to MIDI notes 32-127 as tones on Roomba beeper,
– MIDI notes 32-127 play corresponding pitch, velocity is duration in 1/64ths-second increments
– MIDI note 24 turns vacuum motor on-n-off for bass drum fun
– MIDI note 25 blinks the LEDs, velocity is color of Power LED
– MIDI note 28 & 29 spins left or right, velocity is speed of spin
– can act as general multi-Roomba test system
– written in Java, but acts like Mac OS X application

To download:
RoombaMidi-0.9.zip
RoombaMidi-0.93-Panther.zip, for Mac OS X 10.3, aka Panther

And if you really want to look at the source…

Here’s what RoombaMidi looks like:
roombamidi1

The about page:
roomba midi about

Here’s one example use:

revver version

Other recorded compositions are forthcoming….

(as always thanks to MikeK for helping with this)

34 Replies to “RoombaMidi: Roomba as MIDI instrument”

  1. Matthijs,
    Did you run the “macosx-setup-command” that RXTX Java serial library requires? (Instructions are in the About box) After you run that command, you may need to reboot too.

    Have you tried using the RooStick on the PC after using it on the Mac? If not, try that known-good configuration again. Perhaps something happened to the RooStick or the Roomba.

    (btw, RXTX will do away with this craziness in its next release and I’ll update RoombaMidi and all my other Roomba projects to use the new version)

  2. Can someone help me to get this program working on OSX 10.4.6 and a RooStick to connect to the Roomba.
    When RoombaMidi connects to /dev/tty/usbserial0 it seems to work: The display shows:
    RoombaComm, version 0.93
    connect
    Roomba startup
    Roomba connected

    But when i try to read the sensors:
    sensors
    couldn’t read Roomba. Is it connected?

    Roomba is connected and updated with Osmo/Hacker. On a PC it does work (with other program).
    Please advice, what do i forget to do?

    Thanks in advance,

    Matthijs

  3. That Pacman sound was really inspirating – hack it to play an actual Pacman: place pieces of dirt (corn for example) on the floor and play pacman on screen syncing with Roomba.

  4. And now, to play the National Anthem to kick off the 2nd Annual Philadelphia Roomba fight, the Roomba Symphony Orchestra.

    See, this is a useful app.

  5. It should be easy to port it to Windows. The code is 100% Java. It does use OS X specific Java classes to create MIDI virtual destinations (which isn’t normally possible in the javax.sound.midi API). If there exists a Java class to create Windows virtual MIDI destinations, then the port would take about an hour.

  6. Nice job. The interface looks friendly and the project thorough. Now I may be an amateur of amateurs but I’d say it took some work man, oh and btw, awesome job with the Mario ;)

  7. Pingback: Orange Cone
  8. Pingback: MAKE: Blog

Leave a Reply

Your email address will not be published. Required fields are marked *