Mercurial > hg > ambi-plugin
view Source/Decoder.h @ 0:2fa9c10568d1
Initial setup.
author | martinm_home <martin.morrell@eecs.qmul.ac.uk> |
---|---|
date | Tue, 14 Aug 2012 09:34:15 +0100 |
parents | |
children | e85bd6381a58 |
line wrap: on
line source
/* * Decoder.h * SoundField * * Created by Martin Morrell on 14/06/2012. * Copyright 2012 Queen Mary University of London. All rights reserved. * */ class Decoder { friend class MyEditor; public: double Rotate; //+/-180 degrees double Tilt; //+/-180 degrees double Tumble; //+/-180 degrees double Zoom; //+/-100 int ZoomMethod; //4 positions double Width; //0-90 degrees double Pattern; //0-1 Omni amount int Mode; //0 or 1 for xy or ms double RearVerb; //0-24dB double HiVerb; //0-24dB double temp; //temp for rotations double temp2[4]; //temp for zooming 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 int surMode; //Rear mics mode double surPattern; //Rear mics pattern double surWidth; //Rear mics width double surGain; //Rear mics gain double centreOrder; //Centre mic order double centrePattern; //Centre mic pattern double centreGain; //Centre mic gain double subGain; //Subwoofer gain int decoderMode; //Decoder mode, set to same as number of outputs //Filter Code int Fs; int Fc; double bLF[3]; double bHF[3]; double a[3]; double prevIn[2]; double prevOut[2]; double prevInw[2]; double prevOutw[2]; double prevInx[2]; double prevOutx[2]; double prevIny[2]; double prevOuty[2]; double prevInz[2]; double prevOutz[2]; void clearFilter(); //Clears the previous filter values //Overall Function void monoDecoder(double &w, double &x, double &y, double &z); //Decode to mono 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 lrcsDecoder(double &w, double &x, double &y, double &z); //Decode to LRCS void fiveDecoder(double &w, double &x, double &y, double &z); //Decode to 5.0 void fiveOneDecoder(double &w, double &x, double &y, double &z); //Decode to 5.1 //private: double degRad(double angle); //Convert degreesto radians double radDeg(double angle); //Convert radians to degrees //SoundField Rotations void rotateField(double &x, double &y); void tiltField(double &x, double &y); void tumbleField(double &x, double &y); //Zoom Methods void dominanceZoom(double &w, double &x, double &y, double &z); void pressZoom(double &w, double &x, double &y, double &z); void pushZoom(double &w, double &x, double &y, double &z); void focusZoom(double &w, double &x, double &y, double &z); //Stereo Decoders void xyDecode(double &w, double &x, double &y, double &z); void msDecode(double &w, double &x, double &y, double &z); //Reverbs void rearVerb(double &w, double &x, double &y, double &z); void hiVerb(double &w, double &x, double &y, double &z); //Surround void centreMic(double &w, double &x); void xySurDecode(double &w, double &x, double &y, double &z); void msSurDecode(double &w, double &x, double &y, double &z); //Subwoofer void subSignal(double &w); //Filter Code void filterCoefs(); void filterLF(); void filterHF(double &w, double &x, double &y, double &z); };