Breaking the Rules of Version Control: How We Turned GitHub into an Audio Engine for Music Collaboration
Using GitHub for Music
Most software developers will tell you that if you use GitHub without ever merging your branches back into the main branch, you’re doing it completely wrong. But we aren’t building software. We’re an open-source, Creative Commons band.
Cloud drives didn’t work for us to share DAW sessions, and uncompressed WAV files are too large to share. We needed a way to pass full DAW recording sessions back and forth across the city without destroying the original mix.
That’s when we realized the secret wasn’t finding a new tool, it was intentionally using version control version control wrong to turn GitHub into our collaboration tool.
The Technical Foundation: Ubuntu Studio & Baseline Tools
To make our remote sessions work, we had to standardize our setup. We chose Ubuntu Studio. It’s a complete production suite out of the box, because every single plugin, connection tool, and MIDI sound is pre-installed, every band member starts on a perfectly level playing field with no missing dependencies.
Setting Up the Band Infrastructure
- GitHub Organization Account: Set up a dedicated GitHub Organization for the band to use so everyone has access to the same repositories.
- Project Naming: Spin up new repositories using session names.
- Open License Setup: We set up CC-BY-SA licenses to the sessions by going over to choosealicense.com, scroll down to “My project isn’t software”, select a Creative Commons license, and drop the license text into the repository. This way the master files stay open for anyone to distribute, sample, or remix.
- Clone the Repo: We clone the repository locally using the terminal or a desktop client like GitHub Desktop or GitKraken.
Overcoming the Audio File Size Limits with Git LFS
Raw audio files are huge. The second you drop uncompressed WAV files into a standard repository, GitHub will flag it and say it’s too big.
To bypass this, everyone in the band uses Git LFS. This tracks and uploads the audio files via Large File Storage.
For less than five dollars a month, a 50 GB Git LFS plan on GitHub provides all the space we needed for full DAW tracking.
The Branching Secret: Why We Never Merge
When we are going to record a new track in a working Ardour song, we create a new branch for it before we start.
Normally, a developer writes code on a branch and then merges it back into the main project when they are done. If you do that with music software, the overlapping software code will conflict and completely destroy your DAW session.
So our bass player asked a simple question: “Why do we need to merge it?” And he was right!
Think of it like alternate timelines in the “Back To The Future” movies: Every single recording session becomes its own permanent, parallel universe branch. We never merge. Every new branch simply becomes the new baseline with those new changes.
To keep track of everything, we maintain a tracking wiki on Google Sites. Every song gets its own page, where branch names are listed as major headers along with detailed session notes, chord progressions, keys, and an embedded MP3 mix export.
Truly Open-Source Music
Operating this way changed everything for us. By treating GitHub as our timeline engine, Lorenzo’s Music wrote, mixed, and released more tracks in the past few years than we ever had before.
When you get past the initial setup, it’s a really great way to collaborate on music. And using open-source software we aren’t tied to corporate subscriptions or expiring software licenses, we just own our creative process.
Because we are a Creative Commons band, our master files aren’t locked away. They are truly open source. You can clone our raw Ardour sessions, mix them, remaster them, or build something entirely new from our shared repositories.
- Explore our public GitHub Repositories: github.com/lorenzosmusic