phasor~ > function sequencer question

Peter Bajzek's icon

Hi, I'm pretty new to Max and enjoying it a lot but I've never been a programmer so there's a lot to wrap my head around. I am trying to build a step sequencer driven by tempo-locked phasor~, but I want the phasor shape to be "warped" by a function object, basically a tempo-synched complex modulation curve. I'm confident in my idea but I can't figure out how to make phasor~ drive the function, since it outputs a signal and function wants a float input. I imagine I need to use some sort of mediating buffer but I don't know enough to make that work. Any ideas, or examples I could look to? I haven't been able to find any. Thanks!

Wil's icon

you can do many things with phasor~

or function

or both

Max Patch
Copy patch and select New From Clipboard in Max.

Stevon's icon

shape~ is the object your looking for

Max Patch
Copy patch and select New From Clipboard in Max.

Peter Bajzek's icon

@WIL thank you, I thought Edge might be part of the solution but I was using it wrong. This translation makes more sense now.

@STEVON thank you too, I had played with curve~ but missed shape~.

What I'm missing (and forgot to mention initially) is these approaches work great for modulation but I also want the function output to drive the shape of the "measure," so I can sort of time warp and displace my step sequencer triggers. I thought I only had to feed my function output to a subdiv~ but STEVON's example shows that my thinking was backwards, subdiv~ gives me smaller clones of the parent shape. Is there a way to use the function to warp my "clock" (kind of like a weird swing)? So the attached pic would initially squeeze the sequence to play back fast before gradually stretching back to normal by the end of the measure. I can sort of picture the structure but I don't really have the vocabulary to explain myself.

This is something I do all the time with audio clips in Live but I'm trying to apply it to a sequence for more real-time interactivity.

MakePatchesNotWar's icon

"Is there a way to use the function to warp my "clock" (kind of like a weird swing)?"

I think a shape to drive another shape will do that. Shapeception if you will :)

Peter Bajzek's icon

I was thinking along those lines, but I can't see how to derive the asymmetrically-subdivided bang/triggers from that configuration. Maybe I can use the output of shape~ or curve~ to modulate the phase offset of another phasor~, then when I subdiv~ that one to get triggers, the distance between divisions will be continually variable. Just thinking out loud over lunch, I will try this tonight!

double_UG's icon

swing~

Max Patch
Copy patch and select New From Clipboard in Max.

Aera's icon

Check out Philip Meyer's videos he's going deep into this kind of stuff as well, great resource: Bouncing Ball Rhythms in Max MSP

Roman Thilenius's icon

otherwise, where functions are not sufficient or too CPU consumptive, [lookup~] can be used to freely shape a normalized range.

Peter Bajzek's icon

@AERA, wow, I’ve been watching a million of Meyer’s videos because he seemed likely to have the answer, but I hadn’t found this one. Yes, that’s exactly what I needed. Ironically I was very close with my initial guess but I didn’t know about shape~, so that was the solution. Thanks, everybody!

Stevon's icon

@Peter Bajzek

Philipp Meyer is a great resource on sequecing
But with twist~ you can just edit one phasor curve element, if you actually want to use the function object to shape your sequence there are other ways too

Max Patch
Copy patch and select New From Clipboard in Max.