chord-parser
Utility for parsing guitar chords contained within a string of tablature. The most common use case is to wrap all chords found within a song in an anchor tag so that their finger chart can be presented in a tooltip.
Install
npm install chord-parser
or if using on the web, grab the dist/chord-parser.min.js
file.
Usage
var input = '\ Gsus4 Fsus4 F Csus4 C Gsus4/B \e|------------3-------------------1-----|-------1---------------0-----------| \B|---------3-----3-------------------1--|----------------1------1-------1---| \G|------5-----------5-----3--2----------|----2--------------0--------------0| \D|-5-------------------5--3--3----------|-3-----------3-----2---------0-----| \A|--------------------------------------|----------3---------------2--------| \E|--------------------------------------|-----------------------------------| '; // Import chord-parservar ChordParser = ; // Create a new ChordParser object with the input stringvar tabs = input; // Wrap chords found in the string (Gsus4, Fsus4, etc.) with an anchor tagvar wrappedTab = tabs; // Return an array of unique chords found in the stringvar uniques = tabs; // => ['C', 'Csus4', 'F', 'Fsus4', 'Gsus4', 'Gsus4/B'];
API
constructor
Create a new chord parsing object passing in a string of guitar tabs/chords to parse:
var parser = inputString;
wrap(replacerFn[, options]);
This method calls the function replacerFn
for each chord it finds in the
input string, passing in the chord in as its only argument. Your wrapper function should
return a string to replace the chord with. A modified version of the input
string with the transposed replacements is returned.
'Ab C#'; // Return value: '<a>Ab</a> <a>C#</a>'
all([options])
Return a sorted array of all chords found in the input string.
'Ab C# B C#'all; // Return value: ['Ab', 'B', 'C#', 'C#']
unique([options])
Return a sorted array of unique chords found in the input string.
'Ab C# B C#'; // Return value: ['Ab', 'B', 'C#']
Options
All methods accept an options object as their last argument (or in unique
and all
's case, the only argument).
ignorecase
(boolean) - Whether or not to ignore case sensitivity when searching the string for chords. Defaults to false.
Tests
Run npm test
.
License
MIT.