Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
tonal-freq
Advanced tools
tonal-freq
is a collection of functions to perform calculations related to frequencies.
This is part of tonal music theory library.
var freq = require('tonal-freq')
freq.toFreq('A4') // => 440
freq.note(440) // => 'A4'
freq.noteAndDetune(320) // => ['C4', 200]
.eqTempFreq(ref, maxDecimals, note)
⇒ Number
.toFreq(note)
⇒ Float
.eqTempFreqToMidi(tuning, freq)
⇒ Number
.toMidi(freq)
⇒ Number
.note(freq, useSharps)
⇒ String
.cents(base, freq)
⇒ Integer
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
FAQs
Conversion between frequencies and note names
We found that tonal-freq 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
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
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.