Алгоритм Matlab Bpm - PullRequest
       42

Алгоритм Matlab Bpm

1 голос
/ 14 ноября 2011

Кто-нибудь знает, где можно найти алгоритм matlab для получения музыкального темпа (в ударах в минуту или в какой-то другой мере)?Я попробовал один с этого сайта: http://www.clear.rice.edu/elec301/Projects01/beat_sync/beatalgo.html Но не дает мне хороших ответов.

Ответы [ 3 ]

2 голосов
/ 14 ноября 2011

Найти темп музыкального сигнала может быть очень сложной задачей.Для простого сигнала, когда отдельная нота воспроизводится с фиксированным темпом, возможно, что метод, предложенный kol, сработает, но, как упоминал Оли Чарльзуорт, я не думаю, что он будет достаточно надежным, чтобы дать вам хорошую оценкутемп для более сложного музыкального сигнала.

Это во многом связано с музыкальной акустикой (особенно тот факт, что частотный состав нот, играемых на музыкальных инструментах, намного сложнее, чем сборниксинусоидальные волны) и психоакустика (особенно тот факт, что на определение времени начала нот влияет ее гармоническое содержание)

Хорошая (хотя может быть трудно читаемая в зависимости от вашего фона) ссылкаis: ftp: //wgs.esat.kuleuven.ac.be/sista/bli/scheirer_jasa.pdf

Вы также должны прочитать ответы и комментарии к этому вопросу на DSP: https://dsp.stackexchange.com/questions/386/autocorrelation-in-audio-analysis.

0 голосов
/ 14 ноября 2011

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

Надеюсь, у вас все получится!

0 голосов
/ 14 ноября 2011

Если вам нужен один номер для всей музыкальной дорожки, тогда вы можете сделать БПФ и найти самый большой пик в соответствующей полосе частот.Частота пика даст вам темп.

...