notes-frequencies

Convert a string containing notes into frequencies

Usage no npm install needed!

<script type="module">
  import notesFrequencies from 'https://cdn.skypack.dev/notes-frequencies';
</script>

README

notes-frequencies Build Status

Convert a string containing notes into frequencies

Born to be used with Johnny-Five's Piezo API, maybe useful for something else.

Install

$ npm install --save notes-frequencies

Usage

const notesFrequencies = require('notes-frequencies');

notesFrequencies('A♭4 B♭4 C4@1/2 C#4@1/4 C#4@1/4');
// => [
//      [ 415.305, 1 ],
//      [ 466.164, 1 ],
//      [ 261.626, 0.5 ],
//      [ 277.183, 0.25 ],
//      [ 277.183, 0.25 ]
//    ]

API

notesFrequencies(notes, [rest])

Returns an array of frequencies and their duration.

notes

Type: string

Notes you want to transform into frequencies and their duration.

The notes are written as follow: NoteOcatave@Duration.
NoteOcatave is a value from this table, you can also write a rest as R.
Duration is a value from this table. If a note has a dot you can't write it as 1/4 + 1/8, instead you can use 3/8 or 1.5/4. If you don't write @Duration the function will return 1 as the duration of the note.

rest

value

Type: number, string, null, undefined, object, array
Default: null

The value of a rest, you can set it as everything. Set it as the mute note of the function that you'll use to generate the sound.
This value will be used also when you write something like R@1/2.

enable

Type: boolean
Default: false

Add a rest after each note if enabled.

duration

Type: number
Default: 0.125

The duration of each rest after a note.

Related

License

MIT © Raul Macarie