Mercurial > hg > ambi-plugin
diff Source/Decoder.h @ 12:87dc3d84c120
Addressed the load program defaults over user settings 'feature'.
Removed isChild on objects that are added before the frame creation since a)they're always there and b) doesn't write to all displays present.
author | martinm_home <martin.morrell@eecs.qmul.ac.uk> |
---|---|
date | Thu, 27 Sep 2012 23:29:16 +0100 |
parents | 76e2e62635b4 |
children |
line wrap: on
line diff
--- a/Source/Decoder.h Thu Sep 27 12:33:46 2012 +0100 +++ b/Source/Decoder.h Thu Sep 27 23:29:16 2012 +0100 @@ -1,6 +1,6 @@ /* * Decoder.h - * SoundField + * ClassicAmbiDec * * Created by Martin Morrell on 14/06/2012. * Copyright 2012 Queen Mary University of London. All rights reserved. @@ -12,6 +12,8 @@ { friend class MyEditor; public: + Decoder(); + //Transforms & Zoom double Rotate; //+/-180 degrees double Tilt; //+/-180 degrees @@ -30,60 +32,38 @@ int Mode; //0 or 1 for xy or ms double RearVerb; //0-24dB double HiVerb; //0-24dB - double outputL; //Left output - double outputR; //Right output //Centre Speaker Decoding - double outputC; //Centre output double centrePattern; //Centre mic pattern double centreGain; //Centre mic gain //Subwoofer Signal - double outputS; //Subwoofer output double subGain; //Subwoofer gain //Surround Speaker Decoding - double outputSL; //Surround Left output - double outputSR; //Surround Right output int surMode; //Rear mics mode double surPattern; //Rear mics pattern double surWidth; //Rear mics width double surGain; //Rear mics gain - double output[6]; //Final Output - - - - //Filter Code for subwoofer + //Filter Code int Fs; //Sample Rate int Fc; //Crossover Frequency - double bLF[3]; //b Coefficients for Lower Frequency Band - double bHF[3]; //b Coefficients for Higher Frequency Band - double a[3]; //a Coefficients - double prevInS[2]; //Previous Input LF Samples - double prevOutS[2]; //Previous Output LF Samples - double prevInw[2]; //Previous Input w Samples - double prevOutw[2]; //Previous Output w Samples - double prevInx[2]; //Previous Input x Samples - double prevOutx[2]; //Previous Output x Samples - double prevIny[2]; //Previous Input y Samples - double prevOuty[2]; //Previous Output y Samples - double prevInz[2]; //Previous Input z Samples - double prevOutz[2]; //Previous Output z Samples - void clearFilter(); //Clears the previous filter values - + void filterCoefs(); //Calculates the filter coefficients //Overall Decoding Functions + double output[6]; //Final Output int processDecoder(double &w, double &x, double &y, double &z); //Called fucntion to do the decoding -//private: +private: + //Conversion Functions double degRad(double angle); //Convert degreesto radians double radDeg(double angle); //Convert radians to degrees - //SoundField Rotations + //Sound Field Rotations void rotateField(double &x, double &y); void tiltField(double &x, double &y); void tumbleField(double &x, double &y); @@ -108,12 +88,24 @@ void msSurDecode(double &w, double &x, double &y, double &z); //Filter Code - void filterCoefs(); void filterLF(double &w); void filterHF(double &w, double &x, double &y, double &z); + double bLF[3]; //b Coefficients for Lower Frequency Band + double bHF[3]; //b Coefficients for Higher Frequency Band + double a[3]; //a Coefficients + double prevInS[2]; //Previous Input LF Samples + double prevOutS[2]; //Previous Output LF Samples + double prevInw[2]; //Previous Input w Samples + double prevOutw[2]; //Previous Output w Samples + double prevInx[2]; //Previous Input x Samples + double prevOutx[2]; //Previous Output x Samples + double prevIny[2]; //Previous Input y Samples + double prevOuty[2]; //Previous Output y Samples + double prevInz[2]; //Previous Input z Samples + double prevOutz[2]; //Previous Output z Samples //Decoder Types - void monoDecoder(double &w, double &x, double &y, double &z); //Decode to mono + void monoDecoder(double &w, double &x, double &y, double &z); //Decode to mono, implemented but not used void stereoDecoder(double &w, double &x, double &y, double &z); //Decode to stereo void twoOneDecoder(double &w, double &x, double &y, double &z); //Decode to stereo void quadDecoder(double &w, double &x, double &y, double &z); //Decode to LRCS @@ -121,5 +113,10 @@ void fiveOneDecoder(double &w, double &x, double &y, double &z); //Decode to 5.1 void heller1(double &w, double &x, double &y, double &z); void heller2(double &w, double &x, double &y, double &z); - void craven(double &w, double &x, double &y, double &z); + double outputL; //Left output + double outputR; //Right output + double outputC; //Centre output + double outputS; //Subwoofer output + double outputSL; //Surround Left output + double outputSR; //Surround Right output }; \ No newline at end of file