Mercurial > hg > devuvuzelator
view devuvuzelator-vst.h @ 19:0cdedb2fab81 tip
* OS/X build fixes
author | Chris Cannam |
---|---|
date | Fri, 18 Jun 2010 11:18:49 +0100 |
parents | a1539d4e3b08 |
children |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ #ifndef _DEVUVUZELATOR_VST_H_ #define _DEVUVUZELATOR_VST_H_ #include "public.sdk/source/vst2.x/audioeffect.h" #include "median.h" class Devuvuzelator : public AudioEffect { enum { FundamentalParam = 0, BandwidthParam = 1, HarmonicsParam = 2, ReductionParam = 3, NumParams = 4 }; public: Devuvuzelator(audioMasterCallback cb); ~Devuvuzelator(); virtual void getEffectName(char *n) { vst_strncpy(n, "Devuvuzelator", kVstMaxEffectNameLen); } virtual void getProductString(char *n) { vst_strncpy(n, "Devuvuzelator", kVstMaxProductStrLen); } virtual void getVendorString(char *n) { vst_strncpy(n, "Queen Mary, University of London", kVstMaxVendorStrLen); } virtual void setParameter(VstInt32 index, float value); virtual float getParameter(VstInt32 index); virtual void getParameterLabel(VstInt32 index, char* label); virtual void getParameterDisplay(VstInt32 index, char* text); virtual void getParameterName(VstInt32 index, char* text); virtual void setSampleRate (float sampleRate) { m_sampleRate = sampleRate; AudioEffect::setSampleRate(sampleRate); } virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames) { m_input = inputs[0]; m_output = outputs[0]; runImpl(sampleFrames); } void reset(); void window(float *); void runImpl(unsigned long); void processFrame(); void processSpectralFrame(); static void fft(unsigned int n, bool inverse, double *ri, double *ii, double *ro, double *io); float m_sampleRate; float *m_input; float *m_output; float m_fundamental; float m_bandwidth; int m_harmonics; float m_reduction; const int m_fftsize; const int m_winsize; const int m_increment; const float m_filtersecs; int m_fill; int m_read; float *m_buffer; float *m_outacc; double *m_frame; double *m_spare; double *m_real; double *m_imag; double *m_window; MedianFilter<double> **m_medians; }; #endif