Go bindings for libpaulstretch, a tiny & portable implementation of the Paulstretch extreme audio stretching algorithm.
go-paulstretch depends on libpaulstretch, which also depends on FFTW3.
The API is well-documented in its .
There is also a simple example in example/simple/
.
Using go-paulstretch is as simple as (error-checking code ommited for brevity):
ps := paulstretch.NewPaulstretch(stretchFactor, windowSize)
go func() {
io.Copy(ps, audio_in)
ps.Close()
}()
io.Copy(audio_out, ps)
MIT