On Friday, 24 May 2019 at 17:40:40 UTC, Ola Fosheim Grøstad wrote:
On Friday, 24 May 2019 at 17:04:33 UTC, Alex wrote:
I'm not sure what the real precision of the build in functions are but it shouldn't be hard to max out a double using standard methods(even if slow, but irrelevant after the LUT has been created).

LUTs are primarily useful when you use sin(x) as a signal or when a crude approximation is good enough.

One advantage of a LUT is that you can store a more complex computation than the basic function. Like a filtered square wave.

Its pretty common technique in audio synthesis. What i've done in the past is store a table of polynomial segments that were optimised with curve fitting. It's bit extra work to calculate the the waveform but actual works out faster than having huge LUTs since you're typically only producing maybe 100 samples in each interrupt callback, so it gets pretty likely that your LUT is pushed into slower cache memory in between calls to generate the the audio.

Reply via email to