Mercurial > hg > ambi-plugin
changeset 1:e85bd6381a58
Broken XCode project.
author | martinm_home <martin.morrell@eecs.qmul.ac.uk> |
---|---|
date | Thu, 06 Sep 2012 10:01:08 +0100 |
parents | 2fa9c10568d1 |
children | b2a8d65be9a1 |
files | .hgignore SoundField.xcodeproj/project.pbxproj SoundField.xcodeproj/project.xcworkspace/xcuserdata/momont.xcuserdatad/UserInterfaceState.xcuserstate Source/Decoder.cpp Source/Decoder.h Source/GUI.h Source/SoundField.cpp |
diffstat | 7 files changed, 89 insertions(+), 153 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Thu Sep 06 10:01:08 2012 +0100 @@ -0,0 +1,3 @@ +syntax: glob +*.DS_Store +._* \ No newline at end of file
--- a/SoundField.xcodeproj/project.pbxproj Tue Aug 14 09:34:15 2012 +0100 +++ b/SoundField.xcodeproj/project.pbxproj Thu Sep 06 10:01:08 2012 +0100 @@ -42,16 +42,6 @@ 0C74E1621598C689004645E9 /* MyPlot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MyPlot.cpp; path = Source/MyPlot.cpp; sourceTree = "<group>"; }; 0C74E1651598C6A1004645E9 /* MyPlot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MyPlot.h; path = Source/MyPlot.h; sourceTree = "<group>"; }; 0C74E1661598C9B1004645E9 /* pink.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pink.png; path = Resources/pink.png; sourceTree = "<group>"; }; - 0C7C2423159879C50050E903 /* aeffguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aeffguieditor.cpp; path = "../../../../../Users/momont/libraries/vstgui-4.0/plugin-bindings/aeffguieditor.cpp"; sourceTree = "<group>"; }; - 0C7C2424159879C50050E903 /* aeffguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aeffguieditor.h; path = "../../../../../Users/momont/libraries/vstgui-4.0/plugin-bindings/aeffguieditor.h"; sourceTree = "<group>"; }; - 0C7C2425159879C50050E903 /* getpluginbundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = getpluginbundle.h; path = "../../../../../Users/momont/libraries/vstgui-4.0/plugin-bindings/getpluginbundle.h"; sourceTree = "<group>"; }; - 0C7C2426159879C50050E903 /* vstgui_mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = vstgui_mac.mm; path = "../../../../../Users/momont/libraries/vstgui-4.0/vstgui_mac.mm"; sourceTree = "<group>"; }; - 0C7C243015987BF20050E903 /* aeffguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aeffguieditor.cpp; path = "../../../../../Users/momont/libraries/vstgui-3.6/aeffguieditor.cpp"; sourceTree = "<group>"; }; - 0C7C243115987BF20050E903 /* aeffguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aeffguieditor.h; path = "../../../../../Users/momont/libraries/vstgui-3.6/aeffguieditor.h"; sourceTree = "<group>"; }; - 0C7C243215987BF20050E903 /* vstcontrols.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vstcontrols.cpp; path = "../../../../../Users/momont/libraries/vstgui-3.6/vstcontrols.cpp"; sourceTree = "<group>"; }; - 0C7C243315987BF20050E903 /* vstcontrols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vstcontrols.h; path = "../../../../../Users/momont/libraries/vstgui-3.6/vstcontrols.h"; sourceTree = "<group>"; }; - 0C7C243415987BF20050E903 /* vstgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vstgui.cpp; path = "../../../../../Users/momont/libraries/vstgui-3.6/vstgui.cpp"; sourceTree = "<group>"; }; - 0C7C243515987BF20050E903 /* vstgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vstgui.h; path = "../../../../../Users/momont/libraries/vstgui-3.6/vstgui.h"; sourceTree = "<group>"; }; 0C7C2448159882D30050E903 /* aeffguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aeffguieditor.cpp; path = "../../../../../Users/momont/libraries/vstgui-4.0.1/plugin-bindings/aeffguieditor.cpp"; sourceTree = "<group>"; }; 0C7C2449159882D30050E903 /* aeffguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aeffguieditor.h; path = "../../../../../Users/momont/libraries/vstgui-4.0.1/plugin-bindings/aeffguieditor.h"; sourceTree = "<group>"; }; 0C7C244A159882D30050E903 /* getpluginbundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = getpluginbundle.h; path = "../../../../../Users/momont/libraries/vstgui-4.0.1/plugin-bindings/getpluginbundle.h"; sourceTree = "<group>"; }; @@ -151,8 +141,6 @@ 08FB77ADFE841716C02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 0C7C242915987B580050E903 /* vstgui-3.6 */, - 0C7C2422159879A60050E903 /* vstgui-4.0 */, 3EAD4EE01594D7D500FCEC69 /* vstgui-4.0.1 */, 3E6263FF158A7669006D3F03 /* Source */, F405CDF90B0487F1008E3886 /* vstsdk2.4 */, @@ -160,30 +148,6 @@ name = Source; sourceTree = "<group>"; }; - 0C7C2422159879A60050E903 /* vstgui-4.0 */ = { - isa = PBXGroup; - children = ( - 0C7C2423159879C50050E903 /* aeffguieditor.cpp */, - 0C7C2424159879C50050E903 /* aeffguieditor.h */, - 0C7C2425159879C50050E903 /* getpluginbundle.h */, - 0C7C2426159879C50050E903 /* vstgui_mac.mm */, - ); - name = "vstgui-4.0"; - sourceTree = "<group>"; - }; - 0C7C242915987B580050E903 /* vstgui-3.6 */ = { - isa = PBXGroup; - children = ( - 0C7C243015987BF20050E903 /* aeffguieditor.cpp */, - 0C7C243115987BF20050E903 /* aeffguieditor.h */, - 0C7C243215987BF20050E903 /* vstcontrols.cpp */, - 0C7C243315987BF20050E903 /* vstcontrols.h */, - 0C7C243415987BF20050E903 /* vstgui.cpp */, - 0C7C243515987BF20050E903 /* vstgui.h */, - ); - name = "vstgui-3.6"; - sourceTree = "<group>"; - }; 19C28FB4FE9D528D11CA2CBB /* Products */ = { isa = PBXGroup; children = ( @@ -369,9 +333,10 @@ "$HOME/libraries/vstgui-4.0.1/**", ); INFOPLIST_FILE = ""; - INSTALL_PATH = "$(HOME)/Library/Bundles"; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST"; + MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = "Ambi-Stereo"; - SDKROOT = macosx10.6; + SDKROOT = macosx10.7; WRAPPER_EXTENSION = vst; ZERO_LINK = NO; }; @@ -385,11 +350,13 @@ GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ""; + GCC_VERSION = ""; GENERATE_PKGINFO_FILE = YES; INFOPLIST_FILE = ""; - INSTALL_PATH = "$(HOME)/Library/Bundles"; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST"; + MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = "Ambi-Stereo"; - SDKROOT = macosx10.6; + SDKROOT = macosx10.7; WRAPPER_EXTENSION = vst; ZERO_LINK = NO; }; @@ -408,7 +375,7 @@ $HOME$/libraries/vstsdk2.4, $HOME$/libraries/vstgui, ); - MACOSX_DEPLOYMENT_TARGET = 10.6; + MACOSX_DEPLOYMENT_TARGET = 10.7; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx10.6; }; @@ -423,7 +390,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ../vstsdk2.4/; - MACOSX_DEPLOYMENT_TARGET = 10.6; + MACOSX_DEPLOYMENT_TARGET = 10.7; SDKROOT = macosx10.6; }; name = Release;
Binary file SoundField.xcodeproj/project.xcworkspace/xcuserdata/momont.xcuserdatad/UserInterfaceState.xcuserstate has changed
--- a/Source/Decoder.cpp Tue Aug 14 09:34:15 2012 +0100 +++ b/Source/Decoder.cpp Thu Sep 06 10:01:08 2012 +0100 @@ -408,7 +408,7 @@ //SoundField Rotations void Decoder::rotateField(double &x, double &y) { - temp=x; + double temp = x; x = cos(degRad(Rotate))*temp - sin(degRad(Rotate))*y; y = cos(degRad(Rotate))*y + sin(degRad(Rotate))*temp; @@ -417,7 +417,7 @@ void Decoder::tiltField(double &y, double &z) { - temp=y; + double temp = y; y = cos(degRad(Tilt))*temp - sin(degRad(Tilt))*z; z = cos(degRad(Tilt))*z + sin(degRad(Tilt))*temp; }; @@ -425,7 +425,7 @@ void Decoder::tumbleField(double &x, double &z) { - temp=x; + double temp = x; x = cos(degRad(Tumble))*temp - sin(degRad(Tumble))*z; z = cos(degRad(Tumble))*z + sin(degRad(Tumble))*temp; }; @@ -437,53 +437,57 @@ void Decoder::dominanceZoom(double &w, double &x, double &y, double &z) { double lambda = pow(10,(Zoom*0.24/20)); - temp2[0]=w; - temp2[1]=x; - temp2[2]=y; - temp2[3]=z; + double temp[4]; + temp[0]=w; + temp[1]=x; + temp[2]=y; + temp[3]=z; - w = 0.5*(lambda+pow(lambda,-1))*temp2[0] + pow(8,-0.5)*(lambda-pow(lambda,-1))*temp2[1]; - x = 0.5*(lambda+pow(lambda,-1))*temp2[1] + pow(2,-0.5)*(lambda-pow(lambda,-1))*temp2[0]; + w = 0.5*(lambda+pow(lambda,-1))*temp[0] + pow(8,-0.5)*(lambda-pow(lambda,-1))*temp[1]; + x = 0.5*(lambda+pow(lambda,-1))*temp[1] + pow(2,-0.5)*(lambda-pow(lambda,-1))*temp[0]; }; void Decoder::pressZoom(double &w, double &x, double &y, double &z) { - temp2[0]=w; - temp2[1]=x; - temp2[2]=y; - temp2[3]=z; + double temp[4]; + temp[0]=w; + temp[1]=x; + temp[2]=y; + temp[3]=z; - x = (sqrt(2.0)*std::abs(sin(degRad(Zoom*0.9)))*sin(degRad(Zoom*0.9))*temp2[0]) + (pow(cos(degRad(Zoom*0.9)),2)*temp2[1]); - y = cos(degRad(Zoom*0.9))*temp2[2]; - z = cos(degRad(Zoom*0.9))*temp2[3]; + x = (sqrt(2.0)*std::abs(sin(degRad(Zoom*0.9)))*sin(degRad(Zoom*0.9))*temp[0]) + (pow(cos(degRad(Zoom*0.9)),2)*temp[1]); + y = cos(degRad(Zoom*0.9))*temp[2]; + z = cos(degRad(Zoom*0.9))*temp[3]; }; void Decoder::pushZoom(double &w, double &x, double &y, double &z) { - temp2[0]=w; - temp2[1]=x; - temp2[2]=y; - temp2[3]=z; + double temp[4]; + temp[0]=w; + temp[1]=x; + temp[2]=y; + temp[3]=z; - x = (sqrt(2.0)*std::abs(sin(degRad(Zoom*0.9)))*sin(degRad(Zoom*0.9))*temp2[0]) + (pow(cos(degRad(Zoom*0.9)),2)*temp2[1]); - y = pow(cos(degRad(Zoom*0.9)),2)*temp2[2]; - z = pow(cos(degRad(Zoom*0.9)),2)*temp2[3]; + x = (sqrt(2.0)*std::abs(sin(degRad(Zoom*0.9)))*sin(degRad(Zoom*0.9))*temp[0]) + (pow(cos(degRad(Zoom*0.9)),2)*temp[1]); + y = pow(cos(degRad(Zoom*0.9)),2)*temp[2]; + z = pow(cos(degRad(Zoom*0.9)),2)*temp[3]; }; void Decoder::focusZoom(double &w, double &x, double &y, double &z) { - temp2[0]=w; - temp2[1]=x; - temp2[2]=y; - temp2[3]=z; + double temp[4]; + temp[0]=w; + temp[1]=x; + temp[2]=y; + temp[3]=z; - w = ((1/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp2[0]) + ((1/sqrt(2.0))*(sin(degRad(Zoom*0.9))/(1+std::abs(sin(degRad(Zoom*0.9))))))* temp2[1]; - x = sqrt(2.0)*(sin(degRad(Zoom*0.9))/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp2[0] + (1/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp2[1]; - y = sqrt((1-std::abs(sin(degRad(Zoom*0.9))))/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp2[2]; - z = sqrt((1-std::abs(sin(degRad(Zoom*0.9))))/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp2[3]; + w = ((1/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp[0]) + ((1/sqrt(2.0))*(sin(degRad(Zoom*0.9))/(1+std::abs(sin(degRad(Zoom*0.9))))))* temp[1]; + x = sqrt(2.0)*(sin(degRad(Zoom*0.9))/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp[0] + (1/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp[1]; + y = sqrt((1-std::abs(sin(degRad(Zoom*0.9))))/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp[2]; + z = sqrt((1-std::abs(sin(degRad(Zoom*0.9))))/(1+std::abs(sin(degRad(Zoom*0.9)))))*temp[3]; }; @@ -550,7 +554,7 @@ void Decoder::centreMic(double &w, double &x) { - outputC = pow((centrePattern*sqrt(2.0)*w + (1-centrePattern)*x), centreOrder) * centreGain; + outputC = (centrePattern*sqrt(2.0)*w + (1-centrePattern)*x) * centreGain; }; @@ -583,14 +587,17 @@ void Decoder::filterLF(){ double outLF; - outLF = (double)outputS*bLF[0] + prevIn[0]*bLF[1] + prevIn[1]*bLF[2] + prevOut[0]*a[1] + prevOut[1]*a[2]; - prevOut[1] = prevOut[0]; - prevOut[0] = outLF; + //LF Filtering + outLF = (double)outputS*bLF[0] + prevInS[0]*bLF[1] + prevInS[1]*bLF[2] + prevOutS[0]*a[1] + prevOutS[1]*a[2]; - prevIn[1] = prevIn[0]; - prevIn[0] = (double)outputS; + //Previous Input and Output Samples + prevOutS[1] = prevOutS[0]; + prevOutS[0] = outLF; + prevInS[1] = prevInS[0]; + prevInS[0] = (double)outputS; + //Final subwoofer Output outputS = outLF; }; @@ -634,8 +641,8 @@ void Decoder::clearFilter(){ for (int i=0; i<2; i++) { - prevIn[i] = 0; - prevOut[i] = 0; + prevInS[i] = 0; + prevOutS[i] = 0; prevInw[i] = 0; prevOutw[i] = 0; prevInx[i] = 0;
--- a/Source/Decoder.h Tue Aug 14 09:34:15 2012 +0100 +++ b/Source/Decoder.h Thu Sep 06 10:01:08 2012 +0100 @@ -12,63 +12,66 @@ { friend class MyEditor; public: + //Transforms & Zoom double Rotate; //+/-180 degrees double Tilt; //+/-180 degrees double Tumble; //+/-180 degrees double Zoom; //+/-100 int ZoomMethod; //4 positions + + //Decoder Speaker Layout + int decoderMode; //Decoder mode, set to same as number of outputs + + //Front Stereo Speaker Decoding & Reverb 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 + //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 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]; + //Filter Code for subwoofer + 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 - //Overall Function + //Overall Decoding Functions 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
--- a/Source/GUI.h Tue Aug 14 09:34:15 2012 +0100 +++ b/Source/GUI.h Thu Sep 06 10:01:08 2012 +0100 @@ -135,49 +135,6 @@ -class LineStyleTestView : public CControl -{ -public: - LineStyleTestView (const CRect& size) : CControl (size) {} - - void setupLineStyle (CDrawContext* context) - { - context->setFrameColor (kBlackCColor); - context->setDrawMode (kAntiAliasing); - context->setLineWidth (5); - const CCoord kDefaultOnOffDashLength[] = {1, 2}; - switch ((int32_t)value) - { - case 0: context->setLineStyle (kLineSolid); break; - case 1: context->setLineStyle (CLineStyle (CLineStyle::kLineCapButt, CLineStyle::kLineJoinRound)); break; - case 2: context->setLineStyle (CLineStyle (CLineStyle::kLineCapButt, CLineStyle::kLineJoinBevel)); break; - case 3: context->setLineStyle (kLineOnOffDash); break; - case 4: context->setLineStyle (CLineStyle (CLineStyle::kLineCapRound, CLineStyle::kLineJoinMiter, 0, 2, kDefaultOnOffDashLength)); break; - case 5: context->setLineStyle (CLineStyle (CLineStyle::kLineCapSquare, CLineStyle::kLineJoinMiter, 0, 2, kDefaultOnOffDashLength)); break; - } - - } - - void draw (CDrawContext* context) - { - CGraphicsPath* path = context->createGraphicsPath (); - if (path) - { - CRect r (getViewSize ()); - r.inset (5, 5); - path->beginSubpath (CPoint (r.left + r.getWidth () / 2, r.top)); - path->addLine (CPoint (r.left, r.bottom)); - path->addLine (CPoint (r.right, r.bottom)); - path->closeSubpath (); - setupLineStyle (context); - context->drawGraphicsPath (path, CDrawContext::kPathStroked); - path->forget (); - } - setDirty (false); - } - - CLASS_METHODS(LineStyleTestView, CControl) -}; #endif // __MyEditor__
--- a/Source/SoundField.cpp Tue Aug 14 09:34:15 2012 +0100 +++ b/Source/SoundField.cpp Thu Sep 06 10:01:08 2012 +0100 @@ -123,7 +123,6 @@ myDecoder.surPattern=0.5; myDecoder.surWidth=60.0; myDecoder.subGain=0.0; - myDecoder.centreOrder=1; myDecoder.centrePattern=0.5; myDecoder.centreGain=0.0; myDecoder.subGain=0.0;