Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Puck.js MIDI Clicker

Use Puck.js as a BLE MIDI controller. Reacts to single (1), double (2) and triple (3) clicks. Four (4) clicks will broadcast the initial MIDI BLE signal that your computer will be looking for to pair with.

The fastest and simplest way to load this script onto your Puck.js is to use the web IDE. It should only take a few moments to connect and upload.

To start broadcasting a BLE MIDI signal that will allow your computer to pair with Puck.js as a MIDI device you have to triple click the device.

Sends CC values of 80 (single-click), 81 (double-click) and 82 (triple-click) on channel 10.

There are a million ways to repurpose this but I used mine to demonstrate non-musical MIDI applications as a slideshow clicker for my presentation.

Also, because Puck.js is fun and NFC tags are nifty, I've added some lines to take advantage of the NRF.nfcURL() method. In addition to sending a MIDI single for one, two or three clicks, a different NFC URL is broadcast as well. This let me use it a little bit like an invisible business card for capable phones and could be theoretically useful at these talks when I'm telling people to visit my MIDI resource website.

Thanks to joebowbeer/PuckCC for identifying the NRF values to set the Puck.js to broadcast as a BLE MIDI device! It's now available as a module (ble_midi) to all Espruino devices. You can read more about that here:


Use Puck.js as a BLE MIDI controller. Reacts to single, double and triple-clicks.







No releases published


No packages published