A Max for Live MIDI device that lights your WLED lamps from what you play. Split the keyboard into up to three colour zones — play low and the lamp glows one colour, higher up another — with velocity → brightness. A prism splits white light into colours; Prism splits your keyboard into colours.
It's the lighting-first cousin of zone-m4l: same idea of
keyboard zones, but instead of routing notes to instruments, each zone drives a WLED colour. Under
the hood it speaks the open wled-midi convention (lamp
mode), so any wled-midi implementation turns it into light.
- Download
prism.amxd. - Drop it on a MIDI track in Ableton Live (before or without an instrument — it doesn't consume your notes, it mirrors them into light).
- Create a virtual MIDI port named
OpenLamp(macOS: Audio MIDI Setup → IAC Driver; Windows: loopMIDI) and point a wled-midi implementation — the engine, the browser tool, or the Bome pack — at your WLED device. - Requires Live with Max for Live (Suite, or Standard + M4L).
Prism watches the notes you play, decides which zone the governing note falls in, and sends that
zone's colour (a wled-midi "look") plus a brightness (CC 1, from velocity) to the OpenLamp
port. It only sends on an actual colour change, so it never floods the port.
midiin → midiparse → [js prism.js] → midiout OpenLamp (looks + brightness → wled-midi `lamp`)
| Field | Default | Impact |
|---|---|---|
| On | on | Master enable. Off = Prism stops driving the lamp (and blacks out if Hold is off). |
| Split1 | 52 | Boundary between the Low and Mid zones (MIDI note). Notes < Split1 are Low. |
| Split2 | 72 | Boundary between Mid and High. Split1 ≤ note < Split2 = Mid; ≥ Split2 = High. |
| LoCol / MidCol / HiCol | 65 / 63 / 60 | Each zone's colour as a wled-midi look note: 59 black · 60 red · 61 orange · 62 yellow · 63 green · 64 cyan · 65 blue · 66 magenta · 67 white · 68 effect. Defaults = blue / green / red. |
| Chan | 1 | wled-midi channel (1 = all lamps; raise it to address a group in a multi-zone WLED setup). |
| Govern | 0 | Which held note picks the colour: 0 = lowest, 1 = highest, 2 = most-recent. |
| Hold | on | On = keep the last colour when all notes lift. Off = black out on release. |
| Bri | on | On = velocity sets brightness (CC 1). Off = colour only, brightness untouched. |
When you hold a chord that straddles two zones, something has to decide the colour. Govern is that rule — lowest note (bass-led, the default), highest note (melody-led), or the most-recently played. Pick whichever matches how you want the light to follow your hands.
| File | Purpose |
|---|---|
prism.amxd |
the device, ready to drop into Live |
prism.js |
the brain — zone → colour logic, governing-note selection, change-only output |
prism.maxpat |
the patcher (UI + wiring), kept in sync with the device |
prism.js runs with autowatch = 1 — edit it next to the device and Max hot-reloads it.
Open prism-demo.html — move the two split points and see the three colour zones and
the lamp colour they produce.
MIT — see LICENSE.
Two open standards, one bridge. Prism emits the open wled-midi convention — the agreed dictionary between MIDI (the MIDI Association) and WLED. Free for anyone to build on; part of the OpenLamp ecosystem.
