Skip to content

Latest commit

 

History

History
72 lines (52 loc) · 1.51 KB

README.md

File metadata and controls

72 lines (52 loc) · 1.51 KB

midibus

🚌💨🎶 Web MIDI API wrapper based on themidibus



🌐 Example available on http://pqml.github.io/midibus.js/ 🌐



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.