strudel icon indicating copy to clipboard operation
strudel copied to clipboard

Calculate phaser modulation phase based on time

Open daslyfe opened this issue 1 year ago • 2 comments

phaser no longer has to rely on orbits and free running lfos, because the phase of the modulator is calculated based on the time. the phaser should sound exactly the same as before

$: note("{f g g c d a a#}%8")
  .gain(1).s("sawtooth").lpenv(4).lpf(200).fanchor(0).lpdecay(.2).phaser(2)
  .attack(0)

$: note("{f g c d a a#}%1".sub(12))
  .gain(1).s("supersaw").lpenv(4).lpf(200).fanchor(0).lpdecay(3).phaser(3)
  .attack(0)

daslyfe avatar May 23 '24 03:05 daslyfe

very cool! i guess the technique here is similar to https://github.com/tidalcycles/strudel/pull/1095 ? haven't read the code in detail but I see you made this one work without touching the scheduler or the superdough call signature, so does this mean we could do the same with https://github.com/tidalcycles/strudel/pull/1095 ?

felixroos avatar May 23 '24 07:05 felixroos

Yes since the modulation speed is based on time and not cycle no changes to the scheduler were necessary it’s the same technique

daslyfe avatar May 23 '24 13:05 daslyfe

gonna go ahead and merge this so I can work on new modulations

daslyfe avatar May 26 '24 14:05 daslyfe

gonna go ahead and merge this so I can work on new modulations

👍

felixroos avatar May 26 '24 19:05 felixroos