npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@guillaumearm/midiutils

v0.1.0

Published

A series of methods to work with MIDI

Downloads

4

Readme

MIDIUtils

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

Install with NPM

Getting it

Node/Browserify

Install using npm:

npm install midiutils

Then require it before using in your code:

var MIDIUtils = require('midiutils');

MIDIUtils.noteNameToNoteNumber('A-4');

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>

API

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.