New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

tonal-chord

Package Overview
Dependencies
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tonal-chord

Music chords creation and manipulation

  • 2.2.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
924
decreased by-20.21%
Maintainers
1
Weekly downloads
 
Created
Source

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

ParamTypeDescription
aliasesbooleantrue 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

ParamTypeDescription
namestringthe 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

ParamTypeDescription
namestringthe 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

ParamTypeDescription
nameOrTonicstringname 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

ParamType
namestring

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

ParamType
namestring

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

ParamType
namestring

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]

ParamTypeDescription
namestringthe chord name

Example

Chord.tokenize("Cmaj7") // => [ "C", "maj7" ]
Chord.tokenize("C7") // => [ "C", "7" ]
Chord.tokenize("mMaj7") // => [ "", "mMaj7" ]
Chord.tokenize("Cnonsense") // => [ "C", "nonsense" ]

Keywords

FAQs

Package last updated on 03 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc