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

User Tag List

Показано с 1 по 10 из 46

Тема: Быстрый проигрыватель AY-музыки (980-1300t)

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Master
    Регистрация
    16.09.2005
    Адрес
    Дзержинск (DustCity)
    Сообщений
    919
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Быстрый проигрыватель AY-музыки (964-1251t)

    Как-то давно, еще делая демку на tum2009 я искали быстрый проигрыватель AY-музыки, но на все мои вопросы что хочу в районе 1500 тактов говорили что это нереально.

    Тогда помню мне пришлось ручками переводить музыку из PT3 в PSC, ибо плейер первого никак не влезал под некоторые эффекты...

    Теперь для меня это в прошлом!
    Представляю вам универсальный проигрыватель и компилятор, который не зависит от типа используемого трекера, а компилирует дамп AY регистров, при этом размер компилированного модуля примерно в полтора раза больши, а порой даже меньше чем оригинала
    кушает 964..1251t, в зависимости от музыки, при компиляции указывается точный диапазон тактов под конкретный музон (или фиксированное кол-во тактов)

    Метод сжатия основан на том, что в паттернах каналов бывают повторяющиеся фрагменты.
    Каналы паттерна рассматриваются отдельно друг от друга, также отдельно рассматриваются огибающая с формой, регистр управления и шума, в результате получаем список повторяющихся фрагментов для каждого канала и табличку (трек) для их проигрвания.
    Сами данные регистров ay группируются в группы (например reg0, reg1, reg8) и составляется табличка вариантов принимаемых значений, из которой по индексу вытаскиваем значения.
    Приведу тут наглядно примерный алгоритм (остальное - проигрыватель, компилер и пример в приложенном файле):

    Рассмотрим какие регистры AY присутствуют в дампе
    и какие биты в них задействованы:

    Код:
    ;-----------------------------------------------------------
    ; Регистр / Номер / Обознач./ диапазон / битовая раскладка
    ;-----------------------------------------------------------
    ; RegA_lo	0	L	0-255	LLLLLLLL
    ; RegA_hi	1	H	0-15	0000HHHH
    ; RegA_Vol	8	V	0-15	000EVVVV
    
    ; RegB_lo	2	L	0-255	LLLLLLLL
    ; RegB_hi	3	H	0-15	0000HHHH
    ; RegB_Vol	9	V	0-15	000EVVVV
    
    ; RegC_lo	4	L	0-255	LLLLLLLL
    ; RegC_hi	5	H	0-15	0000HHHH
    ; RegC_Vol	10	V	0-15	000EVVVV
    
    ; Noise		6	N	0-31	000NNNNN
    ; Control	7	C	0-63	00cccCCC
    ; Period_lo	11	p	0-255	pppppppp
    ; Period_hi	12	P	0-255	PPPPPPPP
    ; Form		13	F	0-15	0000FFFF
    Разделив на "каналы", данные можно представить следующим образом

    Код:
    ; Channel_A
    ;	LLLLLLLL 0000HHHH 000EVVVV	(3 байта, reg 0,1,8)
    ; Channel_B
    ; 	LLLLLLLL 0000HHHH 000EVVVV	(3 байта, reg 2,3,9)
    ; Channel_C
    ; 	LLLLLLLL 0000HHHH 000EVVVV	(3 байта, reg 4,5,10)
    ; Channel_Env
    ;	pppppppp PPPPPPPP 0000FFFF	(3 байта, reg 11,12,13)
    ; Channel_Reg
    ;	000NNNNN 00cccCCC 		(2 байта reg 6,7)
    Далее для каждого из "каналов" вычисляем кол-во принимаемых значений, и составляем таблицу возможных значений (256 знач макс)
    если значений больше 256, то разделяем на более мелкие каналы
    (например Channel_A оставляем только значения частоты, и например если кол-во вариантов Channel_Reg больше 256, то рассматриваем отдельно Channel_Noise, Channel_Control)

    Далее разделяем каналы на паттерны, вычисляем совпадающие паттерны, и составяем треклист содержащий адреса паттернов в памяти

    Если сразу не понятно - смотрим листинг кода проигрывателя.

    Есть ограничения:
    - длинна паттернов может быть хоть с постоянной, хоть с плавающей скоростью, но должно соблюдаться правило: длина паттерна в прерываниях должна быть одинаковой, либо половиной/четвертью и т.д.


    Версия 1.3
    Основное - добавил анализатор трека при загрузке (очистка неиспользуемых регистров, удаление громкости если установлена огибающая в регистрах громкости и т.п.) ну и по мелочи.
    Вложения Вложения
    Последний раз редактировалось TmK; 18.08.2016 в 00:52. Причина: Новая версия
    Pentagon1024sl2.2/TSFM/Z-Controller/GS128Kb/HDD/CDROM/Palcoder

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

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

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

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

Похожие темы

  1. Проигрыватель WAV-музыки
    от p@lex в разделе Музыка
    Ответов: 22
    Последнее: 06.08.2014, 01:59
  2. Ответов: 296
    Последнее: 14.10.2012, 23:53
  3. Муз.Проигрыватель для Symbian 9.x
    от Darkman007 в разделе Музыка
    Ответов: 13
    Последнее: 19.09.2008, 21:10
  4. Куплю проц Z84C0006PEC или более быстрый.
    от Evgeny Muchkin в разделе Барахолка (архив)
    Ответов: 6
    Последнее: 19.09.2006, 11:24

Метки этой темы

Ваши права

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