>I'm looking at this now.  Unless there are unexpected surprises, I should get 
>phase one done before dawn.

Wow.  Talk about unexpected surprises...

This is fundamentally a Really Ugly Problem.

To be fully functional, the program change event needs to be able to include a 
bank change.  Currently what amounts to a "program change" as far as I'm 
concerned involves a MIDI_CONTROLLER_BANK_MSB controller, a 
MIDI_CONTROLLER_BANK_LSB controller, and a ProgramChange.  Being able to 
change the program is perhaps better than nothing, but it's not the whole 
story by a long shot.  What if I want to switch from "Organ 1" to "Organ 5" 
in the middle of a piece for some reason?  (Simulating someone rearranging 
the drawbars on a Hammond organ in the middle of a song, maybe.)

Inserting LSB and MSB controllers separately, as separate events is hugely 
unwieldy in a mid-segment program change inserter, so wiring the dialog to 
allow for the creation of these events really isn't a reasonable way to go.  
A fundamental design principle of our interface is that after the studio is 
configured, users can just point and click.  They don't want to have to 
insert a separate bank and program event every time they want to flop between 
"Organ 1" and "Organ 5."  They should be able to forget such details as "LSB" 
and "MSB" exist.

However, it really isn't possible to combine these two functions into one 
event-creation operation.  Internally, they're different events.  No event 
exists that contains all three pieces of information.  Creating such an event 
probably goes against Rosegarden's grain in a fundamental way, and it would 
likely be a bastard to get something working whereby this kind of 
three-in-one could do the right thing on the MIDI export/playback side.

I'd like to hear other thoughts from Chris et al.  I may not have thought this 
all the way through.  It's been fun poking around in base, but this is 
definitely a much larger kettle of fish than I expected when I started.

I think for now the best we can possibly do for 1.0 is replace the spinbox in 
the event list based editor with a combo full of program changes.  Maybe.  
I'm not yet prepared to suggest that even that is reasonable, since I'm not 
quite sure how it would know what the bank is at that point in time, and thus 
wouldn't know which programs to load.  (Some track-level property or 
something?)

As for how to provide some interface for creating these things from the 
notation view, the easy thing is probably a new program ruler that allows 
numerical selection of program only.  Damn near useless, IMHO.  If it can't 
provide an IPB-style interface, it's too ugly for people to bother with 
anyway, and providing such an interface is going to involve some extremely  
fundamental work.

After spending several hours poking around with this, I'm inclined to write 
all of it off until after 1.0, and quite possibly forever.  I want to see a 
pretty (and functionally complete) program change interface in the event list 
editor (at least) too, but now that I've seen what's involved, I realize it 
just isn't worth it.  This is a lot of infrastructure to build for something 
that just isn't very important to most of our userbase.

Putting it into the notation view...  Well, the only *reasonable* thing to do 
is create a new program ruler.  As I said, I think this is a worthless idea, 
but it's the only way anything is likely to happen at all.  All the stuff I 
envisioned for this evaporated once I started looking into base.  The path of 
least resistance is to continue to use numbers to select programs from all 
editors that handle ProgramChange events and leave it at that.  If we're 
settling for that, a program ruler is the logical, fast way to provide it 
from notation.

Chris?

-- 
Michael McIntyre  ----   Silvan <[EMAIL PROTECTED]>
Linux fanatic, and certified Geek;  registered Linux user #243621
http://www.geocities.com/Paris/Rue/5407/



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Rosegarden-devel mailing list
[EMAIL PROTECTED] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to