Использование AvFoundation / Coremedia / Другие рамки для обнаружения ударов / настройки
-
28-10-2019 - |
Вопрос
(Предисловие: Это мой первый вопрос, связанный с аудио, при переполнении стека, поэтому я постараюсь сказать это как можно лучше. Редакты приветствуются.)
Я создаю приложение, которое позволит пользователям зацикливаться на музыке. На данный момент наши прототипы позволяют этим «маркерам цикла» (реализованы как Uisliders) в каждую секунду, указывая начало и конец цикла. Очевидно, что при зацикке музыки, секунды - очень грубая манера, поэтому я хотел бы вместо этого использовать удары.
Я не хочу делать ничего, кроме как Марк Бит, чтобы Uisliders, чтобы привязать:
- Кормите наш
loadMusic
Метод аудиофайл. - Запустите ее через библиотеку, чтобы обнаружить удары или интервалы между ними (возможно).
- Подавать это значение в ползунка
setNumberOfTickMarks:
метод - Выгода!
К сожалению, большинство результатов, с которыми я сталкивался через Google, и поэтому дали гораздо более продвинутые библиотеки обнаружения ударов, такие как те, которые использовали бы ремиксеры. Излишний в моем случае.
Это то, с чем может справиться Coremedia, Avfoundation или Audiotoolbox? Если нет, есть ли другие библиотеки, которые могут справиться с этим? Мое исследование документации Apple дало только соответствующие результаты ... для файлов MIDI. Но у Apple есть такие функции, как это, такие как Функциональность Snap-To-Beats Imovie.
Любое руководство, код или тезисы были бы очень полезны на данный момент.
РЕДАКТИРОВАТЬ: После того, как я немного больше копался, кажется правильной терминологией того, что я ищу, обнаружение начала.
Решение
Алгоритмы обнаружения начала бывают многих ароматов от рассмотрения сигнала необработанной музыки до использования методов частотных доменов.
Если вы хотите быстрый и простой способ определить, где находятся удары:
Нарезать музыкальный сигнал на небольшие сегменты (
20-50ms
кусочки)Вычислить квадратную сумму среднего сигнала:
Sum(Xn ^2) / N
(кудаN
это количество выборки на20-50ms
)
Если вы хотите, чтобы больше сложных техник изучают:
http://bingweb.binghamton.edu/~ahess2/onset_detection_nov302011.pdf
или для жесткой обработки этого:
http://www.elec.qmul.ac.uk/people/juan/documents/bello-tsap-2005.pdf