программно получить BPM волны или MP3 из .Net - PullRequest
8 голосов
/ 06 мая 2010

У меня есть проект с требованием получить BPM волны или файла MP3 программно с использованием .Net (VB.Net или C #).

Кто-нибудь знает двоичный файл или библиотеку для этого или есть фрагмент кода, чтобы направить меня в правильном направлении?

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Для части, где вы получаете образцы из WAV или MP3 в коде .NET, я использую NAudio (в CodePlex), бесплатный, пригодный для использования в коммерческих приложениях, никакой реальной документации, просто образец кода.

2 голосов
/ 24 февраля 2011

Во-первых, если вы хотите делать звук с .Net, я бы порекомендовал fmod, который великолепен и имеет оболочку .Net (http://www.fmod.org).
Далее, чтобы получить BPM, есть несколько методов, но наиболее эффективным я считаю «спектр биений» (здесь описано: http://www.rotorbrain.com/foote/papers/icme2001/icmehtml.htm).
Этот алгоритм вычисляет матрицу сходства, сравнивая каждый короткий образец музыки со всеми остальными. Как только матрица подобия вычислена, можно получить среднее сходство между каждой парой выборок {S (T); S (T + 1)} для каждого временного интервала T: это спектр биений. Первый высокий пик в спектре ударов - это большая часть продолжительности ударов. Самое приятное то, что вы также можете делать такие вещи, как структура музыки или анализ ритма.
Если вы заинтересованы в этой области, я бы посоветовал прочитать другие статьи Джонатана Фута.

2 голосов
/ 06 мая 2010

Вот коммерческий продукт с библиотекой C #. Также доступна пробная версия: http://adionsoft.net/bpm/

...