Skip to content

Instantly share code, notes, and snippets.

@tmpvar
Created March 25, 2014 05:04
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save tmpvar/9755544 to your computer and use it in GitHub Desktop.
pipe midi events from canary into node over websockets
node_modules
skateboard(function(stream) {
// see: http://webaudio.github.io/web-midi-api/
navigator.requestMIDIAccess().then(function sucess(midi) {
var inputs = midi.inputs();
console.log('inputs:', inputs);
if (inputs.length > 0) {
inputs[0].onmidimessage = function(ev) {
console.log('sending', ev.data);
stream.write(new Int8Array(ev.data));
};
}
}, function error(e) {
throw e;
});
});
<html>
<head>
<title>midi over websockets demo</title>
<script type="text/javascript" src="skateboard.min.js"></script>
</head>
<body>
<script type="text/javascript" src="client.js"></script>
</body>
</html>
{
"dependencies": {
"midi": "^0.8.1",
"skateboard": "^0.2.8"
}
}
var midi = require('midi');
var skateboard = require('skateboard');
var output = new midi.output();
output.openVirtualPort('hello again');
var midiStream = midi.createWriteStream(output);
skateboard({ dir: './', port: 9888 }, function(stream) {
stream.pipe(midiStream);
stream.on('data', function(d) {
console.log(d);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment