We Make Awesome Sh

Controlling a Novation Launchpad with node.js

If like me, ableton totally confuses you, however you have some knowledge of coding, and so still want to be able to make the launchpad you b*tch. Then hopefully this little tutorial might be able to give you a helping hand.

What you need

  • node.js
  • npm
  • Novation launchpad
  • a Mac - you don’tneeda mac for this, however I’m going to presume you have got one.

Installing node

I won’t run you through this process as there are plenty of tutorials out there, here’s one for example.

Installing npm

This is another process I won’t walk you through, however here’s a good guide to it.

Let’s get started

Create a new folder, then using terminal navigate to the folder, and run

npm install midi-launchpad

Now create a new file (app.js) in the folder.

midiport should be a number, you might need to play until you get the right one. For me, the port number is 0. Trust me when I say you know when you have the right one.

Then go back to terminal and run:

node app.js

You should see the following output:


Wooo, it’s working, you should see the launchpad buttons light up in a wave, this is the initialisation script.


Now, let’s get to the fun bit. So, we want to light up specific buttons. Let’s say we want the four corner buttons to be green, and we want the second column to be red.

Modify app.js to be:


OK, so we’ve got specific buttons lighting up in the way we want. Now we
want to make them animated.


OK, now we want to handle user input, we no longer want to just use the launchpad as a screen.

Let’s make it so that every time you press a button, it goes green.


Now we want to make it so that the lights go off when you release the button.


So there you have it, those are the basics on commandeering a launchpad without the need for ableton. From here you can then make it do all kinds of things.

For more information on the capabilities of the midi-launchpad library, check out the README over on github.

Recent Articles

comments powered by Disqus