Skip to content

Retrieve your MIDI device model and manufacturer

License

Notifications You must be signed in to change notification settings

jazz-soft/JZZ-midi-Gear

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c84e6fa · Feb 12, 2025

History

93 Commits
May 19, 2024
Jun 13, 2024
Jun 13, 2024
Jun 13, 2024
Feb 14, 2021
Dec 13, 2016
May 6, 2016
Feb 12, 2025
Sep 24, 2018
Feb 12, 2025
May 12, 2023
Jun 25, 2024
Feb 12, 2025
Jan 23, 2018
Jan 23, 2018

Repository files navigation

JZZ-midi-Gear

npm npm build 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 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 (jsdelivr)
<script src="https://cdn.jsdelivr.net/npm/jzz"></script>
<script src="https://cdn.jsdelivr.net/npm/jzz-midi-gear"></script>
//...
CDN (unpkg)
<script src="https://unpkg.com/jzz"></script>
<script src="https://unpkg.com/jzz-midi-gear"></script>
//...
CommonJS
var JZZ = require('jzz');
require('jzz-midi-gear')(JZZ);
//...
TypeScript / ES6
import { JZZ } from 'jzz';
import { Gear } from 'jzz-midi-gear';
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 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

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 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

Thanks for your support!

Stargazers for @jazz-soft/JZZ-midi-Gear
Forkers for @jazz-soft/JZZ-midi-Gear

About

Retrieve your MIDI device model and manufacturer

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 5