Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General discussion of development #3

Open
not-matt opened this issue Mar 2, 2018 · 57 comments
Open

General discussion of development #3

not-matt opened this issue Mar 2, 2018 · 57 comments

Comments

@not-matt
Copy link
Owner

not-matt commented Mar 2, 2018

Please leave any thoughts or comments on the movement of the program here.

@not-matt
Copy link
Owner Author

not-matt commented Mar 4, 2018

Most major issues should be resolved now, including "Scroll" and "Energy" causing crashes, and the firmware problems.

To do still - That one pesky LED!

@not-matt
Copy link
Owner Author

not-matt commented Mar 7, 2018

Any features or ideas you would like to see implemented, either email me or drop it here 👍

@Gaerisson
Copy link
Contributor

Gaerisson commented Mar 7, 2018

  • Static effect: Stroboscope, I actually worked on it but it looked weird, this effect can be cool
  • Auto Mode (I saw that you tried something)
  • Random color option like before for Scroll effect
  • API to control LED from your software
  • Logo for your software :)

@not-matt
Copy link
Owner Author

not-matt commented Mar 7, 2018

  • Stroboscope. Sounds cool, would you explain what it should look like?
  • Auto mode. Yeah... maybe. It was left as unfinished because I couldn't figure out a way to make it look good.
  • Random Scroll colour. Sure thing, do you mean randomisation of the three colour options?
  • API will come hand in hand with the web server. I'll try make it flexible so anyone can use it.
  • Logo is underway ;)

@Gaerisson
Copy link
Contributor

Gaerisson commented Mar 7, 2018

I'll show you later what I think with Strobe Effect, and yes for random scroll color 😄, the 3 colors looks cool but it will be better with a checkbox: random color, and another suggestion:

  • a way to control the brightness of LEDs from the software

@Gaerisson
Copy link
Contributor

Gaerisson commented Mar 7, 2018

image
the settings should looks like this and the effect, like this https://www.youtube.com/watch?v=8izCmFnciNw (little bit glitchy)

@not-matt
Copy link
Owner Author

not-matt commented Mar 7, 2018 via email

@Gaerisson
Copy link
Contributor

yeah but the difference between beat effect and Strobe is that strobe will not be with the music, just flickering like a stroboscope

@Gaerisson
Copy link
Contributor

another little things:

  • when we close the software, do something that's turning off LED
  • minimize the software to the taskbar (really usefull)
    And I think that's all for me, for the moment ^^ I told you all my ideas 😀

@kennerblick
Copy link

I would like to run the tool on a Raspberry or Odroid without GUI as a service. Is there a way to pass the light mode as an argument?

@kennerblick
Copy link

Could you extend it to the function of controlling Philips Hue lights?

@not-matt
Copy link
Owner Author

not-matt commented Mar 8, 2018 via email

@not-matt
Copy link
Owner Author

not-matt commented Mar 8, 2018 via email

@luxxl
Copy link

luxxl commented Mar 8, 2018

Fade and gradient rolling speeds needs to be fixed in my opinion it's too fast. Would be nice to make that slower and/or add more steps to slider so you could get full cycle like in minute/half minute/couple seconds etc.
Edit: Btw i'm not sure if you tough of adding brightness control slider to it but it would be nice if you could get it at least on statics effects so it would be possible to adjust brightness on fly. One more thing if it would be possible to add some element that automatically select effect option depending on active effect.

So in nutshell:

  • Fixing color rolling speed values on slider

  • Brightness control slider

  • Automatic active effect control options

@ahodges9
Copy link
Contributor

ahodges9 commented Mar 9, 2018

We should figure out how we want the controller configuration settings (and future web interface) to interact with the client devices. With the support for the ESPixelStick FW we can actually remove some duplication of configuration values. Things like the number of leds, port configuration, etc can all be stored on the clients and they can just send their capabilities when connecting to the controller. So you don't have to worry about keeping things like LED counts in sync instead these are properties of the client that the controller can query via HTTP/GET or WebSockets.

We can also have auto-detection where no configuration at all is need to be stored on the controller (not even IP). The controller just issues a HTTP/GET on all devices and those that respond with the correct configuration properties are automatically pulled in.

@charlieali
Copy link

What about assigning different colors to different frequency ranges? Like lets say you make anything 200mhz -1000mhz blue 1001mhz-1500mhz green or something like that. Scott had implemented a cycling in the experimental code on the other branch that was cool where it cycled through colors. Maybe beat detection to cycle through the colors?

@not-matt
Copy link
Owner Author

not-matt commented Mar 10, 2018 via email

@MattBrinza
Copy link

I've actually been working on this silently. For my own version, I added keyboard controls to toggle between modes with a mapped controller, and I have implemented a feature that randomizes the colors/pattern when songs change (need to download snip for this to work). Basically, its like a "no screen DJ" mode. Let me know if anyone is interested in looking at it.

@not-matt
Copy link
Owner Author

not-matt commented Mar 12, 2018 via email

@f0rmr
Copy link

f0rmr commented Mar 12, 2018

@MattBrinza mapping to a midi controller?

@MattBrinza
Copy link

I should clarify. I mapped a lot of the functions (on / off, solid color modes, scroll through visualizer modes) to keyboard inputs, then I use a different program to map an xbox controller to those keyboard inputs. I have them all in the config file so people can customize what they want the key bindings to be. It was really nice when I threw a party since I never had to open up my laptop once, especially since the randomizer worked well between songs.

@charlieali
Copy link

charlieali commented Mar 13, 2018

Would love to see your fork.

@f0rmr
Copy link

f0rmr commented Mar 13, 2018

Sparks - as standalone mode ?
In the "Power" mode there is a random spark option - can this be done as a separate mode with the choice of color, quantity and frequency range at which it will work ?

I tried to do it myself, copying the mode and adding a black color mode that would leave only sparks, but this is not the best solution and my knowledge is not enough for more at this time :)

@MattBrinza
Copy link

Oh boy. I was working on this from back during the "Christmas" update from the other repo. Everything has changed since then and its been pretty difficult porting all of my janky changes over.

@not-matt
Copy link
Owner Author

Hi all! Been a couple weeks, and I think it's time for a quick update. Personal life has soaked up most of my free time lately, hence the inactivity, but this doesn't mean I haven't been thinking about where to steer this project. What I've started working on is beat recognition, building on the existing beat detection framework. What I hope to create is a much more advanced set of tools to pick up patterns in songs' beats (including more irregular beat patterns, say in hip hop), meaning that effects can be much more interesting.

The most basic idea is, for example, your typical four to the floor housy song, where on every bar (rather than beat), something cool happens. Lights flash, whatever, give me some ideas!

Matthew

@charlieali
Copy link

charlieali commented Mar 22, 2018

Here's the best way I could show an idea for a strobe clap, to go with the beat detection on big claps or beats. There is also a template to share ideas better.

https://imgur.com/a/hQqsr

edit: perhaps mirrored a couple of times so the strip has 4 sections that all do this, that could be cool.

@charlieali
Copy link

charlieali commented Mar 23, 2018

Now that I've been testing this for a bit I have to say it looks great under 256 leds but the more leds you have the harder it is for the effects to fill the strip or matrix.

On the plus side multiple boards works fine with 2 fadecandies each on their own opc server. You can do different effects on each one without frame drop.

@nhmann
Copy link

nhmann commented Mar 25, 2018

Hey, I was the guy who had problems with audio-reactive-led-strip on a raspberry pi.
I moved to this project.
When I am able to get it working on a pi, I would write a tutorial for the other users.

Another idea (maybe to much):
it would be nice if you could control the lights with hue for the basic stuff (plain colors).
I think many of us have an existing hue system and it would be nice if the strips would also be controllable for basic lighting.
It could auto change to the audio reactive mode when music starts to play.

@tarthim
Copy link

tarthim commented Mar 26, 2018

@not-matt I've been considering something similair. It would be fantastic if the normal lights react on the instrumental+voice parts on the song, and then these flicker brighter/less bright depending on the beat. However, I'm not sure how one would go about doing that.

Thanks for all your work btw! I set this up yesterday and it's working super well.

Edit: Small "bug?", although I guess you could call it a feature, but if you roll a color option (for instance wavelength) and then stop rolling, it stays the way it has last "rolled" to, instead of going back to the normal setting. Maybe not the behavior some might expect, but not the end of the world either. Just wanted to give a heads up :)

@charlieali
Copy link

Quick thing I found, not a bug just neat. I was trying the dev build on my matrix with a fadecandy but I forgot I was already running Scott Lawson's experimental fork, so when i ran this and then turned the LEDs on I thought I had broken smething. I shut the program down and realized it was still reacting to music. How curious. That's when i realized the other code was running too. I turned yours back on and played with the settings a bit, producing a cool visualization. Since this fadecandy runs via a server and this just sends the data to it, the server can send multiple signals to the LEDs at once. And since the fadecandy itself is meant to dither and switch fast, both visualizations ran simultaneously at 60 fps. So I got curious. I booted up a raspi and loaded this and had it communicate with the fcserver. I now had 3 visualizations going at once with no hiccups. It's really cool. If you set all 3 to spectrum and have each one and set them to different frequencies it looks really cool. Same with running spectrum+wave+scroll all at the same time. I will try to borrow my works camera this weekend to take some non-phone video of it.

Another thing I was messing around with is in the server config itself, you can set each data pin to be a different color (rgb/brg/grb etc) which obviously changes the color of the strand, so you can have 1 strand be true rbg and others have opposite colors and whatnot. Makes for some nifty fiddling. The Raspi can run everything standalone and the nodemcu has wifi but you should all try a fadecandy, its great.

@tarthim
Copy link

tarthim commented Mar 28, 2018

@charlieali Definitely would like to see a video!

@Yariv-h
Copy link

Yariv-h commented Mar 30, 2018

A cool feature that can be added - whenever you choose an effect, you have it own customizations on the bottom panel, an automation for the customization or automatic periodic change in the scroll bar can archive a very cool effect, as well auto switch between effect or create a "seen" that you can set a timer for each effect and select which one will be next end etc..

Or some kind of an api that controlled the effect for code automation

@not-matt
Copy link
Owner Author

not-matt commented Mar 31, 2018 via email

@Yariv-h
Copy link

Yariv-h commented Mar 31, 2018

cool, you should consider to "change" the effect itself, let's say add/subtract blue or any other color on the current effect according to the sound, in addition, to change between effects.

Another thing to have in mind, if you will create an API to control the effect, a new modern UI can be created over small http angular server that will be accessible over the wifi in case you sitting outside and playing music with the leds instead of been on the computer. as well the angular / react ui will have much more flexibility and easy to maintain. i can help with that.

As well to check if it would be possible to send the audio from the PC to a Bluetooth device using stereo min and as well to the visualization

@not-matt
BTW is there any tutorial or reference on how to use DSP and transform it to low mid high / r g b for these leds? i want to look a bit into it.

@blassbasti
Copy link

blassbasti commented Apr 7, 2018

@nhmann

When I am able to get it working on a pi, I would write a tutorial for the other users.

any news on this? I don't really get the thing to work on a standalone raspberry pi

@csph
Copy link

csph commented Apr 23, 2018

@not-matt
Hi, first of all very nice continuation of Scotts project! I've testet it with Anaconda and an ESP, it worked like a charm.
But actually I want to use it standalone on a (headless) RaspberryPi3.
I was wondering if you could create a Raspberry-Pi version without any GUI-stuff.
Because after many attemps I was not able to install all the needed packages (especially pyqt5+Python3.6) on Raspbian (jessie/stretch).

@Mattallmighty
Copy link

@not-matt Created ESP8266 tutorial for /Systematic-LEDs/ README: https://youtu.be/W4jaAgjfvG8

@Yariv-h
Copy link

Yariv-h commented May 24, 2018

@Mattallmighty Thanks!

@Mattallmighty
Copy link

Hey @not-matt Hope your exams went well 👍
I have a box RGB ws2812b box as attached. Would be cool to get this supported using my ESP8266 in the future 😃

mokungit-16x16-8x32-8x8-pixels-sk6812-ws2812b-digital-flexible-led-panel-individually-addressable-full-dream-color jpg_640x640

@not-matt
Copy link
Owner Author

not-matt commented Jun 21, 2018

Hi all! Got results, all went well (thank goodness) This update brings support for custom colours, audio input selection, and easy board control.

Coming up:

  • Custom gradients for multicolour modes
  • Better interface
  • Standalone pi support (help plz)
  • Remove 256 led limit
  • @charlieali effect idea

@Mattallmighty it already is supported, hook it up! I'd recommend using the "spectrum" mode. Let me know if you need a hand.

@blassbasti
Copy link

hey matt! that's really great to hear!

I already have an idea/request for another feature! it would be great to add multiple devices/strips but control them all from the same UI and not from seperate UIs for every device!

greets

@not-matt
Copy link
Owner Author

@blassbasti Yeah I've got plans for that. I've got two strips and it's a pain in the ass!

@not-matt
Copy link
Owner Author

@Mattallmighty Added your tutorial to readme, good stuff! Cheers for that :)

@not-matt
Copy link
Owner Author

not-matt commented Jun 21, 2018

@Master-P96 I'm afraid you need PyQt installed for settings persistence. Headless pi is partially supported already but you can't change the effect or anything (yet)

In config.py near the top set "USE_GUI" to False

@not-matt
Copy link
Owner Author

@Yariv-h Nice idea! That kind of thing will be around when I've made better beat recognition. The idea is to change the effect/setting/whatever on the first beat of every 4 bars or something.

@not-matt
Copy link
Owner Author

@charlieali Now that's a cool effect. Will be added!

@f0rmr
Copy link

f0rmr commented Jun 21, 2018

Is it possible to run this project with ws2801 pixels ?
Want to try it with my 10*10 led matrix.

@blassbasti
Copy link

@not-matt i didn't try it myself but what if we would just use the broadcast address of the network? Shouldn't the PC send it to all the other devices in the network (in my case there are only the nodemcus and my laptop in the network) and the gui would just display one tab with controls?

@not-matt
Copy link
Owner Author

not-matt commented Jun 23, 2018 via email

@blassbasti
Copy link

yeah true if you have strips with a different length it wouldn't work that way!

in my case i would address 6 strips with 72 pixels each, so it should work, shouldn't it?
I really appreciate your eager working on this project!!

@not-matt
Copy link
Owner Author

not-matt commented Jun 23, 2018 via email

@Moonbase59
Copy link

Moonbase59 commented Jul 20, 2018

Hey! I wonder if this project should be steered into a slightly different direction. Don’t understand me wrong, it’s absoluteley awesome (though I cant get it to work under Linux and have to use the previous adaption https://github.com/not-matt/audio-reactive-led-strip), but I have some ideas of my own and would like to share these and discuss:

  1. I always like things to adhere to some standards, so my lights are either controlled via Home Automation (mostly MQTT, some ZigBee), or by the more professional DMX512 (mostly E1.31, in my case) protocol. Your software, briliant as it is, has some limitations (like 256 LEDs/strip on a microcontroller), and uses its own protocol.

  2. I’d love to see the two parts (the great audio controller part vs. the LED strip controlling) to be more separated and, preferably, use a protocol like E1.31.

  3. We already have great light controllers that can even do DMX (E1.31) and MQTT so I can use my strips for normal lighting using home automation and simply switch them over to a DMX-based show whenever needed. See https://github.com/forkineye/ESPixelStick for instance.

  4. DMX solutions seem to lack a little on the "live audio control" side, so your audio controller would be a perfect fit if it could output E1.31, for example. It could then output to the pixelstick or any other DMX device, and you could concentrate on the real great part, i.e. the audio controller and effects stuff.

  5. It would have to be determined if DMX over E1.31 is actually fast enough to do whatever you do today, regarding audio effects. I did some testing with QLC+ and xLights and I think it might be feasible.

  6. Separating audio control, protocol, and output devices this way would make Systematic-LEDs even more versatile and also more easily allow for controlling more than one device.

  7. And it would make all of our investments in LED strips and other lighting equipment much more awarding, since we could alternatively use the same devices for a) "normal" lighting (smart home), b) DMX-based shows, and c) the kind of audio-reactive party/club lighting you provide.

What does everybody think? (Well, you asked for it ;-))

@Moonbase59
Copy link

Moonbase59 commented Jul 20, 2018

@blassbasti: I wouldn’t go for general multicasting, especially not within the home network. DMX using E1.31 can do that, and I’ve seen awful network congestion, even on special separate show networks, up to failure of multiple devices during a show.

The idea behind multicasting is great, but if you start having a few more devices you risk to seriously flood the network, which can lead to lost packets, devices not getting their data in time, or even sudden reboots of some devices that can’t handle the load. Too sad, really.

I even use unicast in show networks now.

@ahodges9
Copy link
Contributor

My entire setup is E1.31 based (ESPixelStick to be precise) and your vison aligns closely with my goals. I use HomeAssistant to control the ESPixelSticks typically (Just recently got in my firmware changes into the official forkineye repro that adds much better MQTT support!) and want to extend upon that to have HomeAssistant to be able to talk to a dedicated RaspberryPi to enable network driven effects (i.e. synced non-reactive effects, more complex effects than ESP01 can handle, audio reactive effects, and video reactive effects).

As for E1.31 I have hard a PR (#18 E1.31 Support) active here for a while that adds E1.31 support and it works great from my testing (oddly better than pure UDP). E1.31 is 100% capable of support this as is basically just a few extra bytes of header info and a little more processing on the client side. It has a ton of benefits such as packet drop detection and cross device synchronization. The only issues I have found are with DMX512 specifically where the 512 channel limit means some of my strips span universes and thus require two packets giving it more overhead and higher risk of dropping a complete frame. Larger universe sizes is on my list of things to look into though.

As you have noticed, I have already started my own controller "LedFx" that moves towards headless controller ready to be driven by other homeautomation platforms. I just got initial REST and Websocket support that should be fairly easy to integrate with most applications. It is still missing a lot of these effects, but does have a few proof of concept audio reactive ones. If you have a large E1.31 network it would be great to get help testing performance. I only have 4 controllers spanning ~1500 channels which isn't much compared to others

@Mattallmighty
Copy link

Mattallmighty commented Aug 28, 2018

Hey Team,

I have been trying to create scenes/preset at the moment.
What I am thinking on is hat can press a keyboard shortcut or button highlight below.
sceneset

What will happen is it will load the save file or scene/preset.

Also another option, is when you add the deice, you can say slave RGB making the transitions between lights seamless.

Im not a programmer, but learning. Keen to know your feedback?

@blassbasti
Copy link

@Moonbase59 well i use a seperate network just for the visualization. since i have only 7 (1 laptop, 6 ESPs) devices connected to it there shouldn't be any bandwidth issue i think!

@Yariv-h
Copy link

Yariv-h commented Jan 26, 2019

Would be possible to add support to WS2811 with the upcoming roadmap features?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests