Chpexo: Does first byte - in for example 07 38 40 - denote the instrument?
Yes. Basically the instruments in this music engine denote how long the instrument is sustained. The lower the byte value, the shorter the note plays. But in your example, I believe you are showing parts of data for two notes, not one. Correct me if I'm wrong though.
I threw together a .NET application to play the channel data through the internal speakers (of the computer).
Here are some screen-shots of the 'masterpiece':
I have uploaded the beta-version to file-trip: http://filetrip.net/dl?VXsHF3gW7b
(Have patience and wait for the Download file button to appear - Do NOT click anything else!)
You have to manually copy-n-paste the channel-data (provided in text-files) if you want to try it out yourself.
The application assumes a fixed length for the notes (based on the notes in channel 1).
It can handle 3 octaves at the moment - but due to the nature of the internal speakers - it can only play one channel at a time :-(
Look like this program has potential. Once that program comes out of "beta" I'd be interested in making some covers for this hack. How about it? In addition, I couldn't get audio outputted despite pasting the bytes into the program as I don't have an internal speaker for my computer to my knowledge.
EDIT: I'll check out the channel headers.
August 23, 2015, 01:07:03 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Also - I really need help with figuring out the 'Channel-headers' - what do the mean?:
Channel 2 header - offset: 3 E5C9
00 DC 06 40 00 40
Channel 1 header - offset: 3 E665
00 DC 00 40 00 2D
FYI, the last bytes you provided are for the music note letters and are not
the header. I'm not sure about the second to last byte though, modifying it does not heed any results. By modifying the other bytes they seem to just completely halt the music from playing so they seem to be a vital part of the music.