modular-led-controller-workstation
modular-led-controller-workstation copied to clipboard
:musical_note: :rainbow: Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi
MOLECOLE - A Modular LED Controller Workstation
MOLECOLE is a real-time LED controller for the Raspberry Pi.
It comes with a bunch of modules to generate and manipulate pixels, so you can configure your own music visualizer or ambient lighting for LED strips.
It even supports LED panels!
For runtime configuration there is a REST webserver with a web UI.
Configurations can be stored in git and do adapt to output strip or panel.
The works in this project is based on https://github.com/scottlawsonbc/audio-reactive-led-strip.
Getting started (local machine)
Python Dependencies
MOLECOLE requires at least Python 3.7 and uses pipenv to manage dependencies.
- Get pipenv
- Run
pipenv install -d
- If pyaudio fails to install, make sure to
brew install portaudio
- If it still fails to install, use
pipenv shell
and executepip install --global-option='build_ext' --global-option='-I/usr/local/include' --global-option='-L/usr/local/lib' pyaudio
. Exit andpipenv install
should then succeed
OpenPixelControl Visualization Server
For running MOLECOLE without a RaspberryPi we need to somehow visualize the RGB data. For this you can use openpixelcontrol.
- Clone the project parallel to this repository
- Follow the instructions to compile the project
- Use the compiled binary
gl_server
to start an OpenGL visualization server on localhost port 7890 to visualize the RGB data
# A LED Strip with 300 pixels
../openpixelcontrol/bin/gl_server -l layouts/demo_layout.json
# or a LED Panel with 44x22 pixels
../openpixelcontrol/bin/gl_server -l layouts/wall_44x22.json
Running MOLECOLE
# Run with clean config and without storing
pipenv python server.py --no_conf --no_store
# Run with LED Strip configuration
pipenv python server.py -N 300
# Run with LED Panel configuration
pipenv python server.py -N 968 -R 22
# For more information:
pipenv python server.py -h
You should now see some RGB data in OpenPixelControl and should be able to access the MOLECOLE UI on https://localhost:5000.
Start playing around or upload some sample configurations from configurations.
Getting started (Raspberry Pi)
See Running on RaspberryPi.