27

Has anybody tried using GIT version control for session control of audio recordings?

I have used GIT in programming and it works very well, and is easy to use too. It works great for collaboration, which I find interesting as I may send a song to someone to do some work on and it would be a handy way of merging sessions and being able to jump back easily to a previous session. Also it would be awesome to be able to work with teams of people in remote locations ... but I have read somewhere that it doesn't work well with audio and this has put me off the experiment myself so I thought I'd better ask for other peoples experiences first.

I suppose in audio recording and mixing scenarios the arrangement is such a small file that it's just as easy to keep multiple versions of that file ie song_recording_1, song_recording_2, song_mix_1, song_mix_2 etc but I thought it would be interesting to see if there's been any experimentation with GIT or any other version control and what conclusions are being reached.

To be honest, ( and I know my system is a bit old so I am open to correction ) I find it strange that I haven't seen any type of version control already built into any DAW that I'm aware of ... it seems like it should be a fairly easy thing to add considering it would only be a matter of keeping track of sessions, which it more or less does already ... does anyone know why it hasn't been implemented yet ... I suppose most people operate some form of manual session control.

16
  • 3
    I've thaught about this. The problem is that since song files arn't text files you wouldn't be able to do git merge or anything like that. As a result I'm not sure what would make this any better than just doing save as regularly.
    – JPollock
    Commented Oct 23, 2012 at 19:59
  • 1
    It isn't that it is bad for audio, but rather version control systems are supposedly bad for binary files. I don't know why for sure, but JPollack may be correct. On the other hand text files are just a special case binary file. You would probably get some insight about the general case by asking this at Stackoverflow
    – horatio
    Commented Oct 24, 2012 at 13:55
  • 1
    I guess the issue is how do you determine what the difference is between two audio files? Determining that they are different is no problem but finding out what the difference is or what changed is an issue. This kind of reduces the usefulness of SC as all it becomes is essentially a repository where people can exchange files.
    – Magrangs
    Commented Oct 24, 2012 at 15:56
  • 3
    I suggest looking at git-annex.branchable.com too.
    – derobert
    Commented Oct 24, 2012 at 19:51
  • 3
    @Magrangs: that's not the issue, because DAWs normally don't modify any audio files in place, so you could really handle those as immutable data, managed efficiently by git-annex, which should also be quite a help in distributing the files. Commented Oct 25, 2012 at 8:35

3 Answers 3

24

Yes, I have been using Mercurial (hg) with Logic Pro for a while now and with great results. Also coming from a software development background I find the main benefit to be the comments for each changeset and the ability to go back and branch from an earlier version to try out alternate production or composition techniques.

As mentioned you will likely pay for the benefits with the cost of increased disk space for binary files if they can't be clearly diffed. But in my experience this has not been bad since it is actually the project files that change. Also, Mercurial does have binary diff support though I have not tried it with audio files since ideally you want your recorded tracks to stay untouched by destructive edits for reuse.

Finally, the peace of mind that comes from being able to revert right back to a specific revision is priceless to me.


One practical note; be sure to ignore any transient or generated files that will waste space or save machine specific metadata.

Here is my excudes file used with Mercurial and Logic Pro (via OS X, naturally):

.hgignore

syntax: glob

.DS_Store

displayState
documentData.orig
windowImage.jpg

Project File Backups
Undo Data

Hope that helps.

1
  • 3
    An old post, but in case you are still doing it: Have you actually been sharing project files, and having it work well? Or is this just for yourself? I can't see how merge conflict resolution could be handled at all...
    – RedFilter
    Commented Mar 30, 2017 at 12:34
2

Took the above advice. This has been working great for me with git. Logic Pro X 10+.

.gitignore

.DS_Store

Project\ File\ Backups
Undo\ Data.nosync
Autosave
DisplayState.plist
WindowImage.jpg

Haven't tried it, but splice looks interesting as well.

3
  • Have you actually been sharing project files, and having it work well? Or is this just for yourself? I can't see how merge conflict resolution could be handled at all...
    – RedFilter
    Commented Mar 30, 2017 at 12:33
  • @RedFilter Just myself. Worked fine. Ended up using splice.com for working with others.
    – pbsladek
    Commented Aug 7, 2017 at 21:23
  • I've been using Splice, but on my new machine it's a nightmare. Flaky as... I don't really see why file sharing should be any sort of an issue because you're never going to be working on the same audio at any point. If you are both working on the song at the same time, Splice is absolutely no better.
    – DiBosco
    Commented Jan 25, 2022 at 9:33
2

Personally I prefer Boar for version control of binary files. That is the exact use case of that system - mostly used for photos, etc.

On the other hand, I can also recommend you the git Large File System. That means you can stay with git syntax/toolchain without a need of setting up boar.

1
  • 1
    Thanks for the suggestions. What are the main benefits of using Boar over git LFS?
    – P A N
    Commented Aug 15, 2016 at 20:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.