Получить темп музыки или BPM? - PullRequest
4 голосов
/ 23 ноября 2011

В настоящее время я создаю игру на Windows Phone 7, используя xna. Я пытаюсь получать удары в минуту от песни, которая играла в фоновой песне, я также не совсем уверен, что то, что я хочу, это BPM, то, что я хочу, это что-токак темп или темп в музыке, чем быстрее темп, тем быстрее движутся спрайты.Сейчас я думаю, что BPM - это то, насколько частота музыки достигает диапазона определенной константы, например, 20 МГц - 30 МГц. Не стесняйтесь меня поправлять, если я не прав, я не очень знаком с аудиоЯ попытался использовать VisualizationData из MediaLibrary XNA, но после некоторого поиска в Google сказал, что VisualizationData не работает с WP7, я также попробовал это, и вывод является плавающий массив длиной 256 содержит 0 значение, или, если я мог бы сделать некоторые FFTс этим я попробую Спасибо ...

1 Ответ

3 голосов
/ 23 ноября 2011

Как вы и говорили, что касается ударов, вы не можете получить их напрямую, но вам придется интерпретировать эти данные . Если вы лично можете предварительно обработать эту музыку и отправить ее с вашим названием, это будет лучшим выбором

В XNA у вас действительно есть MediaPlayer.GetVisualizationData для работы. Там нет ничего встроенного, что позволяет вам предопределить такого рода вещи. Он используется следующим образом и дает вам информацию о различных воспроизводимых частотах.

MediaPlayer.IsVisualizationEnabled = true;
VisualizationData visData = new VisualizationData();
MediaPlayer.GetVisualizationData(visData);

Итак, как вы берете эту частоту и делаете ее полезной для вашего приложения? Существует большое описание того, как вы можете это сделать, это на форумах App Hub в этой теме под названием «Анализ аудио» в ответе jwatte . По сути, вы будете смотреть на низкие частоты и пытаться выяснить, когда появятся ритмы. Ничего идеального, но, надеюсь, вы получите что-то, что вы одобрите.

Удачи!

...