P221 23:31:30 13 FEB
REVERSE ENGINEERING ROLAND TM-2
19 JUN 2026

While building my compact hybrid drumming rig, I became very familiar with the Roland TM-2. The module has an enormous number of settings and even lets users save configurations to an SD card as .TM0 files. One day, I opened one of these files on my computer to see what was inside. I found mostly unreadable raw binary data, with a short string of plain English text at the top: the name of my save file. This led me to wonder whether I could reverse engineer the format and display all the information in a web-based user interface.

The problem

Because the TM-2 is so customizable, editing it means working through an enormous number of menus and settings using only a text-based interface on a tiny screen with four buttons. This makes large configuration changes slow to set up, and even checking that every kit configuration is correct before a show takes time.

Reverse engineering the format

There is no public specification for the file format, so I worked it out by changing one setting at a time, saving a new backup, and comparing it with the previous file. There were many different settings to test, and every comparison required me to transfer the files to my laptop, making the process long and repetitive. Gradually, however, I matched individual bytes to kit names, trigger settings, instruments, effects, and the other data stored by the TM-2.

Trigger module reader web app

After building the logic to read the contents of save files, I created a React-based static site to make the functionality publicly available and deployed Trigger Module Reader. The site lets users upload a save file and browse all of its settings in one place.

Example page showing TM-2 save file contents displayed in web app.

Immediately this solved several problems:

  • Users could view the entire contents of their save files in one place rather than endlessly scrolling through a text-based interface.
  • Users could share images of their favourite kit, trigger, and effect configurations, allowing others to set up their TM-2s in the same way.

The next step was to allow users to edit save files directly in the browser, then export a new .TM0 file ready to put back on the SD card.

Example page showing TM-2 save file contents displayed in web app, with write functionality enabled.

Input validation was quite time consuming. However, writing converters to turn a JSON representation of a save file back into the .TM0 format was considerably simpler than the original reverse engineering problem.

Reflection

This project expanded the TM-2 with useful functionality while building on its strengths as a reliable, tried-and-tested tool. There is still work to do on the website and on introducing the tool to the community, but I’m proud of the project so far and optimistic in its potential to help other drummers with similar challenges.