Narcoleptic Programmers' Medicine

    tonal-distance

    2.2.2 • Public • Published

    Distance

    npm version tonal

    Transpose notes by intervals and find distances between notes

    Example

    // es6
    import * as Distance from "tonal-distance"
    Distance.interval("C3", "C4") // => "1P"

    Example

    // es6 import selected functions
    import { interval, semitones, transpose } from "tonal-distance"
     
    semitones("C" ,"D") // => 2
    interval("C4", "G4") // => "5P"
    transpose("C4", "P5") // => "G4"

    Example

    // included in tonal facade
    const Tonal = require("tonal");
    Tonal.Distance.transpose("C4", "P5")
    Tonal.Distance.transposeBy("P5", "C4")

    Distance.transpose(note, interval)string

    Transpose a note by an interval. The note can be a pitch class.

    This function can be partially applied.

    Kind: static method of Distance
    Returns: string - the transposed note

    Param Type
    note string
    interval string

    Example

    import { tranpose } from "tonal-distance"
    transpose("d3", "3M") // => "F#3"
    // it works with pitch classes
    transpose("D", "3M") // => "F#"
    // can be partially applied
    ["C", "D", "E", "F", "G"].map(transpose("M3)) // => ["E""F#""G#""A""B"]

    Distance.trFifths(pitchClass, fifhts)string

    Transpose a pitch class by a number of perfect fifths.

    It can be partially applied.

    Kind: static method of Distance
    Returns: string - the transposed pitch class

    Param Type Description
    pitchClass string the pitch class
    fifhts Integer the number of fifths

    Example

    import { trFifths } from "tonal-transpose"
    [0, 1, 2, 3, 4].map(trFifths("C")) // => ["C", "G", "D", "A", "E"]
    // or using tonal
    Distance.trFifths("G4", 1) // => "D"

    Distance.fifths(to, from)

    Get the distance in fifths between pitch classes

    Can be partially applied.

    Kind: static method of Distance

    Param Type Description
    to string note or pitch class
    from string note or pitch class

    Distance.transposeBy(note, interval)string

    The same as transpose with the arguments inverted.

    Can be partially applied.

    Kind: static method of Distance
    Returns: string - the transposed note

    Param Type
    note string
    interval string

    Example

    import { tranposeBy } from "tonal-distance"
    transposeBy("3m", "5P") // => "7m"

    Distance.add(interval1, interval2)string

    Add two intervals

    Can be partially applied.

    Kind: static method of Distance
    Returns: string - the resulting interval

    Param Type
    interval1 string
    interval2 string

    Example

    import { add } from "tonal-distance"
    add("3m", "5P") // => "7m"

    Distance.subtract(minuend, subtrahend)string

    Subtract two intervals

    Can be partially applied

    Kind: static method of Distance
    Returns: string - interval diference

    Param Type
    minuend string
    subtrahend string

    Distance.interval(from, to)string

    Find the interval between two pitches. It works with pitch classes (both must be pitch classes and the interval is always ascending)

    Can be partially applied

    Kind: static method of Distance
    Returns: string - the interval distance

    Param Type Description
    from string distance from
    to string distance to

    Example

    import { interval } from "tonal-distance"
    interval("C2", "C3") // => "P8"
    interval("G", "B") // => "M3"

    Example

    import * as Distance from "tonal-distance"
    Distance.interval("M2", "P5") // => "P4"

    Distance.semitones(from, to)Integer

    Get the distance between two notes in semitones

    Kind: static method of Distance
    Returns: Integer - the distance in semitones or null if not valid notes

    Param Type Description
    from String | Pitch first note
    to String | Pitch last note

    Example

    import { semitones } from "tonal-distance"
    semitones("C3", "A2") // => -3
    // or use tonal
    Tonal.Distance.semitones("C3", "G3") // => 7

    Install

    npm i tonal-distance

    DownloadsWeekly Downloads

    338

    Version

    2.2.2

    License

    MIT

    Unpacked Size

    39.4 kB

    Total Files

    8

    Last publish

    Collaborators

    • danigb