This is by no means very new, but it might give you some practical hands-on for working with Git and Ableton. I am also aware that you can really integrate more with filters and helpers and all other kinds of tricks, but this article shows you that you can start with versioning your musical work by simple means.
What is Git
Git is about versioning. Keeping versions of your song while it is progressing to its final state. One of the most annoying things that can happen is losing the last best version of your song because of some mishap. DAWs can crash and then when you recover, what if you end up with crap? Aargh! You can accidentally delete stuff and later notice that some vital sound or effect got lost. How to get it back? Is Undo failing you? You did make backups or…?
A backup will bring you one version back, unless you are the kind of person that saves every version with a date/time stamp. And then what do these dates say? Is the Friday version better than the Saturday version?
My solution is to use Git. Git is software that allows versioning at a file level. It saves every file change in a specific folder, or sub folder, in a special internal store, together with a comment that explains what the purpose of the file changes was. Git is at its best with text files, but it can also handle binary files out of the box. Its purpose is grander than just versioning files in folders. It supports team collaboration on versions and its functionality goes well beyond my daily use for music.
How to use Git
The way i use Git is fairly basic. At the end of a session working with Ableton on one song or a set of songs i close down Ableton. Then i let Git take a snapshot of the folder that holds the project. Git can be instructed very specifically on the files to include in this snapshot and which files to leave out. Git calls this snapshot a commit. More or that later. Then i add a comment to this commit, like “Frozen Epica for better performance in the mix”. Ever since i started using this versioning of songs it has saved me many times from losing the “latest greatest” mix.
If you dive in to articles about Git, you will find that working with it is actually very technical, daunting even. For that purpose i use a shell around Git that makes it graphical and easy to use, SourceTree. It is free and can be installed in its most basic form with Git embedded. You do need to register.
Committing projects to your repositories
If you have it up and running you can start adding your projects to Git by creating new repositories for them. Click Clone/New and Create new Repository. Add the folder where your files are, give your repository a name and you are in business. Scanning the folder for files can take time and you might find that a list shows up with lots and lots of files. Maybe you only want to keep track of your “.als” file?
If you want to filter only essential files in the Ableton folders it is best to add a text file named “.gitignore” file in the root folder. My .gitignore file contains the following text:
# Rendered music #
This leaves out temporary Ableton files and all rendered music files in the root of the folder. At this point Git will only check which files should be committed as part of the snapshot of your song. These files will be marked unstaged, at the bottom of the screen.
Click the checkbox left to “Unstaged files” and the files will be moved to the box with staged files. This can also be reversed and set up to stage only individual files. Every staged set of files can then be committed with a comment in the “File Status” tab.
If you made it to here, then you have made your first steps in to versioning. Congratulations! You can now go a version back by double clicking any commit in the list. Like what you hear, but not sure if this is going to be final? Make a branch and work on that branch to see if it gets you there. Or you go back to the original version and explore that. The main version is always on a branch named “master”.
Backup your versions
But does this also make a backup of your files? Yes and no. You will find that files will be stored into a special hidden file structure in the same folder (named .git). Are you happy with this as a backup? Well i’m not. If you lose your PC or entire drive you lose it all. Git or no Git. What i do is that i make a backup of all project folders, this also nicely saves the hidden .git file structure and also all versions of all songs. Nice eh?
If you want you can even commit your project changes to a cloud service that supports Git. One option is Github, this is only free if you publish your projects to the whole world. There are cloud storage options that understand Git and allow free and private service, but then you put your trust in a cloud service like Bitbucket. Its up to you. I keep a simple backup with copies of the files in my projects folder on separate disks.
Ups and downs
There is one downside. Ableton does not play nice and needs to be closed, every time you want to commit the latest changes. Also if you want to go back to another version of the song. Tough, but it still works for me. Want to give it a try? Keep me posted!
2 thoughts on “Keep track of versions of your Ableton projects with Git”