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 --- .../Tape/Tape.xcodeproj/christopherjohnson.pbxuser | 44 +++++++++------- .../christopherjohnson.perspectivev3 | 40 ++++++++------- plugins/MacVST/Tape/source/TapeProc.cpp | 8 ++- .../ToTape6.xcodeproj/christopherjohnson.pbxuser | 51 +++++++++++++++---- .../christopherjohnson.perspectivev3 | 47 +++++++++++------- plugins/MacVST/ToTape6/source/ToTape6Proc.cpp | 58 ++++++++++++++-------- 6 files changed, 161 insertions(+), 87 deletions(-) (limited to 'plugins/MacVST') diff --git a/plugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.pbxuser index d2bb84d..e624c93 100755 --- a/plugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.pbxuser +++ b/plugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.pbxuser @@ -49,14 +49,15 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 601679829; - PBXWorkspaceStateSaveDate = 601679829; + PBXPerProjectTemplateStateSaveDate = 602110889; + PBXWorkspaceStateSaveDate = 602110889; }; perUserProjectItems = { 8B043CDA23DCE7AD00DF857C /* PBXTextBookmark */ = 8B043CDA23DCE7AD00DF857C /* PBXTextBookmark */; 8B043D1923DCFF6200DF857C /* PBXTextBookmark */ = 8B043D1923DCFF6200DF857C /* PBXTextBookmark */; - 8B043D1A23DCFF6200DF857C /* XCBuildMessageTextBookmark */ = 8B043D1A23DCFF6200DF857C /* XCBuildMessageTextBookmark */; - 8B043D1B23DCFF6200DF857C /* PBXTextBookmark */ = 8B043D1B23DCFF6200DF857C /* PBXTextBookmark */; + 8BA0D9C023E37DB300721922 /* PBXTextBookmark */ = 8BA0D9C023E37DB300721922 /* PBXTextBookmark */; + 8BA0D9C123E37DB300721922 /* PBXBookmark */ = 8BA0D9C123E37DB300721922 /* PBXBookmark */; + 8BA0D9C223E37DB300721922 /* PBXTextBookmark */ = 8BA0D9C223E37DB300721922 /* PBXTextBookmark */; }; sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */; userBuildSettings = { @@ -80,7 +81,7 @@ }; 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {838, 19760}}"; + sepNavIntBoundsRect = "{{0, 0}, {838, 19864}}"; sepNavSelRange = "{10616, 0}"; sepNavVisRange = "{10459, 280}"; sepNavWindowFrame = "{{15, 42}, {895, 831}}"; @@ -88,10 +89,10 @@ }; 24D8286F09A914000093AEF8 /* TapeProc.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {848, 8086}}"; - sepNavSelRange = "{23496, 0}"; - sepNavVisRange = "{22340, 1667}"; - sepNavWindowFrame = "{{277, 57}, {895, 821}}"; + sepNavIntBoundsRect = "{{0, 0}, {740, 7371}}"; + sepNavSelRange = "{23627, 0}"; + sepNavVisRange = "{23438, 235}"; + sepNavWindowFrame = "{{545, 57}, {895, 821}}"; }; }; 8B02375E1D42B1C400E1E8C8 /* Source Control */ = { @@ -128,16 +129,7 @@ vrLen = 180; vrLoc = 427; }; - 8B043D1A23DCFF6200DF857C /* XCBuildMessageTextBookmark */ = { - isa = PBXTextBookmark; - comments = "Deprecated conversion from string constant to 'char*'"; - fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */; - fallbackIsa = XCBuildMessageTextBookmark; - rLen = 1; - rLoc = 306; - rType = 1; - }; - 8B043D1B23DCFF6200DF857C /* PBXTextBookmark */ = { + 8BA0D9C023E37DB300721922 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */; name = "audioeffectx.cpp: 307"; @@ -147,6 +139,20 @@ vrLen = 280; vrLoc = 10459; }; + 8BA0D9C123E37DB300721922 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 24D8286F09A914000093AEF8 /* TapeProc.cpp */; + }; + 8BA0D9C223E37DB300721922 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 24D8286F09A914000093AEF8 /* TapeProc.cpp */; + name = "TapeProc.cpp: 553"; + rLen = 0; + rLoc = 23627; + rType = 0; + vrLen = 235; + vrLoc = 23438; + }; 8D01CCC60486CAD60068D4B7 /* Tape */ = { activeExec = 0; }; diff --git a/plugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.perspectivev3 index f1e3dd7..ad3683d 100755 --- a/plugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.perspectivev3 +++ b/plugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.perspectivev3 @@ -256,6 +256,8 @@ Layout + BecomeActive + ContentConfiguration PBXBottomSmartGroupGIDs @@ -321,7 +323,7 @@ 185 RubberWindowFrame - 52 327 810 487 0 0 1440 878 + 530 344 810 487 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -337,7 +339,7 @@ PBXProjectModuleGUID 8B0237581D42B1C400E1E8C8 PBXProjectModuleLabel - audioeffectx.cpp + TapeProc.cpp PBXSplitModuleInNavigatorKey Split0 @@ -345,16 +347,17 @@ PBXProjectModuleGUID 8B0237591D42B1C400E1E8C8 PBXProjectModuleLabel - audioeffectx.cpp + TapeProc.cpp _historyCapacity 0 bookmark - 8B043D1B23DCFF6200DF857C + 8BA0D9C223E37DB300721922 history 8B043CDA23DCE7AD00DF857C 8B043D1923DCFF6200DF857C - 8B043D1A23DCFF6200DF857C + 8BA0D9C023E37DB300721922 + 8BA0D9C123E37DB300721922 SplitCount @@ -368,18 +371,18 @@ GeometryConfiguration Frame - {{0, 0}, {603, 117}} + {{0, 0}, {603, 102}} RubberWindowFrame - 52 327 810 487 0 0 1440 878 + 530 344 810 487 0 0 1440 878 Module PBXNavigatorGroup Proportion - 117pt + 102pt Proportion - 324pt + 339pt Tabs @@ -393,7 +396,9 @@ GeometryConfiguration Frame - {{10, 27}, {603, 297}} + {{10, 27}, {603, 312}} + RubberWindowFrame + 530 344 810 487 0 0 1440 878 Module XCDetailModule @@ -448,8 +453,6 @@ Frame {{10, 27}, {603, 297}} - RubberWindowFrame - 52 327 810 487 0 0 1440 878 Module PBXBuildResultsModule @@ -477,11 +480,11 @@ TableOfContents - 8B043D1C23DCFF6200DF857C + 8BA0D9C323E37DB300721922 1CA23ED40692098700951B8B - 8B043D1D23DCFF6200DF857C + 8BA0D9C423E37DB300721922 8B0237581D42B1C400E1E8C8 - 8B043D1E23DCFF6200DF857C + 8BA0D9C523E37DB300721922 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B @@ -634,7 +637,7 @@ StatusbarIsVisible TimeStamp - 601685858.32363296 + 602111411.395051 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode @@ -651,10 +654,11 @@ 5 WindowOrderList - /Users/christopherjohnson/Desktop/Tape/Tape.xcodeproj + 8BA0D9C623E37DB300721922 + /Users/christopherjohnson/Desktop/Plugins/MacVST/Tape/Tape.xcodeproj WindowString - 52 327 810 487 0 0 1440 878 + 530 344 810 487 0 0 1440 878 WindowToolsV3 diff --git a/plugins/MacVST/Tape/source/TapeProc.cpp b/plugins/MacVST/Tape/source/TapeProc.cpp index 1d1050c..e29f71a 100755 --- a/plugins/MacVST/Tape/source/TapeProc.cpp +++ b/plugins/MacVST/Tape/source/TapeProc.cpp @@ -326,6 +326,12 @@ void Tape::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa long double inputSampleR = *in2; if (fabs(inputSampleL)<1.18e-43) inputSampleL = fpd * 1.18e-43; if (fabs(inputSampleR)<1.18e-43) inputSampleR = fpd * 1.18e-43; + + if (inputgain < 1.0) { + inputSampleL *= inputgain; + inputSampleR *= inputgain; + } //gain cut before anything, even dry + long double drySampleL = inputSampleL; long double drySampleR = inputSampleR; @@ -438,7 +444,7 @@ void Tape::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa long double groundSampleL = drySampleL - inputSampleL; //set up UnBox long double groundSampleR = drySampleR - inputSampleR; //set up UnBox - if (inputgain != 1.0) { + if (inputgain > 1.0) { inputSampleL *= inputgain; inputSampleR *= inputgain; } //gain boost inside UnBox: do not boost fringe audio 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