offsetting master phasor

Feb 4, 2009 at 10:55pm

offsetting master phasor

Hi there,

my multi channel looper app is running off a master phasor which feeds a ramp to the various channels and gets adjusted according the number of beats (using pong~etc.)

Now I wanted to add loop slicing with the monome (jumping to various slices a la mlr), and I figured the easiest way to do that would be to phase-offset the individual ramps per channel. But how to do that ?

I know that I can change the phase of the phasor itself, but doesn’t make sense as there is only one.

The other option would be to play each slice individually (using groove~ instead of wave~), but then I would leave the signal domain.

any recommendations ?

thx nick

#42116
Feb 5, 2009 at 12:51am

I’m not sure what you have in mind exactly but you could check out my
p.decimator abstraction and/or look into using rate~ for phase offsets.

pelado

http://www.pelado.co.uk

http://www.wiki.pelado.co.uk

On Wed, Feb 4, 2009 at 11:55 PM, Nick Laqua wrote:

>
> Hi there,
>
> my multi channel looper app is running off a master phasor which feeds a
> ramp to the various channels and gets adjusted according the number of beats
> (using pong~etc.)
>
> Now I wanted to add loop slicing with the monome (jumping to various slices
> a la mlr), and I figured the easiest way to do that would be to phase-offset
> the individual ramps per channel. But how to do that ?
>
> I know that I can change the phase of the phasor itself, but doesn’t make
> sense as there is only one.
>
> The other option would be to play each slice individually (using groove~
> instead of wave~), but then I would leave the signal domain.
>
> any recommendations ?
>
> thx nick
>

#150544
Feb 5, 2009 at 2:12am

> The other option would be to play each slice individually (using groove~ instead of wave~), but then I would leave the signal domain.
>

really? I understood groove~ to be in the signal domain, am I missing something? run by a sig~?

> I know that I can change the phase of the phasor itself, but doesn’t make sense as there is only one.
>

Perhaps some trickery with +~ creating a kind of offset for the different needs, several “offset” signals coming out of the main phasor~, I’m not sure without more info. Also you could go ahead and use multiple phasors~, I don’t know that it would make a difference except in the design … which admittedly you might not want to change :)

#150545
Feb 5, 2009 at 7:05am

@pelado

thx, that will probably perfectly do as goto allows for quantisation as well in order to stay sync’ed. I assumed it only allows for multiplication, and not adding/offset. RTFM….

@seejayjames

you are right, it is in the signal domain for speed, loop start and loop end. It is all in ms though, so I will try rate~first.

thx guys

#150546
Feb 5, 2009 at 9:16pm

only problem with groove~ is that if you want to interrupt the loop with a new starting point, you send a message(start-time in ms) to the left-most inlet. Because this is an event, not a signal(as is the “startloop” message which restarts the loop immediately), this cannot be timed signal-accurate unless you put it in a poly~ to utilize voices and keep the vector size low with scheduler in overdrive and audio-interrupt(the starting-point/loop-min inlet of groove~ actually waits for the loop to end before it registers a newly changed starting point).

Also, wave~ is great but it’s easier to use for wavetable-like playback, in my humble opinion. All the playback objects that work in milliseconds do so with floating-point millisecond values so you can still have sample-accuracy.

Without seeing your patch, here’s something you could use as a starting point using play~, hope it helps:

– Pasted Max Patch, click to expand. –
#150547
Feb 5, 2009 at 9:37pm

oh, and if you do want to use phase-offsets for wave~ with phasor~/rate~, look into using zigzag~(in mode 1, with an initial message of ).

here’s a really basic example of that which you can then take and apply to wave~:

– Pasted Max Patch, click to expand. –

Remember to initialize the patch by double-clicking the loadbang if you’re copying/pasting and then testing it out direclty, otherwise zigzag~ won’t have a starting reference and will simply register a bunch of offset square waves as opposed to offset phasors.

#150548
Feb 5, 2009 at 10:16pm

that last patch is simple but can get screwy if you start changing params so hopefully this is more clear for testing out. sorry, i’m still too lazy to apply this to wave~ or play~ to hear it so my math also might need to be reversed in some areas but it gives you the basic idea:

– Pasted Max Patch, click to expand. –
#150549
Feb 6, 2009 at 9:48am

thx rabidraja for those interesting examples as it isn’t the easiest topic, and those provide insight into signal processing tricks. not sure though how to apply it to my task at hand.

I implemented the rate~solution which enables independent offsetting and multiplication (tempo) per channel, and it works fine, including quantisation (goto xx xx), reset (goto 0. 0.) and unsynced (goto xx).

cheers, nick

#150550

You must be logged in to reply to this topic.