2

I'm trying to figure out the file format that the Roland TR-8S drum machine uses for importing/exporting drum kits. My goal is to replace the sample (PCM) data within a kit. It's a proprietary binary format and files have the extension .t8k. Here's what I have figured out so far:

The format consists of multiple sections that start with a four character magic code each (NAME, TONE, WAVE, SMPL etc.). I'm focusing on the SMPL section first. Here is an example:

00000868  53 4d 50 4c 00 00 02 00  cd cd e8 7e 3c db dc dd  |SMPL.......~<...|
00000878  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00020878  53 4d 50 4c 00 00 02 00  cd cd e8 7e 3c db dc dd  |SMPL.......~<...|

After the 4 byte magic code there is a 32bit value (0x20000) that indicates the length of the PCM data which starts at 0x878. The PCM data is all zeros in this example. If the original sample data is shorter than 0x20000 it will get padded with zeros.

The next four bytes (cd cd e8 7e) is a CRC32 of the whole PCM data (0x20000 zeros in the example).

The four bytes after the CRC32 (3c db dc dd) are unknown. They change whenever the whole zero padded block of PCM data changes. Like the CRC32, they do not change if only the number of zero padding bytes changes, and they do not seem to be affected by factors outside of the SMPL block. If the values of these bytes are incorrect, importing the kit into the drum machine fails with a generic error message.

I have tried CRC RevEng but it did not find an algorithm. Also, it seems unlikely that the unknown bytes are an additional CRC.

What might be the purpose of these four unknown bytes? Is there a method that can help me find out?

1

After having unsuccessfully looking for complicated things I tried to think like a software developer and I found this:

CRC32 of "534d504c00000200cdcde87e" = 0xdddcdb3c

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.