tonal-freq

Conversion between frequencies and note names

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
tonal-freq
0.69.95 years ago7 years agoMinified + gzip package size for tonal-freq in KB

Readme

freq
npm version tonal
tonal-freq is a collection of functions to perform calculations related to frequencies.
This is part of tonal music theory library.

Usage

var freq = require('tonal-freq')
freq.toFreq('A4') // => 440
freq.note(440) // => 'A4'
freq.noteAndDetune(320) // => ['C4', 200]

Install

npm install tonal-freq

API Documentation

* [`.eqTempFreq(ref, maxDecimals, note)`](#module_freq.eqTempFreq) ⇒ <code>Number</code>
* [`.toFreq(note)`](#module_freq.toFreq) ⇒ <code>Float</code>
* [`.eqTempFreqToMidi(tuning, freq)`](#module_freq.eqTempFreqToMidi) ⇒ <code>Number</code>
* [`.toMidi(freq)`](#module_freq.toMidi) ⇒ <code>Number</code>
* [`.note(freq, useSharps)`](#module_freq.note) ⇒ <code>String</code>
* [`.cents(base, freq)`](#module_freq.cents) ⇒ <code>Integer</code>

freq.eqTempFreq(ref, maxDecimals, note)Number

Return the equal tempered frequency of a note.
This function can be partially applied if note parameter is not present.
Kind: static method of freq
Returns: Number - the frequency
| Param | Type | Description | | --- | --- | --- | | ref | Float | the tuning reference | | maxDecimals | Integer | (Optional) the maximum number of decimals (all by default) | | note | String \| Pitch | the note to get the frequency from |
Example
eqTempFreq(444, 4, 'C3')
const toFreq = eqTempFreq(444, 2)
toFreq('A3') // => 222

freq.toFreq(note)Float

Get the frequency of note with 2 decimals precission using A4 440Hz tuning
This is an alias for: eqTempFreq(440, 2, <note>)
Kind: static method of freq
Returns: Float - the frequency in herzs
| Param | Type | Description | | --- | --- | --- | | note | Number \| String | the note name or midi number |
Example
freq.toFreq('A4') // => 440
freq.toFreq('C4') // => 261.63

freq.eqTempFreqToMidi(tuning, freq)Number

Get the midi note from a frequency in equal temperament scale. You can specify the number of decimals of the midi number.
Kind: static method of freq
Returns: Number - the midi number
| Param | Type | Description | | --- | --- | --- | | tuning | Float | (Optional) the reference A4 tuning (440Hz by default) | | freq | Number | the frequency |

freq.toMidi(freq)Number

Get midi number from frequency with two decimals of precission.
This is an alisas for: eqTempFreqToMidi(440, 2, <freq>)
Kind: static method of freq
Returns: Number - midi number
| Param | Type | | --- | --- | | freq | Float |
Example
freq.toMidi(361) // => 59.96

freq.note(freq, useSharps)String

Get note name from frequency using an equal temperament scale with 440Hz as reference
Kind: static method of freq
Returns: String - note name
| Param | Type | Description | | --- | --- | --- | | freq | Float | | | useSharps | Boolean | (Optional) set to true to use sharps instead of flats |
Example
freq.note(440) // => 'A4'

freq.cents(base, freq)Integer

Get difference in cents between two frequencies. The frequencies can be expressed with hertzs or midi numbers or note names
Kind: static method of freq
Returns: Integer - The difference in cents
| Param | Type | | --- | --- | | base | Float \| Integer \| String | | freq | Float \| Integer \| String |
Example
import { cents } from 'tonal-freq'
cents('C4', 261) // => -4