Hello Adam et al, I'd like to draw your attention on what I believe is an error in the Chuck manual. It seems to me that the Blit ugen section is not correct. According to the manual, Blit has only next() and value() as member functions. However, looking at ugen_stk.h reveals that Blit, as BlitSquare and BlitSaw, has freq(), harmonics() and phase() as memebers and not next () nor value(). Cheers, Eduard
It seems that there is a bug here. Is Robin Davies still around? The idea of these UGens was to have a similar access point as the builtin UGens but in a bandlimited form. The Blit UGen should work as documented but you are right about it not working. BlitSquare and BlitSaw seem just peachy though. Can we put this on the bug list? Thanks for finding this Eduard. --art On 6-Jul-06, at 3:08 AM, eduard aylon wrote:
Hello Adam et al,
I'd like to draw your attention on what I believe is an error in the Chuck manual. It seems to me that the Blit ugen section is not correct. According to the manual, Blit has only next() and value() as member functions. However, looking at ugen_stk.h reveals that Blit, as BlitSquare and BlitSaw, has freq(), harmonics() and phase() as memebers and not next () nor value().
Cheers,
Eduard
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Blit seems to be working for me: --- Blit s => dac; [ 0, 2, 4, 7, 9, 11 ] @=> int hi[]; // infinite time loop while( true ) { // frequency std.mtof( 33 + std.rand2(0,3) * 12 + hi[std.rand2(0,hi.cap()-1)] ) => s.freq; // harmonics std.rand2( 1, 5 ) => s.harmonics; // advance time 120::ms => now; } --- I think we just need to update the documentation, right? Or am I missing something? Best, Ge! On Jul 6, 2006, at 2:48 PM, Adam Tindale wrote:
It seems that there is a bug here. Is Robin Davies still around? The idea of these UGens was to have a similar access point as the builtin UGens but in a bandlimited form. The Blit UGen should work as documented but you are right about it not working. BlitSquare and BlitSaw seem just peachy though. Can we put this on the bug list?
Thanks for finding this Eduard.
--art
On 6-Jul-06, at 3:08 AM, eduard aylon wrote:
Hello Adam et al,
I'd like to draw your attention on what I believe is an error in the Chuck manual. It seems to me that the Blit ugen section is not correct. According to the manual, Blit has only next() and value() as member functions. However, looking at ugen_stk.h reveals that Blit, as BlitSquare and BlitSaw, has freq(), harmonics() and phase() as memebers and not next () nor value().
Cheers,
Eduard
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Ok, so the docs are wrong and I'm confused. Why does it sustain? Shouldn't this essentially be a filtered impulse? Nice patch BTW. --art On 6-Jul-06, at 12:12 PM, Ge Wang wrote:
Blit seems to be working for me: ---
Blit s => dac; [ 0, 2, 4, 7, 9, 11 ] @=> int hi[];
// infinite time loop while( true ) { // frequency std.mtof( 33 + std.rand2(0,3) * 12 + hi[std.rand2(0,hi.cap()-1)] ) => s.freq;
// harmonics std.rand2( 1, 5 ) => s.harmonics;
// advance time 120::ms => now; }
--- I think we just need to update the documentation, right? Or am I missing something?
Best, Ge!
On Jul 6, 2006, at 2:48 PM, Adam Tindale wrote:
It seems that there is a bug here. Is Robin Davies still around? The idea of these UGens was to have a similar access point as the builtin UGens but in a bandlimited form. The Blit UGen should work as documented but you are right about it not working. BlitSquare and BlitSaw seem just peachy though. Can we put this on the bug list?
Thanks for finding this Eduard.
--art
On 6-Jul-06, at 3:08 AM, eduard aylon wrote:
Hello Adam et al,
I'd like to draw your attention on what I believe is an error in the Chuck manual. It seems to me that the Blit ugen section is not correct. According to the manual, Blit has only next() and value() as member functions. However, looking at ugen_stk.h reveals that Blit, as BlitSquare and BlitSaw, has freq(), harmonics() and phase() as memebers and not next () nor value().
Cheers,
Eduard
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Ok, so the docs are wrong and I'm confused. Why does it sustain? Shouldn't this essentially be a filtered impulse?
Blit is a band-limited train of impulses. It makes sense to talk about .freq() - the base/fundamental and .harmonics() - since the transform of an impulse train is another impulse train in the frequency domain, and that essentially is what is being band-limited. I just realized we don't have these guys on the web docs either. We shall fix shortly. Ge!
Thanks for the clarification. This would be useful for source-filter vocal synthesis, right? This is a super UGen, it is like having impulse running at some frequency and having it nicely filtered, all right out of the can. Thanks Robin Davies! Docs are coming. --art On 6-Jul-06, at 5:30 PM, Ge Wang wrote:
Ok, so the docs are wrong and I'm confused. Why does it sustain? Shouldn't this essentially be a filtered impulse?
Blit is a band-limited train of impulses. It makes sense to talk about .freq() - the base/fundamental and .harmonics() - since the transform of an impulse train is another impulse train in the frequency domain, and that essentially is what is being band-limited.
I just realized we don't have these guys on the web docs either. We shall fix shortly.
Ge!
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
I just added Blit, BlitSaw, also BlitSquare to the ugen docs: http://chuck.cs.princeton.edu/doc/program/ugen.html Please let us know if you see anything fishy! Best, Ge! On Jul 6, 2006, at 9:07 PM, Adam Tindale wrote:
Thanks for the clarification. This would be useful for source-filter vocal synthesis, right? This is a super UGen, it is like having impulse running at some frequency and having it nicely filtered, all right out of the can. Thanks Robin Davies!
Docs are coming.
--art
On 6-Jul-06, at 5:30 PM, Ge Wang wrote:
Ok, so the docs are wrong and I'm confused. Why does it sustain? Shouldn't this essentially be a filtered impulse?
Blit is a band-limited train of impulses. It makes sense to talk about .freq() - the base/fundamental and .harmonics() - since the transform of an impulse train is another impulse train in the frequency domain, and that essentially is what is being band-limited.
I just realized we don't have these guys on the web docs either. We shall fix shortly.
Ge!
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
I think we should credit Tim Stilson and others for the actual algorithm, yes? Band-limited impulse generation dates back to early Bell Labs, and probably Gauss. Steiglitz, Moorer, and others looked at efficient "sum of cosines" algorithms back in the 1970's. Tim with Julius brought a number of hacks to help this, and enhanced it for sawtooth and other waveforms. Anyway, just piping in on a little bit of history. PRC On Thu, 6 Jul 2006, Adam Tindale wrote:
Thanks for the clarification. This would be useful for source-filter vocal synthesis, right? This is a super UGen, it is like having impulse running at some frequency and having it nicely filtered, all right out of the can. Thanks Robin Davies!
Docs are coming.
--art
On 6-Jul-06, at 5:30 PM, Ge Wang wrote:
Ok, so the docs are wrong and I'm confused. Why does it sustain? Shouldn't this essentially be a filtered impulse?
Blit is a band-limited train of impulses. It makes sense to talk about .freq() - the base/fundamental and .harmonics() - since the transform of an impulse train is another impulse train in the frequency domain, and that essentially is what is being band-limited.
I just realized we don't have these guys on the web docs either. We shall fix shortly.
Ge!
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Hi Adam and others, In the Chuck Compiler and Virtual Machine chapter there is another error. In the manual it says that --chan(N) is a command line option but should be --channels(N) By the way, at the moment I am writing a Chuck (terminal) manpage for my own use (maybe to be published if it's worth ). Is there anyone working on this? and Adam, am I allowed to copy+paste from the Chuck Manual? Cheers, Eduard
Hi, This brings up a good point. The manual should be released under the GNU documentation license which would allow you to do what you are doing with no problem. Please let the man page out in the wild or publish on the wiki and we can all hack on it until we are happy. With most of these projects it just needs someone to get it started. Sorry for the late reply. --art On 7-Jul-06, at 12:12 PM, eduard aylon wrote:
Hi Adam and others,
In the Chuck Compiler and Virtual Machine chapter there is another error. In the manual it says that --chan(N) is a command line option but should be --channels(N)
By the way, at the moment I am writing a Chuck (terminal) manpage for my own use (maybe to be published if it's worth ). Is there anyone working on this? and Adam, am I allowed to copy+paste from the Chuck Manual?
Cheers,
Eduard
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
participants (4)
-
Adam Tindale
-
eduard aylon
-
Ge Wang
-
Perry R Cook