Subject: [linux-audio-user] Mapping MIDI events to X events
From: Peter Brinkmann (brinkman_AT_math.tu-berlin.de)
Date: Wed Dec 29 2004 - 23:30:47 EET
Ivan,
> so im eager to CONTROL jack-rack effects with my hands
> !!! i cant imagine how that would be, FX utopia...
I know what you mean. Matthias Nagorni's ALSA Modular Synthesizer
made me realize how nice it is to be able to control parameters in
a hands-on fashion. It occurred to me that it would be really neat
to be able to control all sorts of software with the buttons, dials,
and sliders on my MIDI keyboard, even if the software isn't actually
designed to accept MIDI input. So, I went ahead and built a little
tool that maps MIDI events to X events. You can find it at
http://www.math.tu-berlin.de/~brinkman/software/pyseq.tgz
if you're interested.
Some features:
- You can record sequences of mouse and keyboard events and
assign them to buttons on the MIDI keyboard.
- Sliders and dials on the keyboard can be mapped to a number
of different mouse dragging events, so that one can control
parameters of soft synths and effects and such from the MIDI
keyboard, even if the software doesn't expect MIDI input.
- Basic support for receiving and sending bulk data from
keyboards.
- A simple game of Pong, controlled by MIDI events. Not
terribly useful or fancy, but it illustrates the general
idea of creative misuse of MIDI events.
Here's a simple application that I actually found useful:
- I mapped three buttons on my keyboard to Play, Stop, and
Record in rosegarden.
- I mapped a number of buttons to mouse clicks on differents
tracks in rosegarden, followed by the Delete key, so that
pushing a button on the keyboard would activate and clear
a track.
With this simple setup, I was able to record a piece consisting
of several tracks straight from the MIDI keyboard, without touching
the mouse or console at all.
Some requirements:
- The package uses Python, Tkinter, and ctypes.
Some instructions:
- Unpack the tar archive with
tar xzf pyseq.tgz
and build the binaries with make.
If you wish to install the package system-wide, you can say
make install
- In order to use the MIDI mapping features, just say
python midimap.py
in a shell window and connect the MIDI In port of midimap.py
to the source of MIDI controller events (using the connection
window of qjackctl, for instance). Then, if you move a slider
or push a button, a dialog will pop up that'll let you choose
how to handle such events.
Some warnings:
- The software is brand-new (I added the most recent features on
Sunday night), and it's hardly documented yet. However, the main
part, midimap.py, comes with a graphical user interface that is
supposed to be self-explanatory. If there's sufficient interest,
I'll sit down and document everything properly.
- So far, I've only tested the package under DeMuDi 1.2, with
an Edirol PCR-30 keyboard. Your mileage may vary.
I'd be eager to hear any comments/criticism/etc. regarding this tool.
Best,
Peter
This archive was generated by hypermail 2b28 : Wed Dec 29 2004 - 23:36:28 EET