On Wednesday, 24 February 2016 at 11:17:27 UTC, Tanel Tagaväli wrote:
Sorry for the confusing state of the codebase.

Only the saw wave generator is currently functional, the `saw` and `sine` functions are not used and should be left out of analysis.

Also, audio output is only to ALSA.

Be careful with naive wave generators. You could get very funny artefacts from aliasing. You should try one of this approximations :

- Correct naive wave generator :
Use furrier composition to build the wave (ie, sum i=1->n An*sin(Wn*t + phase)), On this case, should drop of the sumatory the sin that generate armonics >= (Niquist freq)/2

This way, at least should be enough for sound testing, but isn't very efficient.

See for example (C++) this Square wave generator against OpenAL (It needed some tweaks about just what you asked on the first post. The phase wasn't correct, but was enough for me on these moment) : https://github.com/Zardoz89/trillek-vcomputer-module/blob/78c9dd7bf0ead23cb9a8ccf29fd30c9d0ed7e2e5/tools/src/AlEngine.cpp#L210

- Wavetables
- band-limited resampling algorithm aka BLIP or BLEP algorithms (See http://www.cs.cmu.edu/~eli/L/icmc01/hardsync.html and http://slack.net/~ant/libs/audio.html#Blip_Buffer )

Reply via email to