0.1.1 • Published 10 years ago
music-key v0.1.1
music-key 
music-key is a collection of functions to create and manipulate music keys:
var key = require('music-key')
key('###') // => 'A major'
key.signature('A major') // => '###'
key.altNotes('A major') // => ['F#', 'C#']
key.relative('minor', 'A major') // => 'F minor'This is part of tonal
Installation
Via npm: npm i --save music-key
User guide
Valid keys
A key in music-key is a string with a tonic and (optionally) a mode: 'C', 'C major','C minor','Ab dorian' are valid keys. The valid modes are: major, minor, ionian, dorian, phrygian, lydian, mixolydian, aeolian and locrian (major if not specified).
Create keys
The key function returns a key from a name or from a signature:
key('C major') // => 'C major'
key('C') // => 'C major'
key('#') // => 'G major'
key('bb') // => 'Eb major'Relative keys
You can get relative keys:
key.relative('minor', 'C major') // => 'A minor'
key.relative('minor', key('#')) // => 'E minor'This function can be partially applied:
var minor = key.relative('minor')
minor('C major') // => 'A minor'#### Get key signature and altered notes
The key signature is a string with the flats or sharps:
key.signature('F major') // => 'b'
key.signature('Eb major') // => 'bbb'
key.signature('A major') // => '###'
key.altNotes('F major') // => ['Bb']
key.altNotes('Eb major') // => ['Bb', 'Eb', 'Ab']
key.altNotes('A major') // => ['F#', 'C#', 'G#']The altered notes are returned in its proper order:
key.altNotes('F major') // => ['Bb']
key.altNotes('Eb major') // => ['Bb', 'Eb', 'Ab']
key.altNotes('A major') // => ['F#', 'C#', 'G#']Get key scale
key.scale('C major') // => ['C', 'D', 'E', 'F', 'G', 'A', 'B']License
MIT License