Files: paulstretch.h, paulstretch.c

An extreme time-stretching algorithm by Paul Nasca Octavian This is an implementation of the popular paulstretch algorithm used for time stretching an audio signal to create ambient textures. Ideally, this algorithm is best used for stretching signals by very very long amounts.
This version of paulstretch will take an ftable and loop through it, make it an ideal means for creating sustained pads.


sp_paulstretch_create(sp_paulstretch **paulstretch)
sp_paulstretch_init(sp_data *sp, sp_paulstretch *paulstretch, sp_ftbl *ft, SPFLOAT windowsize, SPFLOAT stretch)
sp_paulstretch_compute(sp_data *sp, sp_paulstretch *paulstretch, SPFLOAT *out)
sp_paulstretch_destroy(sp_paulstretch **paulstretch)

Mandatory Parameters

ft: ftable containing audio data
(Recommended value: N/A)
windowsize: Window size, in seconds.
(Recommended value: 10)
stretch: Stretch factor, 1.0 is no stretch.
(Recommended value: 10)

Optional Parameters


out: Signal output.

Other Functions:

sp_paulstretch_wavin(sp_data *sp, sp_paulstretch *paulstretch, drwav * wav, SPFLOAT * out)
stretches input from a wav file via drwav. Use in place of sp_paulstretch_compute.
wav: a drwav instance opened for reading
(Suggested default: N/A)
out: signal output
(Suggested default: N/A)