Introduction
WebMusic is a toolkit for music software, interactive demos, and web-based musical installations. Use ready-made Web Components, drive Headless objects with your own interface, or compose APIs and UI presenters directly. These choices share data and runtime contracts so a prototype can grow without replacing every layer.
Online music workstations and expressive installations are long-term application goals. Project models, undo, persistence, and collaboration remain application responsibilities to design on top of the toolkit.
Five TypeScript packages organize these capabilities. Two domain families — Score for symbolic music and Audio for digital audio — never depend on each other; what they share lives below them, and what needs both lives above:
| Package | Role |
|---|---|
@webmusic/score |
Symbolic music — MIDI, MusicXML, MXL, ABC: playback, views, analysis. |
@webmusic/audio |
Digital audio — decoding, playback, waveforms, MIR analysis. |
@webmusic/bridge |
The only package that knows both domains — synchronized playback, score→clip rendering, transcription. |
@webmusic/ui |
Dependency-free DOM presenters and styling hooks both families compose. |
@webmusic/kernel |
The zero-domain runtime kernel — contracts and pure logic everything builds on. |
Inside each family the docs follow the package’s own vocabulary: Web
Components document the /element form, Headless documents
/headless, API documents the package root and its capability subpaths,
and UI Kit documents @webmusic/ui. Pick the family that matches your
source material: notation — MIDI, MusicXML, MXL, ABC — is Score; recorded
sound is Audio.
Participants performing together should follow one session time authority, with explicit mappings between musical positions and audio time. The current Bridge coordinates separate clocks; shared-instance injection is further work. Rendering chooses a sound realization, while transcription estimates notes: conversion does not imply a lossless round trip.
Start with Quick Start: a Score player with synchronized notation and keyboard, plus a compact Audio example. Score owns setup and registration; Audio includes its setup and walkthrough. Agent Toolkit supplies coding-agent references, skills and project instructions.
Search covers every package at once, so a term from one family will find the other.