Collaborating with others


I have just installed Ardour on a friends Mac and I was wondering if anyone had any advice on the best way to work collaboratively. For example, on the weekend I intend to dump the whole session for the song we have been working on his machine, but from that point onwards we will continue to work separately. If I then either a) did a better take of an existing track or b) added a whole new track, what would be the best way to keep our two instances of the song synchronised?


Sadly there isn’t an easy answer to this. In the past couple of years I have tossed around a few modifications that would allow for VCS compatibility which would work great for this, but there will still be a few catches as things are implemented now. Despite this though, you could try keeping your entire session in a VCS and see how well it works for you.


Yes, I was thinking of just throwing the whole session in a Subversion repository somewhere. Given everything is driven by XML configuration files (I think!) then merging changes shouldn’t be too painful. I wonder if Google Code will consider our song an Open Source project…


There is a very simple solution.

I collaborate with others regularly, and cross platform / cross DAW collaborations are quite the norm. This means that there is no such thing as a common project file format.

The best way to sync up is to use a sync click, which is normally a single sample click on the start of the second bar.
To sync you simply send the wav file with the click included, and the mixer in the project simply lines up the clicks.

Works great.

maybe GIT or another decentralized VCS would work better: no central repository required.
There used to be “ardour session exchange” but I think it’s out of sync with the current session format. That was just what you are looking for. Could be a good unique selling point for ardour.


Two Things. One we were discussing Ardour on both machines to my knowledge which is MUCH simpler. No cross DAW needed there;)

Two I wouldn’t call manually aligning based off a sync click to be simple either actually. Not saying it isn’t a decent solution(Though utilizing timestamped BWFs would at first glance be a better one to me if all DAWs involved support it).


@Seb I used bzr in my last go around with a 24 hour film project I was working with a team of folks on the sound of. Our particular workflow was likely a bit different though, and in all honesty we primarily used the server client based model of DVCS so there wasn’t to much reason to use it over SVN, so long as there is a server available(Which in our case there was). Some of our team was using SVN as a result, as the central server was still SVN.



You will likely find small glitches here and there as you work with VCS, namely dealing with Peak files and similar that mean you might want to just .svn-ignore that directory IIRC. I am trying to remember what I ran across the last couple of times I did this, and I think that was the only thing I can recall off hand.


@Seb I did think about Git. I don’t have a lot of experience with it but a lot of people swear distributed is the way to go and it would solve the problem of finding someone to host the project. I watched an interesting YouTube video a few months ago with Linus talking to a Google team about Git. That guy really needs to get an opinion, he’s always sitting on the fence. :wink:

@seablade I’ll give it a go and document our experiences. Having a good list of which files/ directories to exclude from version control would be a good start for anyone else trying to do the same thing. Please excuse my ignorance, but what are Peak files?


Peak files are the files that Ardour generates that contain information about the waveform of the sound in a region. They are what Ardour draws when you see the graphical representation of the sound in the editor.

DVCS has drawbacks when used without a server, especially with many consumer ISPs and NAT transversal, so make sure you can at least ping your friend, and that the IP won’t be changing often, or if it is get a DYNDNS style service so that you have an IP to use. Also obviously both computers have to be on to pull or push between them.


Thanks for the info, I can see now why you say to just get svn to ignore them. I do currently subscribe to a dynamic DNS service for my webserver, but my ISP also blocks port 80 so it will be interesting to see what other surprises they have in store for me when I try Subversion…

Thanks again,