[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Denemo-devel] staff midi fields

From: Jeremiah Benham
Subject: Re: [Denemo-devel] staff midi fields
Date: Wed, 9 Dec 2009 07:49:09 -0600

Sent from my iPhone

On Dec 9, 2009, at 3:48 AM, Richard Shann <address@hidden> wrote:

I was going to upgrade the Drum Clef selection to set channel 9/10 on
the staff and realized that I have to sort out the built-in staff prefs
for this.
My proposal is that

the staff->midi_instrument selection  will create a staff directive
changing the program to 9/10 and (as a caching mechanism set the
staff->midi_prognum field). The staff->midi_instrument field itself will
go as well as the staff->midi_override field.
A script setting the program select will also write the
staff->midi_prognum so that playback immediately can just look this up
(as it does at present) rather than having to search for a staff
The special code setting the prognum, get_midi_prognum() will go, as
will the get_midi_channel() - this last tries to find "drums" but as
that is not in the list of instruments, it never actually sets channel
9/10 (AFAIK).
The instrument name is being sent as meta data. We could use the prognum
and the array (in midi.c) to get this string and send it. But it might
be better to leave this to the user (i.e. a scripted decision).

Question: how does this tie-in with the JACK stuff???

Jackmidi is not doing anything with program number. During midi playback It is getting the channel number from smf. On scripted playback it gets this info via the get_midi_channel function. I don't have the code in front of me at the moment so this may be intention rather than what is actually written. I am at the point that I want to start wiring device_number and port_number to jackmidi output. I was thinking of adding some integers to the smf event structure to represent device_number (Jack client number) and port number. I would also need to modify export midi to set this data in smf event structure. Do you think this is the correct approach. On immediate and scripted playback this data can be attained from the denemo staff properies structure.



Denemo-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]