CLI-first moodbar generator in Rust.
- Rust toolchain (stable)
make- Node.js (required for
make wasm/ npm package preparation)
cargo install --path crates/moodbar-cli# run the full local quality gate
make check
# generate legacy raw moodbar bytes (.mood)
cargo run -p moodbar -- generate -i input.ogg -o output.mood
# generate SVG output
cargo run -p moodbar -- generate -i input.ogg -o output.svg --format svg --svg-shape waveform
# inspect a moodbar file
cargo run -p moodbar -- inspect -i output.moodFor installed usage, replace cargo run -p moodbar -- with moodbar.
Common tuning flags include --normalize-mode, --deterministic-floor, --detection-mode, --frames-per-color, and --band-edges-hz.
Use command help for full details:
moodbar generate --help
moodbar batch --help# core crate fast loop
make test-core
# full workspace tests
make test
# parity harness (skips when fixtures are absent)
make parity
# fmt + clippy -D warnings + tests
make check
# optional watch loop
make tdd-corecargo run -p moodbar -- batch -i ./music -o ./moods --progresscrates/moodbar-core: decode, analysis, normalization, render primitivescrates/moodbar-cli:generate,batch,inspectcommandscrates/moodbar-wasm: WebAssembly JS bindings for browser/Node usagetests/fixtures/legacy: optional parity fixturesscripts/: helper scripts
make wasm
python3 -m http.server
# open http://localhost:8000/docs/wasm-demo.html- CI workflow (Rust core):
.github/workflows/rust-ci.yml - CI workflow (WASM package):
.github/workflows/wasm-ci.yml - Release prep workflow:
.github/workflows/prepare-release.yml(workflow_dispatch; opens PR that bumpsCargo.tomlversion) - Release artifacts:
.github/workflows/release-build.yml(Linux + macOS) - Artifact naming:
moodbar-<tag>-<target>.tar.gz - npm release workflow:
.github/workflows/publish-wasm-npm.yml(OIDC trusted publishing)
# build and normalize npm package metadata/files
make wasm
# reproducibility and package contract checks
make publish-check-wasm
# publish manually (maintainer workflow)
npm publish ./crates/moodbar-wasm/pkg --access public --provenance