к
Клас-сутність, який реалізує зберігання лічених даних, - це клас MIDI, так само він виконує зчитування необхідних даних із зазначеного файлу мелодії. У цьому класі є дві структури:
В· EventMidi - структура події міді. Містить дані дельта-часу, статус-байта, байти даних
В· CompareData - структура, в якій зберігається нота - відповідний номер такту
Клас так само містить поля і властивості, що зберігають менш глобальні дані про мелодії:
В· CompData - список нот з відповідним номером такту (List )
В· _offsetMTrk - список номерів позицій, з яких починаються блоки MTrks (List )
В· _mTrks - список блоків MTrks, вміст цих блоків у вигляді масиву байтів (List )
В· Ppqn - кількість тиків, що припадають на чверть - PPQN (Pulse Per Quarter Note) (int)
В· MidiFormat - формат запису файлу міді (можливі значення 0, 1, 2) (int)
В· TrackCount - кількість блоків MTrk у файлі (int)
В· Nn - чисельник розміру (значення за замовчуванням 4)
В· Dd - знаменник розміру (значення за замовчуванням 4)
В· Tempo - темп мелодії (значення за замовчуванням 120ВРМ (beats per minute)) (int)
В· TickinShare - число тиків, що припадають на одну частку (int)
В· TickinTakt - число тиків, що припадають на один такт (int)
Для зчитування даних з міді-файлу в даному класі реалізовані наступні методи:
В· ReadMThd () - здійснює читання блоку MThd в міді файлі, обчислює значення Ppqn, TrackCount, MidiFormat, нічого не повертає.
В· FindOffsetMTrk () - обчислює позицію в міді-файлі, з якої починається черговий блок MTrk, дана інформація зберігається в _offsetMTrk, нічого не повертає p>
В· CorrectReadMTrks () - аналізує кожен блок MTrk і визначає зіграні ноти і такт для неї, нічого не повертає
В· ReadMTrks (byte [] data) - визначає зіграні ноти і такт для неї, повертає структуру CompareData, в якій зберігається список нот та номери тактів для відповідної ноти span>
В· Read () - виробляє комплексний аналіз файлу, п...