# opensheetmusicdisplay/opensheetmusicdisplay

OpenSheetMusicDisplay renders sheet music in MusicXML format in browsers and headless with NodeJS. Based on VexFlow, OSMD is brought to you by PhonicScore.com.

Repository: https://github.com/opensheetmusicdisplay/opensheetmusicdisplay
Canonical: https://ross.abutalabs.com/products/opensheetmusicdisplay
Homepage: https://opensheetmusicdisplay.org
Language: TypeScript
License: BSD-3-Clause
License Family: permissive
Topics: music, musicxml, mxl, sheetmusic, vexflow, digital-sheet-music, sheet-music, sheet-music-viewer, music-notation, typescript, headless
Last push: 2026-08-11T16:18:14+00:00

## Health v2 (maintenance only)
Score: 97/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 97, release rhythm 96, longevity 100
- inputs: {"age_days": 3859, "days_push": 22, "days_rel": 27, "gap_med": 15, "n_releases_24m": 14}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1947, forks 376 (observed 2026-08-28T04:05:57.900244+00:00)

## What it is
OpenSheetMusicDisplay (OSMD) is a TypeScript library that renders MusicXML sheet music in the browser and headlessly with NodeJS, built on top of VexFlow. It is maintained by PhonicScore and serves as the bridge between the MusicXML exchange format and VexFlow's engraving engine.

## Use cases
- render sheet music from MusicXML files in a web app
- display MusicXML scores in the browser
- convert MusicXML to SVG sheet music images headlessly with NodeJS
- build a digital sheet music viewer app
- embed interactive sheet music in a music education app
- render sheet music for a WordPress site

## When to choose
- you need to display MusicXML or MXL scores in a web or NodeJS application
- you want an open-source, actively maintained MusicXML renderer based on VexFlow
- you need headless server-side rendering of sheet music

## When to avoid
- you need audio playback or MIDI synthesis - OSMD only renders notation
- you need to edit or author scores rather than display them
- you work outside JavaScript/TypeScript environments

## Facets
- artifact type: library
- maturity: active
- function: graphics, parser
- domain: web-development, media, frontend
- platform: browser, cross-platform
- tags: musicxml, sheet-music, vexflow, music-notation, typescript, rendering, headless, nodejs, web-server

## Member repositories
- opensheetmusicdisplay/opensheetmusicdisplay (main) score 97

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:57.900244+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:07:07.830452+00:00, confidence not recorded.
  - readme: https://github.com/opensheetmusicdisplay/opensheetmusicdisplay (fetched 2026-08-28T04:05:57.900244+00:00, sha f246b5448d66)
  - homepage: https://opensheetmusicdisplay.org (fetched 2026-08-29T10:47:12.719175+00:00, sha 5537417be8b7)
  - site_page: https://opensheetmusicdisplay.org/about-open-sheet-music-display (fetched 2026-08-29T10:47:12.723969+00:00, sha 0461e79b90eb)
  - site_page: https://opensheetmusicdisplay.org/wp-plugin/pricing (fetched 2026-08-29T10:47:12.721920+00:00, sha 3ecd1d10d27f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
