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