1.2.7 • Published 28 days ago

web-midi-test v1.2.7

Weekly downloads
38
License
MIT
Repository
github
Last release
28 days ago

web-midi-test

npm npm build Coverage Status Try web-midi-test on RunKit

Fake Web MIDI API for testing Web MIDI applications

See also: Web MIDI API

See also: midi-test, jazz-midi-headless, test-midi-files

Install: npm install web-midi-test --save-dev

Usage

Node.js

var WMT = require('web-midi-test');
var navigator = { requestMIDIAccess: WMT.requestMIDIAccess };
var performance = { now: WMT.now }; // if required...
// ...

HTML

<script src="node_modules/web-midi-test/wmt.js"></script>
// this will add an object named WMT into the global scope
// ...
if (typeof navigator.requestMIDIAccess == 'undefined') {
  navigator.requestMIDIAccess = WMT.requestMIDIAccess;
}
// ...

TypeScript

tsc myscript.ts --lib es2015,dom

import * as WMT from 'web-midi-test';
// ...

With JSDOM

With Zombie.js

With Puppeteer

With Playwright

API

MIDI access

function onSuccess() { console.log('Success!'); }
function onFail() { console.log('Fail!'); }

// normal scenario
WMT.requestMIDIAccess().then(onSuccess, onFail); // Success!
WMT.requestMIDIAccess({ sysex: true }).then(onSuccess, onFail); // Success!

// no sysex permission scenario
WMT.sysex = false;
WMT.requestMIDIAccess().then(onSuccess, onFail); // Success!
WMT.requestMIDIAccess({ sysex: true }).then(onSuccess, onFail); // Fail!

// no midi permission scenario
WMT.midi = false;
WMT.requestMIDIAccess().then(onSuccess, onFail); // Fail!

MIDI Source (Virtual MIDI-In)

var port = new WMT.MidiSrc('VIRTUAL MIDI-In');
port.connect();
port.emit([0x90, 0x40, 0x7f]);
//...
port.busy = true;  // "another application" captured the port
// Web MIDI can see the port, but can not connect to it
port.busy = false; // "another application" released the port
//...
port.disconnect();

MIDI Destination (Virtual MIDI-Out)

var port = new WMT.MidiDst('VIRTUAL MIDI-Out');
port.receive = function(msg) { console.log('received:', msg); };
port.connect();
//...
port.busy = true;  // "another application" captured the port
// Web MIDI can see the port, but can not connect to it
port.busy = false; // "another application" released the port
//...
port.disconnect();
1.2.7

28 days ago

1.2.6

4 months ago

1.2.5

7 months ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago

0.0.0

5 years ago