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

tonal-range

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tonal-range

Create ranges of notes

  • 1.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
6
decreased by-66.67%
Maintainers
1
Weekly downloads
 
Created
Source

Range

A collection of functions to create note ranges.

Example

const Range = require("tonal-range")
import * as Range from "tonal-range"

Example

// ascending chromatic range
Range.chromatic(["C4", "E4"]) // => ["C4", "Db4", "D4", "Eb4", "E4"]
// descending chromatic range
Range.chromatic(["E4", "C4"]) // => ["E4", "Eb4", "D4", "Db4", "C4"]
// combining ascending and descending in complex ranges
Range.chromatic(["C2", "E2", "D2"]) // => ["C2", "Db2", "D2", "Eb2", "E2", "Eb2", "D2"]
// numeric (midi note numbers) range
Range.numeric(["C4", "E4", "Bb3"]) // => [60, 61, 62, 63, 64]
// complex numeric range
Range.numeric(["C4", "E4", "Bb3"]) // => [60, 61, 62, 63, 64, 63, 62, 61, 60, 59, 58]

Range.numeric(array)Array

Create a numeric range. You supply a list of notes or numbers and it will be conected to create complex ranges.

Kind: static method of Range
Returns: Array - an array of numbers or empty array if not vald parameters

ParamTypeDescription
arrayArraythe list of notes or numbers used

Example

Range.numeric(["C5", "C4"]) // => [ 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60 ]
// it works midi notes
Range.numeric([10, 5]) // => [ 10, 9, 8, 7, 6, 5 ]
// complex range
Range.numeric(["C4", "E4", "Bb3"]) // => [60, 61, 62, 63, 64, 63, 62, 61, 60, 59, 58]
// can be expressed with a string or array

Range.chromatic(list)Array

Create a range of chromatic notes. The altered notes will use flats.

Kind: static method of Range
Returns: Array - an array of note names

ParamTypeDescription
listString | Arraythe list of notes or midi note numbers

Example

Range.chromatic("C2 E2 D2") // => ["C2", "Db2", "D2", "Eb2", "E2", "Eb2", "D2"]
// with sharps
Range.chromatic("C2 C3", true) // => [ "C2", "C#2", "D2", "D#2", "E2", "F2", "F#2", "G2", "G#2", "A2", "A#2", "B2", "C3" ]

Range.fifths(tonic, range)Array

Create a range with a cycle of fifths

Kind: static method of Range
Returns: Array - a range of cycle of fifths starting with the tonic

ParamTypeDescription
tonicString | Pitchthe tonic note or pitch class
rangeArray | Stringthe range array

Example

Range.fifths("C", [0, 6]) // => [ "C", "G", "D", "A", "E", "B", "F#" ])

Range.scale(scale, range)Array

Create a scale (pitch class set) Range. Given a scale (a pitch class set) and a range array, it returns a range in notes.

Can be partially applied

Kind: static method of Range
Returns: Array - the scale range, an empty array if not valid source or null if not valid start or end

ParamTypeDescription
scaleArraythe scale to use or a function to convert from midi numbers to note names
rangeArraya list of notes or midi numbers

Example

Range.scale("C D E F G A B", ["C3", "C2"])
// => [ "C3", "B2", "A2", "G2", "F2", "E2", "D2", "C2" ]
const majorC = Range.scale("C D E F G A B")
majorC(["C3", "C2"]) * // => [ "C3", "B2", "A2", "G2", "F2", "E2", "D2", "C2" ]

Keywords

FAQs

Package last updated on 04 Oct 2017

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