Pregunta

I'm new to C++ and I'm trying to understand the SineWave class from the Synthesis Toolkit. The description says:

This class computes and saves a static sine "table" that can be shared by multiple instances. It has an interface similar to the WaveLoop class but inherits from the Generator class. Output values are computed using linear interpolation.

So I guess it doesn't calculate a sine at all? If it's using linear interpolation between the high and low points on a sine wave, isn't that just a triangle wave? Can someone explain what the calculation does?

¿Fue útil?

Solución

If you take a look at the implementation, you'll see that the constructor calculates sin on the range 0.0 to 1.0 in steps of 1.0 / TABLE_SIZE, where TABLE_SIZE is 2048 by default. The linear interpolation is then done between these values. This closely approximates the sine function.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top