not-matt / Systematic-LEDs

Audio reactive, all in one, room lighting for your computer.
MIT License
100 stars 35 forks source link

General discussion of development #3

Open not-matt opened 6 years ago

not-matt commented 6 years ago

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

not-matt commented 6 years ago

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 commented 6 years ago

Any features or ideas you would like to see implemented, either email me or drop it here πŸ‘

Gaerisson commented 6 years ago
not-matt commented 6 years ago
Gaerisson commented 6 years ago

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:

Gaerisson commented 6 years ago

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

not-matt commented 6 years ago

That's pretty much what beat does, but I could flesh it out a bit more. Different colours for different frequencies, use a gradient rather than single colour, that kind of thing.

On Mar 7, 2018 17:47, "GaΓ«tan" notifications@github.com wrote:

[image: image] https://user-images.githubusercontent.com/25458928/37107110-bf48c106-2233-11e8-986c-1914b96e8ece.png the settings should looks like this and the effect, like this https://www.youtube.com/watch?v=8izCmFnciNw (little bit glitchy) I don't really know if this can destroy LED, I don't think so, but it can be good for party :P

β€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/not-matt/Systematic-LEDs/issues/3#issuecomment-371222676, or mute the thread https://github.com/notifications/unsubscribe-auth/Ae5azJpyXNmlX-ps7Jn-Ne3k2JqfUzE3ks5tcB1NgaJpZM4SZ0Ls .

Gaerisson commented 6 years ago

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

Gaerisson commented 6 years ago

another little things:

kennerblick commented 6 years ago

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 commented 6 years ago

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

not-matt commented 6 years ago

Yep that's definitely possible but you'll have to make a bit yourself.

First, in config.py, set "use_gui" to false. Then to change effect, you need to write something to modify the variable stored in config.settings["devices"][(board name)]["configuration"]["current_effect"].

Available effects can be found in Visualizer.effects.

Let me know if you have any luck. I'll be adding similar functionality at some point, probably looking at an API which will let you do this much more easily.

Matthew

On Mar 8, 2018 10:38, "kennerblick" notifications@github.com wrote:

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?

β€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/not-matt/Systematic-LEDs/issues/3#issuecomment-371449570, or mute the thread https://github.com/notifications/unsubscribe-auth/Ae5azBi2X1GZfl4JuLBQks5hF9As_uDxks5tcQorgaJpZM4SZ0Ls .

not-matt commented 6 years ago

Open a new issue, I'll have to get back to you on that one!

On Mar 8, 2018 10:47, "kennerblick" notifications@github.com wrote:

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

β€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/not-matt/Systematic-LEDs/issues/3#issuecomment-371450644, or mute the thread https://github.com/notifications/unsubscribe-auth/Ae5azChqcFaxi-La_sSE-ebm33n_uFU9ks5tcQsqgaJpZM4SZ0Ls .

luxxl commented 6 years ago

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:

ahodges9 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

Interesting idea! I have been thinking about something similar, a little like "energy" but the whole strip. Cheers :)

On Mar 9, 2018 23:01, "charlieali" notifications@github.com wrote:

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?

β€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/not-matt/Systematic-LEDs/issues/3#issuecomment-371969921, or mute the thread https://github.com/notifications/unsubscribe-auth/Ae5azCvLYMpHKaTWUJdc_DQP396KD6L6ks5tcwm-gaJpZM4SZ0Ls .

MattBrinza commented 6 years ago

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 commented 6 years ago

Sounds awesome! What controller do you use?

On Mar 12, 2018 05:57, "MattBrinza" notifications@github.com wrote:

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.

β€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/not-matt/Systematic-LEDs/issues/3#issuecomment-372201329, or mute the thread https://github.com/notifications/unsubscribe-auth/Ae5azCvZ70MtcL3d8U2kRPTNEy1pbMKnks5tdg5egaJpZM4SZ0Ls .

f0rmr commented 6 years ago

@MattBrinza mapping to a midi controller?

MattBrinza commented 6 years ago

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 commented 6 years ago

Would love to see your fork.

f0rmr commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

@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 commented 6 years ago

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 commented 6 years ago

@charlieali Definitely would like to see a video!

Yariv-h commented 6 years ago

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 commented 6 years ago

That's essentially what I'm working on with the beat pattern recognition - except you're not setting it on a timer (that's no problem to implement), the lights just seem to change naturally to fit the song.

On Fri, Mar 30, 2018, 14:13 Yariv notifications@github.com wrote:

An 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..

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/not-matt/Systematic-LEDs/issues/3#issuecomment-377521435, or mute the thread https://github.com/notifications/unsubscribe-auth/Ae5azOCAufZahdHJ02CaVgfxPZ3B-uVGks5tji9ygaJpZM4SZ0Ls .

Yariv-h commented 6 years ago

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 commented 6 years ago

@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 commented 6 years ago

@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 commented 6 years ago

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

Yariv-h commented 6 years ago

@Mattallmighty Thanks!

Mattallmighty commented 6 years ago

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 commented 6 years ago

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:

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

blassbasti commented 6 years ago

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 commented 6 years ago

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

not-matt commented 6 years ago

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

not-matt commented 6 years ago

@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 commented 6 years ago

@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 commented 6 years ago

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

f0rmr commented 6 years ago

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

blassbasti commented 6 years ago

@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 commented 6 years ago

As it stands, each strip needs to be processed separately, because they can be different lengths. However this could work if you wrote some scaling into the esp firmware, then in the program set it to one strip, 255 long, using the broadcast IP for the network. When each esp receives the 255 long strip, it can scale it to its own length.

You can try this if you like, but I'm working on the kind of functionality to make controlling multiple strips easier, which will include more basic stuff like this.

On Sat, Jun 23, 2018, 11:23 blassbasti notifications@github.com wrote:

@not-matt https://github.com/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?

β€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/not-matt/Systematic-LEDs/issues/3#issuecomment-399662503, or mute the thread https://github.com/notifications/unsubscribe-auth/Ae5azBtbQxjgWFmm6lAEePRTCTl1Qefmks5t_hcbgaJpZM4SZ0Ls .

blassbasti commented 6 years ago

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!!