Announcing the .TSI file format documentation (I've reverse-engineered it)

Announcing the .TSI file format documentation (I’ve reverse-engineered it)

I’ve reverse-engineered the .tsi binary file format specification, which Traktor Pro by Native Instruments uses to store its Controller Mappings. I am hoping this should open the gates to new power tooling for MIDI controller mapping power tools (Traktor’s own being rather sub-optimal).

The project, documentation and instructions are here: Home · ivanz/TraktorMappingFileFormat Wiki · GitHub

My blog post announcing this: Traktor Pro .tsi file format reverse-engineered – docs on GitHub

Everything is licensed under an open source license.

:tada:

BIG news!!!

Nice work!

:thumbsup:

Next step now is to validate. I am going to make a simple tool to read a mapping and write it back to a new file and test that the new file works the same as the old one.

Anyone willing to help out? I need your mapping .tsi file - I will then give you back one, which the tool has produced and you will have to check if it works the same way as before?

Do you guys use Windows or Mac OS X out of interest?

I can test your .tsi on both. Let me know!

this one is pretty complex and should be good for this testings: DJ TechTools - MIDI Fighter Spectra Ninja

Made a bit more progress today. I am also able to directly read from Traktor’s Settings - no need for export/import.

Wait - you have a numbered list of ALL Traktor mappable commands???

I want it!!! :thumbsup:

Umm… yes please?

I don’t have the full list yet, because I haven’t gone through and extracted them all just yet. Once I do - will post them. (BTW those numbers are internal Traktor thing - not really useful for anything but messing around with the internals of the mapping files)

You would be rich if you could create an app for android.

Makes me wonder where the line is drawn for code being proprietary.

I’d recommend calling NI about licensing agreements before going to far in development. :stuck_out_tongue_winking_eye:

Why would you want an app for android do? To do what exactly? I see no use case personally.

Also in Europe it’s legal to reverse-engineer binary file formats for interoperatiblity. I have not touched or decompiled/disassembled Traktor code or any NI other intellectual property in any way.

That’s not what I was addressing if that was responding to my statement. If you were to develop an android application (for what use I don’t know), I’d be very surprised if NI didn’t have an issue with it.

Great to hear there is no IP infringement, anything would be usefull compared to what traktor has.

As far as the android app is concerned; I currently have more free time at work than I do at home. I have mainly used my tablet for editing ClyphX as well as python scripts for ableton (due to the nature of my work I cant use 4g or wifi, which ironicaly makes me infinitely more productive).

I really hope Im not a niche market here.

Just a quick update on this one. We are now almost 95% complete on the documentation of the file format. There is also a reference implementation in C#.

Any C#/.NET developer willing to contribute should go here: GitHub - ivanz/Traktor.Mapping: Implementation of the Traktor Pro DJ software mapping file format and editor
As a reminder the documentation is here: GitHub - ivanz/TraktorMappingFileFormat: Documentation for the reverse-engineered .tsi file format used by Native Instrument's Traktor Pro 2.x for storing Controller Mappings

Given any free time availability I will start working on a UI for the editor.

Would be useful to know what sort of functionality in the Editor would people need? Let me know.

Some things that come to mind:

  • Search
  • Batch edit midi channel

Someone was asking about a list of all commands in Traktor. We have compiled a raw list of all IN commands here: Traktor.Mapping/TraktorMapping.TSI/Resources/commands.xml at master · ivanz/Traktor.Mapping · GitHub

P.S: Actually it’s missing the “Freeze” ones from the last Traktor version, but I will add them later.

Since many of us will be using this to COMBINE .TSI’s, I’d love to see:

  1. Automatically highlight conflicting midi messages across .TSI’s on import
  2. Automatically highlight conflicting midi messages at the time of mapping new controls

I’m sure I’ll think of more…

Hotcues seem missing from the list.

I’d like to have option to

  • undo, copy and move
  • mappable input for basic functions like Import, Export, list scroll, delete, duplicate etc
  • some additional monitor window should display conflicting command list that Patch suggested
  • Modifier display: create a separate output to send out information for currently selected device.
  • command color code

YES!!!

But if we’re gonna have an undo, we HAVE to have key shortcuts for it! I can’t tell you how many times I’ve hit CTRL+Z while mapping!!!

So;

  • KEY SHORTCUTS for regular actions