{"adoption": {"forks": 367, "observed_at": "2026-08-28T04:06:37.555727+00:00", "stars": 2328}, "canonical_url": "https://ross.abutalabs.com/products/abcjs", "card": {"archived": false, "artifact_type": "library", "description": "javascript for rendering abc music notation", "domain": ["web-development", "media", "frontend"], "enriched": true, "function": ["graphics", "audio-processing"], "health_score": 98, "homepage": null, "language": "HTML", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["paulrosen/abcjs"], "name": "paulrosen/abcjs", "platform": ["browser"], "pushed_at": "2026-08-09T19:25:32+00:00", "repo": "paulrosen/abcjs", "stars": 2328, "tags": ["abc-notation", "sheet-music", "music-notation", "midi", "svg-rendering", "music-player", "javascript", "nodejs"], "topics": ["abc-notation", "midi", "javascript", "sheet-music", "abcjs", "music", "music-notation", "music-player"], "urls": [], "use_cases": ["render abc music notation as sheet music in a web page", "play abc notation directly in the browser", "generate midi files from abc text", "add sheet music display to a music education site", "transpose abc notation to a different key", "display chord grids / lead sheets on a website"], "what_it_is": "A JavaScript library for rendering ABC music notation as sheet music (SVG) in the browser, with support for playing back and generating MIDI files. It can be embedded in any website to turn ABC text into engraved notation.", "when_to_avoid": ["you need server-side PDF engraving or MusicXML input rather than ABC", "you need a full desktop notation editor like MuseScore or LilyPond", "you work with non-ABC notation formats exclusively"], "when_to_choose": ["you need to display or edit standard music notation in a web app from ABC text", "you want browser-based playback or MIDI export of ABC tunes", "you want a lightweight, dependency-free way to engrave music client-side"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/abcjs", "repo": "paulrosen/abcjs", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:37.555727+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:38:13.409479+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b7bf87509b3a2f0a0cb20e1e74aae8f817166220874bd8c5a8f10c571ef00a6", "fetched_at": "2026-08-28T04:06:37.555727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/paulrosen/abcjs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 72}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4644, "days_push": 24, "days_rel": 26, "gap_med": 106.5, "n_releases_24m": 7}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}