Hello, I am wondering if suckless would be interested in a simple
Discrete Fourier Transform implementation. I've already implemented
this, so I can contribute it right away. It exclusively uses static
memory. Of course, this imposes a limit on the DFT size. But usually,
you are already know a fixed window size, or can set a reasonable limit.
The maximum size is configured at compile time. It implements the basic
radix-2 FFT algorithm, and uses Bluestein's algorithm/the chirp
z-transform for non-power-of-two window sizes.
It also implements the common functions surrounding the DFT/FFT (e.g.
shifting, STFT, reconstructing the negative frequency half of the
spectrum of the positive one, etc.). It can also do the Discrete Time
Fourier Transform and real-sized windows also using the chirp
z-transform. Since it uses static memory, it comes in two variants: a
C99 singled-threaded-only version and one that support multithreaded
applications using C11's thread-local storage. The code is only about
300 lines.
I've also been working on a singing voice synthesizer program written in
C.
- [dev] Suckless Discrete Fourier Transform and Singing Voic... QueueSevenM
-