  redPhasor ; no looping & it will play through once ; mouse x acts as trigger
let tr = mouseX kr 0 1 Linear 0.2 `greater_than` 0.5
in sinOsc ar (X.redPhasor kr tr 0.3 400 800 0 500 600) 0 * 0.2

  redPhasor ; start value greater than end value , positive rate , c.f . redPhasor2
let tr = mouseX kr 0 1 Linear 0.2 `greater_than` 0.5
in sinOsc ar (X.redPhasor kr tr 0.3 800 400 0 500 600) 0 * 0.2

  redPhasor ; mouse y controls looping on / off , mouse x trigger
let tr = mouseX kr 0 1 Linear 0.2 `greater_than` 0.5
    lp = mouseY kr 0 1 Linear 0.2 `greater_than` 0.5
in sinOsc ar (X.redPhasor kr tr 0.3 400 800 lp 500 600) 0 * 0.2

  redPhasor ; mouse x controls loop rate , mouse y scales the start loop - point
let x = mouseX kr 0 5 Linear 0.2
    y = mouseY kr 200 500 Linear 0.2
in sinOsc ar (X.redPhasor kr 0 x 400 800 1 y 600) 0 * 0.2

  redPhasor ; no looping & it will play through once ; mouse x acts as trigger
let tr = mouseX kr 0 1 Linear 0.2 `greater_than` 0.5
in sinOsc ar (X.redPhasor kr tr 0.3 400 800 0 500 600) 0 * 0.2

  redPhasor ; start value greater than end value , positive rate , c.f . redPhasor2
let tr = mouseX kr 0 1 Linear 0.2 `greater_than` 0.5
in sinOsc ar (X.redPhasor kr tr 0.3 800 400 0 500 600) 0 * 0.2

  redPhasor ; mouse y controls looping on / off , mouse x trigger
let tr = mouseX kr 0 1 Linear 0.2 `greater_than` 0.5
    lp = mouseY kr 0 1 Linear 0.2 `greater_than` 0.5
in sinOsc ar (X.redPhasor kr tr 0.3 400 800 lp 500 600) 0 * 0.2

  redPhasor ; mouse x controls loop rate , mouse y scales the start loop - point
let x = mouseX kr 0 5 Linear 0.2
    y = mouseY kr 200 500 Linear 0.2
in sinOsc ar (X.redPhasor kr 0 x 400 800 1 y 600) 0 * 0.2
