Take the 2-minute tour ×
Sound Design Stack Exchange is a question and answer site for sound engineers, producers, editors, and enthusiasts. It's 100% free, no registration required.

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.

share|improve this question

migrated from avp.stackexchange.com Jan 24 at 18:14

This question came from our site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation.

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 Oct 23 '12 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 Oct 24 '12 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 Oct 24 '12 at 15:56
3  
I suggest looking at git-annex.branchable.com too. –  derobert Oct 24 '12 at 19:51
1  
@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. –  leftaroundabout Oct 25 '12 at 8:35

1 Answer 1

up vote 10 down vote accepted

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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