-
add
-
Add interval to a gamut
Like all the functions from gamut, this works with pitch-array notation format arrays. Probably you will want to decorate this function with
gamut.notesorgamut.intervals(see example)- Source:
Example
gamut.add([1, 0, 0], [ [1, 0, 0], [2, 0, 0]]) // => [ [2, 0, 0], [3, 1, 0] ] var transpose = gamut.notes(gamut.add) transpose('2M', 'C D E') // => [ 'D', 'E', 'F#' ] var addIntervals = gamut.intevals(gamut.add) addIntervals('2M', '1P 2M 3M') // => [ '2M', '3M', '4A' ]
-
asArray(source) → {Array}
-
Get an array from a source. The source can be a string separated by spaces, commas or bars (
|), an array or an object.This function does not perform any transformation to the items of the array. This function always return an array, even if its empty
Parameters:
Name Type Description sourceString | Array | Object the source
- Source:
Returns:
the source converted to an array
- Type
- Array
Example
gamut.asArray('c d e') // => [ 'c', 'd', 'e' ] gamut.asArray('CMaj7 | Dm7 G7') // => [ 'CMaj7', 'Dm7', 'G7' ] gamut.asArray('1, 2, 3') // => ['1', '2', '3'] gamut.asArray([1, 'a', 3]) // => [1, 'a', 3] gamut.asArray(object) // => [ object ] gamut.asArray(null) // => [ ] -
chord(source, tonic) → {Array}
-
Build a chord from a source and a tonic
A source can be a list of intervals or notes. The tonic must be a pitch (with or without octave)
This function is currified, so you can partially apply the function passing one parameter instead of two (see example)
Parameters:
Name Type Description sourceArray the list of intervals or notes
tonicString the tonic of the chord or null to get the intervals
Returns:
the chord notes (or intervals if null tonic)
- Type
- Array
Example
var chord = require('music-chord') chord('1 3 5 6', 'G') // => ['G', 'B', 'D', 'E'] var maj79 = chord('C E G B D') maj79('A4') // => ['A4', 'C#5', 'E5', 'G#5', 'B5'] -
dictionary(chordNames, aliases) → {function}
-
Create a chord dictionary
Parameters:
Name Type Description chordNamesHash a hash that maps names to intervals (or notes)
aliasesHash (Optional) a hash that maps names to names or null
- Source:
Returns:
a function
chord(name, tonic)- Type
- function
Example
var dictionary = require('music-chord/dictionary') chords = dictionary({M: 'C E G', m: 'C Eb G'}) chords('m', 'F') // => ['F', 'Ab', 'C'] chords('M', 'A4') // => ['A4', 'C#5', 'E5'] -
fromName(name, tonic) → {Array}
-
Build chords by name
The same as
chordfunction but using chord names instead of intervals. The chord name may contain the tonic placed before the type (see example)Parameters:
Name Type Description nameString the chord name
tonicString (Optional) the tonic
- Source:
Returns:
an array of notes in ascending order or null
- Type
- Array
Example
var fromName = require('music-chord/fromName') fromName('C7b9') // => ['C', 'E', 'G', 'Bb', 'Db'] -
gamut()
-
Gamut
- Source:
-
intervals()
-
Get the gamut as intervals or decorate a function to return intervals
- Source:
Example
gamut.intervals('C D E') // => [] var addIntervals = gamut.intervals(gamut.add) addIntervals('2M', '1P 5P') // => ['2M', '6M'] -
map(fn, source) → {Array}
-
Get a gamut mapped to a function
Is important to notice that the function will receive pitches in pitch-array notation format.
This function can be partially applied
Parameters:
Name Type Description fnfunction the function to map the gamut with
sourceString | Array the gamut
- Source:
Returns:
the mapped gamut
- Type
- Array
Example
var addOctave = function(p) { return [p[0], p[1], p[2] + 1]} gamut.map(addOctave, [ [0, 0, 0], [1, 0, 0] ]) // => [ [0, 0, 1], [1, 0, 1]] var octaveUp = gamut.map(addOctave) octaveUp([ [0, 0, 0], [1, 0, 0] ]) // => [ [0, 0, 1], [1, 0, 1]] -
notes()
-
Get notes from a gamut, or decorate a function to return notes
- Source:
Example
gamut.notes('1P 2M 3M') // => ['C0', 'D0', 'E0'] var transpose = gamut.notes(gamut.add) transpose('2M', 'C D E') // => [ 'D', 'E', 'F#' ] -
parse(source) → {Array}
-
Convert a list of notes or intervals to pitch-array notation format
Parameters:
Name Type Description sourceString | Array the gamut
- Source:
Returns:
the gamut with notes or intervals in pitch-array notation format
- Type
- Array
Example
gamut.parse('C D E') // => [ [0, 0, null], [1, 0, null], [2, 0, null] ] gamut.parse('1P 3M 5P') // => [ [0, 0, 0], [2, 0, 0], [4, 0, 0] ] -
pitchClass()
-
Get the pitch classes of a gamut
- Source:
-
set()
-
Get a set
- Source:
-
sort()
-
Sort a gamut by frequency
- Source:
-
uniq()
-
Remove duplicates from a gamut
- Source: