@Mark_Estes Hi Mark,
Yes, the key concept there is “local”. I have an electret mike and I tried a few tests. The sound field at BM is so chaotic that I did not see a way to tie the display to sound input in any reliable way. You tune it to your own music and a loud MV comes by and it all goes to hash. How would you do it?
@Paul_Guthrie i would propose using a teensy based audio board which has the option of direct connection from an audio cable or using the built in mic. You would pair that board with a 2nd teensy 3.2 and then pass the audio analysis from that to your main micro board over serial or i2c. using the board as input, the teensy runs a FFT analysis that spits out 512 bins of audio data. One can then combine these to build as many bands of output you want (also easy). I have these details worked out and would be glad to share. The other option is the msgeq7, same approach but you get 7 bands (or less if you ignore some).
In some cases, it may be nice to have it react to the mic, and on others, to hard wired source, So toss in a simple button/switch to tell the teensy which source to listen to. OR possibly some logic that says, when the line is quiet for more than 20 seconds, switch to the mic so that you never have to futz with it.
The vid below shows the result of the teensy FFT approach in which the first teensy, sends over the analysis as an array of 17 bytes for the main board to chew on. it is quick enough that you sense no lag.
Thanks @marmil and @Mark_Estes , for your suggestions. It sounds like line input is the best bet to begin with, since Camp BRC3PO runs a PA system, and we have a couple of people who DJ, so we have music going most of the night. I think my biggest uncertainty is what to make the lights do in response to the music. If you can point me toward some good implementations that would be great.
here are a few examples on a 64 x 64 matrix. https://photos.app.goo.gl/qLS14Ad6UzCng3Q23
same concepts could be applied to jelly. So start with the notion that you have x values that are responding to the levels of different frequencies of the music. drive the height of the flow up (or down for a more jelly like approach) the leg based on the level of that signal. or start in the middle of the leg and drive up and down like the video posted above does only substituting one leg for each column( and I have way more than your jelly has legs). . There are a host of ideas. it starts with how you currently organize your code to drive them. I would be glad to take a shot as adding some and would send you over the audio circuit in exchange for a beer ( or 3) in the event we ever meet and videos of it working at burning man. I will take a look at your code tomorrow and give it some thought.
In adding audio to your code. I note that you use a lot of pallets to control colors. Are you married to that method or the select pallets you defined. My task gets easier if I just use the entire color wheel.
@Mark_Estes Kind of depends on whether you are thinking of a stand alone function or a wrapper. The first palette is a full color wheel rainbow. If we are going to do a collaboration, maybe we should take the discussion off the group. My email is pauldguthrieATcomcastDOTnet.