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 (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. > 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: [notein] | / [<do something to change note value>] | | / [noteout] 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: [notein] |\\ [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 http://www.joeyreid.com