Retrieve the MIDI device model and manufacturer info.
Most MIDI devices, when receiving the ID Request SysEx (f0 7e 7f 06 01 f7),
respond with the ID Response SysEx (f0 7e xx 06 02 xx ... xx f7), which uniquely identifies the model.
JZZ.midi.Gear script extends the JZZ.MIDI.prototype with two functions:
isIdResponse() - return true if the message is an ID Response SysEx, or false otherwise.
gearInfo() - if the message is an ID Response SysEx, return the info object with the following members:
// in Node.js: var JZZ = require('jzz'); require('jzz-midi-gear')(JZZ);
// or in HTML: <script src="JZZ.js"></script> <script src="JZZ.midi.Gear.js"></script>
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(); });
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 your device was not identified correctly, we ebcourge you to let us know, so we could improve the script.