Да нет, всего лишь, чтобы с минимальными усилиями запустить это на Специалисте ;)
Вид для печати
Доработал свой HTML-скрипт конвертора.
Если раньше на конвертацию, больше всего ручную, уходили часы! То сейчас - менее одной минуты.
- Открываем любую мелодию в Vortex Tracker
- Экспортируем её в текстовый формат
- Загружаем в конвертор
- Получаем готовый RKR-файл
Правда, ещё предстоит разобраться с темпом и октавами в конверторе.
Вот, например, как звучит Арканоид: Вложение 79954
Если углубляться и делать всё на высоком качественном уровне, необходимо учитывать орнаменты и семплы, где я вообще не в курсе на данный момент.
Но ведь Специалист не вырабатывает звук командами DI/EI?;)
Может быть поможет конвертер и плеер DenisGrachev-а, там можно подсмотреть что делается с орнаментами и семплами -- https://github.com/DenisGrachev/vt2vi53
Собственно, если кому интересно, выкладываю исходный текст код Вложение 79956 на ассемблере с некоторыми комментариями.
Каждая строчка прокомментирована с указанием количества тактов. Такты с точкой указывают на то, что команда стоит лишь для задержки.
В частности, указаны такты от инструкции EI до DI, которые формируют разную скважность генерирумого меандра, что позволяет достичь ШИМ-эффекта для модуляции амплитуды.
Код достаточно прост и состоит из однотипных фрагментов для озвучивания различного состава "голосов".
В отличии от "Музыкальной Системы", код не модифицирует сам себя, перезаписывая в циклы JMP/JNZ для обхода "молчащих" голосов, а прыгает в соответствующий цикл. Это позволит, в перспективе, запускать код прямо в ПЗУ.
Данный вариант кода поддерживает строгие 100 тактов на цикл практически везде, где только возможно, что гарантирует также и стабильный темп проигрывания. Счётчики работают на инкремент, чтобы высокие частоты соответствовали высоким значениям счёта.
Записал видео специально для просмотра с любого устройства:
http://www.youtube.com/watch?v=okNVa0Jhtic
http://www.youtube.com/watch?v=0l-uo9qO5HY
http://www.youtube.com/watch?v=0yn2l9IBHZs
И немного классики:
http://www.youtube.com/watch?v=lLPA3SN8o0g
Наткнулся на 1tracker, откуда узнал про Beepola и сделал для себя открытие!Дело в том, что неделями ранее я писал код на два голоса полифонии + сэмпл с любой формой. При этом, сэмпл воспроизводился как третий голос. Всё это вымотало мне много нервов, так число тактов на одну итерацию полифонии переваливало за 200!Цитата:
- Из игры Savage. Оригинальный код разработан Jason C. Brooke и использовался в ряде игр компании Probe. Два тональных канала, длительость нот фиксирована, изменяемая скважность, слайды. Пять ударных инструментов, прерывающих звук. С помощью слайдов и комбинирования каналов можно получить дополнительные звуки ударных.
(Для сравнения, нынешный код укладывается тремя голосами ровно в 100 тактов!)
То есть, нужно снова написать весь код с нуля именно на два голоса, убрать из трека байт о длительности нот (сейчас каждая строчка паттерна имеет свой байт длительности).
Иначе говоря, при написании кода я поставил себе достаточно высокие требования. Хотя, для воспроизведения оригинальных треков Savage хватит и меньшего.
А учитывая разницу в частотах процессоров РАДИО-86РК и ZX-Spectrum, задача была слишком трудоёмкой для меня.
P.S.: В общем, как-то так...
Кое-как добавил таймер (Счёт паттернов : Счёт строк), а также и заголовок файла, не нарушив качество воспроизведения.:v2_dizzy_punk:
http://www.youtube.com/watch?v=njqj8DdMbek