Retrieve your MIDI device model and manufacturer
Switch branches/tags
Clone or download
Latest commit 7468d4e Sep 23, 2018
Permalink
Failed to load latest commit information.
data add: Mar 6, 2018
javascript setGearInfo() Sep 24, 2018
minified setGearInfo() Sep 24, 2018
test Improved coverage Sep 24, 2018
.gitattributes Added .gitattributes Dec 13, 2016
.gitignore Added scripts May 6, 2016
.npmignore .npmignore Aug 5, 2018
.travis.yml Version upgrade Aug 5, 2018
Gruntfile.js setGearInfo() Sep 24, 2018
README.md Version upgrade Aug 5, 2018
bower.json setGearInfo() Sep 24, 2018
package.json setGearInfo() Sep 24, 2018
test.html AMD and CommonJS Jan 23, 2018
test.js AMD and CommonJS Jan 23, 2018

README.md

JZZ-midi-Gear

npm Build Status Coverage

Retrieve your MIDI device model and manufacturer

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

Install

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

Usage

Plain HTML
<script src="JZZ.js"></script>
<script src="JZZ.midi.Gear.js"></script>
//...
CDN (always the latest version!)
<script src="https://cdn.jsdelivr.net/npm/jzz"></script>
<script src="https://cdn.jsdelivr.net/npm/jzz-midi-gear"></script>
//...
CommonJS (Browserify and Node.js command line applications)
var JZZ = require('jzz');
require('jzz-midi-gear')(JZZ);
//...
AMD
require(['JZZ', 'JZZ.midi.Gear'], function(JZZ, gear) {
  // ...
});
//...
// start the MIDI engine:
JZZ({sysex:true}).and(function() {
  var inputs = this.info().inputs;
  var outputs = this.info().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:    ' + this.name());
      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:
JZZ().wait(500).close();
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

Updates

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

- tell us!

or,

- do it yourself!

  • Clone the project repository from https://github.com/jazz-soft/JZZ-midi-Gear.git
  • In the project root directory run npm update
  • 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

Your questions and comments are welcome here.