npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

klaunchpad

v0.0.10

Published

Library for controlling Novation Launchpads

Readme

KLaunchpad (Novation Launchpad for Kotlin and many other languages)

Kotlin Launchpad is a high-level library for manipulating and interacting with Novation Launchpads.

It provides two main unified interfaces: Launchpad and Pad, which can represent any Launchpad.

Theoretically support for other grid-based control surfaces such as MIDI fighters could be built.

It is also a personal challenge to build one library and support as many languages as possible using one main library, and a testament to Kotlin's ability to do this. You can use KLaunchpad from a multitude of languages, not just Kotlin.

Using this Library (Installation)

Kotlin Multiplatform

TODO

On the JVM (Java, Kotlin, Groovy, Scala etc)

Maven:

TODO

Gradle:

TODO

In JavaScript (JavaScript, TypeScript

KLaunchpad supports usage in the browser via JavaScript. It does not support Node.js because Node does not implement the Web MIDI API.

NPM: klauchpad

Pure JS: TODO

Via a native shared library (C, Go, Rust, Python, etc)

This is only supported on Windows at the moment.

TODO

Examples

Standard examples, available in every language that has examples:

  • Different Lighting Modes - Shows off solid, flash and pulse lighting modes. Demonstrates using different lighting modes.
  • Enter Bootloader - Forces the launchpad to open its bootloader menu.
  • Faders - The launchpad acts as a bank of faders. Demonstrates using the native fader mode of the Launchpad. Two modes: Unipolar and Bipolar faders.
  • Flash Pressed Pad - The pressed pad will flash between red and blue with a period of 1 second. Demonstrates 2-colour flashing.
  • Hello World - The text "Hello World" will scroll across the launchpad. Demonstrates the Launchpad's native text scrolling.
  • Light All When Pressed - Pressing a pad will light all pads in a random color. Demonstrates updating every pad at once.
  • Light Around Pressed Pad - Pressing a pad will light it and the pads next to it in a random color. Demonstrates using the grid coordinate system to find pads.
  • Light Pressed Coordinate - Pressing a pad will light its row and its column in a random color. Demonstrates updating a whole row or column of pads at once.
  • Light Pressed Pad - Pressing a pad will light it in a random color. Demonstrates updating pads and listening for pad updates.

JVM (Java, Kotlin, Groovy, Scala etc)

JS (JavaScript, TypeScript)

Via a native shared library (C, Go, Rust, Python, etc)

Launchpad Support

Gen 1:

  • Launchpad (Original): Not Supported
  • Launchpad S: Not Supported
  • Launchpad Mini: Not Supported

Gen 2:

  • Launchpad MK2: Fully Supported
  • Launchpad Pro: Fully Supported but untested, likely buggy

Gen 3:

  • Launchpad Mini MK3: Not Supported
  • Launchpad X: Not Supported, but support planned
  • Launchpad Pro MK3: Not Supported

Platform Support

  • JVM: Supported, using Java MIDI API
  • JS: Supported for Web both in NPM (eg. React) and Pure JS, using Web MIDI API. Not supported in Node.JS / non web.
  • Native:
    • Windows: Supported, using winmm.dll
    • Other platforms: Not supported.

Building KLaunchpad

TODO