![]() |
Автопоиск петли в треках
Есть множество .AY файлов, где длительность трека проставлена от балды и ровняется 5 минутам.
Хочу обрезать лишее, в случае джинглов всё просто. А вот у полноценных зацикленных треков надо отловить место когда начинается повтор. Как это можно сделать? (оперируя полным дампом регистров) :v2_conf2: |
Навскидку:
LEN- длина дампа (полного, а не только изменения) MIN_LEN- минимальная длина трека (лучше в % от LEN) DATA- исходный массив данных DATA[a..b] - подмассив от a до b. for i = (LEN-MIN_LEN)..1 #size of tail for j = MIN_LEN..(LEN-i) #size of head if (equal(DATA[0..j], DATA[i..LEN]) exit;#DATA[0..(i-1)] - original track хотя квадратичная сложность- не комильфо... |
Надо учитывать что начало трека может далее не повторяться, то есть музон может быть зациклен не на начало...
|
Quote:
for i = 1..(LEN-MIN_LEN)#size of tail for j = 1..(LEN-j)#check window if (equal(DATA[(LEN-i-j)..(LEN-i)], DATA[(LEN-i)..LEN]) result=LEN-i После всех проходов в result будет минимальная длина трека. Если подумать, то можно сделать отсечение циклов раньше- иначе очень тормозно будет. ---------- Post added at 09:18 ---------- Previous post was at 08:17 ---------- Кстати о птичках. Каким образом в формате .AY хранится дамп регистров? Или используется AMAD-формат? |
Quote:
Софтинка будет грузить AY, разрезать его на subtunes, рендерить в дамп регистров (через AYFLY.DLL), вычислять длинну трека и потом прописывать ее обратно в AY файлы. |
Quote:
|
Quote:
Вообще PSG для хранения игровых треков не очень подходит. Занимает много места, при записе неизбежны паузы в начале или обрезнное начало, определять на слух окончание трека тоже не понятно как , не поддеживает семплы и бипер и т.д. ---------- Post added at 14:09 ---------- Previous post was at 14:07 ---------- Кстати, ZXTune поддерживает .AY? |
Quote:
Quote:
---------- Post added at 14:25 ---------- Previous post was at 14:24 ---------- Quote:
|
Quote:
---------- Post added at 14:45 ---------- Previous post was at 14:42 ---------- Quote:
Файлов не много, так что производительность обработки мне не важна. |
Quote:
Quote:
|
| All times are GMT +4. The time now is 21:01. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.