I committed the triggered segment change.  Briefly, controllers and
pitchbend in triggered segments are now relative to their initial value a
trigger time.  It handles all the controllers.  It assumes there's only
one pitchbend-type controller.


 * New files ControllerContext.h and ControllerContext.cpp define a
   class that knows one controller's value at one point in time for
   one instrument, and can make absolute controller values from
   relative ones.
 * Modified SegmentMapper::mergeTriggerSegment - when linearizing a
   triggered segment, keep a map of controllercontexts (lazily) and
   adjust any controllers we see.
 * New Composition::getInstrumentSegments, gets all segments that play
   a given instrument.  I wrote that before we had that talk about
   segment-vs-instruments.
 * New Device::getControllable, encapsulating the dynamic cast idiom
   that is used several places in Rosegarden.  I didn't convert the
   existing uses to it.
 * New RosegardenDocument::getInstrument similarly encapsulates common
   existing code; didn't convert existing uses.

I have not made it refresh when other segments that are playing the same
instrument are changed.  When we talked about segment-vs-instruments,
there was a proposal to make segments and logical instruments one to one,
and if that happens, doing so would be a non-issue.  So I felt doing so
would be premature, at least.

        Tom Breton (Tehom)



------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to