[chuck-users] No simple vibrato example

Stefan Blixt stefan.blixt at gmail.com
Thu Dec 5 08:20:47 EST 2013


Hm yeah I think you have to do the gain manually. I like to use another
oscillator for modulation like this (dry-coded and untested):

fun void am(SinOsc @osc, SinOsc@ modulator, float modulation) {
    while (true) {
        modulator.last*modulation => osc.gain;
        1::samp => now;
    }
}

SinOsc osc1 => blackhole;
SinOsc osc2 => dac;

spork ~ am(osc1, osc2, 0.1);



On Thu, Dec 5, 2013 at 12:01 PM, Manuel Bärenz <manuel at enigmage.de> wrote:

>  I'm sorry, of course sine.sync is documented on
> http://chuck.cs.princeton.edu/doc/program/ugen_full.html#sinosc. But I
> must admit that I didn't understand the documentation of this feature until
> now.
>
> As for the gain modulation, I'm still puzzled. There is no way of setting
> sine.sync in a way that anything chucked into sine will control sine.gain,
> right?
>
>
> Am 05/12/13 01:12, schrieb Moisés Gabriel Cachay Tello:
>
> You can always try to modulate the Oscilator:
>
>
>  SinOsc vibrato => SinOsc sine => dac;
>  // This will tell sine to take the vibrato input as a modulator of
> // it's frequency.
>  2 => sine.sync;
>
>  5 => vibrato.freq;
> 10 => vibrato.gain;
>
>  5::second => now;
>
>
> 2013/12/4 Manuel Bärenz <manuel at enigmage.de>
>
>> Hi guys,
>>
>> I'm giving a presentation on ChucK tomorrow and I wanted to show off
>> some of the basic features in a live coding session. I found that
>> creating a vibrato (modulating the frequency) is far too hard. The
>> example I'm looking at is
>> http://chuck.cs.princeton.edu/doc/examples/basic/whirl.ck. In an
>> infinite loop, you have this code:
>>
>>     30 + ( Math.sin(t) + 1.0 ) * 10000.0 => s.sfreq;
>>     t + .004 => t;
>>
>> Here, t is a float and s is a SinOsc. Now, what I would have expected is
>> the following, more intuitive setup outside the loop:
>>
>> 30 + SinOsc freq_mod => s.freq;
>> 1 => freq_mod.freq;
>>
>> I know that the first line with the "30 + SinOsc" is probably nonsense
>> in itself, but I could work around that (by using a step UGen for
>> example). My actual problem is that you can't chuck a SinOsc into s.freq.
>> Consider this line:
>>
>> SinOsc freq_mod => s.freq;
>>
>> I get an error like this:
>> arguments type(s) do not match:
>> ... for function 'SinOsc.freq(...)' ...
>> ...(please check the argument types)
>>
>> Is this something that the language is simply not capable of or am I
>> doing something wrong?
>>
>> Best, Manuel
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users at lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>
>
>
>
>  --
> -Moisés
>
>
> _______________________________________________
> chuck-users mailing listchuck-users at lists.cs.princeton.eduhttps://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
>


-- 
Release me, insect, or I will destroy the Cosmos!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20131205/eaa1706f/attachment.htm>


More information about the chuck-users mailing list