RSS Amplifier

Michael Gale's Blog · May 15, 2024

A semantic versioning system for music production

0
Sign in to vote or save

michaelgale.dev

Me and my buddies have been collaborating over Discord on some new I Am The Agent music.

Over the years I've found it really tricky to "version control" and "dependency manage" to make sure everyone is referencing the same thing when having discussions. This goes right back to the early days of having a USB harddrive for production and not knowing which Pro Tools session to open. It's a real time waster.

I Am The Agent now works asynchronously, since we're spread across the country have some mixture of busy work lives, children and/or mental illness. We get to things when we can. We move slow - so we need good ways to manage ourselves.

"In the world of software management there exists a dreaded place called “dependency hell.” The bigger your system grows and the more packages you integrate into your software, the more likely you are to find yourself, one day, in this pit of despair." ‐ Tom Preston-Werner semver.org

The current workflow we have is to store updates to songs in a folder in "the cloud", create a thread in Discord for the initial idea of the song - collect feedback, and then iterate. It works!

But I've been experimenting with a kind of "Semantic Versioning" approach to producing music - and I'd like to share the details here for posterity.

Format

<title> <version (x.y.z)> - <initials> <keyword|descriptor>

Hopefully its obvious why we need the title - but why do we want to add version numbers, initials and keywords?

Let's break it down!

Version numbers help us identify at a glance where in the production process the song sits.

  • 1.x.x = major update (e.g. progression from mix to master)
  • 0.1.x = minor update (e.g. progression from rough ideas to a developed song)
  • 0.0.1 = patch (e.g. iterating on ideas, taking feedback from bandmates)

Initials

Using the initials of the person who last contributed helps us idenitfy who we need to @ mention to ask a question.

e.g. MG, DM, JB, DL

Keywords

Keywords help us identify, without scrubbing through a playhead - what was contributed.

  • seed (AKA initial seed) = an initial idea or spark. An invite for others to build on.
  • pass (e.g. first pass) = the players first attempt at adding a new layesr to a seed or previous version (Credit Dylan).
  • nP = numbered pass
  • added X
  • first pass
  • second pass

This section can be looser, and as much or as litle detail can be added to convey the point.

Examples

Here are some examples of good convention:

Wolves 0.0.1 - MG seed
Wolves 0.1.3 - MG added vocals
Wolves 0.1.4 - DM first pass
Wolves 1.0.0 - DL mix 1P
Wolves 1.0.1 - DL mix DL guitars
Wolves 1.1.0 - PH mastering 1P
Wolves 2.0.0 - PH 2029 remaster 1P

Here are some examples of names that lack context:

Wolves Rough
Wolves another mix
Wolves_final_final_mix_ rough 2
Wolves_New_Drums_no_mixing

Will we remember in 10 years who was doing the mixing?

Did we want final mix or final_final mix?

Food for thought 🍕

Read the original on michaelgale.dev

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.