>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
