Database of instrument definitions

Thanks to a suggestion by @Joris.Roling, the MIDI CC & NRPN database’s website now offers Hapax instrument definitions for documented synths.

The instrument definitions are produced according to these rules:

  • TRACKNAME gets set to the device’s name (“Analog Four MKII”)
  • The device’s name and its parameter names are stripped of unsupported characters (:, /, ", etc.)
  • Parameters with MSB only are listed in [CC]
  • Parameters with MSB and LSB are listed in [CC_PAIR]
  • NRPNs appear in [NRPN]. These sometimes duplicate the functionality of parameters in [CC_PAIR]; it seems Hapax uses the NRPN parameter and ignores the CC pair parameter in these cases.

… and with these caveats:

  • TYPE, OUTPORT, OUTCHAN, INPORT, INCHAN, and MAXRATE are all set to NULL, and will need your manual adjustment in a text editor before use
  • [DRUMLANES], [PC], [ASSIGN], [AUTOMATION], and [COMMENT] are left empty
  • There are no defaults provided for [CC], [CC_PAIR], and [NRPN] parameters right now. When the database eventually supports default values, I will update the generated Hapax instrument definitions to include them.

You can browse the database and choose output formats at its website: https://midi.guide. The database is maintained by community members and is provided under the CC-BY-SA-4.0 license. We use a CSV format to maximize the database’s accessibility to non-programmer musicians. You can access the data directly (or add a missing synth! :wink:) at the GitHub repo: GitHub - pencilresearch/midi: MIDI CC & NRPN database

Please let me know if you have any feedback on the generated instrument definitions, or if you find any bugs.

9 Likes

so youre uploading them to your database?

As I understand it, the website generates the definition files from the data that is already on there, no?

1 Like

That’s right - the instrument definitions are generated from the database’s underlying CSVs.

That’s very cool idea, but the CSV has no data on drum note assignments, so the lanes of drum machines can’t be filled.
Still, it’s better than nothing of course.

Also the CSV format is rather limiting. I love the idea of a universal instrument definition format, Squarp is probably closest to something like that, although it’s hapax specific and I couldn’t find an actual spec (beside the example) or license info.