Skip to main content

Tools for publishing albums to the web and digital stores

Project description

Bandcrash

Bandcrash is a standalone program that automatically encodes an album of songs into a bunch of different formats for distribution on various platforms, such as itch.io, or for hosting on your own website. The embedded player is originally based on the one from blamscamp by @blackle, although it has been pretty thoroughly modified at this point.

See it in action!

Documentation Status

Features

  • Output as mp3, ogg, FLAC, and web preview (HTML5+mp3 at a lower bitrate)
  • Optionally upload everything to your page on itch using butler
  • High-quality encoding and metadata, with support for cover songs, per-track artwork, embedded lyrics, and more
  • Web player also supports per-track artwork

Usage

Please see the online documentation for installation and usage instructions.

Contributing

Pull requests are welcome! But please note the following:

The generated web player must not receive any added dependencies. The generator must stay as a single, self-contained file that is as small as reasonably possible. The point is for the generated file to be lightweight. Stick to Vanilla JS.

Development environment notes

If you are developing under Windows, you will probably need to use a POSIX environment under Windows (such as msys or Git Bash) rather than WSL.

If you are developing under macOS, please use a universal2 build of Python (such as the ones installable from python.org) and you need to ensure that you've created your environment against that (e.g. poetry env use /usr/local/bin/python3.11).

Roadmap

See the github issues for details, but roughly:

  • Local GUI and/or web UI to make setting up the album.json easier (and easier installation, especially on Windows!)
  • Various player improvements
  • Easy embedding into websites (opengraph et al)

FAQ

How is this different from blamscamp, scritch, etc.?

Blamscamp and scritch are both great programs for publishing album previews on itch.io and other websites! However, their functionality is only to bundle already-encoded audio files into a web-based player. They don't do the difficult work of encoding and tagging your files, which can be an extremely tedious and error-prone process. Bandcrash's intention is to make the process of encoding and uploading your albums easier to as many stores as possible.

Why was it renamed?

Back when this project started, it was named pyBlamscamp as the intention was to be basically a Python version of the blamscamp GUI which would also handle encoding steps for you, but it very quickly drifted away from that and became something else. Unfortunately, the similarity of the names was incredibly confusing.

Currently the only connection between Bandcrash and blamscamp is that Bandcrash uses a highly-modified version of blamscamp's web player. They serve different goals.

Why make a local GUI instead instead of a web app?

You already have your large .wav files on your local hard drive. Your local drive is also a good place to keep your previous encoding results. Your local computer also has a lot more space available than a typical cloud server, doesn't have to juggle cloud storage credentials, doesn't have to worry about the security of the server running the encoder app, the cost of running servers or paying for cloud storage, and so on.

Basically, it's easier for everyone.

Sometimes local apps are just Better™.

That said, Bandcrash is also embeddable as a library, so someone could conceivably build a web-based system that uses it for encoding and tagging files. If they do so, I hope they avoid it becoming yet another walled garden.

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bandcrash-0.6.2.tar.gz (35.1 kB view hashes)

Uploaded Source

Built Distribution

bandcrash-0.6.2-py3-none-any.whl (38.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page