CLI tool for musical directors to classify and organise audio stem exports by instrument category.
Project description
Setlist Organiser
CLI tool for classifying audio stem filenames into categories and organising them into folder structure via copy or move operations.
What it does
- Scans a source folder for audio files
- Classifies each file by filename keywords (e.g.
DRUMS,BASS,VOX) - Copies or moves files to
OUTPUT_ROOT/<CATEGORY>/... - Supports dry-run, recursive scan, custom keyword config, and interactive review for
OTHERfiles
Requirements
- Python
>=3.11
Install
From the project root:
python -m venv .venv
source .venv/bin/activate
pip install -e .
This exposes the command:
setlist-organiser --help
Basic usage
setlist-organiser SOURCE_DIR OUTPUT_ROOT
Example:
setlist-organiser ../../AUDIO_FILES_FOR_TESTING output
For paths with spaces, quote them:
setlist-organiser "/path/with spaces/Stems '24" output
Common flags
--dry-run
Show what would be copied without writing files.--quiet
Suppress per-file listing.--summary-only
Print category counts.--show-other
Print files currently classified asOTHER.--recursive
Scan nested folders.--config PATH
Load extra keyword mappings from a JSON config file.--review
Interactively review files inOTHERbefore execution.--move
Move files instead of copying them.
Interactive review mode
Use review mode to handle uncertain files before copying:
setlist-organiser SOURCE_DIR OUTPUT_ROOT --review
For each OTHER file:
- Press
Enterto keep asOTHER - Type a category name (e.g.
DRUMS,VOX,KEYS) to reassign - Type
sto skip the file
Config file format
Config adds extra keywords per category (it does not remove built-in defaults).
Example test_config.json:
{
"keywords": {
"DRUMS": ["room", "hh"],
"VOX": ["adlib_fx"]
}
}
Run with config:
setlist-organiser SOURCE_DIR OUTPUT_ROOT --config test_config.json
Move mode
Use move mode when you want files relocated from source to destination:
setlist-organiser SOURCE_DIR OUTPUT_ROOT --move
Preview move operations without changing files:
setlist-organiser SOURCE_DIR OUTPUT_ROOT --move --dry-run
Output behavior
--dry-run: no files are copied or moved- normal run: files are copied by default (metadata-preserving copy)
--move: files are moved instead of copied- destination collisions are suffixed (
_2,_3, ...)
Development
Run tests:
pytest -v
Or use Makefile shortcuts:
make test
make dry-run
make move-dry
make review
make summary
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file setlist_organiser-0.1.0.tar.gz.
File metadata
- Download URL: setlist_organiser-0.1.0.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
138769767be3cf9ca320d78aeb6fafe0dcdbf55be7217997004e115555250384
|
|
| MD5 |
7bd275d65f411bf599a0e05fc2502417
|
|
| BLAKE2b-256 |
02f751ace8870f908528afe3132d02aaa291382a76827282662cdc225517701a
|
File details
Details for the file setlist_organiser-0.1.0-py3-none-any.whl.
File metadata
- Download URL: setlist_organiser-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc4af84119b4e1ca48851c7c4dc796a8313caae45faedecb3060b834b132b2b0
|
|
| MD5 |
66fd6e9ad365eeed8432f33b183e33d1
|
|
| BLAKE2b-256 |
5d0eee1d322f99f22f3fbab98407f2b6596bcb90c1940c37a728000a9d7a90df
|