Skip to content

mk-pmb/midi-instrument-names-gm1-pmb-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

midi-instrument-names-gm1-pmb

General MIDI Level 1 (GM1) instrument names (patches, families, drums)

 

This library provides a POJO (plain old JavaScript object) representation of the GM1 name tables (archived version) published on the website of The MIDI Association (www.midi.org).

Unfortunately I can't share the tables as just plain data files under a free software license because I couldn't convince The MIDI Association to give me permission to re-publish modified versions of those tables. As long as I don't have that permission myself, obviously I cannot sub-license it to others.

I did however acquire permission to "use" those tables and to "implement" them in my software, so this program puzzles together non-GM1-compliant instrument lists from free software projects into a POJO with the authentic GM1 names. This way I can avoid sharing actual copies of the original lists, by sharing an automated DIY kit instead.

Usage

var gm1inst = require('midi-instrument-names-gm1-pmb');
equal.lists(Object.keys(gm1inst),
  [ 'families', 'instruments', 'drumsOffset', 'drums' ]);
equal(gm1inst.families.length, 16);
equal(gm1inst.instruments.length, 128);
equal(gm1inst.drumsOffset, gm1inst.drums.offset);
equal(gm1inst.drums.length, 47);

Clarifications

  • The GM1 spec defines the names, but it's up to implementers to decide their meaning. Examples:
    • #8: Both a clavinet and a clavichord are valid examples of a "Clavi".

Known issues

  • needs more/better tests and docs

 

License

ISC

About

General MIDI Level 1 (GM1) instrument names (patches, families, drums)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published