chords-js

The reference library for the .chords harmony format — the abcjs-analogue for chord progressions. It parses .chords into a structured model and provides modules to render chord charts, transpose, do Roman-numeral analysis, and compare/score progressions.

It complements abcjs rather than reimplementing it: staff notation and audio playback are delegated to abcjs by transpiling .chords → ABC. chords-js owns only the chord-specific layer abcjs leaves unspecified.

What it owns

Parse .chordschords-js
Chord-chart model + renderchords-js
Transpose chord symbolschords-js
Roman-numeral analysischords-js
Compare / score progressionschords-js
Staff notation, audioabcjs (via the .chords → ABC bridge)

Try it

Usage

import { parse, renderChart } from 'chords-js';

const text = `%chords-1.0
M: 4/4
L: 1/1
K: C
|: Dm7 | G7 :| C | F |]`;

const { form, headers, title } = parse(text);
renderChart('paper', text); // → SVG in the element

Distributed as the npm package chords-js; install and usage details will appear here with the first release.