Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Автопоиск петли в треках

  1. #1
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,948
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Question Автопоиск петли в треках

    Есть множество .AY файлов, где длительность трека проставлена от балды и ровняется 5 минутам.

    Хочу обрезать лишее, в случае джинглов всё просто.

    А вот у полноценных зацикленных треков надо отловить место когда начинается повтор.

    Как это можно сделать? (оперируя полным дампом регистров)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Навскидку:

    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

    хотя квадратичная сложность- не комильфо...

  4. #3
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,948
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Надо учитывать что начало трека может далее не повторяться, то есть музон может быть зациклен не на начало...

  5. #4
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    Надо учитывать что начало трека может далее не повторяться, то есть музон может быть зациклен не на начало...
    Тогда как-то так:

    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-формат?

  6. #5
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,948
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Кстати о птичках. Каким образом в формате .AY хранится дамп регистров? Или используется AMAD-формат?
    А он и не хранится.

    Софтинка будет грузить AY, разрезать его на subtunes, рендерить в дамп регистров (через AYFLY.DLL), вычислять длинну трека и потом прописывать ее обратно в AY файлы.
    Последний раз редактировалось newart; 03.12.2009 в 13:12.

  7. #6
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    А он и не хранится.

    Софтинка будет грузить AY, разрезать его на subtunes, рендерить в дамп регистров (через AYFLY.DLL), вычислять длинну трека и потом прописывать ее обратно в AY файлы.
    А не проще было все в PSG хранить?

  8. #7
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,948
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    А не проще было все в PSG хранить?
    Это вопрос к создателям .AY и тем кто дергал и сохранял музыку в этом формате.

    Вообще PSG для хранения игровых треков не очень подходит.
    Занимает много места, при записе неизбежны паузы в начале или обрезнное начало, определять на слух окончание трека тоже не понятно как , не поддеживает семплы и бипер и т.д.

    ---------- Post added at 14:09 ---------- Previous post was at 14:07 ----------

    Кстати, ZXTune поддерживает .AY?

  9. #8
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    Софтинка будет грузить AY, разрезать его на subtunes, рендерить в дамп регистров (через AYFLY.DLL), вычислять длинну трека и потом прописывать ее обратно в AY файлы.
    В каком формате дамп?

    Цитата Сообщение от newart Посмотреть сообщение
    Занимает много места, при записе неизбежны паузы в начале или обрезнное начало, определять на слух окончание трека тоже не понятно как , не поддеживает семплы и бипер и т.д.
    Зато анализируется на ура и прост для рендера.

    ---------- Post added at 14:25 ---------- Previous post was at 14:24 ----------

    Цитата Сообщение от newart Посмотреть сообщение
    Кстати, ZXTune поддерживает .AY?
    Пока нет. Я его потихоньку практически заново пишу.

  10. #9
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,948
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Пока нет. Я его потихоньку практически заново пишу.
    Сделай пожалуйста поддержку 128к, что бы наконец можно было играть Digital музоны.

    ---------- Post added at 14:45 ---------- Previous post was at 14:42 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    В каком формате дамп?
    16 байт, тут вроде без вариантов.

    Файлов не много, так что производительность обработки мне не важна.

  11. #10
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    Сделай пожалуйста поддержку 128к, что бы наконец можно было играть Digital музоны.
    Для AY?

    Цитата Сообщение от newart Посмотреть сообщение
    16 байт, тут вроде без вариантов.

    Файлов не много, так что производительность обработки мне не важна.
    Примеров можешь дать? И что требуется на выходе. Есть кое-какие идейки...

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •