Xrns: diff two versions of a song in the browser

Hi all, This is a tool I built for my own songs since recently I started to make songs for my graphics intros, and it may be useful for others.

I save a song as v3, keep working, save it as v4, and then have no way to see what changed. Trackers have no version control, and an .xrns is a zip, so git only tells you the bytes differ.

This reads both files and lays out the differences. Tempo, tracks, which patterns are identical, which ones moved in the arrangement. Open a changed pattern and it shows which notes moved, line by line.

Tracks are matched on content rather than position, so renaming Lead to Arp reads as a rename, not one track deleted and another added.

It all runs in the browser. Your files never leave the machine, and there is no server to upload them to.

I know about rnsgit git wrapper, which handles the storage side by unzipping so git can track the XML. This is the other half which is reading the change rather than storing it.

Tool: https://xrns.sh0drun.dev

There is an example on the page, two versions of a small song, if you want to see it work before pointing it at your own.

What it does not do yet: instruments and samples, so this is notes and structure only. Added and removed patterns show up in the diff but you cannot open them to look inside. Phrases are ignored, so a riff stored on an instrument and triggered by a single note will not show up as a change. It never writes to your files.

Source: https://github.com/sh0drun/xrns

Please if you point it at a real song and it gets something wrong, I would like to know.

2 Likes