|
The internal score is a doubled linked list of events allocated
using the MidiShare memory manager. The events used in the score
are not basic MidiShare events but use a more complex data structure
(TEvent) which allows to keep additional datas. All tracks are
mixed in a unique score but are distinguished by the reference
number of their events. The Tempo Map has always the reference
number 0. Events in the score are instances of sub-classes of
the TEvent class.
Dates are expressed as relatives values in the MIDIFile. In the internal score, dates are converted in absolute values starting from the beginning of the score. The tickplayer plays the score using tasks where dates are expressed in ticks values. Tasks are scheduled using the SheduleTickTask method of the scheduler . Tasks are executed using the Execute method. The tickplayer use a object which implement the TEventSenderInterface to actually play events.