ChannelSet

General

ChannelSets are collections of Channels. The data (channels) of any set except the MeasureList's Master Channel Set, m_masterChannelSet, may be viewed and edited through a ChannelPageControl. The Master Channel Set contains all the Channels defined for a MeasureList and is the reference set.  All other Channel Sets are subsets referenced to the Master set. Abstract and Performance sets are working sets created for and by the system. The user is free to define addtional sets. For example the user may  choose to have open the Abstract set and one that contains only a single given staff Channel  displayed with a figured bass Channel.

Below are all the data members of a ChannelSet.  And note that the ChannelSet is a list of Channels rather than has a list of Channels .  

    [Serializable]

    public class ChannelSet : DynAList<Channel>

    {

        private string          m_name      = "Undefined";

        private bool            m_visable   = false;

        private int             m_dspIdx = -1;       // the index into each ChannelElement's GlyphPosParams[] _gppa

        public MeasureList      m_msrList   = null;  // the measure list that owns the master channel set

                                                     // of which this is a sub set"

  

Below are two user defined channel sets, each a subset of a common master channel set.  Members of the master set not included in the subsets are here indicated in gray.  Channel sets are created when a user creates a Channel view set by selecting members from a master channel set.

Abstract and Performance, the two "working" channel sets.

Regarding the two working set's, Abstract and Performance, these are created by reference index from the master set on the basis of the Channel Category, set when the channel was added to the Division, either by the user or by a template. These two categories are variants of what we think of as score or sheet music. The most concrete is the Performance score channel set. This level maps directly between 'score' and real-time MIDI data streams. The first level of abstraction below the "surface" is the Abstract score channel set. It is roughly analogous to a 'reduction' were voices map most directly to the melodic and harmonic dimensions. For example, multiple Channels which were simple  octave doublings in the Performance score would reduce to a single Channel in the Abstract score. Neither does the abstract score much concern itself with timbre Still the Abstract set must provide the data needed to create the Performance set. And in fact, that is its purpose.  But note that the user is expected to make decisions regarding how salience and aesthetics (timbre etc.) Are factors in the development of the abstract score.  An abstract channel can be assigned a name that indicates timbre such as "Violin".  But this is to influence the user; at the level of Abstract Score the system knows nothing of "Violins."