annotate 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
rev   line source
Chris@9 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@9 2
Chris@9 3 #ifndef _DEVUVUZELATOR_VST_H_
Chris@9 4 #define _DEVUVUZELATOR_VST_H_
Chris@9 5
Chris@9 6 #include "public.sdk/source/vst2.x/audioeffect.h"
Chris@9 7 #include "median.h"
Chris@9 8
Chris@9 9 class Devuvuzelator : public AudioEffect
Chris@9 10 {
Chris@9 11 enum {
Chris@9 12 FundamentalParam = 0,
Chris@9 13 BandwidthParam = 1,
Chris@9 14 HarmonicsParam = 2,
Chris@9 15 ReductionParam = 3,
Chris@9 16 NumParams = 4
Chris@9 17 };
Chris@9 18
Chris@9 19 public:
Chris@9 20 Devuvuzelator(audioMasterCallback cb);
Chris@9 21 ~Devuvuzelator();
Chris@9 22
Chris@9 23 virtual void getEffectName(char *n) {
Chris@9 24 vst_strncpy(n, "Devuvuzelator", kVstMaxEffectNameLen);
Chris@9 25 }
Chris@9 26 virtual void getProductString(char *n) {
Chris@9 27 vst_strncpy(n, "Devuvuzelator", kVstMaxProductStrLen);
Chris@9 28 }
Chris@9 29 virtual void getVendorString(char *n) {
Chris@9 30 vst_strncpy(n, "Queen Mary, University of London", kVstMaxVendorStrLen);
Chris@9 31 }
Chris@9 32
Chris@9 33 virtual void setParameter(VstInt32 index, float value);
Chris@9 34 virtual float getParameter(VstInt32 index);
Chris@9 35 virtual void getParameterLabel(VstInt32 index, char* label);
Chris@9 36 virtual void getParameterDisplay(VstInt32 index, char* text);
Chris@9 37 virtual void getParameterName(VstInt32 index, char* text);
Chris@9 38
Chris@9 39 virtual void setSampleRate (float sampleRate) {
Chris@9 40 m_sampleRate = sampleRate;
Chris@9 41 AudioEffect::setSampleRate(sampleRate);
Chris@9 42 }
Chris@9 43
Chris@9 44 virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames) {
Chris@9 45 m_input = inputs[0];
Chris@9 46 m_output = outputs[0];
Chris@9 47 runImpl(sampleFrames);
Chris@9 48 }
Chris@9 49
Chris@9 50 void reset();
Chris@9 51 void window(float *);
Chris@9 52 void runImpl(unsigned long);
Chris@9 53 void processFrame();
Chris@9 54 void processSpectralFrame();
Chris@9 55
Chris@9 56 static void fft(unsigned int n, bool inverse,
Chris@9 57 double *ri, double *ii, double *ro, double *io);
Chris@9 58
Chris@9 59 float m_sampleRate;
Chris@9 60 float *m_input;
Chris@9 61 float *m_output;
Chris@9 62
Chris@9 63 float m_fundamental;
Chris@9 64 float m_bandwidth;
Chris@9 65 int m_harmonics;
Chris@9 66 float m_reduction;
Chris@9 67
Chris@9 68 const int m_fftsize;
Chris@9 69 const int m_winsize;
Chris@9 70 const int m_increment;
Chris@9 71 const float m_filtersecs;
Chris@9 72 int m_fill;
Chris@9 73 int m_read;
Chris@9 74 float *m_buffer;
Chris@9 75 float *m_outacc;
Chris@9 76 double *m_frame;
Chris@9 77 double *m_spare;
Chris@9 78 double *m_real;
Chris@9 79 double *m_imag;
Chris@9 80 double *m_window;
Chris@9 81 MedianFilter<double> **m_medians;
Chris@9 82 };
Chris@9 83
Chris@9 84 #endif