Bitwig Controller Script for Clip Launching with Korg nanoPAD2

31 Oct 2015

One of the features that got me interested in Bitwig was its open JavaScript API for integrating MIDI controllers.  I'd been meaning to try it out for awhile and this week I finally got around to writing a script for my Korg nanoPAD2 that lets you start and stop clip launcher clips.

korg-nanopad2 The Korg nanoPAD2 controller.

 

The nanoPAD2 has 2 rows of 8 pads each.  By default the pads send MIDI note on/off messages and there are 4 selectable scenes that let you switch to higher note ranges.  In total this works out to a grid of 2 * 8 * 4 = 64 notes.  The script lets you use the pads to trigger clips in Bitwig. It supports 8 tracks and 8 scene clips per track.  The top row of the nanoPAD2 corresponds to track 1 in Bitwig with each pad in the row corresponding to a scene clip in Bitwig's clip launcher.  You use the scene button on the nanoPAD2 to navigate from track 1 and 2 (scene 1 on the nano) to tracks 3 and 4 (scene 2) and so on.

If you'd like to try the script out you can find it at https://github.com/benschmaus/nanopad2-bitwig.

Bitwig's API is very full-featured and well-documented, and it was pretty straightforward to get a script up and running.

To help users get bootstrapped Bitwig ships with a scripting guide along with API docs, which is enough to get you going if you're familiar with JavaScript.  In addition to the built-in docs, there's also a nice series of scripting tutorials on the Keith McMillen blog.  Thomas Helzle's blog also has some good Bitwig tutorial content, and KVR has a Bitwig sub-forum on controller scripting with links to other developer resources.

bitwig-script-guide-api-docs A scripting guide and API docs are accessible from Bitwig's help menu.

 

For script development, Bitwig provides a console that lets you view log output from your script.

bitwig-script-console Bitwig's script console - a basic but effective development tool.

 

It's awesome that Bitwig enables users to customize the behavior of their MIDI controllers through the use of open JavaScript APIs.  This is one of the things that sets Bitwig apart from other DAWs on the market and I hope we'll continue to see great support for end-user programmability and extensibility in Bitwig's feature set in the future.

And feel free to drop me a line if you check out the nanoPAD2 script and have feedback!