hey,
after looking at this video describing a specific rhythm technique used by mark fell on intra,
I thought this is basically hard sync of two ramps. Would someone know how to implement that with two phasors?
This was my first attempt following the description in the video:
EDIT: In the book about gen~ which is mentioned in the video its stated that sometimes its better to derive triggers from phases and not phases from triggers. The book makes an argument for using phasors instead of triggers for organising rhythmic structures with the different possibilites for shaping the ramps and getting triggers, steps, lfos etc from it which are synced to the triggers. One advantage i found already is, that its possible to have asynchronous triggers and a continuous phase and for example divide the phase by non-integer values to get non-integer divisions.
cool it seems to work.
I have addtionally subtracted SampleDur.ir before wrapping the Phasors, so you also get the initial trigger and replaced Trig.ar by Trig1.ar and used SampleDur.ir for its duration. This seems to result in an appropriate range between 0 and 1 for the trigger.
(
{ |innerLoop = 4, outerLoop = 7|
var rate = 100;
var a = (Phasor.ar(0, rate * SampleDur.ir * innerLoop, 0, 1) - SampleDur.ir).wrap(0, 1);
var b = (Phasor.ar(Slope.ar(a), rate * SampleDur.ir * outerLoop, 0, 1) - SampleDur.ir).wrap(0, 1);
var c = Trig1.ar(Slope.ar(b), SampleDur.ir);
[a, b, c];
}.plot(0.02);
)
Is the Slope / Trig1 combination equal to HPZ1 in terms of accurancy?
(
{ |innerLoop = 4, outerLoop = 7|
var rate = 100;
var a = (Phasor.ar(0, rate * SampleDur.ir * innerLoop, 0, 1) - SampleDur.ir).wrap(0, 1);
var b = (Phasor.ar(HPZ1.ar(a) < 0, rate * SampleDur.ir * outerLoop, 0, 1) - SampleDur.ir).wrap(0, 1);
var c = HPZ1.ar(b) < 0;
[a, b, c];
}.plot(0.02);
)
EDIT: i guess not:
Slope / Trig1
HPZ1
adding Impulse.ar(0) to HPZ1 without subtracting SampleDur.ir from Phasor
I tried to mock up a Pattern version that has the same trigger semantics - I couldn’t come up with anything off the top of my head, but it would be a cool thing to solve. Obviously, continuously varying the rates wouldn’t work, but I think one could still achieve some cool results?