Re: [linux-audio-user] remapping midi notes

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

Subject: Re: [linux-audio-user] remapping midi notes
From: Joey Reid (
Date: Wed Jul 14 2004 - 20:46:30 EEST

On Jul 14, 2004, at 11:45 AM, Frank Barknecht wrote:
>> 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 ( It is very easy to create all
> kinds of note and control filters in Pd, if you first learn a tiny bit
> of Pd.

thanks, Frank. I am looking at pd now - trying to figure out where to
start form the docs is not obvious

> 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],...

I am looking at these now. I am not on my linux pc, and it seems there
is an annoying bug in the OS X version where the mouse pointer is not
getting interpreted at the correct location. very annoying (could be a
tk bug, but I don't have any other tk apps to check against.

> 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 ]

so in my case, it would look like the following:

   | /
[<do something to change note value>]
   | | /

the <do something to change note value> would have to be something that
will read only the note value, change it based on a
set of rules, and then pass it on without modifying the velocity/type.
i probably should be filtering for note-on.

the help files show notein like this:

[0] [0] [0]

i assume this means that it produces three numbers. do these represent
type, key and velocity? which is which? and how do i modify the value
of one of those numbers? i assume this is where pack/unpack come in,
but i don't quite get that. sorry if i'm being dense here.

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

that doesn't matter (i don't think) if it passes everything back out on
the same channel it was received on.

> Ciao
> --
> Frank Barknecht

thanks again

Joey Reid aka Dr.Whiz-Bang
Geek, musician, and friend of God

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

This archive was generated by hypermail 2b28 : Wed Jul 14 2004 - 21:24:47 EEST