0.1.6 • Published 8 years ago

guitar-tab-song-parser v0.1.6

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
8 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

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.2

8 years ago