GN-Launchpad
This is an in-progress project.
GN-Launchpad is a host and configuration platform for the Novation Launchpad written in TypeScript with JavaScript compilation target. The goal of the project is to create a JSON-configurable host that allows users to quickly and with great flexibility configure the behavior of their Launchpad for custom applications within any MIDI environment. The design follows a JSON-configurable “batteries included, but removable” approach, which provides sensible defaults, but also allows quick and extensible configuration. Current MIDI host environment targets include Cycling74 Max and Chrome, while theoretically any MIDI-capable JavaScript environment is possible.
The idea is to be able to configure the launchpad behavior with a simple JSON configuration like below. The below configuration means toggle one button on and off, but only one per row.
{
"scenes": [{
"sceneName": "toggler",
"sceneIndex": 0,
"handlers": [{
"type": "xyButton",
"row": "all",
"col": "all",
"handlerStates": [{
"index": 0,
"color": "off",
"transitions": [{
"eventType": "push",
"toIndex": 1
}]
},
{
"index": 1,
"color": "red",
"transitions": [{
"eventType": "push",
"toIndex": 0
}],
"sideEffects": [{
"row": "same",
"col": "all",
"color": "off"
}]
}]
}]
}]
}