[chuck-dev] SinOsc calculations

Joel Matthys jwmatthys at gmail.com
Fri Sep 18 08:35:09 EDT 2015

Hi Spencer.

I think I would like to work on making a wavetable sine.

Actually, I think a general wavetable instrument which takes an array 
might be very useful. Chuck ought to be able to read a user array just 
as quickly as an internal one, right? So it could be something like:

Wavetable w => dac;
w.table("sine", 1027); // shape, number of points in array
440 => w.freq;
week => now; // sit back and enjoy

[-1,0,1] @=> float[] mytable;
2::weeks => now; //even better

I'll see what I can glean from the RTcmix code (which I think does it 
really well, and IIRC is pretty close to MusicN wavetable code) and make 
a Chugin, and then do some tests to compare for efficiency.


On 09/18/2015 01:20 AM, Spencer Salazar wrote:
> Hi Joel,
> Thats correct- SinOsc is just a naive implementation of a sine wave. I 
> don't know that there is a reason for this other than simplicity.
> In performance-sensitive situations I have recommended using either 
> MagicSine (if it is not necessary to change the freq/phase rapidly) or 
> Gen9/Gen10, which are sinusoid wavetables.
> I have been interested in developing a chugin that is just a really 
> fast/mathematically accurate wavetable sine. If you'd be interested in 
> making something like that, or collaborating on it, that'd be very 
> cool. If we got that in good shape we could replace the default sine, 
> if there is no other reason to keep it the way it is.
> spencer
> On Thu, Sep 17, 2015 at 6:52 PM, Joel Matthys <jwmatthys at gmail.com 
> <mailto:jwmatthys at gmail.com>> wrote:
>     Hello! I was looking through the source recently, and I was a
>     little surprised to find that the SinOsc UGen performs a trig
>     function every sample. I was under the impression that most osc
>     implementations use a lookup table with interpolation because it's
>     considerably more efficient.
>     Was this a specific design decision? Would there be support for
>     revising SinOsc for efficiency if the audible result was
>     indistinguishable?
>     Thanks,
>     Joel
>     _______________________________________________
>     chuck-dev mailing list
>     chuck-dev at lists.cs.princeton.edu
>     <mailto:chuck-dev at lists.cs.princeton.edu>
>     https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
> -- 
> Spencer Salazar
> Doctoral Candidate
> Center for Computer Research in Music and Acoustics
> Stanford University
> spencer at ccrma.stanford.edu <mailto:spencer at ccrma.stanford.edu>
> +1 831.277.4654
> https://ccrma.stanford.edu/~spencer/ 
> <https://ccrma.stanford.edu/%7Espencer/>
> _______________________________________________
> chuck-dev mailing list
> chuck-dev at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-dev/attachments/20150918/728656d3/attachment.html>

More information about the chuck-dev mailing list