M-Audio X-Session Pro MIDI controller in Linux

June 19, 2008

My X-Session Pro (XSP) arrived in the mail today.

It was detected and worked automatically in Ubuntu 8.04.  (I imagine any “class compliant” USB MIDI device would work.)

It’s light but feels solid.  It’s USB-powered so there’s just one cable.  $100 online.  I recommend it.

About the Controls

The 4 vertical sliders have a bit of resistance to them, while the horizontal (crossfader) slider is much more flickable.

The inner 6 knobs have grooved positions at 50%, the outer 6 knobs and all five sliders move freely end-to-end.

The 10 buttons have very satisfying clicks, there’s no mistaking whether you pushed one or not.

Despite the overzealous markings, all controls are actually generic and can be assigned to any action you like.

Two small complaints:

  • the sliders and knobs have some dead-space at their extremes of movement– that is, they report 0% or 100% slightly before they physically hit their limit, and
  • the XSP is invisible in the dark, except for the power LED in the center

Coding for MIDI devices

When researching the available technologies, I didn’t find it obvious which API to use; Linux doesn’t seem to have any blessed CoreAudio equivalent yet.

I ended up with the PortMIDI library, which is working great: it lets you enumerate MIDI input (or output) devices, open the ones you are interested in (I just open all inputs, which may or may not be ideal behavior), and poll them for waiting MIDI messages.

(If anyone is stuck coding for MIDI without MIDI hardware available, as I was until today, I recommend the QMidiControl app to see what sliders/knobs send, and Rosegarden for notes on/off.)

Play Time

This is for the VJ app I’m developing: Luz.  A demo video is coming soon. 🙂


Introducing Amigo

June 12, 2008

(This is also my first post on Planet GNOME, hi everyone!)

I just released a little app that I’ve been using personally for the past few years (heh, release early) while living in Argentina and learning Spanish.

Amigo instantly defines and explains any Spanish-language word* that you select with your mouse, anywhere on your desktop:

* the included database currently only has verbs (about 1700 of them). we have the data for other types of words, but it requires some cleanup before being released

You can also look up words from the main window (with web browser-like history), and get conjugation charts:

Right now Amigo only works Spanish->English, but I’m interested in making it work the other way around as well as adding other languages.

Want to help add a new language?

To add a new language, we’ll need at least a list of verbs with conjugations (just the irregulars, really) and English definitions.  Please leave a comment if you can get this data.

The project page has downloads.  Enjoy!