Skip to content
A series of methods to work with MIDI
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Methods for dealing with MIDI data (note numbers, note names, frequencies, etc).

Install with NPM

Getting it


Install using npm:

npm install midiutils

Then require it before using in your code:

var MIDIUtils = require('midiutils');


Just the browser, thanks!

You can also download/clone the source. Then just include the source using a script tag before using the library:

<script src="path/to/MIDIUtils.js"></script>


noteNameToNoteNumber( name )

Returns the MIDI note number corresponding to the note name.

MIDIUtils.noteNameToNoteNumber( 'A-0' );    // returns 21
MIDIUtils.noteNameToNoteNumber( 'C-4' );    // returns 60

noteNumberToFrequency( number )

Returns the frequency represented by noteNumber.

MIDIUtils.noteNumberToFrequency( 69 ); // returns 440 Hz -- i.e. A-4

noteNumberToName( number )

Returns the MIDI note name corresponding to the note number.

MIDIUtils.noteNumberToName( 21 ); // returns 'A-0'

frequencyToNoteNumber( frequency )

Returns the note number that corresponds to this frequency.

MIDIUtils.frequencyToNoteNumber( 440.000 ); // returns 69

Getting involved

If you want to get involved with the development of this library or want to contribute, make sure the code you add or change follows the same style as the existing code (whitespace, indenting, etc) and looks consistent with the rest.

Also new features must also be accompanied by both documentation and examples, and new tests demonstrating the usage of the feature, and existing tests must not break.

You can’t perform that action at this time.