Система поиска мелодий

Sep 18, 2008 13:23


Давно думал, как организовать поиск мелодий в сети. И вот наткнулся на пару сайтов, на которых это наконец-то стало возможным:

http://www.melodyland.ru/melodies.asp
http://www.bored.com/songtapper/?dotap=1

В обоих сайтах есть база мидифайлов с нотными записями, и пользователю предлагается либо наиграть отрывок мелодии на миди-клавиатуре, либо просто отстучать ритм мелодии по клавишам.

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

Можно предложить такой алгоритм:
1 Научиться отличать звучание одного инструмента от другого (с помощью частотных фильтров и т.п.).
2 Составить амплитудно-частотную характеристику (АЧХ) каждого инструмента каждой мелодии.
3 Проиндексировать эти АЧХ, составив базу данных.
4 Пользователь при поиске мелодии выбирает тип инструмета, мелодию которого он запомнил.
5 Он наигрывает эту мелодию на каком-либо аналоговом инструменте, подключенном к компьютеру (или просто напевает в микрофон).
6 Если нужно, звучание мелодии с помощью музыкального процессора переводится в звучание инструмента, который играет эту мелодию в оригинале (например, пользователь напел голосом гитарное соло, и процессор преобразовал голосовое звучание в гитарное). Пользователь слушает, что получилось, и крутит настройки процессора, если результат не удовлетворительный (высота тона, скорость звучания и т.п.)
7 Система составляет АЧХ наигранной пользователем мелодии и ищет подобную АЧХ в базе данных.
Previous post Next post
Up