Hi ! Is there any document available with the Chuck langage syntax (conditions, loops, etc.), reserved words, meanings of => in differents contexts, because sometimes I see things in papers or exemples which are not described in the actual documentation. Another great thing would be, describing the libraries, to indicate with the range of parameters to what they correspond (frequency, cents, midi amplitude, dB amplitude, mV amplitude, or whatever else). Thanks
Laurent, We maintain the ChucK Documentation at http://chuck.cs.princeton.edu/doc. The Tutorial and 'Programmer's Guide' should have what you are looking for. On the "ugen" page, clicking on an instrument name will take you to a more extensive description. This documentation most accurately reflects the current state of the language. Be aware that Chuck is in a development phase, many features will arise in the coming weeks. As a general rule, 'freq' arguments take an argument in Hz. Amplitude is general expressed as a linear multiplier ( 0.0 - 1.0 ). There are functions in the standard library to convert rms, db, pow, etc. On Oct 5, 2004, at 6:50 AM, Laurent Ostiz wrote:
Hi !
Is there any document available with the Chuck langage syntax (conditions, loops, etc.), reserved words, meanings of => in differents contexts, because sometimes I see things in papers or exemples which are not described in the actual documentation. Another great thing would be, describing the libraries, to indicate with the range of parameters to what they correspond (frequency, cents, midi amplitude, dB amplitude, mV amplitude, or whatever else).
Thanks
_______________________________________________ chuck mailing list chuck@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck
On Tue, 5 Oct 2004, Philip Davidson wrote:
Laurent,
We maintain the ChucK Documentation at http://chuck.cs.princeton.edu/doc. The Tutorial and 'Programmer's Guide' should have what you are looking for. On the "ugen" page, clicking on an instrument name will take you to a more extensive description.
This documentation most accurately reflects the current state of the language. Be aware that Chuck is in a development phase, many features will arise in the coming weeks.
As a general rule, 'freq' arguments take an argument in Hz. Amplitude is general expressed as a linear multiplier ( 0.0 - 1.0 ). There are functions in the standard library to convert rms, db, pow, etc.
This would haev been nice to see in the documentation as well -- I've been on and off in more or less the same quandary as Laurent seems to be, not quite understanding the exact syntax, not quite grasping why my code won't run when the example code will, not quite seeing what can be done with the various tools available... For the emacs mode, I dug out reserved words from the yacc definitions in the source tarball; but I'd much rather not need to really read all of the code before I understand what a good choice for different thingumajigs would be. Enough whining for now. =P -- Mikael Johansson To see the world in a grain of sand mikael@johanssons.org And heaven in a wild flower http://www.mikael.johanssons.org To hold infinity in the palm of your hand http://blog.mikael.johanssons.org And eternity for an hour
Please post your questions / problem code here or to the wiki - We can look at what problems exist ( either in language or in documentation ) to make these issues clearer for all involved. We do have a serious documentation revision planned once the current development cycle lets up, at the moment we are just keeping things in sync with language features. On Oct 5, 2004, at 9:41 AM, Mikael Johansson wrote:
On Tue, 5 Oct 2004, Philip Davidson wrote:
Laurent,
We maintain the ChucK Documentation at http://chuck.cs.princeton.edu/doc. The Tutorial and 'Programmer's Guide' should have what you are looking for. On the "ugen" page, clicking on an instrument name will take you to a more extensive description.
This documentation most accurately reflects the current state of the language. Be aware that Chuck is in a development phase, many features will arise in the coming weeks.
As a general rule, 'freq' arguments take an argument in Hz. Amplitude is general expressed as a linear multiplier ( 0.0 - 1.0 ). There are functions in the standard library to convert rms, db, pow, etc.
This would haev been nice to see in the documentation as well -- I've been on and off in more or less the same quandary as Laurent seems to be, not quite understanding the exact syntax, not quite grasping why my code won't run when the example code will, not quite seeing what can be done with the various tools available...
For the emacs mode, I dug out reserved words from the yacc definitions in the source tarball; but I'd much rather not need to really read all of the code before I understand what a good choice for different thingumajigs would be.
Enough whining for now. =P
-- Mikael Johansson To see the world in a grain of sand mikael@johanssons.org And heaven in a wild flower http://www.mikael.johanssons.org To hold infinity in the palm of your hand http://blog.mikael.johanssons.org And eternity for an hour
_______________________________________________ chuck mailing list chuck@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck
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
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
Is there any document available with the Chuck langage syntax (conditions, loops, etc.), reserved words, meanings of => in differents contexts,
You are right on in that we don't have (and desperately need) a formal language specification that makes all of these things clear. It is a very high priority to us. We are planning to massively document (in full Java VM Spec-ish style) the syntax/semantics once objects are done.
because sometimes I see things in papers or exemples which are not described in the actual documentation.
Yes, much is missing. Our apologies. A tool (especially a language) is no good without good documentation.
Another great thing would be, describing the libraries, to indicate with the range of parameters to what they correspond (frequency, cents, midi amplitude, dB amplitude, mV amplitude, or whatever else).
Good ideas. As phil mentioned, we will do a huge update to documentation in the coming 2 months. The online docs really don't contain any of this stuff right now. We will change that. Best, Ge!
participants (4)
-
Ge Wang
-
Laurent Ostiz
-
Mikael Johansson
-
Philip Davidson