From 828681015d65db1c4f6c39c1ffb9fe89b71f8af2 Mon Sep 17 00:00:00 2001 From: Chris Johnson Date: Tue, 4 Feb 2020 03:55:47 -0500 Subject: Tape plugins update --- .../ToTape6.xcodeproj/christopherjohnson.pbxuser | 51 +++++++++++++++---- .../christopherjohnson.perspectivev3 | 47 +++++++++++------- plugins/MacVST/ToTape6/source/ToTape6Proc.cpp | 58 ++++++++++++++-------- 3 files changed, 107 insertions(+), 49 deletions(-) (limited to 'plugins/MacVST/ToTape6') 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 @@ Layout + BecomeActive + ContentConfiguration PBXBottomSmartGroupGIDs @@ -298,7 +300,7 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 5 + 6 4 0 @@ -321,7 +323,7 @@ 185 RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 547 205 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -337,7 +339,7 @@ PBXProjectModuleGUID 8B0237581D42B1C400E1E8C8 PBXProjectModuleLabel - Gain.h + ToTape6Proc.cpp PBXSplitModuleInNavigatorKey Split0 @@ -345,7 +347,16 @@ PBXProjectModuleGUID 8B0237591D42B1C400E1E8C8 PBXProjectModuleLabel - Gain.h + ToTape6Proc.cpp + _historyCapacity + 0 + bookmark + 8BA0D9C923E37DB500721922 + history + + 8BA0D9C723E37DB500721922 + 8BA0D9C823E37DB500721922 + SplitCount 1 @@ -358,18 +369,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 0}} + {{0, 0}, {603, 117}} RubberWindowFrame - 34 365 810 487 0 0 1440 878 + 547 205 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 0pt + 117pt Proportion - 441pt + 324pt Tabs @@ -383,7 +394,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 414}} + {{10, 27}, {603, 297}} + RubberWindowFrame + 547 205 810 487 0 0 1440 878 Module XCDetailModule @@ -438,8 +451,6 @@ Frame {{10, 27}, {603, 414}} - RubberWindowFrame - 34 365 810 487 0 0 1440 878 Module PBXBuildResultsModule @@ -467,11 +478,11 @@ TableOfContents - 8B043C0423D5644800DF857C + 8BA0D9CA23E37DB500721922 1CA23ED40692098700951B8B - 8B043C0523D5644800DF857C + 8BA0D9CB23E37DB500721922 8B0237581D42B1C400E1E8C8 - 8B043C0623D5644800DF857C + 8BA0D9CC23E37DB500721922 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -624,7 +635,7 @@ StatusbarIsVisible TimeStamp - 601187400.30527699 + 602111413.25124705 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -641,11 +652,11 @@ 5 WindowOrderList - 8B043C0723D5644800DF857C - /Users/christopherjohnson/Desktop/ToTape6/ToTape6.xcodeproj + 8BA0D9CD23E37DB500721922 + /Users/christopherjohnson/Desktop/Plugins/MacVST/ToTape6/ToTape6.xcodeproj WindowString - 34 365 810 487 0 0 1440 878 + 547 205 810 487 0 0 1440 878 WindowToolsV3 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. -- cgit v1.2.3