As Michael suggested, I have coded a fix for controller "competition".
The more I thought about it, the more I liked his idea of segments owning
instruments, except for me the major thing is the logical instruments, not
segments vs tracks.
It is now a proof-of-concept: Each segment plays as if it was the only
thing on that instrument. Channels are allocated and freed as needed. It
plays my test stuff correctly except if I jump in time.
It lives on branch logical-instruments. I haven't pushed it because it is
hugely incomplete right now, fragile and changing. There are dozens of
things that I need to put back right before I even call it a step forward.
I have a few questions:
* Is anybody sentimentally attached to the MappedSegment / SegmentMapper
class arrangement? For various reasons, it seems odd to me; I'll provide
the details if anybody's interested.
My problem is that to set channels up right, in
fillCompositionWithEventsUntil I need some virtual calls in
SegmentMapper, and right now the only way to do it is hideous: contain
MappedSegment and SegmentMapper in each other, and then to construct
them I have to set a field after construction. I'd like to merge them
into a single class and derive the various segmentmappers from that
base, if there are no objections.
* So far my attention has all been towards MIDI instruments but of course
I don't want to mess up Softsynth. I can see that in
AlsaDriver::processMidiOut, Softsynth and MIDI processing is partly mixed
together, partly separated by tests like "if (!isSoftSynth)". Softsynth
partly seems to ignore channels, but there are also some calls like
snd_seq_ev_set_noteon that take a channel parameter and aren't tested for
(!isSoftSynth). Before I go digging in, does anybody want to run me down
on how we handle Softsynth vs MIDI?
Tom Breton (Tehom)
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual
desktops for less than the cost of PCs and save 60% on VDI infrastructure
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel