Index: src/pitch/pitch.c
===================================================================
--- src/pitch/pitch.c	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitch.c	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -62,5 +62,5 @@
 
 /** callback to get pitch candidate, defined below */
-typedef void (*aubio_pitch_detect_t) (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf);
+typedef void (*aubio_pitch_detect_t) (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf);
 
 /** callback to convert pitch from one unit to another, defined below */
@@ -79,4 +79,5 @@
   void *p_object;                 /**< pointer to pitch object */
   aubio_filter_t *filter;         /**< filter */
+  fvec_t *filtered;               /**< filtered input */
   aubio_pvoc_t *pv;               /**< phase vocoder for mcomb */
   cvec_t *fftgrain;               /**< spectral frame for mcomb */
@@ -89,10 +90,10 @@
 
 /* callback functions for pitch detection */
-static void aubio_pitch_do_mcomb (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf);
-static void aubio_pitch_do_yin (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf);
-static void aubio_pitch_do_schmitt (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf);
-static void aubio_pitch_do_fcomb (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf);
-static void aubio_pitch_do_yinfft (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf);
-static void aubio_pitch_do_specacf (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf);
+static void aubio_pitch_do_mcomb (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf);
+static void aubio_pitch_do_yin (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf);
+static void aubio_pitch_do_schmitt (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf);
+static void aubio_pitch_do_fcomb (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf);
+static void aubio_pitch_do_yinfft (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf);
+static void aubio_pitch_do_specacf (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf);
 
 /* conversion functions for frequency conversions */
@@ -102,9 +103,9 @@
 
 /* adapter to stack ibuf new samples at the end of buf, and trim `buf` to `bufsize` */
-void aubio_pitch_slideblock (aubio_pitch_t * p, fvec_t * ibuf);
+void aubio_pitch_slideblock (aubio_pitch_t * p, const fvec_t * ibuf);
 
 
 aubio_pitch_t *
-new_aubio_pitch (char_t * pitch_mode,
+new_aubio_pitch (const char_t * pitch_mode,
     uint_t bufsize, uint_t hopsize, uint_t samplerate)
 {
@@ -161,4 +162,5 @@
       break;
     case aubio_pitcht_mcomb:
+      p->filtered = new_fvec (hopsize);
       p->pv = new_aubio_pvoc (bufsize, hopsize);
       p->fftgrain = new_cvec (bufsize);
@@ -210,4 +212,5 @@
       break;
     case aubio_pitcht_mcomb:
+      del_fvec (p->filtered);
       del_aubio_pvoc (p->pv);
       del_cvec (p->fftgrain);
@@ -238,5 +241,5 @@
 
 void
-aubio_pitch_slideblock (aubio_pitch_t * p, fvec_t * ibuf)
+aubio_pitch_slideblock (aubio_pitch_t * p, const fvec_t * ibuf)
 {
   uint_t overlap_size = p->buf->length - ibuf->length;
@@ -258,5 +261,5 @@
 
 uint_t
-aubio_pitch_set_unit (aubio_pitch_t * p, char_t * pitch_unit)
+aubio_pitch_set_unit (aubio_pitch_t * p, const char_t * pitch_unit)
 {
   uint_t err = AUBIO_OK;
@@ -343,5 +346,5 @@
 /* do method, calling the detection callback, then the conversion callback */
 void
-aubio_pitch_do (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf)
+aubio_pitch_do (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf)
 {
   p->detect_cb (p, ibuf, obuf);
@@ -354,7 +357,7 @@
 /* do method for each algorithm */
 void
-aubio_pitch_do_mcomb (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf)
-{
-  aubio_filter_do (p->filter, ibuf);
+aubio_pitch_do_mcomb (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf)
+{
+  aubio_filter_do_outplace (p->filter, ibuf, p->filtered);
   aubio_pvoc_do (p->pv, ibuf, p->fftgrain);
   aubio_pitchmcomb_do (p->p_object, p->fftgrain, obuf);
@@ -363,5 +366,5 @@
 
 void
-aubio_pitch_do_yin (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf)
+aubio_pitch_do_yin (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf)
 {
   smpl_t pitch = 0.;
@@ -379,5 +382,5 @@
 
 void
-aubio_pitch_do_yinfft (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * obuf)
+aubio_pitch_do_yinfft (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * obuf)
 {
   smpl_t pitch = 0.;
@@ -394,5 +397,5 @@
 
 void
-aubio_pitch_do_specacf (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * out)
+aubio_pitch_do_specacf (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * out)
 {
   smpl_t pitch = 0., period;
@@ -410,5 +413,5 @@
 
 void
-aubio_pitch_do_fcomb (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * out)
+aubio_pitch_do_fcomb (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * out)
 {
   aubio_pitch_slideblock (p, ibuf);
@@ -418,5 +421,5 @@
 
 void
-aubio_pitch_do_schmitt (aubio_pitch_t * p, fvec_t * ibuf, fvec_t * out)
+aubio_pitch_do_schmitt (aubio_pitch_t * p, const fvec_t * ibuf, fvec_t * out)
 {
   smpl_t period, pitch = 0.;
Index: src/pitch/pitch.h
===================================================================
--- src/pitch/pitch.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitch.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -108,5 +108,5 @@
 
 */
-void aubio_pitch_do (aubio_pitch_t * o, fvec_t * in, fvec_t * out);
+void aubio_pitch_do (aubio_pitch_t * o, const fvec_t * in, fvec_t * out);
 
 /** change yin or yinfft tolerance threshold
@@ -135,5 +135,5 @@
 
 */
-aubio_pitch_t *new_aubio_pitch (char_t * method,
+aubio_pitch_t *new_aubio_pitch (const char_t * method,
     uint_t buf_size, uint_t hop_size, uint_t samplerate);
 
@@ -146,5 +146,5 @@
 
 */
-uint_t aubio_pitch_set_unit (aubio_pitch_t * o, char_t * mode);
+uint_t aubio_pitch_set_unit (aubio_pitch_t * o, const char_t * mode);
 
 /** set the silence threshold of the pitch detection object
Index: src/pitch/pitchfcomb.c
===================================================================
--- src/pitch/pitchfcomb.c	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchfcomb.c	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -64,5 +64,5 @@
 /* input must be stepsize long */
 void
-aubio_pitchfcomb_do (aubio_pitchfcomb_t * p, fvec_t * input, fvec_t * output)
+aubio_pitchfcomb_do (aubio_pitchfcomb_t * p, const fvec_t * input, fvec_t * output)
 {
   uint_t k, l, maxharm = 0;
Index: src/pitch/pitchfcomb.h
===================================================================
--- src/pitch/pitchfcomb.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchfcomb.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -52,5 +52,5 @@
 
 */
-void aubio_pitchfcomb_do (aubio_pitchfcomb_t * p, fvec_t * input,
+void aubio_pitchfcomb_do (aubio_pitchfcomb_t * p, const fvec_t * input,
     fvec_t * output);
 
Index: src/pitch/pitchmcomb.c
===================================================================
--- src/pitch/pitchmcomb.c	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchmcomb.c	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -32,7 +32,7 @@
     uint_t length);
 uint_t aubio_pitchmcomb_quadpick (aubio_spectralpeak_t * spectral_peaks,
-    fvec_t * X);
-void aubio_pitchmcomb_spectral_pp (aubio_pitchmcomb_t * p, fvec_t * oldmag);
-void aubio_pitchmcomb_combdet (aubio_pitchmcomb_t * p, fvec_t * newmag);
+    const fvec_t * X);
+void aubio_pitchmcomb_spectral_pp (aubio_pitchmcomb_t * p, const fvec_t * oldmag);
+void aubio_pitchmcomb_combdet (aubio_pitchmcomb_t * p, const fvec_t * newmag);
 /* not used but useful : sort by amplitudes (or anything else)
  * sort_pitchpeak(peaks, length);
@@ -43,5 +43,5 @@
 void aubio_pitchmcomb_sort_peak (aubio_spectralpeak_t * peaks, uint_t nbins);
 /** select the best candidates */
-uint_t aubio_pitch_cands (aubio_pitchmcomb_t * p, cvec_t * fftgrain,
+uint_t aubio_pitch_cands (aubio_pitchmcomb_t * p, const cvec_t * fftgrain,
     smpl_t * cands);
 
@@ -102,5 +102,5 @@
 
 void
-aubio_pitchmcomb_do (aubio_pitchmcomb_t * p, cvec_t * fftgrain, fvec_t * output)
+aubio_pitchmcomb_do (aubio_pitchmcomb_t * p, const cvec_t * fftgrain, fvec_t * output)
 {
   uint_t j;
@@ -135,5 +135,5 @@
 
 uint_t
-aubio_pitch_cands (aubio_pitchmcomb_t * p, cvec_t * fftgrain, smpl_t * cands)
+aubio_pitch_cands (aubio_pitchmcomb_t * p, const cvec_t * fftgrain, smpl_t * cands)
 {
   uint_t j;
@@ -166,5 +166,5 @@
 
 void
-aubio_pitchmcomb_spectral_pp (aubio_pitchmcomb_t * p, fvec_t * newmag)
+aubio_pitchmcomb_spectral_pp (aubio_pitchmcomb_t * p, const fvec_t * newmag)
 {
   fvec_t *mag = (fvec_t *) p->scratch;
@@ -198,5 +198,5 @@
 
 void
-aubio_pitchmcomb_combdet (aubio_pitchmcomb_t * p, fvec_t * newmag)
+aubio_pitchmcomb_combdet (aubio_pitchmcomb_t * p, const fvec_t * newmag)
 {
   aubio_spectralpeak_t *peaks = (aubio_spectralpeak_t *) p->peaks;
@@ -286,5 +286,5 @@
  */
 uint_t
-aubio_pitchmcomb_quadpick (aubio_spectralpeak_t * spectral_peaks, fvec_t * X)
+aubio_pitchmcomb_quadpick (aubio_spectralpeak_t * spectral_peaks, const fvec_t * X)
 {
   uint_t j, ispeak, count = 0;
Index: src/pitch/pitchmcomb.h
===================================================================
--- src/pitch/pitchmcomb.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchmcomb.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -53,5 +53,5 @@
 
 */
-void aubio_pitchmcomb_do (aubio_pitchmcomb_t * p, cvec_t * in_fftgrain,
+void aubio_pitchmcomb_do (aubio_pitchmcomb_t * p, const cvec_t * in_fftgrain,
     fvec_t * out_cands);
 
Index: src/pitch/pitchschmitt.c
===================================================================
--- src/pitch/pitchschmitt.c	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchschmitt.c	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -48,5 +48,5 @@
 
 void
-aubio_pitchschmitt_do (aubio_pitchschmitt_t * p, fvec_t * input,
+aubio_pitchschmitt_do (aubio_pitchschmitt_t * p, const fvec_t * input,
     fvec_t * output)
 {
Index: src/pitch/pitchschmitt.h
===================================================================
--- src/pitch/pitchschmitt.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchschmitt.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -52,5 +52,5 @@
 
 */
-void aubio_pitchschmitt_do (aubio_pitchschmitt_t * p, fvec_t * samples_in,
+void aubio_pitchschmitt_do (aubio_pitchschmitt_t * p, const fvec_t * samples_in,
     fvec_t * cands_out);
 
Index: src/pitch/pitchspecacf.c
===================================================================
--- src/pitch/pitchspecacf.c	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchspecacf.c	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -55,5 +55,5 @@
 
 void
-aubio_pitchspecacf_do (aubio_pitchspecacf_t * p, fvec_t * input, fvec_t * output)
+aubio_pitchspecacf_do (aubio_pitchspecacf_t * p, const fvec_t * input, fvec_t * output)
 {
   uint_t l, tau;
@@ -92,5 +92,5 @@
 
 smpl_t
-aubio_pitchspecacf_get_confidence (aubio_pitchspecacf_t * o) {
+aubio_pitchspecacf_get_confidence (const aubio_pitchspecacf_t * o) {
   // no confidence for now
   return o->confidence;
@@ -105,5 +105,5 @@
 
 smpl_t
-aubio_pitchspecacf_get_tolerance (aubio_pitchspecacf_t * p)
+aubio_pitchspecacf_get_tolerance (const aubio_pitchspecacf_t * p)
 {
   return p->tol;
Index: src/pitch/pitchspecacf.h
===================================================================
--- src/pitch/pitchspecacf.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchspecacf.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -56,5 +56,5 @@
 
 */
-void aubio_pitchspecacf_do (aubio_pitchspecacf_t * o, fvec_t * samples_in, fvec_t * cands_out);
+void aubio_pitchspecacf_do (aubio_pitchspecacf_t * o, const fvec_t * samples_in, fvec_t * cands_out);
 /** creation of the pitch detection object
 
@@ -77,5 +77,5 @@
 
 */
-smpl_t aubio_pitchspecacf_get_tolerance (aubio_pitchspecacf_t * o);
+smpl_t aubio_pitchspecacf_get_tolerance (const aubio_pitchspecacf_t * o);
 
 /** set tolerance parameter for `specacf` pitch detection object
@@ -95,5 +95,5 @@
 
 */
-smpl_t aubio_pitchspecacf_get_confidence (aubio_pitchspecacf_t * o);
+smpl_t aubio_pitchspecacf_get_confidence (const aubio_pitchspecacf_t * o);
 
 #ifdef __cplusplus
Index: src/pitch/pitchyin.c
===================================================================
--- src/pitch/pitchyin.c	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchyin.c	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -41,6 +41,6 @@
 
 /** compute difference function
-  
-  \param input input signal 
+
+  \param input input signal
   \param yinbuf output buffer to store difference function (half shorter than input)
 
@@ -48,7 +48,7 @@
 void aubio_pitchyin_diff (fvec_t * input, fvec_t * yinbuf);
 
-/** in place computation of the YIN cumulative normalised function 
-  
-  \param yinbuf input signal (a square difference function), also used to store function 
+/** in place computation of the YIN cumulative normalised function
+
+  \param yinbuf input signal (a square difference function), also used to store function
 
 */
@@ -56,9 +56,9 @@
 
 /** detect pitch in a YIN function
-  
+
   \param yinbuf input buffer as computed by aubio_pitchyin_getcum
 
 */
-uint_t aubio_pitchyin_getpitch (fvec_t * yinbuf);
+uint_t aubio_pitchyin_getpitch (const fvec_t * yinbuf);
 
 aubio_pitchyin_t *
@@ -112,5 +112,5 @@
 
 uint_t
-aubio_pitchyin_getpitch (fvec_t * yin)
+aubio_pitchyin_getpitch (const fvec_t * yin)
 {
   uint_t tau = 1;
@@ -131,5 +131,5 @@
 /* all the above in one */
 void
-aubio_pitchyin_do (aubio_pitchyin_t * o, fvec_t * input, fvec_t * out)
+aubio_pitchyin_do (aubio_pitchyin_t * o, const fvec_t * input, fvec_t * out)
 {
   smpl_t tol = o->tol;
Index: src/pitch/pitchyin.h
===================================================================
--- src/pitch/pitchyin.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchyin.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -67,5 +67,5 @@
 
 */
-void aubio_pitchyin_do (aubio_pitchyin_t * o, fvec_t * samples_in, fvec_t * cands_out);
+void aubio_pitchyin_do (aubio_pitchyin_t * o, const fvec_t * samples_in, fvec_t * cands_out);
 
 
Index: src/pitch/pitchyinfft.c
===================================================================
--- src/pitch/pitchyinfft.c	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchyinfft.c	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -99,5 +99,5 @@
 
 void
-aubio_pitchyinfft_do (aubio_pitchyinfft_t * p, fvec_t * input, fvec_t * output)
+aubio_pitchyinfft_do (aubio_pitchyinfft_t * p, const fvec_t * input, fvec_t * output)
 {
   uint_t tau, l;
Index: src/pitch/pitchyinfft.h
===================================================================
--- src/pitch/pitchyinfft.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/pitch/pitchyinfft.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -53,5 +53,5 @@
 
 */
-void aubio_pitchyinfft_do (aubio_pitchyinfft_t * o, fvec_t * samples_in, fvec_t * cands_out);
+void aubio_pitchyinfft_do (aubio_pitchyinfft_t * o, const fvec_t * samples_in, fvec_t * cands_out);
 /** creation of the pitch detection object
 
Index: src/synth/sampler.h
===================================================================
--- src/synth/sampler.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/synth/sampler.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -60,5 +60,5 @@
 
 */
-uint_t aubio_sampler_load( aubio_sampler_t * o, char_t * uri );
+uint_t aubio_sampler_load( aubio_sampler_t * o, const char_t * uri );
 
 /** process sampler function
@@ -74,5 +74,5 @@
 
 */
-void aubio_sampler_do ( aubio_sampler_t * o, fvec_t * input, fvec_t * output);
+void aubio_sampler_do ( aubio_sampler_t * o, const fvec_t * input, fvec_t * output);
 
 /** process sampler function, multiple channels
@@ -88,5 +88,5 @@
 
 */
-void aubio_sampler_do_multi ( aubio_sampler_t * o, fmat_t * input, fmat_t * output);
+void aubio_sampler_do_multi ( aubio_sampler_t * o, const fmat_t * input, fmat_t * output);
 
 /** get current playing state
@@ -97,5 +97,5 @@
 
 */
-uint_t aubio_sampler_get_playing ( aubio_sampler_t * o );
+uint_t aubio_sampler_get_playing ( const aubio_sampler_t * o );
 
 /** set current playing state
Index: src/synth/wavetable.c
===================================================================
--- src/synth/wavetable.c	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/synth/wavetable.c	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -69,5 +69,5 @@
 }
 
-static smpl_t interp_2(fvec_t *input, smpl_t pos) {
+static smpl_t interp_2(const fvec_t *input, smpl_t pos) {
   uint_t idx = (uint_t)FLOOR(pos);
   smpl_t frac = pos - (smpl_t)idx;
@@ -77,5 +77,5 @@
 }
 
-void aubio_wavetable_do ( aubio_wavetable_t * s, fvec_t * input, fvec_t * output)
+void aubio_wavetable_do ( aubio_wavetable_t * s, const fvec_t * input, fvec_t * output)
 {
   uint_t i;
@@ -108,5 +108,5 @@
 }
 
-void aubio_wavetable_do_multi ( aubio_wavetable_t * s, fmat_t * input, fmat_t * output)
+void aubio_wavetable_do_multi ( aubio_wavetable_t * s, const fmat_t * input, fmat_t * output)
 {
   uint_t i, j;
@@ -143,5 +143,5 @@
 }
 
-uint_t aubio_wavetable_get_playing ( aubio_wavetable_t * s )
+uint_t aubio_wavetable_get_playing ( const aubio_wavetable_t * s )
 {
   return s->playing;
@@ -173,5 +173,5 @@
 }
 
-smpl_t aubio_wavetable_get_freq ( aubio_wavetable_t * s) {
+smpl_t aubio_wavetable_get_freq ( const aubio_wavetable_t * s) {
   return aubio_parameter_get_current_value ( s->freq);
 }
@@ -182,5 +182,5 @@
 }
 
-smpl_t aubio_wavetable_get_amp ( aubio_wavetable_t * s) {
+smpl_t aubio_wavetable_get_amp ( const aubio_wavetable_t * s) {
   return aubio_parameter_get_current_value ( s->amp );
 }
Index: src/synth/wavetable.h
===================================================================
--- src/synth/wavetable.h	(revision eaee767f05f103638540fdd3bd31887a1aab47d6)
+++ src/synth/wavetable.h	(revision ce3ff2bd7f533f9b7d3f511bd842160347fc8d99)
@@ -60,5 +60,5 @@
 
 */
-uint_t aubio_wavetable_load( aubio_wavetable_t * o, char_t * uri );
+uint_t aubio_wavetable_load( aubio_wavetable_t * o, const char_t * uri );
 
 /** process wavetable function
@@ -74,5 +74,5 @@
 
 */
-void aubio_wavetable_do ( aubio_wavetable_t * o, fvec_t * input, fvec_t * output);
+void aubio_wavetable_do ( aubio_wavetable_t * o, const fvec_t * input, fvec_t * output);
 
 /** process wavetable function, multiple channels
@@ -88,5 +88,5 @@
 
 */
-void aubio_wavetable_do_multi ( aubio_wavetable_t * o, fmat_t * input, fmat_t * output);
+void aubio_wavetable_do_multi ( aubio_wavetable_t * o, const fmat_t * input, fmat_t * output);
 
 /** get current playing state
@@ -97,5 +97,5 @@
 
 */
-uint_t aubio_wavetable_get_playing ( aubio_wavetable_t * o );
+uint_t aubio_wavetable_get_playing ( const aubio_wavetable_t * o );
 
 /** set current playing state
@@ -144,5 +144,5 @@
 
 */
-smpl_t aubio_wavetable_get_freq ( aubio_wavetable_t * o);
+smpl_t aubio_wavetable_get_freq ( const aubio_wavetable_t * o);
 
 /** set wavetable amplitude
@@ -163,5 +163,5 @@
 
 */
-smpl_t aubio_wavetable_get_amp ( aubio_wavetable_t * o);
+smpl_t aubio_wavetable_get_amp ( const aubio_wavetable_t * o);
 
 /** destroy aubio_wavetable_t object
