paulstretch
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
Outputs
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