[linux-audio-user] Mapping MIDI events to X events

New Message Reply About this list Date view Thread view Subject view Author view Other groups

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


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Dec 29 2004 - 23:36:28 EET