Данная статья является частью цикла статей "Ableton Live"
Подход Ableton к MIDI синхронизации основывается на двух основных допущениях:
- Во всех случаях задержка предпочтительнее дрожания. Из-за того, что задержка последовательна и предсказуема, она может быть гораздо легче решена, компьютером и человеком.
- Если во время записи вы используете воспроизведение, вы хотите записать то, что вы слышите - даже если из-за задержки, это происходит несколько позже, чем то, что вы играете.
Live рассматривает проблемы присущие записи и воспроизведению, так что MIDI синхронизация будет реагировать точно и надёжно. Для того, чтобы записывать входящие события в правильном положении на временной шкале Live сета, Live нужно знать когда эти события были получены от MIDI-клавиатуры. Но Live не может получить их непосредственно - они сначала должны быть обработаны драйвером MIDI-интерфейса и операционной системой. Чтобы решить эту проблему, когда интерфейс драйвера получает MIDI событие, то он каждому MIDI событию даёт временную метку, и метки передаются в Live вместе с событием, чтобы Live точно знал, когда событие должно быть добавлено в клип.
Во время воспроизведения, DAW должна постоянно иметь дело с событиями, которые должны быть услышаны как можно скорее, но которые неизбежно имели место в прошлом, в связи с присущей задержкой. Так что должен быть сделан выбор: либо события будут проигрывается в момент их получения (что может привести к дрожанию, если этот момент происходит, когда система нагружена), либо они должны быть задержаны (что добавляет задержку). Выбор Ableton в том, чтобы добавить задержку, как мы считаем, это более удобно для пользователей, позволяя приспособиться к постоянной задержке, чем к случайному дрожанию.
Когда во время записи включена функция мониторинга, Live временным меткам добавляет дополнительную задержку на основе размер буфера звукового оборудования. Эта дополнительная задержка позволяет записывать события в клип в то время когда вы их слышите, а не тогда когда вы в них играете.
Для воспроизведения аппаратных устройств, Live также создаёт временные метки, которыми он пытается общаться с драйвером MIDI интерфейса для планирования исходящих MIDI-событий. Windows MME драйверы не могут обрабатывать временные метки, впрочем и для устройств использующих эти драйвера, внутри Live для исходящих событий.
Даже при высоких нагрузках системы, которые вызывают пропадания звука, Live будут продолжать получать входящие MIDI-события. В случае пропадания звука, во время воспроизведения могут быть временные ошибки и искажение звука, но Live всё равно должен правильно записывать MIDI-события в клипы. Позже, когда система восстанавливается после пропаданий, воспроизведение этих записанных нот должно быть точным.