{"id":20776412,"url":"https://github.com/andeemarks/clj-launchpad-mk2","last_synced_at":"2025-08-22T05:34:57.430Z","repository":{"id":62431495,"uuid":"100561069","full_name":"andeemarks/clj-launchpad-mk2","owner":"andeemarks","description":"This library provides a Clojure interface to access the Novation Launchpad MK2 programmatically.","archived":false,"fork":false,"pushed_at":"2022-02-06T21:25:52.000Z","size":135,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-20T20:16:25.122Z","etag":null,"topics":["clojure","launchpad","midi","mk2","novation"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andeemarks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-17T04:22:28.000Z","updated_at":"2022-12-03T18:16:04.000Z","dependencies_parsed_at":"2022-11-01T20:46:37.912Z","dependency_job_id":null,"html_url":"https://github.com/andeemarks/clj-launchpad-mk2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andeemarks%2Fclj-launchpad-mk2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andeemarks%2Fclj-launchpad-mk2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andeemarks%2Fclj-launchpad-mk2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andeemarks%2Fclj-launchpad-mk2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andeemarks","download_url":"https://codeload.github.com/andeemarks/clj-launchpad-mk2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243119669,"owners_count":20239319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clojure","launchpad","midi","mk2","novation"],"created_at":"2024-11-17T13:08:06.559Z","updated_at":"2025-08-22T05:34:57.418Z","avatar_url":"https://github.com/andeemarks.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clj-launchpad-mk2\n\n[\u003cimg src=\"https://travis-ci.org/andeemarks/clj-launchpad-mk2.png?branch=master\" alt=\"Build Status\" /\u003e](https://travis-ci.org/andeemarks/clj-launchpad-mk2) [![Clojars Project](https://img.shields.io/clojars/v/clj-launchpad-mk2.svg)](https://clojars.org/clj-launchpad-mk2) [![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://opensource.org/licenses/mit-license.php)\n\nThis library provides a Clojure interface to access the [Novation Launchpad MK2](https://global.novationmusic.com/launch/launchpad#) programmatically. The code started life as a clone of [Moumar's Clojar](https://github.com/moumar/clj-launchpad) and was subsequently updated to handle the MK2 version of the Launchpad. The mapping of buttons and specification of colours completely changed when the MK2 was released, so lots of the original code in these areas has been re-written, as has the input message handling code.\n\n## More Info\n\n- Novation's Launchpad MK2 MIDI [programmer's reference](https://global.novationmusic.com/sites/default/files/novation/downloads/10529/launchpad-mk2-programmers-reference-guide_0.pdf) was the sole source for helping me understand how to interact with the Launchpad.\n\n## Installation\n\n#### Leiningen/Boot\n\n`[clj-launchpad-mk2 \"1.0.2\"]`\n\n#### Gradle\n\n`compile \"clj-launchpad-mk2:clj-launchpad-mk2:1.0.2\"`\n\n#### Maven\n\n```\n\u003cdependency\u003e\n  \u003cgroupId\u003eclj-launchpad-mk2\u003c/groupId\u003e\n  \u003cartifactId\u003eclj-launchpad-mk2\u003c/artifactId\u003e\n  \u003cversion\u003e1.0.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## REPL Usage\n\n```clojure\n(require '[clj-launchpad-mk2.core :refer :all])\n(require '[clj-launchpad-mk2.midi.core :as midi])\n\n(def lpad (open))\t\t\t; first argument to all subsequent calls\n\n(light-grid lpad 23) \t\t\t; light all buttons\n(light-row lpad 3 66) \t\t\t; light a single row of buttons\n(light-column lpad 3 99) \t\t; light a single column of buttons\n(flash lpad 5 5 60) \t\t\t; flash a single cell between it's current colour and 60\n(pulse lpad 4 4 10) \t\t\t; pulse (adjust brightness) of a single cell\n(light-cc lpad midi/CC_CURSOR_RIGHT 11) \t; light a specific control button\n(light-cell lpad 0 0 35) \t\t; light a specific cell\n(clear-grid lpad) \t\t\t; clear all cells\n(scroll-text-once lpad \"Launchpad\" 54)\t; scrolling text once only\n(scroll-text lpad \"MK2\" 60)\t\t; scroll text in a loop\n(scroll-stop lpad)\t\t\t; stop looped scrolling\n(rgb lpad 0 0 0 0 0)\t\t\t; progressively increase the RED component of a series of cells\n(rgb lpad 0 1 16 0 0)\n(rgb lpad 0 2 32 0 0)\n(rgb lpad 0 3 48 0 0)\n(rgb lpad 0 4 63 0 0)\n(midi/set-button-press-handler \t\t; \"random\" light pressed button\n\tlpad\n\t(fn\n\t\t[msg]\n\t\t(light-cell\n\t\t\tlpad\n\t\t\t(:x msg)\n\t\t\t(:y msg)\n\t\t\t(- 127 (+ (:x msg) (:y msg))))))\n\n(close lpad)\t\t\t\t; disconnect\n```\n\nYou can also try `lein run` to run the examples in `demo.clj`.\n\n## API\n\nAPI documentation available [here](https://andeemarks.github.io/clj-launchpad-mk2/).\n\n## To Do\n\n- Fix midi error at end of demo.\n\n## Copyright\n\nCopyright (c) 2017 Andy Marks. See LICENSE for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandeemarks%2Fclj-launchpad-mk2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandeemarks%2Fclj-launchpad-mk2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandeemarks%2Fclj-launchpad-mk2/lists"}