Квантованная последовательность с использованием AudioKit - PullRequest
0 голосов
/ 13 июня 2019

Я работал с AudioKit над созданием секвенсора, в котором я хотел бы воспроизвести идеально квантованную последовательность (т. Е. Все подразделения были метрически совершенными). Однако, когда я добавляю примечания к последовательности, я слышу колебания / несовершенства во времени; подразделения не выстраиваются в метрически совершенном порядке. Когда я печатаю текущую позицию секвенсора в долях на консоли во время заметки о событиях, отображаются колебания: ноты соответствуют только двум десятичным разрядам или около того, а затем они показывают изменения в расположении. В обратном вызове я мог бы ожидать, возможно, с небольшой задержкой: 1.001, 2.001, 3.001. Но на выходе отображаются, казалось бы, случайные числа после двух десятичных знаков.

Я создал проект для демонстрации проблемы здесь

Что я здесь не так делаю?

Обратите внимание, что в проекте я использовал AKCallbackInstrument, но проблема сохраняется, даже если я подключаю сэмплер, который будет воспроизводить звук непосредственно в секвенсоре. Кроме того, в проекте я добавил примечания к секвенсору «вручную», но проблема сохраняется, даже если я загружаю файл .mid непосредственно в секвенсор. Сэмплер в демонстрационном проекте использует звуковой шрифт (.sf2), но проблема возникает, когда я загружаю также сэмпл .wav или .mp3.

1 Ответ

2 голосов
/ 28 июня 2019

Я не думаю, что вы делаете что-то не так. AKSequencer основан на собственном MIDI Sequencer от Apple, поэтому мы предоставляем AKSequencer в качестве оболочки для этой функциональности. Тем не менее, в секвенсоре Apple есть известная точность синхронизации, к которой мы не можем обратиться, потому что это закрытый источник. Мы работаем над заменой AKSequencer (которая будет называться AKSequencer, перемещая текущий секвенсор в AKAppleSequencer). Это должно быть сделано в июле. Тем временем вы можете использовать AKTimeline для создания своего собственного секвенсора, как это было сделано в примерах MetronomeSampleSync в AudioKit.

...