Jazz-Soft.net
We make it sound!
Home » Examples » MIDI Gear

MIDI Gear





Note

Chrome WebMIDI Api requires secure connection to allow SysEx messages.

How it works

In this demo, we send the ID Request SysEx (f0 7e 7f 06 01 f7) to each MIDI Out, and wait for the ID Response SysEx (f0 7e xx 06 02 xx ... xx f7) from MIDI In-s.

You must have a MIDI instrument connected to your computer.

If your device is not properly recognized, please send us the response string and the model of your device for we could update our scripts to recognize it in the future.

Some MIDI devices don't send ID Response.

Page source

<!DOCTYPE html>
<html>
<head>
<title>MIDI Gear</title>
<script src="JZZ.js"></script>
<script src="JZZ.midi.Gear.js"></script>
</head>

<body>
<h1>MIDI Gear</h1>
<pre id=out></pre>

<script><!--
var out = document.getElementById('out');
var txt = '';
function onMidiMsg(msg) {
  if (msg.isIdResponse()) {
    var gear = msg.gearInfo();
    txt += ['ID Response SysEx received:',
            '   <em>port:</em>    ' + this.name(),
            '   <em>message:</em> ' + msg,
            '   <em>brand:</em>   ' + gear.brand,
            '   <em>model:</em>   ' + gear.model,
            '   <em>device:</em>  ' + gear.descr, '', ''].join('\n');
    out.innerHTML = txt;
  }
}
JZZ({sysex:true, degrade:true})
   .or(function(){ out.innerHTML = 'Cannot start MIDI engine!'; })
   .and(function(){
      out.innerHTML = 'No ID Response SysEx received...';
      var info = this.info();
      for (var i in info.inputs) this.openMidiIn(i).connect(onMidiMsg);
      for (var i in info.outputs) this.openMidiOut(i).sxIdRequest();
    });
--></script>

</body>
</html>

See also