Case study / local-first audio tooling

cratemind turns a playlist into a usable music crate.

A local workflow for downloading Spotify playlists, analyzing tracks for BPM, Camelot key, and genre, then organizing the results into configurable DJ-library folders.

Workflow

  1. 01Playlist

    Start from a Spotify playlist and choose an output format and destination.

  2. 02Analyze

    Process audio locally for tempo, Camelot key, and genre signals.

  3. 03Organize

    Preview, resume, and place tracks into configurable folders for a usable library.

cratemind's playlist and local audio-analysis interface

Public project interface from the cratemind repository.

Why it exists

Metadata is often too coarse for the actual workflow.

cratemind treats a playlist as an input to a local process rather than a finished music library: audio analysis and folder structure are part of the workflow.

Engineering

Built as a releaseable tool, not a one-off script.

Public releases run through v0.5.1. The repository includes CI on pushes and pull requests, release automation, and tests spanning analysis, downloads, pipeline behaviour, and web flows.

Technical choices

Local-first by default.

Python 3.11–3.12 coordinates a FastAPI/Uvicorn web layer with Pydantic, Mutagen, and HTTPX. Optional local analysis uses Librosa, NumPy, SoundFile, and ONNX Runtime; spotdl is invoked externally to avoid dependency conflicts.