2.2.2 • Published 5 years ago

tonal-range v2.2.2

Weekly downloads
21
License
MIT
Repository
github
Last release
5 years ago

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

5 years ago

2.2.1

5 years ago

2.2.0

5 years ago

2.1.2

5 years ago

2.1.0

6 years ago

2.0.0

6 years ago

1.1.2

6 years ago

1.1.0

7 years ago

1.0.0

7 years ago

1.0.0-pre6

7 years ago

0.69.9

7 years ago

0.69.8

7 years ago

0.69.7

7 years ago

0.69.6

7 years ago

0.69.5

7 years ago

0.69.4

7 years ago

0.69.3

7 years ago

0.69.2

7 years ago

0.69.1

7 years ago

0.69.0

7 years ago

0.68.1

7 years ago

0.68.0

7 years ago

0.67.0

7 years ago

0.66.0

7 years ago

0.65.0

7 years ago

0.64.1

7 years ago

0.64.0

7 years ago

0.63.1

7 years ago

0.63.0

7 years ago

0.62.0

7 years ago

0.61.0

7 years ago

0.60.0

7 years ago

0.51.1

8 years ago

0.51.0

8 years ago

0.50.2

8 years ago

0.50.1

8 years ago

0.50.0

8 years ago