Git Product home page Git Product logo

ledfx_v3's Introduction

Welcome to LedFx โœจ Making music come alive!

Build Status License Documentation Status Discord Contributor Covenant

image

What is LedFx?

LedFx makes your LEDs dance to audio! What LedFx offers is the ability to take audio input, and instantaneously processes the audio into realtime light show to multiple LED strips/matrix. No need to spend hours on end to program one song to program your LEDs, as LedFx will do this all for you!

LedFx real-time LED strip music visualization effect controller using is a network based devices (ESP8266/ESP32/Raspberry Pi 4) with support for advanced real-time audio effects! LedFx can control multiple devices and works great with cheap ESP8266/ESP32 nodes allowing for cost effective synchronized effects across your entire house!

Demos

Visit our website to see LedFx in action!

You can also join our Discord where community members show off their projects. Check out the #projects or #showcase channels.

๐Ÿ“‘ Quick start guide and documentation๐Ÿ“–

Head over to releases to get the latest releases for Windows and Mac. For linux, use pip.

Bleeding edge (Experimental)

If you want the absolute bleeding edge and are not afraid of using the terminal, take a look at the detailed installation instructions here: Installation documentation.

Documentation

Documentation for the latest release can be found here: Stable documentation

Documentation built against this repository can be found here: Latest documentation

๐Ÿ˜ Show me how to make one!

The below image describes a basic setup - LedFx running on PC, communicating with a WLED Device controlling an LED strip.

image

Component Example
Computer running LedFx Windows 10, LedFx.exe
Networked device controlling LED Strip ESP8266 NODEMCU v3 running WLED
Addressable LED strip DC5V WS2812B 5 meters 60LED/m IP67
Power supply for LED Strip and ESP 5V 10 amps LED Power Supply
Something to connect the wires together! Soldering iron/solder
  1. Build your networked LED Strip.
  2. Install LedFx.
  3. Direct computer audio output to LedFx.
    • By default on Windows LedFx will attempt to listen to your system audio.
    • More information for Linux and macOS users here.
    • Play some music in the background.
  4. Start LedFx.
    • Your WLED devices should appear in LedFx, automagically configured and ready to go! ๐ŸŽ†๐Ÿ”ฅ
    • If not, on the bottom click Home, -> Scan for WLED devices button, or click on the big plus sign and Add Device to add them manually.
    • If they're still not showing up, make sure they're powered on and properly connected to your WiFi.
  5. Start using effects!
    • Click on the device, select an effect eg scroll under Classic
    • Your lights should now be reacting realtime to your music! Enjoy the show ๐ŸŒˆ

๐Ÿง‘โ€๐Ÿ’ป Join the LedFx Community

Join the Discord server to discuss everything about LedFx! Discord

To join, click on the Discord button below:

image

Contributing

Pull requests are welcome. Once tested, contact LedFx developer community on Discord to discuss the next step. We expect and require all contributors to read, understand and follow our code of conduct.

Credits: Contributors-&-About

License

GPL-3

ledfx_v3's People

Contributors

carterpeel avatar deepsource-autofix[bot] avatar deepsourcebot avatar jbaczuk avatar not-matt avatar shauneccles avatar spiro-c avatar yeonv avatar ywwg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ledfx_v3's Issues

test should not depend on locally-installed config file

Describe the bug
Any package that imports the config package will run its init() function, which loads the user's config from disk. This is bad practice because the test result can depend on the user's local installation. (These tests currently don't pass because my config is for v2)

Proposed Fix

There are a few best practices that would help fix this up:

  • Get rid of the init function. Instead, the config package should be refactored -- there should be a NewConfig function as well as a NewConfigFromFile function. Tests can call NewConfig and construct an artificial minimal config as needed.
  • Flag definitions should not be done in Config, flags should only be defined in the main package. This prevents flags from becoming binary-wide global variables. Instead, values set via flags should only be used to populate the Config object. This is mostly already done in the init() function so it shouldn't be too much work.
  • config loading should return an error that the binary can handle.

Problem compiling portaudio on macOS

Describe the bug

When trying to build ledfx on a MBA m2 on monterey I get this error.

github.com/LedFx/portaudio
# github.com/LedFx/portaudio
../../../go/pkg/mod/github.com/!led!fx/[email protected]/portaudio.go:200:32: could not determine kind of name for C.paPulseAudio

LedFx Host Information (please complete the following information):

  • OS: macos 12.6 Monterey
  • GO version: go1.19.2 darwin/arm64
  • PulseAudio (homebrew): pulseaudio 14.2
  • LedFx Version: commit:0c52f7cb7ffdb4db62322d9b8cf531e65532ba6c

Additional context
I'm probably the first trying this on a mac. Was curious about performance.

Add contribution page

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Traceback
If applicable, add the traceback log that LedFx outputs when it encounters an error.
Usually starts with "Traceback (most recent call last):"

LedFx Host Information (please complete the following information):

  • OS: [e.g. Windows 11]
  • LedFx Version: [e.g. 0.8.9 - use ledfx --version to find out]

Additional context
Add any other context about the problem here.

Handle broken/invalid config.json

If config.json is malformed, we currently blow up during startup.

Instead, we should rename to config_backup_date_time.json, alert the user and start with an empty config.json

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.