Плеер MTC контейнеров для реала
Всем привет!
Рад сообщить, что представленный в предыдущей статье формат треков MTC (Multi Track Container) теперь можно (с некоторыми ограничениями) слушать и на реале.
В репозиторий выложен исходник плеера mtc.asm, поддерживающий следующие типы потоков:
Бонусом идет набор самостоятельных плееров всех вышеперечисленных типов (pt2.asm/pt3.asm/ts.asm/tfc.asm), а также универсальный плеер с автоматическим детектом формата (uni.asm).
В папке players/test находятся тестовые программки для всех поддерживаемых форматов, а вместе с исходными файлами распространяются бинарные сборки:
P.S. Помогите, люди добрые. Сами мы не местные, карман с деньгами оторвало...
Рад сообщить, что представленный в предыдущей статье формат треков MTC (Multi Track Container) теперь можно (с некоторыми ограничениями) слушать и на реале.
В репозиторий выложен исходник плеера mtc.asm, поддерживающий следующие типы потоков:
- PT2
- PT3 (включая TurboSound треки)
- TurboSound контейнеры (2 склеенных трека с футером)
- TFC
Имеющиеся ограничения:
- При наличии нескольких потоков одного вида берется последний
- Но два PT3 потока склеиваются в TurboSound контейнер
- Если они оба сами по себе TurboSound треки, то будет плохо
- Связка PT2+PT3 не поддерживается (ибо нефиг)
- TFC потоки играются с частотой 50Гц
- Потоки неподдерживаемых типов пропускаются
Бонусом идет набор самостоятельных плееров всех вышеперечисленных типов (pt2.asm/pt3.asm/ts.asm/tfc.asm), а также универсальный плеер с автоматическим детектом формата (uni.asm).
Как пользоваться.
В папке players/test находятся тестовые программки для всех поддерживаемых форматов, а вместе с исходными файлами распространяются бинарные сборки:
org #6000
di
call init
ld iy,#5c3a
ld hl,10072
exx
ei
.loop halt
call play
ld a,#7f
in a,(-2)
rra
jr c,.loop
call mute
jr $
org #8000
player
init=player
play=player+5
mute=player+8
include "mtc.asm"
;incbin "mtc_8000.bin"
incbin "test.mtc"
Тонкости использования
- Инициализация портит все регистры, включая IY и HL', так что их надо сохранять и восстанавливать самостоятельно
- Воспроизведение может портить HL'
- Для работы плееров AY форматов на звуковой карте TSFM крайне желательно объявление дефайна ONtfm (автоматически объявлен для mtc/universal плееров)
- Дефайн NoPrologue отключает генерацию стандартного пролога (точек входа +0/+5/+8). Вместо них можно пользоваться метками XXX.Init/XXX.Play/XXX.Mute, где XXX- имя плеера (PT2/PT3/MTC/TFC/TS/UNI)
Credits
- Universal PT2'n'PT3 Turbo Sound player for ZX Spectrum (c)2004-2007 S.V.Bulba <vorobey@mail.khstu.ru>
- Переработанный плеер TFC от Alone Coder
P.S. Помогите, люди добрые. Сами мы не местные, карман с деньгами оторвало...
3 комментария
Интересует среднее/пиковое потребление тактов проигрывания обычного 1хАУ РТ3
И, теперь главное:
возможность отслеживания позиций в паттерне, паттернов
возможность чтения проигрываемых инструментов
есть такое?
пока в плеер не лез, не успел :)
вопрос снят.
PTSPlay.asm