Rubber Band Library  1.8.1
rubberband-c.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Rubber Band Library
5  An audio time-stretching and pitch-shifting library.
6  Copyright 2007-2014 Particular Programs Ltd.
7 
8  This program is free software; you can redistribute it and/or
9  modify it under the terms of the GNU General Public License as
10  published by the Free Software Foundation; either version 2 of the
11  License, or (at your option) any later version. See the file
12  COPYING included with this distribution for more information.
13 
14  Alternatively, if you have a valid commercial licence for the
15  Rubber Band Library obtained by agreement with the copyright
16  holders, you may redistribute and/or modify it under the terms
17  described in that licence.
18 
19  If you wish to distribute code using the Rubber Band Library
20  under terms other than those of the GNU General Public License,
21  you must obtain a valid commercial licence before doing so.
22 */
23 
24 #ifndef _RUBBERBAND_C_API_H_
25 #define _RUBBERBAND_C_API_H_
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 #define RUBBERBAND_VERSION "1.8.1"
32 #define RUBBERBAND_API_MAJOR_VERSION 2
33 #define RUBBERBAND_API_MINOR_VERSION 5
34 
49 
52 
55 
59 
63 
66 
70 
74 
77 
80 
84 
87 };
88 
89 typedef int RubberBandOptions;
90 
91 struct RubberBandState_;
92 typedef struct RubberBandState_ *RubberBandState;
93 
94 extern RubberBandState rubberband_new(unsigned int sampleRate,
95  unsigned int channels,
96  RubberBandOptions options,
97  double initialTimeRatio,
98  double initialPitchScale);
99 
101 
102 extern void rubberband_reset(RubberBandState);
103 
104 extern void rubberband_set_time_ratio(RubberBandState, double ratio);
105 extern void rubberband_set_pitch_scale(RubberBandState, double scale);
106 
107 extern double rubberband_get_time_ratio(const RubberBandState);
108 extern double rubberband_get_pitch_scale(const RubberBandState);
109 
110 extern unsigned int rubberband_get_latency(const RubberBandState);
111 
117 
118 extern void rubberband_set_expected_input_duration(RubberBandState, unsigned int samples);
119 
120 extern unsigned int rubberband_get_samples_required(const RubberBandState);
121 
122 extern void rubberband_set_max_process_size(RubberBandState, unsigned int samples);
123 extern void rubberband_set_key_frame_map(RubberBandState, unsigned int keyframecount, unsigned int *from, unsigned int *to);
124 
125 extern void rubberband_study(RubberBandState, const float *const *input, unsigned int samples, int final);
126 extern void rubberband_process(RubberBandState, const float *const *input, unsigned int samples, int final);
127 
128 extern int rubberband_available(const RubberBandState);
129 extern unsigned int rubberband_retrieve(const RubberBandState, float *const *output, unsigned int samples);
130 
131 extern unsigned int rubberband_get_channel_count(const RubberBandState);
132 
134 
135 extern void rubberband_set_debug_level(RubberBandState, int level);
136 extern void rubberband_set_default_debug_level(int level);
137 
138 #ifdef __cplusplus
139 }
140 #endif
141 
142 #endif
rubberband_retrieve
unsigned int rubberband_retrieve(const RubberBandState, float *const *output, unsigned int samples)
RubberBandOptionPhaseLaminar
@ RubberBandOptionPhaseLaminar
Definition: rubberband-c.h:64
rubberband_set_formant_option
void rubberband_set_formant_option(RubberBandState, RubberBandOptions options)
rubberband_get_pitch_scale
double rubberband_get_pitch_scale(const RubberBandState)
RubberBandOptionPitchHighSpeed
@ RubberBandOptionPitchHighSpeed
Definition: rubberband-c.h:82
rubberband_set_time_ratio
void rubberband_set_time_ratio(RubberBandState, double ratio)
RubberBandOptionTransientsMixed
@ RubberBandOptionTransientsMixed
Definition: rubberband-c.h:57
RubberBandOptionThreadingNever
@ RubberBandOptionThreadingNever
Definition: rubberband-c.h:68
RubberBandOptionDetectorCompound
@ RubberBandOptionDetectorCompound
Definition: rubberband-c.h:60
rubberband_set_key_frame_map
void rubberband_set_key_frame_map(RubberBandState, unsigned int keyframecount, unsigned int *from, unsigned int *to)
RubberBandOptionDetectorSoft
@ RubberBandOptionDetectorSoft
Definition: rubberband-c.h:62
rubberband_calculate_stretch
void rubberband_calculate_stretch(RubberBandState)
RubberBandOptionDetectorPercussive
@ RubberBandOptionDetectorPercussive
Definition: rubberband-c.h:61
RubberBandOptionProcessOffline
@ RubberBandOptionProcessOffline
Definition: rubberband-c.h:50
rubberband_set_pitch_option
void rubberband_set_pitch_option(RubberBandState, RubberBandOptions options)
RubberBandOptionWindowLong
@ RubberBandOptionWindowLong
Definition: rubberband-c.h:73
rubberband_set_detector_option
void rubberband_set_detector_option(RubberBandState, RubberBandOptions options)
rubberband_process
void rubberband_process(RubberBandState, const float *const *input, unsigned int samples, int final)
rubberband_set_debug_level
void rubberband_set_debug_level(RubberBandState, int level)
RubberBandOptionStretchPrecise
@ RubberBandOptionStretchPrecise
Definition: rubberband-c.h:54
RubberBandOptionChannelsApart
@ RubberBandOptionChannelsApart
Definition: rubberband-c.h:85
rubberband_set_default_debug_level
void rubberband_set_default_debug_level(int level)
rubberband_set_phase_option
void rubberband_set_phase_option(RubberBandState, RubberBandOptions options)
rubberband_get_time_ratio
double rubberband_get_time_ratio(const RubberBandState)
RubberBandOption
RubberBandOption
This is a C-linkage interface to the Rubber Band time stretcher.
Definition: rubberband-c.h:48
RubberBandOptionPitchHighConsistency
@ RubberBandOptionPitchHighConsistency
Definition: rubberband-c.h:83
rubberband_set_max_process_size
void rubberband_set_max_process_size(RubberBandState, unsigned int samples)
rubberband_get_samples_required
unsigned int rubberband_get_samples_required(const RubberBandState)
RubberBandState
struct RubberBandState_ * RubberBandState
Definition: rubberband-c.h:92
rubberband_set_transients_option
void rubberband_set_transients_option(RubberBandState, RubberBandOptions options)
RubberBandOptionTransientsSmooth
@ RubberBandOptionTransientsSmooth
Definition: rubberband-c.h:58
RubberBandOptionSmoothingOn
@ RubberBandOptionSmoothingOn
Definition: rubberband-c.h:76
RubberBandOptionChannelsTogether
@ RubberBandOptionChannelsTogether
Definition: rubberband-c.h:86
rubberband_reset
void rubberband_reset(RubberBandState)
RubberBandOptionFormantPreserved
@ RubberBandOptionFormantPreserved
Definition: rubberband-c.h:79
RubberBandOptionProcessRealTime
@ RubberBandOptionProcessRealTime
Definition: rubberband-c.h:51
RubberBandOptionStretchElastic
@ RubberBandOptionStretchElastic
Definition: rubberband-c.h:53
rubberband_delete
void rubberband_delete(RubberBandState)
RubberBandOptionThreadingAuto
@ RubberBandOptionThreadingAuto
Definition: rubberband-c.h:67
RubberBandOptionWindowStandard
@ RubberBandOptionWindowStandard
Definition: rubberband-c.h:71
RubberBandOptionFormantShifted
@ RubberBandOptionFormantShifted
Definition: rubberband-c.h:78
rubberband_get_channel_count
unsigned int rubberband_get_channel_count(const RubberBandState)
RubberBandOptionTransientsCrisp
@ RubberBandOptionTransientsCrisp
Definition: rubberband-c.h:56
rubberband_available
int rubberband_available(const RubberBandState)
rubberband_set_pitch_scale
void rubberband_set_pitch_scale(RubberBandState, double scale)
RubberBandOptionPitchHighQuality
@ RubberBandOptionPitchHighQuality
Definition: rubberband-c.h:81
RubberBandOptions
int RubberBandOptions
Definition: rubberband-c.h:89
rubberband_get_latency
unsigned int rubberband_get_latency(const RubberBandState)
RubberBandOptionPhaseIndependent
@ RubberBandOptionPhaseIndependent
Definition: rubberband-c.h:65
RubberBandOptionThreadingAlways
@ RubberBandOptionThreadingAlways
Definition: rubberband-c.h:69
RubberBandOptionWindowShort
@ RubberBandOptionWindowShort
Definition: rubberband-c.h:72
rubberband_study
void rubberband_study(RubberBandState, const float *const *input, unsigned int samples, int final)
rubberband_set_expected_input_duration
void rubberband_set_expected_input_duration(RubberBandState, unsigned int samples)
RubberBandOptionSmoothingOff
@ RubberBandOptionSmoothingOff
Definition: rubberband-c.h:75
rubberband_new
RubberBandState rubberband_new(unsigned int sampleRate, unsigned int channels, RubberBandOptions options, double initialTimeRatio, double initialPitchScale)