Разбор формата файла SID

Я хочу написать парсер для файлов.sid (музыка для чипов C64), чтобы извлечь некоторые шаблоны в заметки. Я ищу формат и нашел это: http://cpansearch.perl.org/src/LALA/Audio-SID-3.11/SID_file_format.txt

Я могу прочитать заголовок, как в этом документе, но я не понимаю, как извлечь отдельные заметки и вывести их.

Я ищу готовые конвертеры и нашел эти:

То есть я нашел еще кое-что, но Stackru говорит, что я не могу опубликовать более двух ссылок.

Пожалуйста помоги. Извините за мой плохой английский. Спасибо за ваше внимание!

3 ответа

Помимо заголовка, содержащего различные метаданные, остальная часть файла.sid состоит из кода (подпрограмма проигрывателя) и данных (инструменты и данные примечаний).

Формат данных заметки зависит от кода проигрывателя, и существует множество различных проигрывателей, любой из которых может иметь несколько версий с различными вариантами кода и форматов данных. Есть даже много мелодий, в которых есть код и форматы данных, разработанные специально для этой одной мелодии.

Это означает, что единственный способ определить формат данных заметки - это изучить код проигрывателя (в мониторе машинного кода или отдельном инструменте дизассемблера), чтобы увидеть, что он делает и как организованы данные, что может быть довольно предприятие, даже если вы уже знакомы с машинным кодом 6510 и чипом SID.

Если я правильно читаю, если вас интересуют только заметки (то есть высота звука), вы сможете обойтись, просто посмотрев, что записывается в $d400/$d401 для канала 1 и так далее.

Проверьте https://github.com/M3wP/XSID

Вы найдете двоичные файлы в каталоге дистрибутива:https://github.com/M3wP/XSID/tree/master/Distribution .

Этот работает, я пробовал. Информацию о нотах можно найти в файле output-midi. Проверьте код, чтобы узнать, как он работает в деталях.

Вам понадобится Delphi (в настоящее время используется XE8) и Microsoft Visual Studio для компиляции всех двоичных файлов проекта для Windows. Visual Studio требуется только для DLL.

Другие вопросы по тегам