Форум: "Потрепаться";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Внизbeat detection algorithms Найти похожие ветки
← →
Ajax © (2005-08-02 13:28) [0]Никто не видел алгоритмов детектирования темпа музыки, реализованных на Delphi? Есть исходники на С, но с их пониманием периодически возникают трудности...
← →
WondeRu © (2005-08-02 15:31) [1]учи С
← →
Ajax © (2005-08-02 15:56) [2]>[1] WondeRu © (02.08.05 15:31)
Всенепременно!..
← →
[wl] (2005-08-02 19:08) [3]мда бывают иногда такие траблы с переносом исходника из одного языка в другой... часто проще выучить язык исходника
← →
programania © (2005-08-02 20:48) [4]Я только что видел но уже не понял хотя сам и написал, вот может кто поймет кусок
PROCEDURE analiz;
var ra,i,t,pp,maxa,c:integer;
begin
pp:=0; maxa:=0; c:=0; rost:=false;
fillChar(ru,sizeof(ru),0);
for i:=1 to qa do begin
ra:=ma[i];
if ra>maxa then maxa:=ra; if maxa>=10 then dec(maxa,10);
if c>=140 then dec(c,140);
if ra>c then begin
c:=ra;
if rost then begin
t:=i-pp;
if t<sizeof(ru) div 4 then inc(ru[t]);
pp:=i;
rost:=false
end;
end;
if c-ra>maxa div 16 then rost:=true;
end;
end;
Похоже что в ru накапливаются интервалы через которые амплитуда начинает расти
и там получается АЧХ которая сравнивается с образцами разных темпов 60-170bps
и где более совпадает тот темп и есть
эту АЧХ можно посмотреть в
http://programania.com/ENJOL.ZIP 850kb
процесс запускается кнопкой alt+A и потом вся музыка
сортируется по темпу или по похожести текущей
Кстати такой же кусок меняет картинки в такт музыке
← →
Ajax © (2005-08-03 09:32) [5]>[4] programania © (02.08.05 20:48)
Приведенный фрагмент вполне может быть частью нужного алгоритма, но его явно не достаточно. А откуда идея алгоритма и можно-ли взглянуть на полный код?
← →
programania © (2005-08-03 20:38) [6]>А откуда идея алгоритма и можно-ли взглянуть на полный код?
Идея сначала возникла для смены картинок в такт музыки
потом оказалось что ничего лучше не придумать и для определения темпа
С полным кодом будет еще непонятнее
так как он включает
перебор музыки по списку
получение звука через BASS.dll
усреднение амплитуды на 1/32сек и запись в массив ma
накопление интервалов как показано в массиве ru
показ АЧХ
сохранение АЧХ в списке
сравнение с шаблонами
сортировка
и много еще чего постороннего
Для примера можно посмотреть текст модуля где происходит
все что связано с определением темпа
http://programania.com/audio.zip 4kb
и сделать все по своему
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c