Music Sequencer - for V3 Only.epe

I’m having issues with this code actually working. I have the latest PixelBlaze but when I removed the 2 lines in the code as suggested, nothing happens except for an exclamation point (upper left) within a triangle stating: No valid render function found.
I would like to tweek said code to run on my custom display (a tube matrix, 12x22).
Can Jeff Vyduna (the codes author) or anyone else help me understand what’s going on and how to get a basic display running?
Thanks in advance,
FredEBear

LOL. This has potential to be my nightmare thread. :upside_down_face:

I mean, let’s get it out there up front: Some folks here who are really good at Pixelblaze code still found that pattern to be a nightmare. It’s a lot. A lot of code, a lot of concepts. I would recommend people try it in year 2 of their Pixelblaze journey and when they have many hours to kill.

Unless one of lines 98-100 were inadvertently deleted, you shouldn’t be seeing the missing renderer message:

export function render(index) { render3D(index, index / pixelCount, 0, 0) }
export function render2D(index, x, y) { render3D(index, x, y, 0) }
export function render3D(index, x, y, z) {

While I tried to make it degrade nicely for no sensor board attached, beware that if you do have a sensor board attached, the level thresholds are tuned for using the line-in input with audio content that includes bass beats. This is in the comments up top.

Also note that none of the included demo patterns are 2D (they’re all 1D).

1 Like

Hello, As a budding and excited PB user I actually have 2 questions regarding patterns:

  1. Regarding pattern CS No22 - I’ve dabbled in pattern and color creation and have saved in a different name, so as not to repeat original code/color. However it doesn’t seem to matter what name I name this piece of code, the new code works great, the older unadulterated code is EXACTLY the same as the newly named one. Is this normal?
  2. Regarding Music Sequencer for v3 ONLY - Near the bottom is a list of the various patterns that one has a selection of. Great! I “//” before all except for one and the one selected worked then whole display gets blank for a very long time. Where do I denote which patterns I desire, as in a playlist of my choosing. Is this even possible? Is there a place where others can learn how to modify this code?

Can you say more about this? I wasn’t able to figure out what you’re referring to!

Yes, it’s at the very end of the pattern. You list the sub-patterns you want it to queue up from the ones defined above. You can set it to loop.

You might want to check if you’re using a command that waits for a beat to be detected to continue.

I try to comment my code fairly verbosely, but this pattern in particular really requires a fairly comprehensive understanding of the language to be able to get in and modify it successfully. I’m sorry I don’t have time to help with this at a detailed level right now!

5 posts were split to a new topic: Two patterns seem to reference the same underlying code

@FredEBear about the Music Sequencer V3:

It’s a beautifull but very complex piece of code, with very little amount of explanation online on how it works (because it’s pretty complex from the beginning yet beautifully coded).
I spent 6 hours yesterday trying to get the logic, now i kinda understand how it works at sub-pattern level (so not yet on the logic to draw the image itself with hsv) and I hope to be able to create my own patterns soon.
If i manage to understand it in a way i can explain, i’ll post a tutorial here. In the meantime, i strongly recommend this video from Jeff, its author. It helps A LOT to understand the very basic of how it works.

In short at the end (“Program Sequence” in the comments), you can simplify delete everything and keep only;

q(analyzer) //You can put in place of "analyzer" pretty much any function with a "delta" parameter above
begin()     //Necessary

With only one sub-pattern, you will see exactly what it does and why it does it, making the understanding much easier. If you look above, you will see a bunch of functions with a “delta” parameter. Any of these functions can be called with q() and is a sub-pattern.

What i’m unclear on is how it creates animations like movements, and more particularly if I can switch patterns based on music cues, not time or specific order. I plan to explore it next weekend. i’ll try to post an update.

Hololit, please keep me in the loop as you discover the intricies of this code.

@FredEBear I created a separate topic with a basic explanation i hope to expand with time: Tutorial/Questions: Music Sequencer - for V3 ONLY by Jeff Vyduna to run a DJ set