I think that for something like this, an OSC implementation would probably be more usable.
(noob: OSC is a modern protocol to replace MIDI. You can still tunnel MIDI commands within the OSC protocol, so it doesn't exclude you if you still want to use MIDI. http://en.wikipedia.org/wiki/OpenSound_Control )
As a bonus, CrystalSpace supposedly already supports OSC within the Crystal Entity Layer.