3

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?

3
  • Did this reverse engineering operation yield any results? I'm looking for a way to manually change the user sample categories that are stored in this file
    – Reino
    Jul 17 at 22:34
  • Yes, this resulted in a kit creator web application that you can access for free at baza.run/kits. Here's a review at CDM: cdm.link/2021/10/… Jul 19 at 10:06
  • The webapp isn't going to help, but when you import a kit it saves the samples, so you can manually create a new kit and put the samples wherever you want.
    – qel
    Jul 21 at 4:01

1 Answer 1

2

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 and acknowledge that you have read and understand our privacy policy and code of conduct.

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