BlinkStick Visualization Showcase

Something a bit more solid than that ambilight clone imo. And unlike my last visualization post, these are all done in real-time thanks to the amazing work of Will Yager. The first 3 scripts are music visualizations and take the backend of Will Yager’s script and visualizes the numbers in different ways. The last 3 are all kind of ambient visualizations.

The code for Will Yager’s visualizer can be found here: https://github.com/wyager/LEDStrip
You just need to modify led_driver.py inside Audio Processing to output to whatever LED strip you have and you’re good to go. You can safely ignore everything not inside Audio Processing.

BlinkPulse - Based heavily off Will Yager’s script. Most of the music visualizers are. They just take the audio stuff processed by Will Yager’s scripts and then force it into different shapes. Available here: https://gitgud.io/diff-blinkstick/blinkpulse-visualizer/

BlinkFlash - Again, based off of Will Yager’s script. Source available here: https://gitgud.io/diff-blinkstick/blinkflash/tree/master

Fire, Storm, Fireflies - Not a music visualizer. I just made them to look neat. Storm (along with a few other scripts not in the video) is used to show me what the weather will be like that day while I’m getting ready in the morning. Source available here: https://gitgud.io/diff-blinkstick/toys

See the video’s description for more info.

3 Likes

Looks really cool. This is what i’d like put inside my pc case. Can I ask you what/how many blinksticks and led’s you are using? Is it just the blinkstick flex? or do you have the pro and some other led’s?

Also, when might Blinkflash be available?

Yep, just using a BlinkStick Flex. The code for blinkflash is available here.

Hi guys, I been playing around with my Blinkstick and been trying to get this to work but i keep getting this SyntaxError but i cant figure out why. I am using Python 3.7.4 32bit

Can you post all of your code?

I am using https://github.com/wyager/LEDStrip the error is in the lavalamp_colors.py

i was trying to post the code here but it makes a mess…

Don’t think you can split a tuple in the arguments like that in Python3. IIRC Will Yager’s original code was written for Python2 and needed just a few tweaks to get it functional for Python3.

could one of you help me with this?

If you don’t have a good enough grasp of Python to upgrade the script yet I would probably just fall back to using Python 2 for this script for the time being.

You can find an upgraded copy of notes_noscaled_saturation or whatever the other file is named in the links in the first post (although it does have some slight tweaks), but I never really messed much with lavalamp_colors.

Hi guys, so i finaly got it somewhat to work. i just have a dumb question.
The code keeps referring to input devices. Does that mean like a “line in” or “mic in”? Do i have to feed the audio into the device or can i play it of that device that the code is running on?

so i got it all to work now and the light go to the music but im getting an input overload fault. if i give it a bigger buffer it seams to run sightly longer but ill still get that fault. any idea what im doing wrong?

Yeah, they do. It can refer to a microphone port, a physical microphone, even a virtual “monitor” device that contains the currently playing audio on your computer.

PortAudio is saying you’ve got a buffer overflow? Maybe check the sample rate your computer is spewing out. If your PC is offering up 48K that might be a problem because IIRC the script is fairly well hardcoded for 44.1K, although I thought that it did specifically ask for 44.1K.

I have run into that before, though, I’m not sure how (if?) I got around it. Try messing around with the number of samples, or add error handling to the audio stream function thing to ignore buffer overflows.

Maybe the visualization code can’t run fast enough to be able to keep up with the amount of data being fed into it. Especially if the visualization code needs to run faster than the blinkstick can update in order to keep up, hadn’t thought of that.