Security News
cURL Project and Go Security Teams Reject CVSS as Broken
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
tonal-distance
Advanced tools
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")
.transpose(note, interval)
⇒ string
.trFifths(pitchClass, fifhts)
⇒ string
.fifths(to, from)
.transposeBy(note, interval)
⇒ string
.add(interval1, interval2)
⇒ string
.subtract(minuend, subtrahend)
⇒ string
.interval(from, to)
⇒ string
.semitones(from, to)
⇒ Integer
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
FAQs
Transpose notes and find intervals between them
The npm package tonal-distance receives a total of 1,203 weekly downloads. As such, tonal-distance popularity was classified as popular.
We found that tonal-distance demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.