Hi,
I have created an audio class that allows to create waveforms (square, triangle, sawtooth) by addition from sine waves. I want to use the class for a synth that should not get aliasing problems in the higher frequency range. The basic idea is the FM synthesis of the Yamaha DX7, from which you can also extract "analog" waveforms by means of appropriately tuned operators.
The whole thing is based on the findings from https://lpsa.swarthmore.edu/Fourier/Series/ExFS.html. The class is designed so that you can determine which number of operators (or partials) you want to use. I did some benchmark tests with a Teensy-3.5 and a Teensy-3.6.
All this (with some collected info) can be found at https://codeberg.org/dcoredump/Synth_FM_Partial.
Maybe someone of you finds this useful or has hints for the use, optimization or what I did wrong
Have fun!
Holger
[EDIT] Forgot to say: The code is using floats, so you need a Teensy >= 3.5!
I have created an audio class that allows to create waveforms (square, triangle, sawtooth) by addition from sine waves. I want to use the class for a synth that should not get aliasing problems in the higher frequency range. The basic idea is the FM synthesis of the Yamaha DX7, from which you can also extract "analog" waveforms by means of appropriately tuned operators.
The whole thing is based on the findings from https://lpsa.swarthmore.edu/Fourier/Series/ExFS.html. The class is designed so that you can determine which number of operators (or partials) you want to use. I did some benchmark tests with a Teensy-3.5 and a Teensy-3.6.
All this (with some collected info) can be found at https://codeberg.org/dcoredump/Synth_FM_Partial.
Maybe someone of you finds this useful or has hints for the use, optimization or what I did wrong
Have fun!
Holger
[EDIT] Forgot to say: The code is using floats, so you need a Teensy >= 3.5!
Last edited: