This package generates analysis JSON compatible with schema.json and the Forever Jukebox branch logic. It is the analysis engine consumed by the API worker.
This engine stack currently targets Python 3.11.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txtIf Essentia fails to build locally, install it system-wide and use --system-site-packages for the venv:
python3 -m venv .venv --system-site-packages
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txtOn macOS you can also install Essentia via Homebrew (brew install essentia).
Linting (ruff):
python -m pip install -r requirements-dev.txt
ruff check app scripts testpython -m app.main /path/to/audio.m4a -o /path/to/output.jsonffmpegmust be installed and available inPATHfor audio decoding.- Beat/downbeat extraction is provided by
madmom-beats-lite(installed from GitHub release wheels).