npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tonal-chord

v2.2.2

Published

Music chords creation and manipulation

Downloads

8,596

Readme

Chord

npm version tonal

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

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" ]