ACORDE · RUST AND WASM

A score core you can inspect and embed.

Acorde is a platform-neutral Rust and WebAssembly library for serializable scores, undoable edits, bounded notation I/O, logical layout, deterministic SVG, playback-event projection, and analysis.

Quick start

Use the umbrella crate for score semantics, I/O, and layout. Add acorde-render-svg directly when rendering SVG.

[dependencies]
acorde = "1.2.3"
acorde-render-svg = "1.2.3"

Minimal edit

Commands are validated and recorded by the ScoreEngine; hosts keep ownership of UI and files.

use acorde_core::{Command, ScoreEngine, SetTempoCmd};

let mut engine = ScoreEngine::new();
engine.apply(Command::SetTempo(SetTempoCmd { bpm: 120 }))?;
engine.undo()?;

Crate boundaries

acorde-core owns score semantics and validation; acorde-io handles notation formats; acorde-layout provides pixel-free logical geometry; acorde-render-svg makes deterministic SVG; acorde-wasm exposes JavaScript bindings.