mirror of https://github.com/LedFx/LedFx.git
Spell Check
This commit is contained in:
parent
3cf3ee2d41
commit
8d3cfe58e9
|
@ -5,7 +5,7 @@ source = */ledfx/*
|
|||
# omit = bad_file.py
|
||||
|
||||
[report]
|
||||
# Regexes for lines to exclude from consideration
|
||||
# Regex's for lines to exclude from consideration
|
||||
exclude_lines =
|
||||
# Have to re-enable the standard pragma
|
||||
pragma: no cover
|
||||
|
|
|
@ -3,4 +3,5 @@ Contributors
|
|||
============
|
||||
|
||||
* Austin Hodges <austin.b.hodges@gmail.com>
|
||||
# Matthew Bowley <matthewbowley@protonmail.com>
|
||||
|
||||
# Matthew Bowley <matthewbowley@protonmail.com>
|
||||
|
|
20
README.rst
20
README.rst
|
@ -10,10 +10,10 @@ LedFx website: https://ledfx.app/
|
|||
What is LedFx?
|
||||
----------------
|
||||
|
||||
What LedFx offers is the ability to take audio input, and instantanously processes the audio into realtime lightshow to multiple LED strips/matrix.
|
||||
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 syncronised effects across your entire house!
|
||||
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
|
||||
-------
|
||||
|
@ -54,7 +54,7 @@ The below image describes a basic setup - LedFx running on PC, communicating wit
|
|||
- Soldering iron/solder
|
||||
|
||||
#. **Build your networked LED Strip.**
|
||||
- For most, this is the difficult step. Dont worry! There's guides here and online, and plenty of people able to help on WLED and LedFx Discord.
|
||||
- For most, this is the difficult step. Don't worry! There's guides here and online, and plenty of people able to help on WLED and LedFx Discord.
|
||||
- Follow the WLED guide to connect the LED strip and ESP together: https://github.com/Aircoookie/WLED/wiki.
|
||||
- Flash WLED to the ESP device: https://github.com/Aircoookie/WLED/wiki/Install-WLED-binary
|
||||
- Ensure all WLED devices are powered on, and connected to your Wi-Fi 5Ghz.
|
||||
|
@ -62,7 +62,7 @@ The below image describes a basic setup - LedFx running on PC, communicating wit
|
|||
|
||||
#. **Install LedFx.**
|
||||
- After you have WLED installed on your ESP device, download: `LedFx.exe`_ and install LedFx.
|
||||
- For Mac and Linux, see the `installation documentation`_.
|
||||
- For Mac and Linux, see the `installation documentation`_ or `LedFx Guide`_.
|
||||
|
||||
#. **Direct computer audio output to LedFx.**
|
||||
- Follow guide, `How to: Enable Stereo Mix in Windows 10`_.
|
||||
|
@ -73,7 +73,7 @@ The below image describes a basic setup - LedFx running on PC, communicating wit
|
|||
#. **Start LedFx.**
|
||||
- Your WLED devices should appear in LedFx, automagically configured and ready to go! 🎆🔥
|
||||
- If not, on the left hand side, click on Device Management -> ``Find WLED devices`` button, or ``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.
|
||||
- If they're still not showing up, make sure they're powered on and properly connected to your WiFi.
|
||||
|
||||
#. **Start using effects!**
|
||||
- Click on the device, select an effect eg ``scroll(Reactive)``, and press ``Set effect`` button.
|
||||
|
@ -90,7 +90,7 @@ To join, click on the Discord button below:
|
|||
.. raw:: html
|
||||
|
||||
<a href="https://discord.com/invite/wJ755dY"><img src="https://discordapp.com/api/guilds/469985374052286474/widget.png?style=banner2" width="30%"></a>
|
||||
|
||||
|
||||
|
||||
Contributing
|
||||
--------------
|
||||
|
@ -105,9 +105,9 @@ License
|
|||
|
||||
.. _`MIT`: https://choosealicense.com/licenses/mit/
|
||||
.. _`LedFx.exe`: https://ledfx.app/download/
|
||||
.. _`LedFx Guide`: https://ledfx.readthedocs.io/en/docs/index.html
|
||||
.. _`LedFx Guide`: https://ledfx.readthedocs.io/en/dev/index.html
|
||||
.. _`WLED`: https://github.com/Aircoookie/WLED/wiki
|
||||
.. _`installation documentation`: https://ledfx.readthedocs.io/en/docs/installing.html
|
||||
.. _`installation documentation`: https://ledfx.readthedocs.io/en/dev/installing.html
|
||||
.. _`Contributors-&-About`: https://ledfx.app/about/
|
||||
.. _`How to: Enable Stereo Mix in Windows 10`: https://thegeekpage.com/stereo-mix/
|
||||
.. _`Voicemeeter`: https://vb-audio.com/Voicemeeter/index.htm
|
||||
|
@ -117,8 +117,8 @@ License
|
|||
.. |Build Status| image:: https://travis-ci.org/ahodges9/LedFx.svg?branch=dev
|
||||
:target: https://github.com/ahodges9/LedFx/tree/dev
|
||||
:alt: Build Status
|
||||
.. |Build Status Docs| image:: https://readthedocs.org/projects/ledfx/badge/?version=docs
|
||||
:target: https://ledfx.readthedocs.io/en/docs
|
||||
.. |Build Status Docs| image:: https://readthedocs.org/projects/ledfx/badge/?version=dev
|
||||
:target: https://ledfx.readthedocs.io/en/dev
|
||||
:alt: Documentation Status
|
||||
.. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg
|
||||
:alt: License
|
||||
|
|
|
@ -11,10 +11,10 @@ UDP protocol. See below for a list of tested ESP8266 firmware that can be used w
|
|||
Here is everything you need to get started with LedFx:
|
||||
|
||||
#. A Computer (or Raspberry Pi) with Python >= 3.6 (Anaconda_ is recommended on Windows)
|
||||
#. An E1.31 capable device with addressiable LEDs connected
|
||||
#. An E1.31 capable device with addressable LEDs connected
|
||||
|
||||
- Commercial grade DMX controllers
|
||||
- ESP8266 modules can be purchased for as little as $2 USD from Aliexpress
|
||||
- ESP8266 modules can be purchased for as little as $2 USD from AliExpress
|
||||
|
||||
Here is a list of tested ESP8266 firmware that works with LedFx:
|
||||
|
||||
|
|
|
@ -41,12 +41,12 @@ No Conda Installation (good for devs) (requires Visual Studio Build Tools):
|
|||
|
||||
|
||||
install python 3.7.9
|
||||
install visual studio build tools for win10
|
||||
install visual studio build tools for win10
|
||||
https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019
|
||||
"visual c++ build tools"
|
||||
default install options
|
||||
reboot
|
||||
open start menu -> x86 native build tools command prompt for VS 2019
|
||||
open start menu -> x86 native build tools command prompt for VS 2019
|
||||
|
||||
..code:: doscon
|
||||
|
||||
|
@ -99,7 +99,7 @@ WLED
|
|||
|
||||
- As long as the universe size is set to 510 LedFx should output to all pixels. Maybe something in the code is not working past 1 universe as 1 universe is 170 LEDs
|
||||
|
||||
- Make sure "disable wifi sleep" is ticked in WiFi Settings on the WLED web interface.
|
||||
- Make sure "disable WiFi sleep" is ticked in WiFi Settings on the WLED web interface.
|
||||
|
||||
- How many devices do you have?
|
||||
|
||||
|
@ -128,11 +128,11 @@ LAN IP opens up the port, 8383 in your case, to other devices on your LAN from y
|
|||
Speaker Sound
|
||||
-------------
|
||||
|
||||
My solution to this exact problem is Chromecast audios, I have two in a group and Chromecast to the group.
|
||||
My solution to this exact problem is ChromeCast audios, I have two in a group and ChromeCast to the group.
|
||||
One of them is connected to my DAC that is then connected to my amplifiers, and another is connected to a line
|
||||
in on my computer in a separate room that LedFx is running on.
|
||||
|
||||
They're perfectly synchronised, but if you need to, you can do a delay on any of the Chromecasts within the group
|
||||
They're perfectly synchronized, but if you need to, you can do a delay on any of the ChromeCasts within the group
|
||||
to adjust sync.
|
||||
|
||||
Windows:
|
||||
|
@ -143,7 +143,7 @@ https://thegeekpage.com/stereo-mix/
|
|||
Squeezebox Server - Logitech
|
||||
++++++++++++++++++++++++++++
|
||||
|
||||
Multiroom: https://www.picoreplayer.org/
|
||||
MultiRoom: https://www.picoreplayer.org/
|
||||
|
||||
VBAN audio sync
|
||||
+++++++++++++++
|
||||
|
|
|
@ -61,7 +61,7 @@ def create_default_config(config_dir: str) -> str:
|
|||
|
||||
|
||||
def ensure_config_file(config_dir: str) -> str:
|
||||
"""Checks if a config file exsit, and otherwise creates one"""
|
||||
"""Checks if a config file exists, and otherwise creates one"""
|
||||
|
||||
ensure_config_directory(config_dir)
|
||||
config_path = get_config_file(config_dir)
|
||||
|
@ -74,7 +74,7 @@ def ensure_config_file(config_dir: str) -> str:
|
|||
def ensure_config_directory(config_dir: str) -> None:
|
||||
"""Validate that the config directory is valid."""
|
||||
|
||||
# If an explict path is provided simply check if it exist and failfast
|
||||
# If an explicit path is provided simply check if it exist and failfast
|
||||
# if it doesn't. Otherwise, if we have the default directory attempt to
|
||||
# create the file
|
||||
if not os.path.isdir(config_dir):
|
||||
|
|
|
@ -82,7 +82,7 @@ class LedFxCore(object):
|
|||
self.loop.run_forever()
|
||||
except BaseException:
|
||||
# Catch all other exceptions and terminate the application. The loop
|
||||
# exeception handler will take care of logging the actual error and
|
||||
# exception handler will take care of logging the actual error and
|
||||
# LedFx will cleanly shutdown.
|
||||
self.loop.run_until_complete(self.async_stop(exit_code=-1))
|
||||
pass
|
||||
|
|
|
@ -28,7 +28,7 @@ class Device(BaseRegistry):
|
|||
): vol.All(vol.Coerce(float), vol.Range(min=0, max=1)),
|
||||
vol.Optional(
|
||||
"center_offset",
|
||||
description="Number of pixels from the preceived center of the device",
|
||||
description="Number of pixels from the perceived center of the device",
|
||||
default=0,
|
||||
): int,
|
||||
vol.Optional(
|
||||
|
@ -138,7 +138,7 @@ class Device(BaseRegistry):
|
|||
|
||||
def thread_function(self):
|
||||
# TODO: Evaluate switching over to asyncio with UV loop optimization
|
||||
# instead of spinning a seperate thread.
|
||||
# instead of spinning a separate thread.
|
||||
sleep_interval = 1 / self._config["refresh_rate"]
|
||||
|
||||
if self._active:
|
||||
|
@ -160,7 +160,7 @@ class Device(BaseRegistry):
|
|||
def assemble_frame(self):
|
||||
"""
|
||||
Assembles the frame to be flushed. Currently this will just return
|
||||
the active channels pixels, but will eventaully handle things like
|
||||
the active channels pixels, but will eventually handle things like
|
||||
merging multiple segments segments and alpha blending channels
|
||||
"""
|
||||
frame = None
|
||||
|
@ -233,7 +233,7 @@ class Device(BaseRegistry):
|
|||
@abstractmethod
|
||||
def flush(self, data):
|
||||
"""
|
||||
Flushes the provided data to the device. This abstract medthod must be
|
||||
Flushes the provided data to the device. This abstract method must be
|
||||
overwritten by the device implementation.
|
||||
"""
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ class Event:
|
|||
|
||||
|
||||
class DeviceUpdateEvent(Event):
|
||||
"""Event emmitted when a device's pixels are updated"""
|
||||
"""Event emitted when a device's pixels are updated"""
|
||||
|
||||
def __init__(self, device_id: str, pixels: np.ndarray):
|
||||
super().__init__(Event.DEVICE_UPDATE)
|
||||
|
@ -29,7 +29,7 @@ class DeviceUpdateEvent(Event):
|
|||
|
||||
|
||||
class GraphUpdateEvent(Event):
|
||||
"""Event emmitted when a device's pixels are updated"""
|
||||
"""Event emitted when a device's pixels are updated"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
|
@ -44,7 +44,7 @@ class GraphUpdateEvent(Event):
|
|||
|
||||
|
||||
class LedFxShutdownEvent(Event):
|
||||
"""Event emmitted when LedFx is shutting down"""
|
||||
"""Event emitted when LedFx is shutting down"""
|
||||
|
||||
def __init__(self):
|
||||
super().__init__(Event.LEDFX_SHUTDOWN)
|
||||
|
|
|
@ -148,7 +148,7 @@ class BaseRegistry(ABC):
|
|||
|
||||
@classmethod
|
||||
def no_registration(self, cls):
|
||||
"""Clear registration entiry based on special declarator"""
|
||||
"""Clear registration entity based on special declarator"""
|
||||
|
||||
name = cls.__module__.split(".")[-1]
|
||||
del cls._registry[name]
|
||||
|
@ -195,7 +195,7 @@ class BaseRegistry(ABC):
|
|||
|
||||
|
||||
class RegistryLoader(object):
|
||||
"""Manages loading of compoents for a given registry"""
|
||||
"""Manages loading of components for a given registry"""
|
||||
|
||||
def __init__(self, ledfx, cls, package):
|
||||
self._package = package
|
||||
|
@ -270,7 +270,7 @@ class RegistryLoader(object):
|
|||
return list(self._cls.registry().keys())
|
||||
|
||||
def classes(self):
|
||||
"""Returns all the classes in the regsitry"""
|
||||
"""Returns all the classes in the registry"""
|
||||
return self._cls.registry()
|
||||
|
||||
def get_class(self, type):
|
||||
|
|
Loading…
Reference in New Issue