10#ifndef __AUDIO_STRETCHER_H__
11#define __AUDIO_STRETCHER_H__
18#include <rubberband/rubberband-c.h>
49 unsigned int samplerate;
50 unsigned int channels;
75 unsigned int samplerate,
76 unsigned int channels,
98 size_t in_samples_size,
99 float * out_samples_l,
100 float * out_samples_r,
101 size_t out_samples_wanted);
110stretcher_set_time_ratio (
Stretcher * self,
double ratio);
127 size_t in_samples_size,
128 float ** _out_samples);
ssize_t stretcher_stretch_interleaved(Stretcher *self, float *in_samples, size_t in_samples_size, float **_out_samples)
Perform stretching.
ssize_t stretcher_stretch(Stretcher *self, float *in_samples_l, float *in_samples_r, size_t in_samples_size, float *out_samples_l, float *out_samples_r, size_t out_samples_wanted)
Perform stretching.
unsigned int stretcher_get_latency(Stretcher *self)
Get latency in number of samples.
Stretcher * stretcher_new_rubberband(unsigned int samplerate, unsigned int channels, double time_ratio, double pitch_ratio, bool realtime)
Create a new Stretcher using the rubberband backend.
void stretcher_free(Stretcher *self)
Frees the resampler.
@ STRETCHER_BACKEND_SBSMS
SBSMS - Subband Sinusoidal Modeling Synthesis.
@ STRETCHER_BACKEND_PAULSTRETCH
Paulstretch.
@ STRETCHER_BACKEND_RUBBERBAND
Lib rubberband.
RubberBandState rubberband_state
For rubberband API.
unsigned int block_size
Size of the block to process in each iteration.