diff options
Diffstat (limited to 'plugins/MacVST/ToTape6')
3 files changed, 107 insertions, 49 deletions
diff --git a/plugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser index a7faacc..a33f084 100755 --- a/plugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser @@ -49,8 +49,13 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 601183272; - PBXWorkspaceStateSaveDate = 601183272; + PBXPerProjectTemplateStateSaveDate = 602111006; + PBXWorkspaceStateSaveDate = 602111006; + }; + perUserProjectItems = { + 8BA0D9C723E37DB500721922 /* PBXTextBookmark */ = 8BA0D9C723E37DB500721922 /* PBXTextBookmark */; + 8BA0D9C823E37DB500721922 /* PBXBookmark */ = 8BA0D9C823E37DB500721922 /* PBXBookmark */; + 8BA0D9C923E37DB500721922 /* PBXTextBookmark */ = 8BA0D9C923E37DB500721922 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -58,18 +63,18 @@ }; 2407DEB6089929BA00EB68BF /* ToTape6.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {740, 2483}}"; + sepNavIntBoundsRect = "{{0, 0}, {649, 2535}}"; sepNavSelRange = "{998, 0}"; - sepNavVisRange = "{212, 1571}"; - sepNavWindowFrame = "{{12, 57}, {725, 821}}"; + sepNavVisRange = "{866, 150}"; + sepNavWindowFrame = "{{675, 57}, {725, 821}}"; }; }; 245463B80991757100464AD3 /* ToTape6.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {866, 1326}}"; - sepNavSelRange = "{3005, 0}"; + sepNavSelRange = "{2445, 676}"; sepNavVisRange = "{1784, 1348}"; - sepNavWindowFrame = "{{20, 66}, {799, 812}}"; + sepNavWindowFrame = "{{659, 66}, {799, 812}}"; }; }; 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { @@ -82,10 +87,10 @@ }; 24D8286F09A914000093AEF8 /* ToTape6Proc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {823, 9165}}"; - sepNavSelRange = "{26149, 0}"; - sepNavVisRange = "{24936, 1734}"; - sepNavWindowFrame = "{{5, 65}, {870, 813}}"; + sepNavIntBoundsRect = "{{0, 0}, {789, 8892}}"; + sepNavSelRange = "{9145, 0}"; + sepNavVisRange = "{12581, 204}"; + sepNavWindowFrame = "{{80, 57}, {870, 813}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -102,6 +107,30 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; + 8BA0D9C723E37DB500721922 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2407DEB6089929BA00EB68BF /* ToTape6.cpp */; + name = "ToTape6.cpp: 40"; + rLen = 0; + rLoc = 998; + rType = 0; + vrLen = 150; + vrLoc = 866; + }; + 8BA0D9C823E37DB500721922 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 24D8286F09A914000093AEF8 /* ToTape6Proc.cpp */; + }; + 8BA0D9C923E37DB500721922 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 24D8286F09A914000093AEF8 /* ToTape6Proc.cpp */; + name = "ToTape6Proc.cpp: 207"; + rLen = 0; + rLoc = 9145; + rType = 0; + vrLen = 204; + vrLoc = 12581; + }; 8D01CCC60486CAD60068D4B7 /* ToTape6 */ = { activeExec = 0; }; diff --git a/plugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev3 index 4a6beec..cb771bb 100755 --- a/plugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev3 @@ -256,6 +256,8 @@ <key>Layout</key> <array> <dict> + <key>BecomeActive</key> + <true/> <key>ContentConfiguration</key> <dict> <key>PBXBottomSmartGroupGIDs</key> @@ -298,7 +300,7 @@ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> <array> <array> - <integer>5</integer> + <integer>6</integer> <integer>4</integer> <integer>0</integer> </array> @@ -321,7 +323,7 @@ <real>185</real> </array> <key>RubberWindowFrame</key> - <string>34 365 810 487 0 0 1440 878 </string> + <string>547 205 810 487 0 0 1440 878 </string> </dict> <key>Module</key> <string>PBXSmartGroupTreeModule</string> @@ -337,7 +339,7 @@ <key>PBXProjectModuleGUID</key> <string>8B0237581D42B1C400E1E8C8</string> <key>PBXProjectModuleLabel</key> - <string>Gain.h</string> + <string>ToTape6Proc.cpp</string> <key>PBXSplitModuleInNavigatorKey</key> <dict> <key>Split0</key> @@ -345,7 +347,16 @@ <key>PBXProjectModuleGUID</key> <string>8B0237591D42B1C400E1E8C8</string> <key>PBXProjectModuleLabel</key> - <string>Gain.h</string> + <string>ToTape6Proc.cpp</string> + <key>_historyCapacity</key> + <integer>0</integer> + <key>bookmark</key> + <string>8BA0D9C923E37DB500721922</string> + <key>history</key> + <array> + <string>8BA0D9C723E37DB500721922</string> + <string>8BA0D9C823E37DB500721922</string> + </array> </dict> <key>SplitCount</key> <string>1</string> @@ -358,18 +369,18 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 0}, {603, 0}}</string> + <string>{{0, 0}, {603, 117}}</string> <key>RubberWindowFrame</key> - <string>34 365 810 487 0 0 1440 878 </string> + <string>547 205 810 487 0 0 1440 878 </string> </dict> <key>Module</key> <string>PBXNavigatorGroup</string> <key>Proportion</key> - <string>0pt</string> + <string>117pt</string> </dict> <dict> <key>Proportion</key> - <string>441pt</string> + <string>324pt</string> <key>Tabs</key> <array> <dict> @@ -383,7 +394,9 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{10, 27}, {603, 414}}</string> + <string>{{10, 27}, {603, 297}}</string> + <key>RubberWindowFrame</key> + <string>547 205 810 487 0 0 1440 878 </string> </dict> <key>Module</key> <string>XCDetailModule</string> @@ -438,8 +451,6 @@ <dict> <key>Frame</key> <string>{{10, 27}, {603, 414}}</string> - <key>RubberWindowFrame</key> - <string>34 365 810 487 0 0 1440 878 </string> </dict> <key>Module</key> <string>PBXBuildResultsModule</string> @@ -467,11 +478,11 @@ </array> <key>TableOfContents</key> <array> - <string>8B043C0423D5644800DF857C</string> + <string>8BA0D9CA23E37DB500721922</string> <string>1CA23ED40692098700951B8B</string> - <string>8B043C0523D5644800DF857C</string> + <string>8BA0D9CB23E37DB500721922</string> <string>8B0237581D42B1C400E1E8C8</string> - <string>8B043C0623D5644800DF857C</string> + <string>8BA0D9CC23E37DB500721922</string> <string>1CA23EDF0692099D00951B8B</string> <string>1CA23EE00692099D00951B8B</string> <string>1CA23EE10692099D00951B8B</string> @@ -624,7 +635,7 @@ <key>StatusbarIsVisible</key> <true/> <key>TimeStamp</key> - <real>601187400.30527699</real> + <real>602111413.25124705</real> <key>ToolbarConfigUserDefaultsMinorVersion</key> <string>2</string> <key>ToolbarDisplayMode</key> @@ -641,11 +652,11 @@ <integer>5</integer> <key>WindowOrderList</key> <array> - <string>8B043C0723D5644800DF857C</string> - <string>/Users/christopherjohnson/Desktop/ToTape6/ToTape6.xcodeproj</string> + <string>8BA0D9CD23E37DB500721922</string> + <string>/Users/christopherjohnson/Desktop/Plugins/MacVST/ToTape6/ToTape6.xcodeproj</string> </array> <key>WindowString</key> - <string>34 365 810 487 0 0 1440 878 </string> + <string>547 205 810 487 0 0 1440 878 </string> <key>WindowToolsV3</key> <array> <dict> diff --git a/plugins/MacVST/ToTape6/source/ToTape6Proc.cpp b/plugins/MacVST/ToTape6/source/ToTape6Proc.cpp index 6140295..1b4ff7d 100755 --- a/plugins/MacVST/ToTape6/source/ToTape6Proc.cpp +++ b/plugins/MacVST/ToTape6/source/ToTape6Proc.cpp @@ -61,6 +61,11 @@ void ToTape6::processReplacing(float **inputs, float **outputs, VstInt32 sampleF long double drySampleL = inputSampleL; long double drySampleR = inputSampleR; + if (inputgain < 1.0) { + inputSampleL *= inputgain; + inputSampleR *= inputgain; + } //gain cut before plugin + double flutterrandy = fpd / (double)UINT32_MAX; //now we've got a random flutter, so we're messing with the pitch before tape effects go on if (gcount < 0 || gcount > 499) {gcount = 499;} @@ -199,7 +204,7 @@ void ToTape6::processReplacing(float **inputs, float **outputs, VstInt32 sampleF long double groundSampleL = vibDrySampleL - inputSampleL; //set up UnBox on fluttered audio long double groundSampleR = vibDrySampleR - inputSampleR; //set up UnBox on fluttered audio - if (inputgain != 1.0) { + if (inputgain > 1.0) { inputSampleL *= inputgain; inputSampleR *= inputgain; } @@ -217,16 +222,20 @@ void ToTape6::processReplacing(float **inputs, float **outputs, VstInt32 sampleF if (HighsSampleR < 0) inputSampleR += applySoften; //apply Soften depending on polarity - if (fabs(inputSampleL) < 0.0025) { - iirHeadBumpAL *= 0.99; - iirHeadBumpBL *= 0.99; - } //restrain resonant quality of head bump algorithm + double suppress = (1.0-fabs(inputSampleL)) * 0.00013; + if (iirHeadBumpAL > suppress) iirHeadBumpAL -= suppress; + if (iirHeadBumpAL < -suppress) iirHeadBumpAL += suppress; + if (iirHeadBumpBL > suppress) iirHeadBumpBL -= suppress; + if (iirHeadBumpBL < -suppress) iirHeadBumpBL += suppress; + //restrain resonant quality of head bump algorithm + suppress = (1.0-fabs(inputSampleR)) * 0.00013; + if (iirHeadBumpAR > suppress) iirHeadBumpAR -= suppress; + if (iirHeadBumpAR < -suppress) iirHeadBumpAR += suppress; + if (iirHeadBumpBR > suppress) iirHeadBumpBR -= suppress; + if (iirHeadBumpBR < -suppress) iirHeadBumpBR += suppress; + //restrain resonant quality of head bump algorithm + inputSampleL += ((iirHeadBumpAL + iirHeadBumpBL) * HeadBumpControl); - //apply Fatten. - if (fabs(inputSampleR) < 0.0025) { - iirHeadBumpAR *= 0.99; - iirHeadBumpBR *= 0.99; - } //restrain resonant quality of head bump algorithm inputSampleR += ((iirHeadBumpAR + iirHeadBumpBR) * HeadBumpControl); //apply Fatten. @@ -386,6 +395,11 @@ void ToTape6::processDoubleReplacing(double **inputs, double **outputs, VstInt32 long double drySampleL = inputSampleL; long double drySampleR = inputSampleR; + if (inputgain < 1.0) { + inputSampleL *= inputgain; + inputSampleR *= inputgain; + } //gain cut before plugin + double flutterrandy = fpd / (double)UINT32_MAX; //now we've got a random flutter, so we're messing with the pitch before tape effects go on if (gcount < 0 || gcount > 499) {gcount = 499;} @@ -524,7 +538,7 @@ void ToTape6::processDoubleReplacing(double **inputs, double **outputs, VstInt32 long double groundSampleL = vibDrySampleL - inputSampleL; //set up UnBox on fluttered audio long double groundSampleR = vibDrySampleR - inputSampleR; //set up UnBox on fluttered audio - if (inputgain != 1.0) { + if (inputgain > 1.0) { inputSampleL *= inputgain; inputSampleR *= inputgain; } @@ -542,16 +556,20 @@ void ToTape6::processDoubleReplacing(double **inputs, double **outputs, VstInt32 if (HighsSampleR < 0) inputSampleR += applySoften; //apply Soften depending on polarity - if (fabs(inputSampleL) < 0.0025) { - iirHeadBumpAL *= 0.99; - iirHeadBumpBL *= 0.99; - } //restrain resonant quality of head bump algorithm + double suppress = (1.0-fabs(inputSampleL)) * 0.00013; + if (iirHeadBumpAL > suppress) iirHeadBumpAL -= suppress; + if (iirHeadBumpAL < -suppress) iirHeadBumpAL += suppress; + if (iirHeadBumpBL > suppress) iirHeadBumpBL -= suppress; + if (iirHeadBumpBL < -suppress) iirHeadBumpBL += suppress; + //restrain resonant quality of head bump algorithm + suppress = (1.0-fabs(inputSampleR)) * 0.00013; + if (iirHeadBumpAR > suppress) iirHeadBumpAR -= suppress; + if (iirHeadBumpAR < -suppress) iirHeadBumpAR += suppress; + if (iirHeadBumpBR > suppress) iirHeadBumpBR -= suppress; + if (iirHeadBumpBR < -suppress) iirHeadBumpBR += suppress; + //restrain resonant quality of head bump algorithm + inputSampleL += ((iirHeadBumpAL + iirHeadBumpBL) * HeadBumpControl); - //apply Fatten. - if (fabs(inputSampleR) < 0.0025) { - iirHeadBumpAR *= 0.99; - iirHeadBumpBR *= 0.99; - } //restrain resonant quality of head bump algorithm inputSampleR += ((iirHeadBumpAR + iirHeadBumpBR) * HeadBumpControl); //apply Fatten. |