by minorguy » Sat Sep 19, 2020 1:51 pm
I think that aspect of the sequencer needs some work. The file holds the 16 steps of the 4 tracks as 4-byte signed integers. But it doesn't contain any of the other parameters. So the file size is (16 * 4 + 1) * 4 = 260 bytes. The +1 is for the 4-byte version number.
The data is arranged this way. All integers are little endian (low byte first). First is the version number which is always 1. Next comes the 16 steps of track A, or what's called SeqA in the menu. Step 1 is first and step 16 is last. After that come the steps for tracks B, C, and D. That's it.
So for example, the first few bytes of file that's shipped with the Solaris, seq1.pat, look like the following in hexidecimal:
01 00 00 00 00 00 00 00 03 00 00 00 07 00 00 00
0C 00 00 00 00 00 00 00 03 00 00 00 07 00 00 00
The first integer is 0x01 which is the version number. This is followed by 0x00, 0x03, 0x07, 0x0C, 0x00, 0x03, and 0x07 which are the first seven step values of track A. (The pattern length is not saved in the file.)
Unfortunately there's a bug such that after you load the file the values are not displayed in the graphics display. However the values are still loaded and will be used. It's just that the display didn't get updated with the new values.
I think that aspect of the sequencer needs some work. The file holds the 16 steps of the 4 tracks as 4-byte signed integers. But it doesn't contain any of the other parameters. So the file size is (16 * 4 + 1) * 4 = 260 bytes. The +1 is for the 4-byte version number.
The data is arranged this way. All integers are little endian (low byte first). First is the version number which is always 1. Next comes the 16 steps of track A, or what's called SeqA in the menu. Step 1 is first and step 16 is last. After that come the steps for tracks B, C, and D. That's it.
So for example, the first few bytes of file that's shipped with the Solaris, seq1.pat, look like the following in hexidecimal:
01 00 00 00 00 00 00 00 03 00 00 00 07 00 00 00
0C 00 00 00 00 00 00 00 03 00 00 00 07 00 00 00
The first integer is 0x01 which is the version number. This is followed by 0x00, 0x03, 0x07, 0x0C, 0x00, 0x03, and 0x07 which are the first seven step values of track A. (The pattern length is not saved in the file.)
Unfortunately there's a bug such that after you load the file the values are not displayed in the graphics display. However the values are still loaded and will be used. It's just that the display didn't get updated with the new values.