[linux-audio-user] remapping midi notes

Frank Barknecht fbar at footils.org
Wed Jul 14 10:45:51 EDT 2004

Joey Reid wrote:

> On Jul 13, 2004, at 8:02 PM, Joachim Schiele wrote:
>> Hash: SHA1
>> On Tuesday 13 July 2004 20:49, Joey Reid wrote:
>> You could write a midi filter for that.
>> Read this:
>> http://www.suse.de/~mana/alsa090_howto.html
> well, i was hoping i wouldn't have to learn C to do this, but I suppose 
> I can't expect ot not get my hands dirty with this, can I ;-)

Some people here might already wait for me suggesting to take a look at 
Pd again (http://www.pure-data.info). It is very easy to create all 
kinds of note and control filters in Pd, if you first learn a tiny bit 
of Pd.

The .pd-files /usr/lib/pd/doc/2.control.examples/17.PART3.midi.pd and
/usr/lib/pd/doc/5.reference/help-midi.pd show the available midi objects 
inside Pd which are for example [notein] and [noteout], [ctlin],...

To create mappings, the [route], [select], [moses], [pack], [unpack] and 
of course all math objects like [>] or [<] are useful, as Pd treats midi 
data as simple lists of numbers. So a simple midi filter, which just 
accepts all notes on channel 7, then sends the channel-7 notes to 
channel 1 would look like this in ASCII-patching:

   [notein 7]
   |      /
   [pack 0 0 1]
   |  |        \
   [unpack 0 0 1]
   |  |       /
   [ noteout ]

(Unfortunatly noteout doesn't accept a channel argument like notein does.)

Frank Barknecht

More information about the Linux-audio-user mailing list