On Sun, Jul 31, 2005 at 11:15:46AM +1000, Ryan Heise wrote:
What I'm dreaming of is configuring my sequencer
to output to just one
alsa sequencer port. On that port is one "logical" bank of all the
"logical" instruments I use (just instrument names, only). The piece of
software listening on this port is to associate each instrument with a
synthesiser, and most importantly, can be reconfigured by selecting a
different profile if I unplug my laptop from an external synth and am
forced to use a software synth temporarily. I am a roaming midi user.
Let's see
whether I got this right: You want a MIDI router with
one input port and several output ports, and you want the router
to look at the names of available synthesizers and automatically
connect its output ports accordingly. Similarly, the router should
recognize your sequencer and hook up its input port accordingly.
This leaves the question of how to assign events to output ports.
I suppose one could simply route events based on their channel.
Is this the behavior you have in mind?
Possible enhancement: Instead of profiles, one may want to have
hierarchies of instruments, so that for each output port the
router automatically picks the most desirable instrument that's
currently available.
Are there any solutions already to this problem? What
do you guys do to
manage your instruments?
My standard approach to problems of this kind is to just
hack
together a few dozen lines of throwaway Python code as I need
them. The job you describe shouldn't take much more than that.
(And it just happens that I recently added some functionality
to my Python bindings for accessing sequencer clients and their
ports by name:)
Peter