Many of you who know me in person will know my passion for creating music. What you might not know is that I've been quietly building tools for music producers on the side.
It started with Ableton Inspector (ableton-inspector.online), a free browser-based tool that lets you drop in an Ableton Live project file and instantly see everything about it. Tempo, key, time signature, samples used, track layout. No installation, no uploading your sets to a third-party, it all runs in the browser.
One thing that came out of that was realizing producers also need an easy way to generate certified licenses for their Splice samples so they can legally distribute their music. Ableton Inspector already gives you the full sample list, so I built a Chrome extension that takes that list and automatically generates the licenses through Splice. One less headache for producers trying to do things the right way.
That project also got me thinking bigger. If I can parse and understand what's inside an Ableton project, I can compare two versions of the same project and tell you exactly what changed between them.
So the latest feather in my cap is MixRestore. It's a native macOS app that runs in the background and captures a snapshot every time you save your Ableton project - think version control, but for producers. It's not just backups that it creates. It auto-generates notes telling you what changed between each version. Added a track, tweaked your EQ, changed the BPM, it picks all of that up. You can title versions, tag them, and restore any of them in one click.
So if you're a music producer, or know one, you can check it out at https://lnkd.in/gxWZaJYh
If you're a developer who's curious about what it takes to reverse-engineer an undocumented project format across three major versions of a DAW, I'm also happy to nerd out about it. Did I mention Ableton Live projects are gzipped XML files? Fun! Did I also mention there's no public schema for them? Extra fun!
I don't post enough about the things I build outside of work so I'm trying to change that.