[chuck-users] help understanding lisa

eduard aylon eduard.aylon at gmail.com
Thu Nov 6 21:33:02 EST 2008


Hello Mike,

storing hann in an array or a window class will also help to lower the  
cost of computing it at a sample level. Unless you change the size at  
each sample...

eduard

On Nov 6, 2008, at 11:55 PM, mike clemow wrote:

> Listees,
>
> This is just for fun, but it's totally relevant.  This is currently
> the state of DIY Hann (for example) envelopes for granular synthesis.
> You get a couple more of these trainlets running, and you'll kill the
> VM.  I absolutely love ChucK's concurrency model, but it can't handle
> too much of this kind of thing.  The sample-level intervention is also
> painful.
>
> Also, you all might check my notably horrid math...
>
> -----
>
> 1024 => int N;  // length of grain in samples
>
> fun float hann( int n ) {
>    return 0.5 * (1. - Math.cos( (2*pi*n)/(N-1) ));   // thank you,
> Wikipedia.org ;-)
> }
>
> fun void hannGrain( float f ) {
>    SinOsc s => dac;
>    f => s.freq;
>    0 => int n;
>    0. => float h;
>
>    while( n < N-1 ) {
>        hann( n ) => h => s.gain;
>        n++;
>        1::samp => now;
>    }
> }
>
> while( true ) {
>    spork ~ hannGrain(Math.rand2f(250.,500.));
>    me.yield();
>    1024::samp/2 => now;    // 50% grain overlap
> }
>
> ------
>
> If you make the random frequency a constant, it will sound like a
> SinOsc.  This is mostly because of the nice envelope...
>
> Enjoy,
> Mike
>
>
>
> On Thu, Nov 6, 2008 at 4:35 PM, Kassen  
> <signal.automatique at gmail.com> wrote:
>> Rogan;
>>
>>> This is interesting.  I have some code that does pretty cool  
>>> graining
>>> / glitching on samples (that I have yet to post on the forum) that  
>>> I'm
>>> currently using linear ramps for.
>>
>> Cool!
>>
>>>
>>> What would be the optimal shape for
>>> the grain?
>>
>> Well, that's a good question... it's a question like what is the best
>> instrument or the most beautiful animal. In other words; it depends  
>> on taste
>> and application. A envelope shape (or grain "window" if you like)  
>> that's
>> perfect for me may be completely unsuitable for you. I do think  
>> that if we
>> only have one the simplicity of the linear ramp is nice but more  
>> can be said
>> on the topic.
>>
>>>
>>> Sine wave attack (sqare-root)?
>>
>> That would be a nice one, yes. Nothing could be "the best" but  
>> something
>> like that would be a decent bet as a starting point, I think.
>>
>>>
>>> And what are the effects
>>> on the spectrum?
>>
>> Well, what we have is a wave-form (the section of the buffer being  
>> played
>> back) and a envelope over it which is actually another wave-form  
>> that gets
>> multiplied with the first. For longer grains (or loops or  
>> recordings) this
>> is no huge issue but as grains become shorter the envelope may  
>> approach a
>> rate where it's wave-form comes close to the audible range in  
>> frequency. If
>> we then consider that  a multiplication of two wave-forms really  
>> comes down
>> to a ring modulator we'll see that the spectral content of the  
>> envelope will
>> start generating side-bands for the audio.
>>
>> This is not a bug, in fact it's a feature of granular (or pulselet,  
>> or....)
>> synthesis and it gives us interesting options in sound-design.  
>> However, to
>> make the most of those options we need to be able to talk about the  
>> curve of
>> the ramps as the curve of the ramps will translate to harmonics of  
>> the
>> "envelope wave-form" which will in turn end up in the sound. Hope  
>> fully
>> we'll be able to find a way to talk about this to LiSa that doesn't  
>> make
>> LiSa any more complicated then she needs to be; simple tools are  
>> nice.
>>
>> I hope that served as a introduction. If you'd like to know a lot  
>> more about
>> this topic I think the best thing to do is to considder getting the  
>> book
>> "Microsound" by Roads. That book goes into considerable depth in  
>> the various
>> properties of granular systems, how they interact and how they  
>> influence the
>> final result.
>>
>> Yours,
>> Kas.
>>
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users at lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>
>>
>
>
>
> -- 
> http://michaelclemow.com
> http://semiotech.org
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users



More information about the chuck-users mailing list