From: D. M. M. <ros...@gm...> - 2009-03-25 23:02:08
|
On Wednesday 25 March 2009, Chris Cannam wrote: > How about this for a set of goals? > > 1. On first startup with an empty composition, we should have one > output device, connected to some plausible looking MIDI client if > there is one. ("Plausible-looking" means that ALSA reports it as a > software synth or a hardware port.) You want any more devices in your > composition, create (and connect) them yourself. (See user list for an expansive discussion about whether anything is ever "plausible.") > 2. If a new "plausible-looking" MIDI device appears while we're > running, and _if_ an existing device has no current connection at all, > connect that to it. Don't create any new devices. "General MIDI Device" has no connection. User starts QSynth. Don't create a new device, but hook QSynth to the existing one. Check. > 3. Make the auto-connect parts of 1 and 2 optional in configuration? No. If it requires configuration, it's too complicated. Plus we have WAY too many configuration options as it is. > 4. When loading an existing composition, do our best to connect the > devices in that document to connections that look the same as the ones > they were connected to before it was saved. In the ideal case where > all the MIDI devices are exactly the same as they were then, we should > be able to do this perfectly... Yes. > 5. Make it simpler (somehow!) for the user to see and change > connections in the main user interface, without having to use the MIDI > device dialog. Adding and removing devices however will involve the > dialog. We could probably do this adequately with nothing more than a second combo box and a list of available ALSA output ports. The IPB currently shows the ALSA port the instrument is connected to. Just make it editable here. Most users would never need to use the device manager ever again if... > In no circumstance do we create or delete a device automatically, > except the very first one in an empty composition. ...if we DON'T enforce that rule. This part I don't agree with. If a user changes something while we're running, odds are they meant to do that, and we should act on it. If Hydrogen starts, and no device lacks a connection, then create a device for Hydrogen and connect to it. Optionally we could ask, and that's what Emanuel and I were thinking the other day, but now that I've seen how the "detected that you started a new synth" code runs in an environment that isn't trashed up with a bunch of extra garbage, I think it is probably safe to assume the user meant to do that in this kind of situation, and it's OK to be helpful. Especially bearing in mind rule 2. DON'T create the new device for Hydrogen if there's already something empty to fill. But if there isn't, no, I don't think I should have to go invoke the MIDI device manager and manually create a device just because I started Hydrogen. Let me add here at the bottom that one thing all of this discussion presupposes so far is that the user has something "General MIDI" at all. This is mostly true, but not always. Users wouldn't necessarily (and we really hope not) have to use the bank editor, but they should be expected to make use of our extensive library. If we're wanting to keep people out of the device manager as much as possible, perhaps we should devise a way to load banks from an .rgd file straight out of the main window too. -- D. Michael McIntyre |