I have looked to the code, to answer a bit better your question. The class where everything belongs is Rosegarden::Composition, which resides in the files: base/Composition.{C,h} It represents a whole song, with its tracks, segments, events...
This class has several container members. There is a "trackcontainer" member named m_tracks, and a "segmentcontainer" member named m_segments. These are the places where notes and other MIDI events usually live. But there are some other interesting members: * m_timeSigSegment: Contains time signature events. * m_tempoSegment: Contains tempo events. Both members are of type ReferenceSegment, which is a special kind of segment, but can only contain one sort of event, and can only have one event at each absolute time. These segments can't be viewed, except if you use the Time Signature and Tempo editor. There is another simple member: m_markers, of type markerscontainer, which contains text marker events. And where are the bars? The bars aren't a thing, but a measurement, or a distance from the beginning. The bar positions are calculated when needed, using the method calculateBarPositions(), which uses the Time Signature segment iterating for each time signature change, calculating the bar number, and placing the result in a property named BarNumberProperty, of the Time Signature events. There are several methods related to Bar numbers. Some of them are: * getNbBars() returns the length of the composition, in bars. * getBarNumber(timeT t) return the bar number for any given time argument * getBarRange(int n) returns the starting and ending times of the given bar Regards, Pedro _______________________________________________ Rosegarden-devel mailing list Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe https://lists.sourceforge.net/lists/listinfo/rosegarden-devel