tonal-chord
v2.2.2
Published
Music chords creation and manipulation
Downloads
8,596
Readme
Chord
tonal-chord
is a collection of functions to manipulate musical chords
This is part of tonal music theory library.
Example
// es6
import * as Chord from "tonal-chord"
// es5
const Chord = require("tonal-chord")
Example
Chord.notes("CMaj7") // => ["C", "E", "G", "B"]
- Chord
.names(aliases)
⇒ Array.props(name)
⇒ Object.intervals(name)
⇒ Array.<String>.notes(nameOrTonic, [name])
⇒ Array.exists(name)
⇒ Boolean.supersets(name)
⇒ Array.subsets(name)
⇒ Array.tokenize(name)
⇒ Array
Chord.names(aliases)
⇒ Array
Return the available chord names
Kind: static method of Chord
Returns: Array - the chord names
| Param | Type | Description | | --- | --- | --- | | aliases | boolean | true to include aliases |
Example
Chord.names() // => ["maj7", ...]
Chord.props(name)
⇒ Object
Get chord properties. It returns an object with:
- name: the chord name
- names: a list with all possible names (includes the current)
- intervals: an array with the chord intervals
- chroma: chord croma (see pcset)
- setnum: chord chroma number
Kind: static method of Chord
Returns: Object - an object with the properties or a object with all properties
set to null if not valid chord name
| Param | Type | Description | | --- | --- | --- | | name | string | the chord name (without tonic) |
Chord.intervals(name)
⇒ Array.<String>
Get chord intervals. It always returns an array
Kind: static method of Chord
Returns: Array.<String> - a list of intervals or null if the type is not known
| Param | Type | Description | | --- | --- | --- | | name | string | the chord name (optionally a tonic and type) |
Chord.notes(nameOrTonic, [name])
⇒ Array
Get the chord notes of a chord. This function accepts either a chord name (for example: "Cmaj7") or a list of notes.
It always returns an array, even if the chord is not found.
Kind: static method of Chord
Returns: Array - an array of notes or an empty array
| Param | Type | Description | | --- | --- | --- | | nameOrTonic | string | name of the chord or the tonic (if the second parameter is present) | | [name] | string | (Optional) name if the first parameter is the tonic |
Example
Chord.notes("Cmaj7") // => ["C", "E", "G", "B"]
Chord.notes("C", "maj7") // => ["C", "E", "G", "B"]
Chord.exists(name)
⇒ Boolean
Check if a given name correspond to a chord in the dictionary
Kind: static method of Chord
| Param | Type | | --- | --- | | name | string |
Example
Chord.exists("CMaj7") // => true
Chord.exists("Maj7") // => true
Chord.exists("Ablah") // => false
Chord.supersets(name)
⇒ Array
Get all chords names that are a superset of the given one (has the same notes and at least one more)
Kind: static method of Chord
Returns: Array - a list of chord names
| Param | Type | | --- | --- | | name | string |
Chord.subsets(name)
⇒ Array
Find all chords names that are a subset of the given one (has less notes but all from the given chord)
Kind: static method of Chord
Returns: Array - a list of chord names
| Param | Type | | --- | --- | | name | string |
Chord.tokenize(name)
⇒ Array
Tokenize a chord name. It returns an array with the tonic and chord type If not tonic is found, all the name is considered the chord name.
This function does NOT check if the chord type exists or not. It only tries to split the tonic and chord type.
Kind: static method of Chord
Returns: Array - an array with [tonic, type]
| Param | Type | Description | | --- | --- | --- | | name | string | the chord name |
Example
Chord.tokenize("Cmaj7") // => [ "C", "maj7" ]
Chord.tokenize("C7") // => [ "C", "7" ]
Chord.tokenize("mMaj7") // => [ "", "mMaj7" ]
Chord.tokenize("Cnonsense") // => [ "C", "nonsense" ]