Hey @Stefan_Petrick , I adapted your “Animation 22” to the Technocolour Dreamcoat and it looks ace! I fiddled the constants a bit and added a 2D blur over everything. Interesting how the “timbre” of the colours change as I adjust the mic volume.
Great, @Robert_Atkins ! Is it still the same jacket I touched already?
Yup! New hardware though—added an MSEQ7 as I can’t do FFT in software because they’re three-wire strips and don’t play well with interrupts.
Btw: What is the additional 2d blur contributing? It seems to me that you are basically calculating one vertical line and copying this one around. So my question is what is the 2D blur doing differently compared the last line of the animation22 code?
And now for something completely different: Because the MSGEQ7 data contains always a remarkable noise level (together with a mic even more I guess) I tested some very simple “data noise cancelling” - something like if (bands[1] < 70) bands[1] = 0; in order to get more contrast (more black to be precise) into the animation. Looking forward to seeing the Dreamcoat in action again one day! Greetings!
I’m using a blur of 64, so I think it’s spreading it over more lines. It did seem smoother when I eyeballed it, anyhow. I’ll try the “noise cancelling” tip. Was also thinking of taking a rolling average over 3-5 samples and checking if that was over a threshold to get more solid beat detection.
How long does a typical kick drum beat last anyhow?
Yeah, averaging over multiple samples helps for sure. I also found that sometimes the most precise beat information is hidden in the difference of the 2 lowest bands because they have a different rising time. Have a look here - page 8 - Delta Bass: https://www.youtube.com/watch?v=le5NjTL9Qyw
It shows basically something like abs(bands[1]-bands[0])
The lenght of the kick drum is in my eyes not so interesting - it is all about precisely detecting the beginning of it. We want light to sound, not light after sound, right. The MSGEQ7 needs like any other spectrum analyzer solution at least one complete wave of the band frequency to detect it. That causes a minimal latency of 16 ms for the 63Hz band. A 400Hz sine wave is detected within 0,6 mS. 160Hz needs 6 ms. Another thought: the rising speed of a given band also shows the interesting spot - so differential calculus might help here to quickly detect where the beat starts. I´ve some more potentially good ideas about it but I need a logic analyzer in my hands to test them. I ordered one already. If I make any progress I´ll report it.
build log and code?
No build log unfortunately, I’m not that disciplined. Code can be found at https://bitbucket.org/ratkins/technocolourdreamcoat2016controllertest/src
awesome thanks yo
Have you worn it to a club or festival? I’m wondering how well it handles the really loud music.
Lots of times, that’s the point 
There’s a pot to control the sensitivity so I can adjust it to the ambient volume, but it doesn’t work quite as well as I’d like.
Hi @Robert_Atkins , I’ve adapted your 2014 design for my own coat the past few years (very impressed, thank you!) but have some questions for you about how you’ve organized the code. Are you open to some direct questions? Thanks!
Sure, fire away! Either start a new thread or email me: ratkins at fastmail dot fm
