tonal-range

2.2.2 • Public • Published

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

Param Type Description
array Array the 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

Param Type Description
list String | Array the 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

Param Type Description
tonic String | Pitch the tonic note or pitch class
range Array | String the 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

Param Type Description
scale Array the scale to use or a function to convert from midi numbers to note names
range Array a 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" ]

Readme

Keywords

Package Sidebar

Install

npm i tonal-range

Weekly Downloads

42

Version

2.2.2

License

MIT

Unpacked Size

69.7 kB

Total Files

17

Last publish

Collaborators

  • danigb