;; sin, tri and saw with ignored pw (i.e. 3rd) argument
;; this is to match pulse which requires pw
(bind-func oscXAnalogue_c
(lambda (phase)
(set! phase (- (* phase STWOPI) SPI))
(let ((t (/ STWOPI SAMPLERATE)))
(lambda (amp:float freq:float nothing:float)
(set! phase (+ phase (* t (clamp freq (- 0.0 SRs) SRs))))
(if (> phase SPI) (set! phase (- phase STWOPI)))
(* amp (parabolicSineHP phase))))))