Как сообщение ТЕМПА Midi относится к другим дорожкам?

Лучше не использовать NSIndexPath (пустая таблица) и не предполагать, что верхней точкой является CGPointZero (вставки содержимого), вот что я использую -

[tableView setContentOffset:CGPointMake(0.0f, -tableView.contentInset.top) animated:YES];

Надеюсь, это поможет.

9
задан Mark Laff 3 July 2009 в 17:42
поделиться

1 ответ

Короче да. Первый трек содержит информацию о времени, которая будет применяться ко всей аранжировке, поэтому вы применяете эти сообщения для каждого трека с одинаковым абсолютным временем. Поскольку все события используют смещение в тиках, вам необходимо сначала извлечь сообщения об изменении темпа, преобразовать их в абсолютное время, а затем, когда вы читаете другие треки, вы будете применять эти сообщения на основе этой временной шкалы.

Центр технической «промывки мозгов» фанатиков MIDI :

В файле формата 0 изменения темпа разбросаны по всему MTrk. В формате 1 самый первый MTrk должен состоять только из событий темпа (и размера), чтобы его могло прочитать какое-нибудь устройство, способное генерировать «карту темпа». Лучше не размещать MIDI-события в этом MTrk. В формате 2 каждый MTrk должен начинаться по крайней мере с одного события начального темпа (и размера).

Тем не менее, некоторые секвенсоры нарушают это правило и помещают фактические MIDI-события в первую дорожку вместе с информацией о времени, поскольку стандарт не является Не так уж конкретно в этом плане. Ваша программа должна иметь дело с обоими случаями, поскольку она может встретить в «дикой природе» файлы MIDI, отформатированные таким образом.

10
ответ дан 4 December 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: