From 0c305aa84d948047acbfbb7bd6567fac4dfe73f0 Mon Sep 17 00:00:00 2001 From: Brody Nielsen Date: Thu, 15 Jan 2026 18:32:10 -0700 Subject: [PATCH 1/8] Fix #28: Add 'yes' to 'Sends Reply' column for Get Display Brightness command The command list table incorrectly showed that Get Display Brightness (0x09) does not send a reply. This commit fixes the table to correctly indicate that the command does send a reply, matching the command description. --- doc/AbletonPush2MIDIDisplayInterface.asc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/AbletonPush2MIDIDisplayInterface.asc b/doc/AbletonPush2MIDIDisplayInterface.asc index 34315a1..9d9ec92 100644 --- a/doc/AbletonPush2MIDIDisplayInterface.asc +++ b/doc/AbletonPush2MIDIDisplayInterface.asc @@ -240,7 +240,7 @@ arguments are avoided. |+0x06+ | |Set LED Brightness .2+|<> |+0x07+ |yes|Get LED Brightness |+0x08+ | |Set Display Brightness .2+|<> -|+0x09+ | |Get Display Brightness +|+0x09+ |yes|Get Display Brightness .2+|<> |+0x0A+ |yes|Set MIDI Mode |<> |+0x0B+ | |Set LED PWM Frequency Correction |<> |+0x13+ |yes|Sample Pedal Data |<> From 6ccb720ccae6817dd6f2306931ee1a431905c40f Mon Sep 17 00:00:00 2001 From: Brody Nielsen Date: Thu, 15 Jan 2026 18:32:16 -0700 Subject: [PATCH 2/8] Fix #27: Add documentation for retrieving full RGB color palette Add a note explaining how to retrieve the complete default RGB color palette (all 128 entries from index 0 to 127) using the Get LED Color Palette Entry sysex command (0x04). This addresses the request to document the full palette beyond the subset currently shown in the documentation. --- doc/AbletonPush2MIDIDisplayInterface.asc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/AbletonPush2MIDIDisplayInterface.asc b/doc/AbletonPush2MIDIDisplayInterface.asc index 9d9ec92..3378f06 100644 --- a/doc/AbletonPush2MIDIDisplayInterface.asc +++ b/doc/AbletonPush2MIDIDisplayInterface.asc @@ -501,6 +501,12 @@ will be retained, most likely. |7 |127 |white |=== +NOTE: The table above shows only a subset of the RGB color palette values. +To retrieve the complete default RGB color palette (all 128 entries from index 0 to 127), +use the "Get LED Color Palette Entry" sysex command (0x04) described in the +<> chapter. Query each color index from 0 to 127 to +obtain the full palette with RGB and white values for each entry. + [id="White Balance"] White Balance ^^^^^^^^^^^^^ From d93fa3458201c0d0f3d7c327a3e85a93019dba37 Mon Sep 17 00:00:00 2001 From: Brody Nielsen Date: Thu, 15 Jan 2026 18:32:22 -0700 Subject: [PATCH 3/8] Fix #26: Add clarification about User mode animation timing Add a note clarifying that in User mode, MIDI system real time messages (start, stop, continue, clock) must be sent on Port 2, as Port 1 messages are ignored. This explains why animations may not run at the default 120 bpm tempo in User mode when no MIDI start message has been received on the active port. --- doc/AbletonPush2MIDIDisplayInterface.asc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/AbletonPush2MIDIDisplayInterface.asc b/doc/AbletonPush2MIDIDisplayInterface.asc index 3378f06..318f96b 100644 --- a/doc/AbletonPush2MIDIDisplayInterface.asc +++ b/doc/AbletonPush2MIDIDisplayInterface.asc @@ -693,6 +693,11 @@ After a MIDI stop message (+0xFC+), the animations continue to run at the last received tempo. If the host never sent a MIDI start message, the animations run at a tempo of 120 bpm. +NOTE: In User mode, MIDI system real time messages (start, stop, continue, clock) +must be sent on Port 2, as Port 1 MIDI messages are ignored in User mode. +If no MIDI start message has been received on the active port, animations +may not run at the default 120 bpm tempo until a MIDI start message is sent. + As usual with MIDI-over-USB interfaces, system real time messages should not be sent in the middle of other MIDI messages. From 951eaf1414b2043519f751365722746d06964db5 Mon Sep 17 00:00:00 2001 From: Brody Nielsen Date: Thu, 15 Jan 2026 18:32:29 -0700 Subject: [PATCH 4/8] Fix #22: Add documentation for converting RGB values to color palette indices Add a new section explaining how to convert arbitrary RGB color values to the closest Push 2 color palette index. This includes: - Instructions for retrieving the complete palette - Distance calculation methods (Euclidean and perceptual) - Alternative approach of modifying the palette with custom colors This addresses the question about translating Max For Live colors to Palette Color Index values. --- doc/AbletonPush2MIDIDisplayInterface.asc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/doc/AbletonPush2MIDIDisplayInterface.asc b/doc/AbletonPush2MIDIDisplayInterface.asc index 318f96b..3319b13 100644 --- a/doc/AbletonPush2MIDIDisplayInterface.asc +++ b/doc/AbletonPush2MIDIDisplayInterface.asc @@ -441,6 +441,29 @@ Reply: ++[F0 00 21 1D 01 01 **04 7D 00 00 00 00 7F 01 7E 00** F7]++ = entry 125 6+|Example: ++[F0 00 21 1D 01 01 **05** F7]++ = trigger palette reapplication |=== +Converting RGB Values to Color Palette Indices +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Push 2 LEDs do not accept direct RGB values. Colors must be specified using +color palette indices (0-127). To convert an arbitrary RGB color to the closest +available palette index: + +1. Retrieve the complete color palette by querying all 128 entries (0-127) + using the "Get LED Color Palette Entry" command (0x04). + +2. For each palette entry, calculate the distance between your target RGB + color and the palette entry's RGB values. Common distance metrics include: + - Euclidean distance in RGB space: sqrt((R1-R2)² + (G1-G2)² + (B1-B2)²) + - Perceptual color distance (e.g., using LAB color space) for better + visual matching + +3. Select the palette index with the minimum distance. + +Alternatively, you can modify the palette to add custom colors by using the +"Set LED Color Palette Entry" command (0x03) to overwrite existing palette +entries with your desired RGB values. After modifying palette entries, send +the "Reapply Color Palette" command (0x05) to apply the changes. + White LED Color Processing ^^^^^^^^^^^^^^^^^^^^^^^^^^ From 01555beb17f511d9b7bee8dccc025674dc85e4cd Mon Sep 17 00:00:00 2001 From: Brody Nielsen Date: Thu, 15 Jan 2026 18:32:34 -0700 Subject: [PATCH 5/8] Fix #29: Add Rust display driver to See also section Add link to push2_display crate on crates.io as mentioned in issue #29. This provides a Rust implementation for the Push 2 display interface. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8b08876..6bb4351 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ Please add an [issue](https://github.com/Ableton/push-interface/issues) with you * https://github.com/garrensmith/abletonpush * https://github.com/wookay/PushInterface.jl * https://github.com/ffont/push2-python +* https://crates.io/crates/push2_display (Rust display driver) Please Note: The external links are being provided as a convenience and for informational purposes only. They do not constitute an endorsement or an approval by the Ableton of any of the linked contents. Ableton bears no responsibility for the accuracy, legality or the content of the referred site or for that of subsequent links. From cb72ab7be67d943acb37603b39d53638362214c0 Mon Sep 17 00:00:00 2001 From: Brody Nielsen Date: Thu, 15 Jan 2026 18:39:46 -0700 Subject: [PATCH 6/8] Fix #35: Clarify palette modification persistence Add a note clarifying that palette modifications made using 'Set LED Color Palette Entry' command are temporary and reset on reboot. This matches the clarity provided in the White Balance section and helps users understand the behavior of palette modifications. This addresses the documentation gap where users might assume palette changes are persistent, similar to how white balance has both temporary and persistent (flashed) options. --- doc/AbletonPush2MIDIDisplayInterface.asc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/AbletonPush2MIDIDisplayInterface.asc b/doc/AbletonPush2MIDIDisplayInterface.asc index 3319b13..380bc3c 100644 --- a/doc/AbletonPush2MIDIDisplayInterface.asc +++ b/doc/AbletonPush2MIDIDisplayInterface.asc @@ -464,6 +464,11 @@ Alternatively, you can modify the palette to add custom colors by using the entries with your desired RGB values. After modifying palette entries, send the "Reapply Color Palette" command (0x05) to apply the changes. +NOTE: Palette modifications made using "Set LED Color Palette Entry" are +temporary and are reset to default values on device reboot. Unlike white +balance settings, there is no command to persistently save palette +modifications to flash memory. + White LED Color Processing ^^^^^^^^^^^^^^^^^^^^^^^^^^ From e7ab24cc02140266cae5c83023840feaffb21229 Mon Sep 17 00:00:00 2001 From: Ununp3ntium115 <126101872+Ununp3ntium115@users.noreply.github.com> Date: Fri, 16 Jan 2026 15:06:00 -0700 Subject: [PATCH 7/8] Update AbletonPush2MIDIDisplayInterface.asc Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- doc/AbletonPush2MIDIDisplayInterface.asc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/AbletonPush2MIDIDisplayInterface.asc b/doc/AbletonPush2MIDIDisplayInterface.asc index 380bc3c..80f442c 100644 --- a/doc/AbletonPush2MIDIDisplayInterface.asc +++ b/doc/AbletonPush2MIDIDisplayInterface.asc @@ -240,7 +240,7 @@ arguments are avoided. |+0x06+ | |Set LED Brightness .2+|<> |+0x07+ |yes|Get LED Brightness |+0x08+ | |Set Display Brightness .2+|<> -|+0x09+ |yes|Get Display Brightness .2+|<> +|+0x09+ |yes|Get Display Brightness |<> |+0x0A+ |yes|Set MIDI Mode |<> |+0x0B+ | |Set LED PWM Frequency Correction |<> |+0x13+ |yes|Sample Pedal Data |<> From e9b8efa0f16ea9e3fc596dcdc4ae2b61942f814c Mon Sep 17 00:00:00 2001 From: Ununp3ntium115 <126101872+Ununp3ntium115@users.noreply.github.com> Date: Fri, 16 Jan 2026 15:06:24 -0700 Subject: [PATCH 8/8] Update AbletonPush2MIDIDisplayInterface.asc Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- doc/AbletonPush2MIDIDisplayInterface.asc | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/AbletonPush2MIDIDisplayInterface.asc b/doc/AbletonPush2MIDIDisplayInterface.asc index 80f442c..a068645 100644 --- a/doc/AbletonPush2MIDIDisplayInterface.asc +++ b/doc/AbletonPush2MIDIDisplayInterface.asc @@ -723,8 +723,6 @@ run at a tempo of 120 bpm. NOTE: In User mode, MIDI system real time messages (start, stop, continue, clock) must be sent on Port 2, as Port 1 MIDI messages are ignored in User mode. -If no MIDI start message has been received on the active port, animations -may not run at the default 120 bpm tempo until a MIDI start message is sent. As usual with MIDI-over-USB interfaces, system real time messages should not be sent in the middle of other MIDI messages.