Score management


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.