-
Notifications
You must be signed in to change notification settings - Fork 642
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
Not exactly an issue, but... #97
Comments
It might not be added, as Scott hasn’t been on in a bit, but I’d absolutely love to see it! |
I would love it too ! It seems to be amazing 👍. If you plan to upload your code somewhere, let me know it |
I've forked it and will start pushing updates as they're ready |
I'd love to see the beat detection part. (A friend of mine who do live bass music told me he was interested if I could make something like it for his lives sets, and it would be perfect) Also, if we could have a spectrum mode with a logarithmic scale instead of linear it would be great. (Actually, is it linear as of now ? I can code - it's my job -, but I tried to understand the audio analysis part of the code and oh man audio analysis seems to be a very "niche" thing... lots of math, and I don't really know where to start looking). Also, what I found is that in a lot of songs, the lower frequency part of the spectrum is always very bright and middle/highs do not often light up as much. I'm not sure if it's related to this linear spectrum (having much more "volume/energy" in a 200-1000Hz "part" than in a 8000-9000Hz), or if it's just because how the volume of every frequency "bin" is computed. Maybe both ? |
Righto, it's up on my page. Here's a preview |
That looks like it will be able to do some nice stuff, are you planning on adding fadecandy support? |
Had a look at Fadecandy, and I must say it looks like a very powerful tool. Very visually impressive too! If you could give me a demo or something showing how it can work better than the current library, I'd consider adding it in. My current order of jobs is: |
I will upload a video of a fadecandy running the experimental code when I get home tonight. As far as I can tell the main upgrade with the fadecandy would be improved dithering over the esb2866, 5v support without a inverter and higher fps. I was hitting 300 fps with no buffering the other night. |
Hello. Take issue with your fork.
|
That's a python 2 error, if you run it in python >3.5 it doesn't appear. This new code also requires scipy and pyaudio 5 so make those changes |
Would you be interested in making a pull request? These effects look nice |
@Hexalyse I've just adjusted melbank.py on my fork to give better scaling as you described. This fork has already already implemented logarithmic scaling, but it's now much more so. Edit: Also added another effect - "Bars", Preview |
@not-matt I already checked your fork a few days ago (didn't have a lot of time with holiday season). You've done an incredible job already ! The only thing I noted was that in the "Energy" type of visualization, most of the "strip" will be full white, and only the borders are colored (It's like it "clips" or "peaks" in an area that is a bit wide). I don't know if it would be possible to have an option to adjust how much and how fast the different color channels "scale down" while going farther and farther from the middle ? I don't have a good enough understanding of how the audio processing part of the code works to get how it's done. I will try your fork with the new mel graph later ! :) I think this project has a good potential if we (you, mostly) keep adding features. I was thinking about other effects but I'm too tired to describe them right now. I'll let you work on what you have on your to-do list, and we'll see about it later. |
@Hexalyse I'll have a look at it and see if I can figure something out. My actual LED strip is in my university room, while I'm now at home for Christmas, so this might be one for when I can see the strip. Do keep me posted with visualisation ideas, I'm all out now. Here's my last one: Power, available on my fork. With regards to that to-do list, I'm not sure if it's worth adding multiple strip support. What do you think? Any other features/ideas? As I've said, I'm all out of ideas now...! |
@not-matt here is a short video showing a fadecandy running a big matrix in autocorrelation on the experimental build. |
Forgot the video https://youtu.be/uUySLVwkrZE |
@charlieali Fadecandy looks really good! I've had a look at their GitHub page too, and it certainly seems like a very powerful tool. However, there are a couple of problems I can see:
Some things that look very promising about Fadecandy (copied from their GitHub): """
""" Interpolation to boost FPS seems like a pretty neat feature, and the dithering looks very nice too. One thing to consider is whether these features can be implemented into the ESP8266 sketch. If so, that would give some of the key benefits without the need to rewrite a lot of code to switch to this library. I don't know anything about dithering, but the demo looked good. Do you think the colours on the ESP8266 strip look as rich as on the Fadecandy controlled matrix? One last thing - If you have any suggestions for visualisation effects, do let me know! I would love some ideas from everyone 👍 |
I took some video with a better camera to put up later today, but yeah it's pretty powerful. I will try to post one with a single strand so you can see what a 1d scroll looks on it. It's basically a teensy 3.0 with a level inverter and 100 ohm resistors built in. The colors and dithering are much better on the fadecandy than on an esb board. As far as running it the fadecandy runs on a server and you just tell the server what it needs to do and it does it, I don't know exactly how Scott Lawson implemented it in the experimental code, I'm not a developer I just mess around with things. If you ever decide to implement it and need a chip you can send me an Amazon wish list and I'd be glad to gift you one. As far as new effects, I will try to think of some. |
Any chance of a link to this experimental code? I'd be very interested in having a look, with the possibility of adding it in. |
Oh that should be no issue to add into this new fork. I'll let you know when it's done! |
@charlieali Drop me an email here containing your email address so I can contact you directly? It's a 10minutemail address |
Wow, the 2D effect looks reaaaally nice. I might consider purchasing a Fadecandy if it's worth it. But I guess LED matrices cost a lot of money. BTW, @not-matt I quickly tried your fork with the new effects and mel graph yesterday (I had very little time to test it since I had a friend home, but she really enjoyed it and was hypnotized by the LED strip haha). I noticed that the spectrum looked much better, but I had an issue with the "Energy" mode and even more with the "Scroll" mode : on the original code by scott, I had a pretty wide variety of colors (bass - low frequencies - yielded more redish colored while high pitch yielded blue/white, and volume made it vary too). In your last version - I guess you changed a few things, alongside the mel graph ? - the entire LED strip is pretty much only white. It's like every color channel goes way too high. Same for the energy mode : before I had the center of the strip white, and nice colors on the side of it. Now, even when the volume of the song is not super high, I get almost all the strip taken, and 95% of the LED are pure white, with a very tiny (as in not large) portion of the extremities are colored. And I can see it on the GUI too : all three color channels are clipped, and not just at the center, like almost all the way through the "graph". I wish I had time to dwelve into the audio processing part of the code so I can understand and debug it myself, but I'm afraid I like some knowledge (and time) here. |
@Hexalyse I didn't buy it, I made it. it's about $200 in materials with the fadecandy. Drilling the holes for the LEDs was tedious but not too hard. The reason the effect looks the way it does is because the LEDs are technically snaking up and down which provides a nice visual effects. |
@Hexalyse I've added a few options to adjust the amount of r,g,b for the effects you mentioned ["Scroll", "Energy", "Spectrum"]. As I've said, I don't have access to an actual strip at present, making it hard to see how colours look, especially when they merge. Please could you have a fiddle around with each effect and give me some values that look good? They're currently all at a default of 1.00, with the sliders ranging from 0.05-1.00. I'll set the values you give as default so it looks nice for everyone, but leave the sliders in anyways just in case someone wants to change them for themselves. edit - If anyone could have a fiddle with as many settings as you have time for with the other effects too, that would be ace. I just need some default values that look good. A screenshot of the sliders is all I need. I'm only asking this because I have no idea how these new effects look on an actual strip! edit 2 - I would love to see a video of a strip using these effects too. I've got to wait until mid Jan before I'm back at uni with all my lights etc :( |
@not-matt @Hexalyse @scottlawsonbc if you want to use them as examples for the experimental code go ahead. |
Good lord this looks beautiful. Can't wait to get into programming this!
…On 29 December 2017 at 00:04, charlieali ***@***.***> wrote:
Here are 2 more videos of the fadecandy running a matrix:
Chrome Sparks - Send the Pain On - https://youtu.be/X11aMf1rSbo
deadmau5 - FN Pig - https://youtu.be/TAZmYzFTlA4
@scottlawsonbc <https://github.com/scottlawsonbc> if you want to use them
as examples for the experimental code go ahead.
"
Bonus video of my christmas tree which has a matrix "star" running this
code off a fadecandy, the tree is ran off a teensy with an octows2811
shield running Jinx!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#97 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Ae5azNXwQUKsEExUK2gn35WwnMNfQa5hks5tFCyQgaJpZM4Q_v1Y>
.
|
@charlieali I'm not sure I understood what you meant. Are you using the current experimental branch of the audio-reactive-led-strip repo ? And you matrix are just Neopixel LEDs connected in a zig-zag-ing pattern (going up and down, left to right) and the visualization in spectrum mode ? @not-matt I'll try to clone and test your new settings during the day and get back to you with what looks best. For more precision I don't use a microphone. I use "Audio-router" to route the audio output to my soundcard (I use an external USB Asus soundcard) AND a virtual audio cable that I then set as default recording device, thus getting good audio input in Python at constant volume, no noise etc. |
@Hexalyse yeah it's strings going up and down running the experimental branch. Autocorrelation with 512 fft bins and I believe gnuplot and prism_r as colors. I don't know what I'm doing I just change numbers auntil I see something pretty. Then I spend hours "watching" the music to see if I can understand it. |
@Hexalyse I get plenty of darkness, don't know why you have the issue you have. Here it is running with 128 fft bins cycling through some of the simpler colors. I also took the blanket I use for diffusion off. https://youtu.be/bjycrtuE3ik |
@Hexalyse mentioned a while back that it would be good if beats weren't as bright, highs didn't take as much of the strip, and mids were more clearly visible. This was made possible by adjusting the mel graph, to give a more even spread of pitch across the output. For effects such as Wavelength, this looks good, because lots of different parts of the strip light up for different tones. You get more evenly distributed pitch/light. However, as you've described, this doesn't look as good on effects such as Scroll, because all the different frequency bins are responding together. In this effect, the different colours from the different frequencies all overlap, giving a mostly white strip. So that's the problem. Changing the number of FFT bins will not make much of a difference I'm afraid. However, the solution is pretty simple and I'll sort it after adding the Fadecandy support: Custom Y scaling per effect. For Wavelength, putting the Y values to the power of a half will make loud bands quieter, and quiet bands louder, giving a more even range of frequencies (as requested earlier). The opposite is true for effects where you want more difference between bands (like Scroll or Energy): Putting the Y values to the power of 2 or 3 will make loud bands louder and quiet bands quieter, giving more bright and dark areas. I hope this has cleared up some confusion! Oh also, with regards to @Hexalyse 's question earlier - @charlieali is using the experimental branch which doesn't have the modified mel curve, which is why he has more light and dark areas on his LED matrix. If he used my fork with the modified mel graph, I imagine it would look similar to how you describe: lots of white, not much dark. |
@not-matt Thanks for the detailed explanation. I wish I could dwelve into this part of the code and understand it, to make better feedback. Anyway, you seem to be doing a very good job and adding many visualizations ! BTW, since @scottlawsonbc seems to be back and active (on the experimental branch), would it be feasible to merge your work on these new visualizations with configurable parameters, and his work on the new devices etc. ? Also, you say that this effect comes from the modified mel bank, but talk about a "custom Y scaling". Could it be better/different to (instead/also) allow to dynamically change the mel bank ? Or choose a different one for each effect ? |
@not-matt When I try your fork at about 90% almost every led lights up which makes it look & feel like it's less responsive to the music. Is there some kind of setting I can change? It feels like everything is stretched / spread out. I would love to have the behavior of scotts original version with your additional effects :) Not sure if it makes a difference - but I'm using a 60 pixel string (changed it in the settings). |
@relax81 Are you using my fork, or the pull request on this one? |
@not-matt The only issue was that the microphone.py caused a problem while starting the visualization.py - so i had to change it back to the original one to make it work. But it looked liek there weren't any big changes made in that particular part of it (?)
(I'm currently using Python 2) |
Quick fix then, make the following changes. Melbank.py Visualisation.py |
Thanks, I'll try it out. |
Hey @not-matt |
@epiller Glad you like it! |
Little updateI'm back at uni on Tuesday, and will be reunited with my LEDs. I've not made any new effects this week because I've got no ideas :( do let me know if you've got something. I'll be improving the mel thing and y scaling when I can actually see what the changes do on the LEDs. Turns out the program's output graph looks very different to real life - maybe because we don't see light on a linear scale like the graph shows? I want to add support for multiple strips when I'm back because I want more strips in my room. I'll add fadecandy support if I ever get round to making an LED matrix with a fadecandy board, but I don't want to be doing work on that if I don't have anything to test it with, so it's not on the priority list rn. If I'm being honest, I don't have much more planned for this since as I mentioned - I'm all out of ideas for new visualisations, and that's the bit I really enjoy doing most. I really appreciate the comments from you all btw :) much love! hmu with those bugs for squashing oh another thing Defaults for the settings. Could someone give their fave setups for any effects? I want them to look good by default, with the settings there for tweaking etc. oh snap another edit just had an idea for a cool effect ayyy |
@not-matt You're a legend. Alright, as for more visualisations, I think we're all out of ideas and the thing you should focus on the most is making the available ones perfect. As I'm absolutely loving your fork of the project, here are a few ideas and issues that could be fixed: Issues:
Ideas:
Now, with all this said, you've done some amazing work, even if all of these above are completely ignored, but you've asked for ideas and bugs, so I had to step in and write something :D Cheers man! |
As @epiller suggested, it would be awessome to add an On/Off button to the GUI in order to render the graph or not. I'm using your code on a headless rpi 3 and I can't use the GUI because the graph slow a lot the raspi and then the FPS are below 10.... As a result, I can't change dynamically the effect :( Anyway, I would like to thank you very much for all your work, it's pretty cool to have a nice music strip in a student room ;) |
New effect idea, not sure if any of yours accomplish this already, but have the whole strip light up one color and kind of fade smoothly into different colors based on the beat/tone/whatever of the song Edit: Basically the beat effect but fade into other colors... |
I realised I haven't given any updates in a while, so here's what's happening.
Then there are also changes behind the scenes which hopefully you won't have to meddle with. Now I think I had one more really cool feature left to talk about... but gosh darn it's just slipped my mind...! You'll have to wait and see ;) |
I really appreciate your effort! |
Can't wait to see the new commits |
Same too, cannot wait to see what commits are in the future.Really awesome what you're doing. Feature request: Are reaching the limit of raspberry pi and ESP8266? What would you recommend going forward hardware wise, or what are you testing with? |
Would anyone with multiple esp8266s be willing to test a little something on my fork? edit - tester not required |
@Mattallmighty I run the program on my win10 using a hotspot and a couple of ESPs, and have no idea how it would run on a pi. I've added support for a couple things like Fadecandy and something else, but haven't tested those either. If you're thinking about remote control, sometime in the future I'm planning a web based front end for controlling the lights. I've got a pi running a home server which I plan on using to control the strips 24/7, then I can control them through my phone or something. Still thinking about it though, not too sure. With regards to LR audio, it would be cool, but definitely not worth the overhaul that it would require! Some things are much easier said than done. |
@not-matt I am using ESPs too, will order some more today. Getting 10 or so NodeMCU v3 as need some spares. |
Are you posting any updates in your page or are you doing a pull request on
this one?
…On Feb 26, 2018 3:48 PM, "Mattallmighty" ***@***.***> wrote:
@not-matt <https://github.com/not-matt>
More than happy to test multiple strips, I have 2 at the moment, and have
additional 6 on the way in March. More than happy to test extensively. Got
your pull at the moment and setup on a single strip and looking great :D
I am using ESPs too, will order some more today. Getting 10 or so NodeMCU
v3 as need some spares.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#97 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AcIJYN8vtTLOTQlDryCuoM8RD92yXdffks5tYxh0gaJpZM4Q_v1Y>
.
|
I'll upload the latest version once I finish reworking the colours. The gradients currently use linear changes between colours but that doesn't look great. I'm adding in smooth transitions, it shouldn't take too long. Here's a visual representation Also a couple of effects are broken because of all the changes going on behind the scenes. This will be fixed so don't open new issues about it. I get the impression you want to get your hands on the latest version so I'll upload it even though a few effects aren't working fully. |
I'm not in a hurry, just wanted to know if you plan on continuing this fork
or commit to your own fork since with all you seem to be adding you are
moving pretty far away from Scott's. Pretty far into awesome. I will be
messing around with your Christmas update later once I figure out why my
esb won't talk to my desktop. Will post results.
…On Feb 27, 2018 11:47 AM, "not-matt" ***@***.***> wrote:
I'll upload the latest version once I finish reworking the colours. The
gradients currently use linear changes between colours but that doesn't
look great. I'm adding in smooth transitions, it shouldn't take too long.
Here's a visual representation <https://imgur.com/a/5GwFM>
Also a couple of effects are broken because of all the changes going on
behind the scenes. This will be fixed so don't open new issues about it. I
get the impression you want to get your hands on the latest version so I'll
upload it even though a few effects aren't working fully.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#97 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AcIJYDQLr-qhXrMBK7CDWQv-tpupHLrhks5tZDGVgaJpZM4Q_v1Y>
.
|
@charlieali It depends really - If I were promoted to some role where I could push updates to this fork then I would carry on here. This would be ideal since most people follow this fork rather than mine. On the other hand, I'll probably continue pushing to my fork simply because it is a fork I can actually update. If I had a more able role here then I wouldn't have need to use my fork. |
Understandable. Either way you are doing cool things, good job m8
…On Feb 27, 2018 12:30 PM, "not-matt" ***@***.***> wrote:
@charlieali <https://github.com/charlieali> It depends really - If I were
promoted to some role where I could push updates to this fork then I would
carry on here. This would be ideal since most people follow this fork
rather than mine.
On the other hand, I'll probably continue pushing to my fork simply
because it is a fork I can actually update. If I had a more able role here
then I wouldn't have need to use my fork.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#97 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AcIJYKAlVT9IsRtMNUzzX0P7oHOs55Kcks5tZDu2gaJpZM4Q_v1Y>
.
|
Ok so I've put up the new update on my fork. Things added/changed include:
I've probably forgotten a couple of things but that's that for now. As always, let me know of any bugs that I haven't mentioned. I would also love to see some of the setups you guys are running! Matthew edits - Here's the bit in config.py you can play around with, I'd appreciate some ideas here Go home gradient you're drunk! (This is how it's meant to look, don't worry) |
Yo Matthew, |
Cool stuff, trying to get fadecandy going now. Installed opc with pip but
still getting importerror no module audioled.opc I will see if I can't
figure it out.
On Feb 27, 2018 7:21 PM, "Broke DIYer" <notifications@github.com> wrote:
Yo Matthew,
I've been following your fork for a lot of time now, and basically, all I
can say is you're god damn awesome dude. Going that far with such a simple
solution and making it so, so much better is really amazing. Thanks a ton,
from all of us.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#97 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AcIJYLgYUyvZFC0VR886gF7WjVhaDHiYks5tZJv8gaJpZM4Q_v1Y>
.
|
Hey guys, Decided to move my fork over to a seperate repo so that I can control pushes to master. Scott has put in tremendous effort developing this program and laying the framework for what I want to build, but the thing is this: I want to be able to create this freely, and part of allowing that process to flow is having the control over the repo to do so. I hugely appreciate the support in development that you guys give. I want to be able to more effectively open and close issues on my project alongside everyone, but right now that flexibility isn't quite there, considering Scott isn't on here very often these days. If anyone is confused or needs a hand moving over (which they will, considering the bugs that have been found already), you have a choice. Remain on this repo by simply rolling back to an older pull request, most likely my one from Christmas, or come with me to my repo where I will be answering questions and moving the project forward. If you have issues you want to be fixed, let me know here With that, I consider this issue closed. If there is a commit to pull, I would reckon the Christmas update would be it, but that probably won't happen for a while. After all, I would say this is not exactly an issue... 😉 Discussion on this topic continues here Thanks again for your support everyone, and keep those bugs coming! Matthew |
I've done a fair amount of work on this, adding in beat detection, more effects, and tidying up some of the code to make it more flexible for new effects - Here's a quick preview
Should I submit a pull request?
The text was updated successfully, but these errors were encountered: