How we came up with a way to use GitHub to write songs.
The idea to collaborate on songs and music online has always interested me. I’ve talked to people that say they’ve done it, but it was more of a track sharing concept. They would work on a track, share it with another person and they would add on top of it.
That’s when I first got the idea to use GitHub for that process.
Recently I was talking on twitter to Jason from The Choose Linux Podcast about this concept and he had mentioned it on his show.
Check it out. @killyourfm and the @ChooseLinux podcast talk about how we figured out a way to use @github for our songwriting collaboration. 😃 #opensource #music listen to the whole podcast here https://t.co/dNHXilQvTV pic.twitter.com/MgmVS9pd2V— Lorenzo's Music (@lorenzosmusic) May 27, 2019
I thought I would write down the concept of how we’ve been using GitHub for this just to see if anyone had any interest in it.
There are two ways I’ve done this on GitHub. One is an easy version and the second is a more complex version.
The first idea I tried was a similar kind of concept to sharing the song file but I exported all the individual tracks as “Stems” into a GitHub repository to use as individual tracks.
GitHub Music Collaboration (Easy Version)
To test out this idea, I set up a GitHub repository using a finished song for people to create remixes.
https://github.com/lorenzosmusic/i-never-wanted-to-say-remix-stems
Here was the explanation for how it would work in this case.
GitHub Song Remix Instructions
- Grab the audio stems to use in the stems folder.
- Import them to the DAW (Digital Audio Workstation) of your choice like Protools, Cubase, Ardour, etc...
- Remix the song in some awesome new way
- Export the new remix you made
- Send us the link to your new version at info@lorenzosmusic.com
- We email you back saying how much we like it.
GitHub Music Collaboration (Complex Version)
GitHub Song Writing process
- We are using the multitracking software Ardour to record songs.
- Add the Ardour song folder to GitHub as a new repository
- Add the Git Large File Storage (LFS) extension to the repository (Sometimes the audio files are too large. This fixes that.)
- Create a new branch every time you work on the song. (I add the date to the branch title so everyone knows what the current one is.)
- When the song is done, make that branch the default branch.
- Create a release tag
- Share the repository for remixing!
- Before starting always pull the latest updates!
- Always push your latest changes!
- We try and make sure we all have the same plugins. Otherwise, the mixes won't sound the same.
- Creating a new branch each time takes a good amount of communication. Let everyone know when you do it so they can switch to the new one.
- Branching keeps everyone from losing the version they are working on.
I share live videos while working on songs and editing on our YouTube channel from time to time. For updates on that subscribe to - https://www.youtube.com/lorenzosmusic
