@vliegwerk/novation v1.0.1
node-novation
Node.js interface for Novation Launchkey Mini and Launchpad Mini controllers.
This library currently supports the following controllers:
- Launchkey Mini Mk2
 - Launchpad Mini Mk3
 
What does this library do?
This library supports the following interactions with Novation controllers:
- Sending and receiving MIDI messages
 - Controlling LEDs
 - Enabling extended mode (InControl) on Launchkey Mini Mk2 controllers
 - Setting modes (e.g. DAW mode) and selecting layouts (e.g. Session layout) on Launchpad Mk3 controllers
 
Installation
yarn add @vliegwerk/novationor
npm install @vliegwerk/novation --saveBasic usage
The following code can be used to initialize and connect to a Launchkey controller:
const { Launchkey } = require('@vliegwerk/novation')
const controller = new Launchkey()
controller.connect()Similarly, you can use the following code for a Launchpad controller:
const { Launchpad } = require('@vliegwerk/novation')
const controller = new Launchpad()
controller.connect()This code creates a new Launchkey or Launchpad instance which depends on the midi library for sending and receiving MIDI messages, and the @lachenmayer/midi-messages library for encoding and decoding these MIDI messages.
The Launchkey and Launchpad classes emit an event whenever a MIDI message is received or when some error has occured. For instance, to listen for the keys pressed on a Launchkey controller:
const { Launchkey } = require('@vliegwerk/novation')
const controller = new Launchkey()
controller.on('connected', () => {
	controller.on('NoteOn', (message) => {
		console.log('NoteOn event:',message)
	})
}
controller.on('error', (err) => {
	console.error('Error occured:', err)
})
controller.connect()The argument of the event listener contains a JSON version of the MIDI message sent by the controller. For example:
{
    type: 'NoteOn',
    channel: 1,
    note: 60,
    velocity: 34,
    port: 'Launchkey Mini LK Mini MIDI'
}For more examples, see the examples folder in the node-novation repository on GitHub. Check out these examples to find out how to send messages to the controller to control LEDs, modes, and layouts.
Extras
- See the License file for license rights and limitations (MIT).
 - Pull Requests are welcome!