Translating 1D/2D Patterns to work with multiple 1D Strips in Series

Hi, still somewhat a beginner here, but have completed a couple projects, including some with syncing multiple PB’s. My lighting setup for this project is 4 homemade vertical led strips that are a couple feet apart each, similar to the Chauvet Freedom sticks but with 144 LED/m. The data line will go in series from the end of one to the start of the next.

I want to do 3 things:

  1. [Priority] Easily translate the 1d patterns I have into 1d patterns but for 4 strips, where all the bars are still doing the same things.
  2. Translate 2d patterns to work with these 4 bars, i.e. ones that still look good like sound frequency bars for each bar
  3. [Bonus] Alter 1d patterns to work like quasi-2D patterns. e.g. For a sound reactive pattern, have each LED bar blink one after the other instead of every beat.

Ideally to accommodate all these approaches I won’t be switching between mappings for 1D/2D. The WLED solution for (1) is relatively straight forward in the patterns config. Is there a similar approach here? Or do I have to alter every 1D pattern to divide by the number of bars and map the pattern to each section? Maybe I’m overthinking this part and it’s much more straightforward to copy and paste?

I’m unsure the optimal approach to (2). The least programming/customization is just to copy+paste a new mapping when using 2D patterns. Suggestions?

The other approach I thought of was using 4 PB’s to sync to a central PB, and then dividing up with nodes/mappings for use cases (2) and (3), but that seems like it’s unnecessarily complex, especially for non-wearables that will be wired anyways. I’m not necessarily agains this approach as it’s more plug and play from a hardware perspective, and they don’t have to be wired.

You can simply consider the 4 strips as a matrix (if they are all the same size), then develop 2D patterns not against index (since all indexes are after the other), but against y in height and x in width that will allow 6ou to “select” which strip is being animated.

You can load a matrix example from the mapping tab.

So effectively map as a 2d matrix permanently but add a 2d render function that duplicates the 1d function to all patterns, but without utilizing an X for the 1d functions? Makes way more sense than my approach.