I want to write a parser for .sid files (music for C64 chiptunes) to extract some patterns into notes. I search for format and found this: http://cpansearch.perl.org/src/LALA/Audio-SID-3.11/SID_file_format.txt
I can read the header as in that document, but I don't understand how to extract individual notes and output them.
I search for ready converters and found these:
That is I found some more but StackOverflow says that I can't post more than 2 links.
Please help. Sorry for my bad English. Thank for your consideration!
Apart from the header containing various meta data, the rest of a .sid file consists of code (the player routine) and data (the instruments and note data.)
The format of the note data is dependent on the player code, and a myriad of different players exists, any of which may have several versions with variations in code and data formats. There are even many tunes out there that have code and data formats developed specifically for that one tune only.
This means that the only way for you to determine the format of the note data is to study the player code (in a machine code monitor or a separate disassembler tool) to see what it does and how the data is organised, which can be quite an undertaking even if you are already familiar with 6510 machine code and the SID chip.
If I'm reading this right, if you are only interested in the notes (i.e. pitch), you should be able to get by by just looking at what gets written to $d400/$d401 for channel 1 and so on.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With