jazz-midi-headless

1.1.4 • Public • Published

jazz-midi-headless

MIDI for headless testing

npm npm build

Usage

npm install jazz-midi-headless --save-dev

JSDOM

const JZZ = require('jzz');
const JMH = require('jazz-midi-headless')(JZZ);
const JSDOM = require('jsdom').JSDOM;

(async () => {
  const dom = await JSDOM.fromFile('test.html', {
    resources: 'usable',
    runScripts: 'dangerously',
    beforeParse: window => { JMH.enable(window); }
  });
  // ...
})();

Puppeteer

const JZZ = require('jzz');
const JMH = require('jazz-midi-headless')(JZZ);
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await JMH.enable(page);
  await page.goto('test.html');
  // ...
})();

Playwright

const JZZ = require('jzz');
const JMH = require('jazz-midi-headless')(JZZ);
const playwright = require('playwright');

(async () => {
  for (const browserType of ['chromium', 'firefox', 'webkit']) {
    const browser = await playwright[browserType].launch();
    const context = await browser.newContext();
    const page = await context.newPage();
    await JMH.enable(page);
    await page.goto('test.html');
    // ...
  }
})();

Virtual ports

Normally, jazz-midi-headless sees all regular MIDI ports available on your system via the JZZ and jazz-midi.
You can create virtual MIDI ports and (optionally) hide the regular ones.

Using JZZ virtual ports:

const JZZ = require('jzz');
const JMH = require('jazz-midi-headless')(JZZ);

const virtual_midi_out = new JZZ.Widget();
JZZ.addMidiOut('VIRTUAL MIDI-Out', virtual_midi_out);
virtual_midi_out.connect(function(msg) { console.log('MIDI received: ' + msg); });

const virtual_midi_in = new JZZ.Widget();
JZZ.addMidiIn('VIRTUAL MIDI-In', virtual_midi_in);

JZZ({ engine: 'none' });
// ...
virtual_midi_in.noteOn(0, 'C#5', 127);
// ...

Using web-midi-test virtual ports:

const JZZ = require('jzz');
const JMH = require('jazz-midi-headless')(JZZ);
const WMT = require('web-midi-test');

const virtual_midi_out = new WMT.MidiDst('VIRTUAL MIDI-Out');
virtual_midi_out.connect();
virtual_midi_out.receive = function(msg) { console.log('MIDI received:', msg); };

const virtual_midi_in = new WMT.MidiSrc('VIRTUAL MIDI-In');
virtual_midi_in.connect();

global.navigator = WMT;

JZZ({ engine: 'webmidi' });
// ...
virtual_midi_in.emit([0x90, 0x61, 0x7f]);
// ...

Please check the test directory for more examples.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.4
    59
    • latest

Version History

Package Sidebar

Install

npm i jazz-midi-headless

Weekly Downloads

89

Version

1.1.4

License

MIT

Unpacked Size

21.4 kB

Total Files

12

Last publish

Collaborators

  • jazz-soft