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;
w.set(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.

Joel

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@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@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

+1 831.277.4654



_______________________________________________
chuck-dev mailing list
chuck-dev@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev