JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 283
  • Score
    100M100P100Q96862F

A TypeScript library for parsing and formatting ChordPro songs.

Package Exports

  • chordproject-parser

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (chordproject-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

ChordProject Parser

A TypeScript library for parsing, transposing and formatting ChordPro songs.

Overview

Parse any ChordPro song by using the ChordProParser. This gives a Song object wich can the be transposed with the Transposer and formatted with the Formatter. The formatter comes with 3 builders:

  • TextBuilder: format as text
  • HtmlBuilder: format as HTML (cf. style.css)
  • ChordProBuilder: format as ChordPro

Part of ChordProject

Usage

Setup

To install run:

$ npm i chordproject-parser

Load with import:

import { ChordProParser } from "chordproject-parser";

Parser

To use the ChordProParser:

const parser = new ChordProParser();
const song = parser.parse(chordSheet);

Formatter

You can choose between 3 formatters: TextFormatter, HtmlFormatter and ChordProFormatter.

const formatter = new HtmlFormatter();
const songText = formatter.format(song);

The formatters have default settings. You can change pass the settings in the formatter's constructor or change the settings later. Here is an example:

const settings = new FormatterSettings();
settings.showChords = false;
const formatter = new HtmlFormatter(settings);

or simply

const formatter = new HtmlFormatter(settings);
formatter.settings.showChords = false;

ChordPro format: Lyrics and Chords

Essentially, it looks like this:

    {title: Praise Adonai}
    {artist: Paul Baloche}

    {sot}
    E|-----2---2-----|-------3-3---
    B|---3---3---3---|-----0-------
    G|-2-------------|---0---------
    D|---------------|---0---------
    A|---------------|-2-----------
    E|---------------|-------------
    {eot}

    [Am]Who is like [F]Him,
    The Lion and the [C]Lamb
    Seated on the [G]throne    [E7]
    [Am]Mountains bow [F]down
    Every ocean [C]roars
    To the Lord of [G]hosts

    {start_of_chorus}
    [F]Praise Ado[Am]nai
    From the [G]rising of the sun
    'Till the [Dm7]end of every [F]day[G]
    [F]Praise Ado[Am]nai
    All the [G]nations of the earth
    All the [Dm7] Angels and the [F]Saints
    [G]Sing [Bbsus2]praise
    {end_of_chorus}

With source code

Demo

To start the demo:

$ npm run start

...then click on the http://localhost:8081/ link to open the demo in your browser

Unit test

You can add tests in the tests directory and execute them with

$ npm run test

or for the coverage

$ npm run test:ci