PRAISE THE LED GODS!!! This has to be the greatest FastLED tutorial series ever created. 1) The way you explained converting to floating point values was so easy to understand! I've tried reading through the FastLED code many times and always just give up trying to understand what a Q8.8 is (and a fract8 and a qadd8 and all the other things they've created). 2) your explanation of time offset and phase and how they work together is absolutely brilliant. I've tried and failed so many times to find a way to understand these functions only to find open questions on forums or stack overflow where the answers were not correct. THIS is very correct! thank you!
Scott I keep coming back to this video set. It's solidified my project for certain! A question though - With Blur1d, as the driving pixel nears the end of the strip and reaches the last LED, the blur trailing it also disappears before reaching the end. It makes sense to me why it's doing that as the blur depends on the driving pixel, but is there a quick work around to ensure the blur continues on course, or should I arbitrarily change the LED_NUMS to be higher than my actual strip to act as a quick fix?
Hey, I really love these videos they helped me a LOT on how to learn all the FastLED library, I generaly never coment on any video but I really wanted to thank you for taking the time to make this series, thank you so much! :)
Thank you so much for making these videos! I've been using some of the functionality of FastLED for a while, but have been stuck on just how to use a lot of the functions. You're teaching style is so great at getting the information across without any extraneous fluff.
Thank you for the explanations. How would you go if you want the sawtooth to start with red and end up with purple continuously, that is, same colour all the time.
Scott, curious if you have played with ChatGPT with regards to these types of equations. I feel like it should be good at this visual effect -> math -> change in input arguments type of code generation. I think a video specifically on how you communicated an effect to ChatGPT and how the resulting code mapped to a given math equation/wave would be super informative, especially for people that are less into coding and more into getting to a given effect output. Really amazing video, I learned more about how to do moving LED's in an efficient way in 10 minutes than all the googling i've done on the topic.
I just love your FastLED tutorials. Could you please make one where we can take the audio input (from some media file/audio sensor) and convert them into light output in terms of waves? That'd be so cool!
Scott, another great video. Good use of visuals to explain the concept of the beatsin. It made it much easier to understand. I had never even heard of the blur function so that was cool. When you have multiple waves the addition is not really adding the two colors to each other is it? It's more of the int values are being added and then the color is pulled from the hue wheel.. I'm not sure if my question is even making sense :)
It depends on which example you're talking about, but basically, yes! The two waves added together just give a number from 0-255 then that number is used to select the hue (or index from a palette if you're talking about that one!).
But of course you can use the output from beatsin8 as an input to pretty much anything, hue, brightness, position, color index, RGB values, timing functions, amounts of blur, whatever.
Your videos are amazing! I'm an absolute newb and you teach in a way that is easily understandable. Thank you for taking your time to make these videos. Learning how to code inputs like a button to switch modes have been troublesome for me to grasp. Might be a cool Idea for a future video :)
Once you start playing with them you'll find that they're waaaay more useful than you originally thought. And they're not too difficult to understand really, it's just that they're not explained very well in the documentation. Thank you for your comment :)
Thank you for your excellent learning series! I've got 150 LEDS and in the beatsin8 function, when I select a bpm of 10 or 30, some of the lights on the led strip are left out and dont illuminate in the moving dot example. Is there a way to select a bpm where every single illuminate as the light travel alongs the strip?
Brand new to the world of Arduino. Just found you videos. On the Beatsin8, I keep coming up with and exit status 1 Error compiling for board Arduino Uno. I'm not sure what is wrong. I've copied what you have but I can't seem to get rid of the error
Interested in working with me on an LED animation project? Can offer compensation as well! It’s for a cube and dode! Any way of communicating? Telegram?
I have done so in the past, but it's rare. People underestimate how long it takes to work on things like this and freak out when I tell them what they will be paying ;)
hi scott, is there a way to make a sunrise effect using something like fastled. i want to make something where my led strip starts off dark blue low brightness then from a "hotspot" point on the strip (say middle) i want it to start getting brighter and a lighter blue untill most the led strip has become this colour (fading out from the hotspot to the ends of the strip) and then i want the hotspot to become a red/oringe and as that covers the strip i want it to become a more yellow to white before it engulfs the full strip, then i want the strip to slowly become a daylight white after a set time say 5 mins. i only ask because on a forum ive asked for help on someones dm'd me saying it cant be done on fastLED but it can be done on something else they are trying to get me to pay for. hope you can help, all the best.
Not sure what they mean by saying it can't be done. Each LED can be set to any colour you like, so in principle any pattern can be created. Might not be easy to code, but anything is possible with enough dedication ;)
These tutorials are incredibly good. Thank you! By the way, 7:40 this code doesn't look okay? The beat wave variables are 8 bit variables. So doing "(beat + beat2) / 2" will create a new temporary 8 bit variable, add another 8 bit variable to it thus overflowing, and THEN divides the overflow by 2. I bet the effect still does pretty much what you wanted. But proper math would probably be to do "(beat / 2 + beat2 / 2)"? Halving them before adding them together to ensure the result is still within the range of an 8 bit number.
The dummy again. LOL blurld(leds, NUM_LEDS, 150) comes up not declared in this scope. It doesn't appear to be in FastLED.h. Suggestions? Thanks for your support.
Thank you so much for that. As a newbie, I was looking for this for so long for a specific project. I watched all 4 videos and learn a lot. You have a amazing way to explain things. Thanks again!
Another great video, these are the best training FastLED tutorials out here, i really hope you keep going there are so many topics that could be covered. i hope you build enough viewership to get some return. I personally am trying to build a controller for my back yard that will control 4 strips in different patterns. so making my patterns nonblocking is critical. is it possible you can go into more detail about using EVERY_N... functions and/or how to adapt some of the amazing patterns avaiable (even in the fast led library)but ruined by using delays, or FastLED.shows calls in the middle. (apparently slows everything down)
Thank you, not quite at the point that RU-vid will pay me yet! I do have a donation link in the description if you're so inclined, but it is absolutely not required! You can see how to use multiple patterns in Episode 5. To use different patterns on different strips, you would do something similar, but have multiple LED arrays set up that the patterns write to. See here for more info github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples
awesome video as always. Scott, on the section "addingWaves" you have lines 19 & 20 (in the sample code) as beatsin16 but your demo has it at 8. I didn't get the same results as you did until I changed it to beatsin8
I just want to say this is THE best programming tutorial series I have seen. I have very little knowledge of C++ and I have never used FastLED (though I develop Android apps with Java) and everything is so easy to understand and everything makes sense. I understand every line of code in all the videos because your explanations are really good. I never thought that I'd find a tutorial useful for anything other than a problem in my code but this just makes me want to open my IDE.
Hey, great tutorial. I am currently having a problem with the random red light and I can’t seem to fix it. I’m not using any fill rainbow command but I already tried fixing those values, it didn’t work. Im using code very similar to the twinkleFOX fastLED code. Hopefully you could help (or someone else in the comments). Thanks in advance!
Not sure what you're after, but instructions on getting started with the serial plotter can be found here arduinogetstarted.com/tutorials/arduino-serial-plotter thanks for your comments!
Hey thanks for the tutorial..how would you go about increasing the speed of the sawtooth? I tried messing with the numbers but didn’t get the right outcome (pretty cool results though)
You would have to use the timebase to phase shift on beat8. See the part of the video where I talk about beatsin8 and explain how the timebase works. The only issue with using the timebase is that if the frequency changes you will also have to update the timebase if you want the same phas shift.
Well done! I really like how you include examples of the code and the outcome on the LEDs! Great stuff, I have learned A LOT from your videos! Thank you!
@@ScottMarley I have some great hardware installation on some props for my kids dance studio! Running ~300 LEDs on various strips at long distances. I had some functional code working, but your videos have really fine tuned my stuff and I was able to add some great features! I'm using a Teensy LC + OCTOWS2811 Adapter + HC-05 Bluetooth Adapter for the control aspect. I was initially using the WS2813 LEDs, but had lots of reliability issues with them, lots of defective LEDs after being ON under a relatively high power condition (like AQUA or WHITE) - I discovered this to be related to heat issues with the driver IC inside the LED. I switched to the SK6812 LED strips and have had zero issues with reliability. The color matching from LED to LED is far superior with the SK6812 over the WS2813 LEDs. Anyway, many thanks again!
Let me be more clear....when you use sinbeat to change the position of the blue LED, would it be possible to instead have the blue LED be rotating through a palette of colors?
I'm not sure what you mean by this? You can use random8(min, max) to generate a random number between min and max and use this for some of the parameters. Is that what you mean?
Thank you for reply sir what i mean sir all code in WAVES AND BLUR( addingwaves, blur, blurphasebeat, brightnesswave, gradientbeat, movingdot, phasebeat, rainbowbeat, and sawtooth) it wll put in 1 code so i can play in one code Is that possible sir?
@@bisayagamer5072 oh, I understand. Yes it's possible! I show you how to combine patterns in episode 5. Watch that video, and use the code there to see how it is done.
WOW!!! Very helpful sir now i can start may design your my hero sir thank you so much i already subscribe your chanel and the notification 🔔 so i can update your chanel
Hey, great video! I do have one question: When I use a beastsin8 wave on my ledstrip (120leds) some of the leds don't light up. What causes this and how can I fix that? Thanks for the great content!
Can't say without seeing your code. And when you say don't light up, do you mean at random, or the first so many work and the rest don't etc. Put your code on pastebin and link it here and I'll have a look.
@@ScottMarley pastebin.com/LsCRY97F In this script I tried to only light up the first 70 leds, but the one of them did not light up. Thanks in advance!
@@WildStyleGamerz which one didn't light up? The first one? The last one? A random one? When asking for help, try to be as descriptive as you can otherwise it's really difficult.
@@ScottMarley I'm sorry i forgot to specify: The led(s) that does not light up seems to be random and dependent of the amount of leds. (The leds that don't light up stay the same when the program isn't changed) When using 70 leds there seem to be 2 random ones which don't work (always the same 2 though). When i use all leds there are more that won't shine. The leds that don't work aren't the same when using all of them compared to 70. Hope this explains my situation, sorry for my english. Thanks!
@@WildStyleGamerz Thank you for the detailed response. The problem you are having is due to the low resolution of beatsin8 (0-255) and the bpm at which your sin wave is generated. At certain points, the ouptut of beatsin8 is changing so quickly that a number gets skipped. The way around this is to change line 15 to: uint16_t sinBeat = beatsin16(30, 0, 70, 0, 0); This uses a higher resolution version of the beatsin function and should solve your problem. Hope that helps!