Sound Reactive Patterns for LED Banjo

Can anyone point me to resource online that has some more sound reactive patterns? I have the ones on the patterns page and was curious if there were any more. Turns out, I’m good at making an LED banjo and playing it, but I can’t make good sound reactive patterns :frowning:

I give full permission to use these to advertise pixelblaze, and I’ll post videos of any new sound reactive patterns I find :slight_smile:

I have mapped the circle shape in the map menu, I’m sad that some of the cooler sound patterns use an adjustment meant for square matrixes ( they don’t use the mapping menu configuration)


That’s awesome!

Yes, we need more sound reactive patterns. Hopefully we’ll have more soon, and with less hard coding to specific setups (like 1d or 16x16)

Sound reactivity is a slowly growing library, not just for PB, but WLED’s SR fork, LedFx, and other controllers are fairly limited too. But I’m hoping we see more cross-polination happening.

BTW, try this one: 2d rainbow patterns? - #20 by zranger1
I do need to go back and revise it (the link includes a tweak Jon made too), but it does work now. Since it’s a spinning pattern, should look good on your banjo.

Sweet! I appreciate you forwarding this to me! Is there a tweak to make the waveform more visible? This is what it looks like on the banjo:

Hmm, that’s not quite right… I’ll play with it tonight and post a revised version.

That said, how is your banjo mapped?

Can you share the code/info you put into the mapper? Because that’s not quite what I expected from that pattern.

That looks kinda similar to what I get with the pattern on my square display. From the sound + video, it looks like it’s mostly picking up the bass. The other thing that might be happening is power supply fluctuations causing the sensor board to “hear” things - try adding large capacitors near PB and see if that helps.

The contrast in the pattern is hard to see, so I adjusted line 68 to this:

  bri = (radius <= frequencyData[getAngle(x,y)]*size) ? 1 : 0.1

So that the background rainbow is darker.

Thanks for the feedback! The mapping is not exact, but it is pretty close. The following uses concentric rings but it is actually a spiral of 300 LEDs.

function (pixelCount) {
  var map = [];
  var rings = [1,6,11,15,20,23,27,31,35,39,44,48]; 
  var numberofrings = rings.length;
  var inwardwired = 1;  
  for (ring = 0; ring < numberofrings; ring++) {
    if (rings[ring] == 0) {
    } else {
      if (rings[ring] == 1) {
      } else {
        for (i = inwardwired; i < rings[ring] + inwardwired; i++) {
          c = i / rings[ring] * Math.PI * 2
          map.push([0 - Math.sin(c) * ring, 0 - Math.cos(c) * ring])
  if (inwardwired) {
    return map.reverse(); 
  } else {
    return map; 

Banjo Rings

Wizard, thanks for your help on this! This looks great! I already have voltage regulation so that is likely not the issue if there is one.


Yeah, reducing the background brightness greatly was needed. Unsure why it was so left high, absolutely needs to be adjustable :slight_smile:

The frequency spread into those 32 buckets is sorely visible as a handful of rotating spikes, because only a handful of those get any activity. On my list to tweak for sure.

If someone with talent for reprogramming the STM on the Sensor board is interested, other FFT methods might be really interesting to have as options. Maybe Sensor 2.0, we can do something we can adjust.

I thought I had adjustment table in there, but I don’t! It was another audio project using the same mic - but different frequency buckets. The implementation is pretty easy, play balanced noise to it and get normalization factors based on what it outputs.

1 Like

With more sound reactive implementations (thanks to esp32 and beyond), hopefully a best of breed or way to share info will arise. I was hoping clohr’s ColorChord would be implemented by LedFx, but someone started and never finished. The esp8266 port had someone work on it for esp32 but they never posted code. seems worth checking too… WLED is improving the sound reactive bits and audio sync via UDP is interesting, they only pass along 16 buckets (plus other info).

If PB added UDP sync, maybe it could generate UDP sensor data as well as listen for it. Plus I still need to play with Dave’s led stuff (he’s still planning on adding in hub75 code, for example)

Some sort of interoperability is likely a win win in the long run.

Thank you, this gives me quite a bit to look at. From what you have detailed, it looks like the reactivity might be limited to some degree based on the hardware. I think it still has tons of application. For example, if I could figure out how to use sound variables to change inputs of existing 2d patterns that would rock.

I can say that I researched the hell out of led controllers and pixelblaze is significantly ahead of all other options based on what I am using it for. I go to music festivals and it is super helpful to change configurations on the fly via cellphone over wifi. The sequencer ensures I don’t have to manually change the patterns while playing. There are a lot of non sound reactive patterns and I have some ability to edit these to make cool patterns on a custom mapped circle. The controller board has some cool stuff too. I wish I could figure out how to get glowflow to work, that would be awesome!


1 Like

A good 2D adaptation of the sloshing would look nice on the banjo… Like it had water inside it.

Glowflo can be enhanced to take advantage of the new coordinate transformation APIs. In fact, most of the code in the Glowflo pattern had to do with the math for rotating 3D coordinates based on the gravitational force / angles detected by the accelerometer.

I had a start for a desk cube, let me see if I can find it and polish it up. It was much, much faster.

1 Like

Glowflow would be awesome! It has sound, motion, and light reactivity which would showcase what Pixelblaze is capable of. My banjo is going to get a lot of notice at music festivals!

Oh shiiit such a system…