Очень часто хочется слушать музыку не по исполнителю, альбому или жанру, а по настроению. Прекрасно понимаю, что программе будет… крайне трудно определить настроение песни, но она вполне может определить темп и характеристику напора (не знаю, как иными словами определить это).
Ну, взяв, например System of a down и какой-нибудь The Nlack Keys/The beatles, явно можно как-то отследить.
Так вот, знаете ли вы подобные программы, или, может, их вообще не получится создать, из-за множества причин. А может даже кто-то пытался.
Треки как раз таки можно отсортировать по BPM и проиграть с автоматической подгонкой бит-в-бит, но для сведения этого может быть недостаточно. А теперь обратите внимание на ключи тональностей (поля KEY и KEYCODE)… О них вы можете почитать тут.
Существует множество более профессиональных программ для сведения музыки,
но для решения вашего вопроса имхо наилучшим вариантом будет MixMeister.
Что касается недостатков: программа поддерживает только MP3 и WAV. Не поддерживает FLAC, что может быть очень неприятно, если у вас большая коллекция в данном формате.
Ну у этой программы несколько другое применение, но суть та же. Можно легко определить тональность, темп и ритмический рисунок (относительно легко конечно). А дальше уже думать.
Темп в музыке как понятие — это количество четвертных нот, исполняемых в одну минуту. Отсюда определяются длительности звучания остальных нот. Т.е. если делать это как то полуавтоматически, то я бы указывал точный участок с одной нотой, длительность которой заранее известна. Ну дальше дело техники — есть длительность ноты, есть длительность его звучания, конвертируем в четвертные… Но это сугубо музыкально-академический подход.
Буквально пару месяцев назад сидели с другом и думали как такое сделать. По сути это вполне возможно (можно узнать темп, можно примерно узнать ритмический рисунок, можно узнать превалирующие частоты… словом можно получить достаточно параметров по которым можно проводить классификацию). Правда у нас дальше мыслей пока дело не дошло, ибо работы много.
Когда проводили небольшой ресерч находили работы каких-то выпускников по поводу классификации музыки по жанрам, но там только теория. Есть так же сервисы предоставляющие «похожую музыку» но они основываются на данных пользователей, хотя и дают неплохой результат.
мы начали с анализа спектра частот, что бы выделить характеристики мелодии. Из этого же можно в последующем выявить и ритмический рисунок. Правда пока дело дальше аппроксимации сигнала не продвинулось, времени нету, делается все ж это забавы ради пока.
Честно еще не думал об этом, мне бы хотелось сначала написать модуль для получения всех необходимых данных, классификацией можно заняться потом. Да и банальное пересечение не прокатит.