[chuck-users] chuck vs supercollider?

Kassen signal.automatique at gmail.com
Sun Aug 12 10:01:41 EDT 2012

On 12 August 2012 01:25, ronni montoya <ronni.montoya at gmail.com> wrote:
> Hi, Is this way of making sounds very expensive in cpu terms? :O

What is particularly expensive for the kind of CPU found in normal
computers is switching what they do. With block processing the CPU can
first deal with -say- 1024 samples that a oscillator generates, then
switch ones to a filter and do the same there. Switching every sample
a few times makes it more expensive.

> I was wondering if this type of  making sounds can be cathegorized as
> "non standard synthesis"?

Well, feedback is used a lot in synthesis. Most filters are based on
it. many effects are, most types of emulation of acoustical
instruments, sometimes even oscillators are based on feedback.

It's not unusual at all, though typically this isn't exposed to the
user and happens inside of the provided building blocks. Because of
that I picked a bit more unusual example with the pitch-shifter; I
wanted to pick something that wasn't already there as a UGen. Feedback
over a pitch shifter is quite a classical effect in "computer music"
and science fiction soundtracks.

> Do you think defining each sample value instead of waveform segments
> gives more posibilities? or new posibilities in sound construction?
> Can the brain feel changes in segment less than 64 samples?

I think so, yes. You can even hear a single sample change. The
clearest way to see that might be the click caused by a impulse
generator changing a single samples.

> i been experimenting in the afternoon and i make this code, theres
> somethings i still dont understand from chuck logic, for example if i
> uncomment this line in the code " // v * Math.sin(k)  => k;"  why do i
> get so dramatic changes? I was not expecting to have any change
> because  that line of code is going to variable " k"  and variable "k"
> is not being used in  "v  => s.next; "
> Can anybody explain me whats happening?

Well, in this block;

>      if (v < 0.2) {
>        v * Math.sin(k)  => v;            //here
>        //  v * Math.sin(k)  => k;
>      }

k influences v and v influences the sound, so that's where your change
comes from. In cases like this a small change to the code can indeed
make a large change to the sound.


More information about the chuck-users mailing list