Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


npm npm build Coverage

Retrieve your MIDI device model and manufacturer

See the online demo (requires a MIDI insrument connected to your computer).


npm install jzz-midi-gear
or yarn add jzz-midi-gear
or get the full development version and minified scripts from GitHub


Plain HTML
<script src="JZZ.js"></script>
<script src="JZZ.midi.Gear.js"></script>
CDN (jsdelivr)
<script src=""></script>
<script src=""></script>
CDN (unpkg)
<script src=""></script>
<script src=""></script>
CommonJS (Browserify and Node.js command line applications)
var JZZ = require('jzz');
require(['JZZ', 'JZZ.midi.Gear'], function(JZZ, gear) {
  // ...
// start the MIDI engine:
JZZ({sysex:true}).and(function() {
  var inputs =;
  var outputs =;
  // enable message handlers on all MIDI-In ports:
  for (var i in inputs) this.openMidiIn(i).connect(function(msg) {
    if (msg.isIdResponse()) {
      var gear = msg.gearInfo();
      console.log('ID Response SysEx received:');
      console.log('   port:    ' +;
      console.log('   message: ' + msg);
      console.log('   brand:   ' + gear.brand);
      console.log('   model:   ' + gear.model);
      console.log('   device:  ' + gear.descr);
  // send the ID Request SysEx to all MIDI-Out ports:
  for (var i in outputs) this.openMidiOut(i).sxIdRequest();
// ...
// in Node.js - don't forget to stop the engine when done:
The expected output will look similar to the following:
ID Response SysEx received:
   port:    Roland RD
   message: f0 7e 10 06 02 41 2b 02 00 00 00 01 00 00 f7
   brand:   Roland
   model:   RD-700GX
   device:  Digital Stage Piano


If JZZ.midi.Gear cannot correctly identify your device, please help us fix the script:

- tell us!

  • Please post your device model name, brief description, manufacturer, and ID Response SysEx message at the GitHub issues page


- do it yourself!

  • Clone the project repository from
  • In the project root directory run npm install
  • Update the data/models.txt and/or data/vendors.txt
  • In the project root directory run grunt
  • Commit to your branch
  • Create a pull request