0.1.6 • Published 10 years ago

guitar-tab-song-parser v0.1.6

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
10 years ago

chord JSON parser

Build Status bitHound Overall Score bitHound Code bitHound Dependencies bitHound Dev Dependencies

  • 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:

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.2

10 years ago