The current behavior of phase driven sync uses the audio input signal as the value used for the oscillator function, assuming that our waveform is defined from 0.0 to 1.0, It performs a lookup on the incoming value, so in this case the frequency of the triosc has no effect There isn't yet a way to do exactly what you have described. It is possible to use the '.phase' argument to immediately set the phase to a particular value. triosc t => dac; 60.0 => t.freq; while ( true ) { 0 => t.phase; 0.01::second => now; } This, however, doesn't follow a waveform. I will keep your suggestion in mind, and hopefully add this to a revision of the oscillator code. Thank you for your interest in ChucK ! On Oct 5, 2004, at 10:48 AM, Laurent Ostiz wrote:
Hi !
It is so interesting to be at the beginning of a new audio tool such Chuck that, perhaps, we are a bit impatient. So, here is an example : ------------------------------ phasor p => triosc t => dac ; 100.0 => p.freq ; 60.0 => t.freq ; 2 => t.sync ;
while (true) { 1::ms => now ; } -------------------------------
In a precedent mail, Philip answer me that the sync parameter set to 2 mean phase driven osc. With this code, I thus hope to have a kind of hardsync : when phasor goes to zero, it reset phase so triosc restart (hardly) a new cycle. This work perfectly in Csound for example. But here, what I obtain is a perfect triangle waveform of 100 Hz. Without t.sync set, I have a triangle waveform of 60 Hz.
Here we are with a concrete example.
So, what did I do not understand in the => meaning or sync phase driven osc concept in Chuck ?
Thanks for your answer and your work on this promising software ;-)
Laurent
_______________________________________________ chuck mailing list chuck@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck