One bar of one channel.
The ChannelBar is the virtual bass class for all the channel bar classes. The ChannelBar is a doubly linked list of ChannelElements and it has a duration determined by the Measure to which it belongs. It provides the organization of ChannelElements that allows simple maping between the domain and range elements of the abstractions associated with it through its ChannelElement list members.
The ChannelElement possesses a UInt64 measure offset data member. By convention, elements in the channel bar list must be in measure offset order. This is the only restriction that the ChannelBar places on its elements. Its progeny are free to add restrictions. Also by convention the inheritors of ChannelBar have name that begin with ChBar...
ChBarDiatonic : ChBarMetered : ChannelBar
Below is an example of a ChBarDiatonic. The measure containing the channel bar is in 4/4 and each quarter of its total length is 104,343,212,413,440 Chronons long and the first vertical black bar on the left is at offset 0. HeaderData is generally context data. In the ChBarDiatonic class this is meter, clef and key data. Default formatting overrides are also part of the context. Footer data in this class consists of courtesy glyphs--warnings of changes in the next measures header.

The ChBarDiatonic allows multiple elements with the same measure offset to be inserted into its list. In this example the list contains three elements that have an offset of one quarter or 104,343,212,413,440 Chronons: a, a Span-begin element,, b''a Span-end element and a quarter note Event. At offset 1/2 there are two elements, a 1/2 lengtha Span-end element and a quarter note Event. At offset 1/2 there are two elements, a 1/2 length EmptyRegion event and a singular element marked xwhich might be anyone of a number of context elements. Because it inherits fromwhich might be anyone of a number of context elements. Because it inherits from ChBarMetered, ChBarDiatonic requires that the offset of every element in its list be a valid length. Event elements have a duration as well as an offset and by its conventions the ChBarDiatonic must be exactly filled with non-overlapping events.

Carrier channel bar lists accept only one class of element, the TimeDomainPosition, instances of which are represented above by the lavender triangles. These elements may have any arbitrary offset duration. TimeDomainPosition objects are lists of Span