Sockpuppet Blog.

Bandcrash: Not just for self-publishing

Bandcrash logo

If you’ve poked around this website you probably know that I wrote and use Bandcrash to build the embedded players for the music previews. You might also be aware of it as the tool that I use to publish my albums to my itch.io page as an alternative to Bandcamp. But I also use it as a tool for a bunch of other things in my music — including part of how I publish things to Bandcamp and other storefronts.

Here’s some ways in which I use it.

Improving my production workflow

By maintaining my albums in Bandcrash as I work on them, it gives me a nice local player that lets me preview how the music is going to sound in context, since it can help me maintain my track ordering without having to do a lengthy/slow upload process or deal with playlists and libraries in VLC or iTunes or the like. It also gives me a place to edit and preview the liner notes and lyrics sheets.

Also, it’s easy for me to upload the previewer to a website and have other people do test listens.

Improving distribution to other platforms

When it’s time to upload to the various services, it acts as a force-multiplier in a few ways:

  • I can encode the whole album as FLAC and then easily drag-and-drop the files to the mirlo uploader, which then parses all of the tags and gives me the correct track ordering, genre tags, and lyrics
  • I already have edited plaintext lyrics and liner notes that I can easily copy-paste into the Bandcamp editor
  • The FLAC version is also much faster to upload to Bandcamp than the WAV version, and since I already have my track order set, I don’t need to think about things a whole bunch
  • The butler integration with itch.io automatically uploads all versions there with no real effort on my part
  • The pre-built .zip files are super easy to sell or distribute on other platforms, such as Patreon, Ko-Fi, and Gumroad

Authoring and uploading CDs for manufacturing

Kunaki’s standard album uploader is a pain to work with and results in albums with forced 2-second gaps between songs. With the brand-new CD authoring flow that I released yesterday, it is now much, much easier to publish an album to Kunaki, as now there are only two files to upload (the .bin and the .cue), and everything turns out exactly as it does when played in the local player with gapless transitions.

Also, external authoring tools are the only way to support more than 25 tracks on a single album with Kunaki, and I couldn’t find anything else that works nearly as well for this, which is why I added this functionality to Bandcrash to begin with.

Any service that can take .bin and .cue files would be able to use this, and even if you just want to burn a bunch of CDs on your own, you can use these files with cdrdao or ImgBurn or any number of other tools that take bin/cue files, and not have to worry about setting up a bunch of stuff.

And, as a bonus, you’ll get CD-Text1, so your titles and genres and such will Just Work™ on fancier CD players and peoples' computers.

Game OST workflow

I compose music for games and this usually means producing both BGM (looping backgroud music) and OST (downloadable soundtrack) versions of things. While I work on the soundtrack for a game, I maintain separate Bandcrash projects for each of these, and then I use Bandcrash to encode the looping versions into .ogg format so that I can share them with the game designers easily.

In some rare cases I also use Bandcrash’s “itch channel prefix” functionality to simultaneously upload both versions to the itch page, so that both versions are separately available.

[ADVANCED] Maintaining this website

This website runs Publ, a blogging platform I designed a while back. When I do a release, I run a few scripts to populate the information onto this website:

  1. A script that converts Bandcamp’s JSON-LD data to Publ pages for the album, tracks, and lyrics (so that my URL structure matches the Bandcamp structure and uses the same slug generation), using Bandcamp’s embedded player
  2. Another script that runs Bandcrash on the album, uploads the preview player to my CDN, and then switches my own embedded players over to the Bandcrash player

Also, for the spots where my liner notes had more advanced Markdown in them than what Bandcamp can display, I can also copy-paste the Markdown from my Bandcrash liner notes, and this would be super easy to automate as well.

These scripts are super specific to my own setup, somewhat janky, and probably wouldn’t be super useful for others, but at some point I’ll probably opensource them along with the Publ templates for this website, because it’s nice to provide people with more options for how to maintain their online presence. Even if it can be a bit technical.

In conclusion

Bandcrash is a pretty useful tool, and since its file format is just JSON files you can probably come up with some even more interesting use cases for it as a data editor.

It’s also pretty rough and could use a lot of improving; fortunately, it’s open source, as is its player component, and of course I welcome contributions, in both the “code and issues” sense as well as the financial sense.

Anyway, if you’re someone who makes music and publishes it online or on CD, check it out. Maybe you’ll find it useful too!