midibus
v0.3.2
Published
Web MIDI API wrapper based on themidibus
Downloads
3
Maintainers
Readme
midibus
:bus::dash::notes: Web MIDI API wrapper based on themidibus
:globe_with_meridians: Example available on http://pqml.github.io/midibus.js/ :globe_with_meridians:
Installation & Usage
Installation from npm
# using npm
$ npm install --save midibus
# or using yarn
$ yarn add midibus
Usage with a module bundler
// using ES6 modules
import * as midi from 'midibus'
// using CommonJS modules
var midi = require('midibus')
Usage from a browser
<script src="https://unpkg.com/midibus"></script>
<script>
// You can find the library in window.midibus
midibus.access(function() {})
</script>
Example
const midi = require('midibus')
// Assure that the browser have gained access to the MIDI interface
midi.access((err) => {
// Catch Error
if (err) throw err
// Show available inputs & outputs
console.log('Available inputs', midi.inputs)
console.log('Available outputs', midi.outputs)
// Create a new midi bus with available input & output
const magicBus = midi.bus(midi.inputs[0], midi.outputs[0])
// You can also omit the input or the output parameter
const myKeyBoard = midi.bus(midi.inputs[1], null)
// When a kb note is received, pipe it to magicBus, with a constant velocity
myKeyBoard.on('noteOn', ({channel, pitch}) => {
magicBus.send('noteOn', midi.msg(channel, pitch, 80))
})
})
License
MIT.