guitar-tab-song-parser
v0.1.6
Published
guitar chords parser from json files
Downloads
3
Readme
chord JSON parser
- Extract JSON tablature
- Parse guitar chords
- Transpose chords
MarkDown Extractor
Extracts chords
and lirics
from json python code
import { Extractor } from 'guitar-tab-song-parser';
let extractor = new Extractor({
md: {
filepath: null,
content: 'CONTENT'
}
})
let song = extractor.getSong()
song // -> array with only song lirics and tablatures/chords
ChordParser
Split roots and override roots from a chord string
.
import { ChordParser } from 'guitar-tab-song-parser';
let parser = new ChordParser()
let chord = parser.parse('Bb7(9)/Cb');
// -----------------------
chord === { root: 'Bb',
flavors: '7(9)',
rootOverride: 'Cb' }
ChordPrint
Print chord string
from chord object
.
import { ChordPrint } from 'guitar-tab-song-parser';
let printed = ChordPrint.print({
root: 'C',
flavors: 'M7',
rootOverride: 'G'
})
// -----------------------
printed === 'CM7/G'
ChordTransposer
Change root and
import { ChordTransposer } from 'guitar-tab-song-parser';
let transposer = new ChordTransposer()
let new_chord = transposer.transpose({
root: 'C',
flavors: 'M7',
rootOverride: 'G'
}, 1)
// -----------------------
new_chord === { root: 'C#', flavors: 'M7', rootOverride: 'G#', index: 3 }
ChordsConverter
Gets all chords from a string and convert to an array of chord objects
.
import { ChordsConverter } from 'guitar-tab-song-parser';
let converter = new ChordsConverter()
let all_chords = converter.getChordsList(' A7+ E7/4 B7/9 Dm(7+)');
// -----------------------
all_chords:
[
{
chord:{
root: 'A',
flavors: '7+',
rootOverride: null
},
loc: { start: 5, size: 3 }
},
{
chord:{
root: 'E',
flavors: '7/4',
rootOverride: null
},
loc: { start: 12, size: 4 }
},
{
chord:{
root: 'B',
flavors: '7/9',
rootOverride: null
},
loc: { start: 22, size: 4 }
},
{
chord:{
root: 'D',
flavors: 'm(7+)',
rootOverride: null
},
loc: { start: 30, size: 6 }
}
]
Tests:
# start azk [optional]
$ azk shell
# run all tests
$ npm test
# run all tests and watch
$ npm run watch
Debug:
$ npm install -g devtool
$ devtool node_modules/.bin/tape tests/**/*.js
# or
$ npm install -g iron-node
$ iron-node node_modules/.bin/tape tests/**/*.js
# or
$ npm install -g node-inspector
$ node-debug node_modules/.bin/tape tests/**/*.js
using: