PianoLED.Demo.mp4
MIDI.Visualization.Demo.mp4
Be part of the PianoLux Discord Server Community where you can connect with fellow users, ask questions, and share your experiences:
PianoLux is compatible with officially supported strips by FastLED library default are NeoPixels/WS2812B. Density must be 144 which is supported on all modes of the app and 72 density for few basic modes. You can find list of FastLED supported leds below:
*Main arduino code ino has to be modified to align with strip you will use
LED Type | Configuration |
---|---|
Clockless Types | |
WS2812 | |
WS2852 | |
WS2812B | |
SK6812 | RGB non RGBW variant |
WS2811 | |
WS2813 | |
WS2811_400 | |
GW6205 | |
GW6205_400 | |
LPD1886 | |
LPD1886_8BIT | |
Clocked (SPI) Types | |
LPD6803 | |
LPD8806 | |
WS2801 | |
WS2803 | |
SM16716 | |
P9813 | |
DOTSTAR | |
APA102 | |
SK9822 | |
12V | Strips like WS2815 configured as WS2812 GRB or RGB |
RGBW Not Supported | SK6812W or any other RGBW |
*Make sure you check latest FastLED github repo for updates on supported led chipsets
PianoLux currently requires native USB Arduino boards with an Atmega32U4 CPU, such as:
- Arduino Leonardo
- Pro Micro
Some arm32 based native usb boards will also work latest arduino code needs to be adapted to work with them.
- Arduino Due
- *Serial lines should be replaced with SerialUSB and native usb port should be used
- Arduino Zero
ESP32 platform boards also are supported
- ESP32 S2/S3
You can download the latest release of PianoLux here:
To set up PianoLux, follow the connection diagram below:
For maximum brightness, consider using an external power source. Here's how you can do it:
- Use a minimum 3A 5V-capable USB charger.
- Cut a spare USB cable and connect the positive (usually red) and negative (usually black) wires to the LED strip's red and white wires, respectively. Don't forget to link this ground connection to arduino's ground pin. This to to avoid ground loop issues since we are using two power sources we need to link both grounds together.
- Adjust the current limit to match the power supply's current rating in mA (1A = 1000mA, so 3A = 3000mA).
For an 88-key piano, align the third LED with the first black key, as shown below:
To use PianoLux on Windows, follow these steps:
-
Run the included
Download Java_Script.bat
file to download and install the necessary Java JRE for running the PianoLux app. -
You will need the Arduino IDE application to upload the
.ino
file to your Arduino board. Ensure that you install the Arduino drivers and the FastLED library. If you're using Arduino IDE 1 or haven't installed the AVR Boards drivers, you may need to manually select the Arduino COM port as the "Refresh" button may not work. To install drivers, use Arduino IDE 2 and follow these steps. For other IDEs, refer to online resources on how to load drivers from the ARDUINO IDE folder in the Device Manager.
- Once you see the "Upload Complete" prompt, you are ready to use the PianoLux app.
- For Arduino boards like Due arduino code compile error is expected with new versions of FastLED. Its recommended to use FastLED version 3.6.0.
For Windows users who encounter conflicts when using both PianoLux and other MIDI programs concurrently, consider using my Midi Router application to split single midi device into two virtual ones using LoopMIDI to create virtual midi devices and route actual MIDI device to these virtual ones that will get used in different apps one for PianoLux and one for DAW or some other MIDI software.
Use 32 bit zip(x86) and 32 bit versions of JRE and Arduino IDE
To use PianoLux on Linux, follow these steps:
-
Install Arduino IDE 2 and upload the PianoLux code to your Arduino board.
-
Install the
jre17
package, depending on your Linux distribution:- For Arch-based distros:
sudo pacman -S jre17-openjdk
- For Debian-based distros:
sudo apt install openjdk-17-jdk
- For Arch-based distros:
-
To run the app:
- Download and extract the Linux zip file.
- Open the Terminal, navigate to the extracted PianoLux directory, and run the following command:
sudo java -jar "pianolux jar name.jar"
To use PianoLux on MacOS, follow these links:
- Use amd64 zip for x64 based(Intel) or arm64 zip for arm based M series Apple machines
- Terminal Setup
- Java Setup
-
Default Mode πΉ:
- Plain HSB colored playing LEDs.
-
Splash Mode π¦:
- Splash effect from played MIDI notes.
-
Split Mode
βοΈ :- Split playing LEDs into two with adjustable colors.
-
Random Mode π²:
- Random hue changes with each triggered MIDI note.
-
Velocity Mode β‘:
- LEDs react based on MIDI note velocity.
-
Animation Mode π₯:
- Static looping LED animations with 10 options.
- MIDI input is ignored in this mode.
-
MultiColor Mode
- Each note of the octave can have different color
-
Color Control Sliders π:
- Adjust hue, saturation, and brightness.
-
Fade Length β±οΈ:
- Control the duration of the fade effect.
-
Background Light π‘:
- Toggle and adjust background LED lights.
-
Piano Size Configuration πΉ:
- Button to configure piano size.
-
MIDI to LED Map Ratios π΅:
- 1:2 and 1:1 mapping options.
-
Visual Representation π¨:
- Full 88-key piano keyboard for visual aid
-
FX LED π:
- Shift LEDs at certain solder joined points on the strip
-
BG LED π:
- Toggle background light LEDs.
- Adjust color and brightness separately.
-
Update BG Color π:
- Apply HSB color adjustments to background light.
-
RV LED π:
- Reverse LED strip direction for added flexibility.
-
Custom LED Offsets π΅:
- Clicking on specific key adjust led offset -12 to + 12 range.
This project is licensed under the MIT License.