项目作者: sgoudie

项目描述 :
🎸Convert Nashville Number System (NNS) to chords
高级语言: JavaScript
项目地址: git://github.com/sgoudie/nashville.git
创建时间: 2018-10-17T15:56:24Z
项目社区:https://github.com/sgoudie/nashville

开源协议:MIT License

下载


Nashville 🎸

A simple way to convert Nashville Number System (NNS) to chords based on the key.

Install

  1. npm install nashville --save

In your code:

  1. // import with es2015
  2. import Nashville from 'nashville'
  3. // load with require()
  4. var Nashville = require('nashville')

Usage

Creating a new Nashville instance

  1. import Nashville from 'nashville'
  2. const song = new Nashville('G major')
  3. song.key // => 'G major'
  4. song.keyRoot // => 'G'
  5. song.keyType // => 'major'
  6. song.keyScale // => [ 'G', 'A', 'B', 'C', 'D', 'E', 'F#', 'G' ]

Get a chord from a NNS degree

  1. import Nashville from 'nashville'
  2. const song = new Nashville('G major')
  3. song.getChord(5) // => 'D'
  4. song.getChord('5/7') // => 'D/F#'
  5. song.getChord('5-') // => 'Dmin'
  6. song.getChord('5o') // => 'Ddim'

Get a chords from a NNS degree sequence

  1. import Nashville from 'nashville'
  2. const song = new Nashville('G major')
  3. song.getChords([1, 4, 5, 1]) // => [ 'G', 'C', 'D', 'G' ]
  4. song.getChords(['1', '5/7', '4', '2', '1', '7']) // => [ 'G', 'D/F#', 'C', 'Am', 'G', 'F#dim' ]

Change key

  1. import Nashville from 'nashville'
  2. const song = new Nashville('G major')
  3. song.getChords([1, 4, 5, 1]) // => [ 'G', 'C', 'D', 'G' ]
  4. song.keyChange('Eb mixolydian') // updates key, keyRoot, keyType, and keyScale
  5. song.getChords([1, 4, 5, 1]) // => [ 'Eb', 'Ab', 'Bbm', 'Eb' ]

Degrees:

Degrees can can single numbers (5), or slash chords (5/7)

Major, minor, and diminished chords are set by the key, but can be overridden with:

  • 4- force a fourth minor chord
  • 2o force a diminished second chord

Accidentals

1.3.0 comes with support for accidentals. Use b, bb, #, ## to include non-diatonic chords.

  1. const song = new Nashville('G major')
  2. song.getChord(5) //=> D
  3. song.getChord('b5') //=> C#
  4. song.getChord('bb5') //=> C
  5. song.getChord('#5') //=> D#
  6. song.getChord('##5') //=> E

Sevenths, extensions & additions

1.3.0 comes with support for extensions & additions. To prevent confusion between roots and extensions, wrap the extension parentheses.

  1. const song = new Nashville('G major')
  2. // Sevenths
  3. song.getChord(5) //=> D
  4. song.getChord('5(maj7)') //=> Dmaj7
  5. song.getChord('5(7)') //=> D7
  6. song.getChord('5-(7)') //=> Dm7
  7. // Extensions
  8. song.getChord('5(5)' //=> D5
  9. song.getChord('5(9)' //=> D9
  10. song.getChord('5(maj13)' //=> Dmaj13
  11. song.getChord('5(13)' //=> D13
  12. song.getChord('5(+9)' //=> Dadd9
  13. song.getChord('5(s2)' //=> sus2
  14. song.getChord('5(s4)' //=> sus4

Key Types

  • scales: major and minor
  • modes: ionian, dorian, phrygian, lydian, mixolydian, aeolian, and locrian

To-do list

  • Capo
  • Degree from chord
  • Workout triads from scale

JavaScript Style Guide