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."