Call out for Remixers, Musicians, and Producers!

Remix our latest 6 songs for a release on the blocSonic label for Netlabel Day in July!

Go to https://lorenzosmusic.blocsonic.com to download the stems

GitHub For Music: Collaborating on DAW Sessions

Illustration of octocat and whiteboard
GitHub Octocat illustration by Tom Ray - CC-BY-SA

Collaborating on DAW sessions with GitHub

This is the interesting part that makes using GitHub to share DAW files possible: branching. The key to using GitHub for music collaboration. This branching workflow I'm going to talk about is a way to keep your contributions separate.

Let's say I recorded drums, and then I uploaded or "pushed" my DAW to GitHub; now, my guitarist wants to download the repository so they can add guitar. And the way for them to do this without messing with the files is to "branch" them.

Clone the repository

The guitarist will go to the GitHub.com repository and "clone" that repository to get a version for themselves. Then, before opening the DAW, they need to create a new branch.

Create a new branch

This can be done using the GitHub Desktop App. They create a new branch and name the branch something like "guitar-session".

Now, this new branch the guitarist has created of the session is technically GitHub treating it as if it's a different session. Like you have saved it as "guitar-session," but it's virtual, not visible. This is a branch of the original, and you'll see that in the GitHub desktop app, there will be a branch underneath the name of the file. It's all managed in the same folder.

So now the guitar player can do whatever they want. They can record guitar, they can add effects, they can do all that kind of stuff.

Push the new recording session branch to GitHub

So they recorded their guitar part, and now they're done. So they will go through the same process I mentioned before: they will add the changes made in the GitHub Desktop app, commit the changes, and then push the changes to the online repository.

The branching workflow

The normal branching method

This is the part where I think people have had trouble trying to do this with music collaboration. Let me explain by saying the way GitHub normally works for software development, because this is where people get hung up.

What you would normally do at this point is upload this branch, and then in GitHub, the lead developer would look at that branch code, then they would merge these updates into the main branch.

Won't it get conflicts?

Yes, it would. If we did this with a repository using a DAW program, we would get conflict error messages. So, yes, this is the problem that everyone runs into at this stage. But the key here we've discovered to using GitHub for music is that we're going to use GitHub incorrectly.

The branching, branching method

When I was first attempting to try and test out sharing over GitHub with the rest of the band, we recorded a session, and my bass player wanted to try out a different bass part at home. 

So I explained to him what branching was, and I was like, this is how you're gonna branch, and then you'll record your part. And as I was explaining it to him, I was kind of thinking, ah, but, when you're done, I might have issues merging it into the main branch because it might cause conflict errors. This might not actually work. 

And that's when my bass player goes, "Do we need to merge it?" And then I paused, I thought about it. And was like, no, we don't need to merge it. 

That is the key to using GitHub for music with full DAW sessions. You don't have to merge them. Everything opened up when he mentioned that. Because I realized we're not writing software on GitHub. We're using GitHub to version software that we use. 

We have no control over what the software does. When we make changes, it's gonna write different code based on the things that we do, and we have no control over what that says.

So the concept is, when we record this way, each branch becomes the new main branch, and that is what we work from. Everybody switches to that new branch, and when they wanna do something new, they create a new branch from that new branch, and so on and so on to infinity.

Download My GitHub For Music Process

GitHub for Music Collaboration With A Full DAW Is Possible... If You Use It Incorrectly!

This document explains my full method on how to use GitHub for collaborating on music projects with full DAW sessions.

The document outlines an unconventional way to use GitHub for music collaboration.

GET IT HERE!


Our latest album

Our album "Friction" is available now! Listen anywhere you stream music. Click here to listen

This work by Lorenzo's Music is licensed under creative commons CC BY-SA 4.0