Как обнаружить BPM песни в [закрытом] php

Используя код @rob, написанный здесь здесь , в вашем случае итоговый код может выглядеть следующим образом:

 accessForms.Forms = command.OrderProperty.ToLower().Equals("asc")) ?
     accessForms.Forms.OrderBy(command.SortProperty.ToLower()).ToList() :
     accessForms.Forms.OrderByDescending(command.SortProperty.ToLower()).ToList();

Обратите внимание, что вам нужно реализовать собственный OrderByDescending, которого нет оригинальный код.

77
задан LionC 8 October 2015 в 08:21
поделиться

8 ответов

Это сложно для объяснения в единственном сообщении StackOverflow. В целом самые простые алгоритмы обнаружения удара работают путем определения местоположения пиков в звуковой энергии, которую легко обнаружить. Более сложное использование методов гребенчатые фильтры и другие статистические методы / методы формы сигнала. Для подробного объяснения включая примеры кода проверьте эта статья GameDev.

42
ответ дан Peter K. 24 November 2019 в 10:58
поделиться

Извлечение удара включает идентификацию познавательных метрических структур в музыке. Очень часто они не соответствуют физической звуковой энергии - например, в большей части музыки существует уровень синкопы, что означает, что "касающийся ноги" удар, который мы чувствуем, не соответствует присутствию физического звука. Это означает, что это - очень отличающееся поле к обнаружение начала , который является обнаружением физических звуков и выполняется по-другому.

Вы могли попробовать библиотека Aubio, которая является простой библиотекой C, предлагающей и начало и инструменты извлечения удара.

существует также онлайн Echonest API, хотя это включает загрузку MP3 к веб-сайту и получению XML, так не могло бы так подойти..

РЕДАКТИРОВАНИЕ: я столкнулся с этим вчера вечером - очень перспективно выглядящая библиотека C/C++, хотя я не использовал ее сам. Плагины Вампа

22
ответ дан Rob Watson 24 November 2019 в 10:58
поделиться

Если можно удаться взаимодействовать через интерфейс с кодом Python в проекте, , API Ремикса Вложенного множества Эха является довольно гладким API для Python:

существует метод analysis.tempo, который даст Вам BPM. Это может сделать намного больше, чем простой BPM, как Вы видите из документов API или это учебное руководство

9
ответ дан Lily 24 November 2019 в 10:58
поделиться

Выполните преобразование Фурье и найдите пики в энергетическом спектре. Вы ищете пики ниже сокращения на 20 Гц для человеческого слуха. Я обычно предполагал бы в 0.1-5ish диапазоне Гц, чтобы быть щедрым.

ТАК вопрос, который мог бы помочь: Библиотека обнаружения аудио Bpm

кроме того, вот один из нескольких "пиков, находящих" вопросы на ТАК: Пиковое обнаружение измеренного сигнала

<час>

Редактирование: Не то, чтобы я делаю обработку аудиоданных. Это - просто предположение на основе того, что Вы ищете свойство частотной области файла...

<час>

другое редактирование: стоит отметить, что форматы сжатия с потерями как mp3, храните Fourier доменные данные, а не данные временного интервала во-первых. С небольшим умом можно сохранить себя некоторое тяжелое вычисление..., но видеть вдумчивый комментарий cobbal.

7
ответ дан Community 24 November 2019 в 10:58
поделиться

Точное обнаружение BPM является очень трудным. См. этот stackoverflow вопрос , и мой ответ на него.

2
ответ дан Community 24 November 2019 в 10:58
поделиться

Повторно отправить мой ответ: простой способ сделать это состоит в том, чтобы сделать, чтобы пользователь коснулся кнопки в ритме с ударом и считал количество касаний разделенным к этому времени.

2
ответ дан 24 November 2019 в 10:58
поделиться

Вот , бесплатная программа проанализирует и запишет BPM в тег ID3V2. Никакая идея, как хороший

0
ответ дан Scott Evernden 24 November 2019 в 10:58
поделиться

Я предположил бы, что это будет самым легким в танцевальной музыке 4-4, поскольку должен быть единственный глухой стук низкой частоты о дважды секунде.

-2
ответ дан Daniel Earwicker 24 November 2019 в 10:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: