{"slug": "vexflow", "name": "VexFlow", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.548, "rising": -0.98, "first": "2025-12-04", "latest": "2026-05-10", "why": "I found it to be more customizable than ABC with a nice JS / TS API.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 0, "warn": 0}, "spark": [0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I found it to be more customizable than ABC with a nice JS / TS API.", "kind": "", "icon": false, "domain": "vexflow.com", "github_repo": null, "official_url": "https://www.vexflow.com", "pricing": "", "aliases": ["VexFlow"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 769463184, "item_id": 48091449, "url": "https://news.ycombinator.com/item?id=48091449", "by": "luigi_123", "date": "2026-05-10", "version": null, "stance": "recommend", "quote": "I found it to be more customizable than ABC with a nice JS / TS API.", "excerpt": "> Would be nice to have something somewhere in between the over-simplified ABC and overly verbose MusicXML. Hard agree. Early on I actually tried to write my drum charts directly in ABC Notation but it wasn\u2019t a great fit. Then I made a simple parser for my language that outputs ABC because I thought it would be simpler but I found it to be very limiting, so now I use Vexflow\u2019s low level API for rendering. I found it ", "context": "", "use_case": "Rendering sheet music", "switched_from": "", "story": "Ask HN: What Are You Working On? (May 2026)"}, {"id": 749221761, "item_id": 46826360, "url": "https://news.ycombinator.com/item?id=46826360", "by": "vunderba", "date": "2026-01-30", "version": null, "stance": "recommend", "quote": "You\u2019ll probably want to use VexFlow (or whichever notation system you\u2019re using)", "excerpt": "Nice job. Reminds me of the sheet music mode of Synthesia. https://www.synthesiagame.com/support/guide/displaySheetMusic A couple of pieces of feedback: - You\u2019ll probably want to use VexFlow (or whichever notation system you\u2019re using) to make sure that markings (pedal, mf, etc.) aren\u2019t overlapping each other on the screen. - I\u2019d definitely suggest checking the range of the user\u2019s MIDI controller and using that to rec", "context": "", "use_case": "Music notation rendering", "switched_from": "", "story": "Show HN: Piano Dojo \u2013 Guitar Hero for Piano"}, {"id": 738382432, "item_id": 46148902, "url": "https://news.ycombinator.com/item?id=46148902", "by": "lokar", "date": "2025-12-04", "version": null, "stance": "recommend", "quote": "Which has a text format, and typesets it for you nicely.", "excerpt": "I have been using: https://www.vexflow.com/ Which has a text format, and typesets it for you nicely.", "context": "", "use_case": "music notation typesetting", "switched_from": "", "story": "Show HN: MTXT \u2013 Music Text Format"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["rendering sheet music", "music notation rendering", "music notation typesetting"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48085993", "title": "Ask HN: What Are You Working On? (May 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46825862", "title": "Show HN: Piano Dojo \u2013 Guitar Hero for Piano", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46095474", "title": "Show HN: MTXT \u2013 Music Text Format", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 1}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {"recommend": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 769463184, "item_id": 48091449, "url": "https://news.ycombinator.com/item?id=48091449", "by": "luigi_123", "date": "2026-05-10", "version": null, "stance": "recommend", "quote": "I found it to be more customizable than ABC with a nice JS / TS API.", "excerpt": "> Would be nice to have something somewhere in between the over-simplified ABC and overly verbose MusicXML. Hard agree. Early on I actually tried to write my drum charts directly in ABC Notation but it wasn\u2019t a great fit. Then I made a simple parser for my language that outputs ABC because I thought it would be simpler but I found it to be very limiting, so now I use Vexflow\u2019s low level API for rendering. I found it ", "context": "", "use_case": "Rendering sheet music", "switched_from": "", "story": "Ask HN: What Are You Working On? (May 2026)"}, {"id": 749221761, "item_id": 46826360, "url": "https://news.ycombinator.com/item?id=46826360", "by": "vunderba", "date": "2026-01-30", "version": null, "stance": "recommend", "quote": "You\u2019ll probably want to use VexFlow (or whichever notation system you\u2019re using)", "excerpt": "Nice job. Reminds me of the sheet music mode of Synthesia. https://www.synthesiagame.com/support/guide/displaySheetMusic A couple of pieces of feedback: - You\u2019ll probably want to use VexFlow (or whichever notation system you\u2019re using) to make sure that markings (pedal, mf, etc.) aren\u2019t overlapping each other on the screen. - I\u2019d definitely suggest checking the range of the user\u2019s MIDI controller and using that to rec", "context": "", "use_case": "Music notation rendering", "switched_from": "", "story": "Show HN: Piano Dojo \u2013 Guitar Hero for Piano"}, {"id": 738382432, "item_id": 46148902, "url": "https://news.ycombinator.com/item?id=46148902", "by": "lokar", "date": "2025-12-04", "version": null, "stance": "recommend", "quote": "Which has a text format, and typesets it for you nicely.", "excerpt": "I have been using: https://www.vexflow.com/ Which has a text format, and typesets it for you nicely.", "context": "", "use_case": "music notation typesetting", "switched_from": "", "story": "Show HN: MTXT \u2013 Music Text Format"}]}