aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johnson <jinx6568@sover.net>2020-02-04 03:55:47 -0500
committerChris Johnson <jinx6568@sover.net>2020-02-04 03:55:47 -0500
commit828681015d65db1c4f6c39c1ffb9fe89b71f8af2 (patch)
tree7ab528032f038884229843ac8f1f3817db4902ad
parent95d0811f50332fe99cdb52eed0bd929faec2d43c (diff)
downloadairwindows-lv2-port-828681015d65db1c4f6c39c1ffb9fe89b71f8af2.tar.gz
airwindows-lv2-port-828681015d65db1c4f6c39c1ffb9fe89b71f8af2.tar.bz2
airwindows-lv2-port-828681015d65db1c4f6c39c1ffb9fe89b71f8af2.zip
Tape plugins update
-rwxr-xr-xplugins/LinuxVST/src/Tape/TapeProc.cpp8
-rwxr-xr-xplugins/LinuxVST/src/ToTape6/ToTape6Proc.cpp58
-rwxr-xr-xplugins/MacAU/Tape/Tape.cpp7
-rwxr-xr-xplugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.pbxuser58
-rwxr-xr-xplugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.perspectivev325
-rwxr-xr-xplugins/MacAU/ToTape6/ToTape6.cpp18
-rwxr-xr-xplugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser66
-rwxr-xr-xplugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev332
-rwxr-xr-xplugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.pbxuser44
-rwxr-xr-xplugins/MacVST/Tape/Tape.xcodeproj/christopherjohnson.perspectivev340
-rwxr-xr-xplugins/MacVST/Tape/source/TapeProc.cpp8
-rwxr-xr-xplugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser51
-rwxr-xr-xplugins/MacVST/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev347
-rwxr-xr-xplugins/MacVST/ToTape6/source/ToTape6Proc.cpp58
-rwxr-xr-xplugins/WinVST/Tape/.vs/VSTProject/v14/.suobin22528 -> 22528 bytes
-rwxr-xr-xplugins/WinVST/Tape/TapeProc.cpp8
-rwxr-xr-xplugins/WinVST/ToTape6/.vs/VSTProject/v14/.suobin22528 -> 22528 bytes
-rwxr-xr-xplugins/WinVST/ToTape6/ToTape6Proc.cpp58
18 files changed, 360 insertions, 226 deletions
diff --git a/plugins/LinuxVST/src/Tape/TapeProc.cpp b/plugins/LinuxVST/src/Tape/TapeProc.cpp
index 1d1050c..e29f71a 100755
--- a/plugins/LinuxVST/src/Tape/TapeProc.cpp
+++ b/plugins/LinuxVST/src/Tape/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/LinuxVST/src/ToTape6/ToTape6Proc.cpp b/plugins/LinuxVST/src/ToTape6/ToTape6Proc.cpp
index 6140295..1b4ff7d 100755
--- a/plugins/LinuxVST/src/ToTape6/ToTape6Proc.cpp
+++ b/plugins/LinuxVST/src/ToTape6/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.
diff --git a/plugins/MacAU/Tape/Tape.cpp b/plugins/MacAU/Tape/Tape.cpp
index 43d9fdf..75b7ae3 100755
--- a/plugins/MacAU/Tape/Tape.cpp
+++ b/plugins/MacAU/Tape/Tape.cpp
@@ -212,6 +212,11 @@ void Tape::TapeKernel::Process( const Float32 *inSourceP,
while (nSampleFrames-- > 0) {
long double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-37) inputSample = fpd * 1.18e-37;
+
+ if (inputgain < 1.0) {
+ inputSample *= inputgain;
+ } //gain cut before anything, even dry
+
long double drySample = inputSample;
long double HighsSample = 0.0;
@@ -271,7 +276,7 @@ void Tape::TapeKernel::Process( const Float32 *inSourceP,
flip = !flip;
long double groundSample = drySample - inputSample; //set up UnBox
- if (inputgain != 1.0) {
+ if (inputgain > 1.0) {
inputSample *= inputgain;
} //gain boost inside UnBox: do not boost fringe audio
diff --git a/plugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.pbxuser
index 0ec8d09..f642afa 100755
--- a/plugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 601680037;
- PBXWorkspaceStateSaveDate = 601680037;
+ PBXPerProjectTemplateStateSaveDate = 602113855;
+ PBXWorkspaceStateSaveDate = 602113855;
};
perUserProjectItems = {
8B043C9B23DA71E500DF857C /* PlistBookmark */ = 8B043C9B23DA71E500DF857C /* PlistBookmark */;
- 8B043CA723DA797600DF857C /* PBXTextBookmark */ = 8B043CA723DA797600DF857C /* PBXTextBookmark */;
- 8B043D0A23DCEE2600DF857C /* PBXTextBookmark */ = 8B043D0A23DCEE2600DF857C /* PBXTextBookmark */;
+ 8BA0D9F523E3880200721922 /* PBXTextBookmark */ = 8BA0D9F523E3880200721922 /* PBXTextBookmark */;
+ 8BA0D9F623E3880200721922 /* PBXTextBookmark */ = 8BA0D9F623E3880200721922 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
@@ -73,32 +73,12 @@
rLen = 0;
rLoc = 9223372036854775808;
};
- 8B043CA723DA797600DF857C /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 8BA05A660720730100365D66 /* Tape.cpp */;
- name = "Tape.cpp: 217";
- rLen = 0;
- rLoc = 9367;
- rType = 0;
- vrLen = 588;
- vrLoc = 8979;
- };
- 8B043D0A23DCEE2600DF857C /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 8BA05A660720730100365D66 /* Tape.cpp */;
- name = "Tape.cpp: 217";
- rLen = 0;
- rLoc = 9367;
- rType = 0;
- vrLen = 538;
- vrLoc = 9029;
- };
8BA05A660720730100365D66 /* Tape.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {670, 4602}}";
- sepNavSelRange = "{9367, 0}";
- sepNavVisRange = "{9029, 538}";
- sepNavWindowFrame = "{{768, 65}, {870, 813}}";
+ sepNavIntBoundsRect = "{{0, 0}, {670, 4654}}";
+ sepNavSelRange = "{9468, 0}";
+ sepNavVisRange = "{9192, 345}";
+ sepNavWindowFrame = "{{570, 65}, {870, 813}}";
};
};
8BA05A690720730100365D66 /* TapeVersion.h */ = {
@@ -109,12 +89,32 @@
sepNavWindowFrame = "{{15, 60}, {870, 813}}";
};
};
+ 8BA0D9F523E3880200721922 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 8BA05A660720730100365D66 /* Tape.cpp */;
+ name = "Tape.cpp: 222";
+ rLen = 0;
+ rLoc = 9468;
+ rType = 0;
+ vrLen = 345;
+ vrLoc = 9192;
+ };
+ 8BA0D9F623E3880200721922 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 8BA05A660720730100365D66 /* Tape.cpp */;
+ name = "Tape.cpp: 222";
+ rLen = 0;
+ rLoc = 9468;
+ rType = 0;
+ vrLen = 345;
+ vrLoc = 9192;
+ };
8BC6025B073B072D006C4272 /* Tape.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {894, 1872}}";
sepNavSelRange = "{2893, 0}";
sepNavVisRange = "{3805, 1496}";
- sepNavWindowFrame = "{{913, 65}, {870, 813}}";
+ sepNavWindowFrame = "{{570, 65}, {870, 813}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
diff --git a/plugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.perspectivev3
index 6e60cf5..57f04e8 100755
--- a/plugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacAU/Tape/Tape.xcodeproj/christopherjohnson.perspectivev3
@@ -302,7 +302,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>4</integer>
+ <integer>3</integer>
<integer>2</integer>
<integer>1</integer>
<integer>0</integer>
@@ -354,11 +354,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B043D0A23DCEE2600DF857C</string>
+ <string>8BA0D9F623E3880200721922</string>
<key>history</key>
<array>
<string>8B043C9B23DA71E500DF857C</string>
- <string>8B043CA723DA797600DF857C</string>
+ <string>8BA0D9F523E3880200721922</string>
</array>
</dict>
<key>SplitCount</key>
@@ -372,18 +372,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {531, 229}}</string>
+ <string>{{0, 0}, {531, 188}}</string>
<key>RubberWindowFrame</key>
<string>599 197 841 654 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>229pt</string>
+ <string>188pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>379pt</string>
+ <string>420pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -397,7 +397,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {531, 352}}</string>
+ <string>{{10, 27}, {531, 393}}</string>
<key>RubberWindowFrame</key>
<string>599 197 841 654 0 0 1440 878 </string>
</dict>
@@ -453,7 +453,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {531, 339}}</string>
+ <string>{{10, 27}, {531, 365}}</string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -481,11 +481,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B043D0B23DCEE2600DF857C</string>
+ <string>8BA0D9F723E3880200721922</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B043D0C23DCEE2600DF857C</string>
+ <string>8BA0D9F823E3880200721922</string>
<string>8BD7274A1D46E5A5000176F0</string>
- <string>8B043D0D23DCEE2600DF857C</string>
+ <string>8BA0D9F923E3880200721922</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -658,7 +658,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>601681446.32968295</real>
+ <real>602114050.79568899</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -675,7 +675,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B043D0E23DCEE2600DF857C</string>
<string>/Users/christopherjohnson/Desktop/Plugins/MacAU/Tape/Tape.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacAU/ToTape6/ToTape6.cpp b/plugins/MacAU/ToTape6/ToTape6.cpp
index 1291f73..30e06f4 100755
--- a/plugins/MacAU/ToTape6/ToTape6.cpp
+++ b/plugins/MacAU/ToTape6/ToTape6.cpp
@@ -267,6 +267,11 @@ void ToTape6::ToTape6Kernel::Process( const Float32 *inSourceP,
long double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-37) inputSample = fpd * 1.18e-37;
long double drySample = inputSample;
+
+ if (inputgain < 1.0) {
+ inputSample *= inputgain;
+ } //gain cut before plugin
+
Float64 flutterrandy = fpd / (double)UINT32_MAX;
//now we've got a random flutter, so we're messing with the pitch before tape effects go on
@@ -351,7 +356,7 @@ void ToTape6::ToTape6Kernel::Process( const Float32 *inSourceP,
long double groundSample = vibDrySample - inputSample; //set up UnBox on fluttered audio
- if (inputgain != 1.0) {
+ if (inputgain > 1.0) {
inputSample *= inputgain;
} //gain boost inside UnBox/Mojo
@@ -362,10 +367,13 @@ void ToTape6::ToTape6Kernel::Process( const Float32 *inSourceP,
if (HighsSample < 0) inputSample += applySoften;
//apply Soften depending on polarity
- if (fabs(inputSample) < 0.0025) {
- iirHeadBumpA *= 0.99;
- iirHeadBumpB *= 0.99;
- } //restrain resonant quality of head bump algorithm
+ Float64 suppress = (1.0-fabs(inputSample)) * 0.00013;
+ if (iirHeadBumpA > suppress) iirHeadBumpA -= suppress;
+ if (iirHeadBumpA < -suppress) iirHeadBumpA += suppress;
+ if (iirHeadBumpB > suppress) iirHeadBumpB -= suppress;
+ if (iirHeadBumpB < -suppress) iirHeadBumpB += suppress;
+ //restrain resonant quality of head bump algorithm
+
inputSample += ((iirHeadBumpA + iirHeadBumpB) * HeadBumpControl);
//apply Fatten.
diff --git a/plugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser
index 19e3c58..68f0f1d 100755
--- a/plugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.pbxuser
@@ -51,14 +51,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 601187225;
- PBXWorkspaceStateSaveDate = 601187225;
+ PBXPerProjectTemplateStateSaveDate = 602111038;
+ PBXWorkspaceStateSaveDate = 602111038;
};
perUserProjectItems = {
8B0437A823D499A600DF857C /* PlistBookmark */ = 8B0437A823D499A600DF857C /* PlistBookmark */;
- 8B043BE023D5632700DF857C /* PBXTextBookmark */ = 8B043BE023D5632700DF857C /* PBXTextBookmark */;
8B043BFA23D5642C00DF857C /* PBXTextBookmark */ = 8B043BFA23D5642C00DF857C /* PBXTextBookmark */;
- 8B043BFB23D5642C00DF857C /* PBXTextBookmark */ = 8B043BFB23D5642C00DF857C /* PBXTextBookmark */;
+ 8BA0D9AF23E37D1C00721922 /* PBXTextBookmark */ = 8BA0D9AF23E37D1C00721922 /* PBXTextBookmark */;
+ 8BA0D9B023E37D1C00721922 /* PBXTextBookmark */ = 8BA0D9B023E37D1C00721922 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
@@ -76,16 +76,6 @@
rLen = 0;
rLoc = 9223372036854775808;
};
- 8B043BE023D5632700DF857C /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 8BA05A660720730100365D66 /* ToTape6.cpp */;
- name = "ToTape6.cpp: 308";
- rLen = 0;
- rLoc = 13502;
- rType = 0;
- vrLen = 645;
- vrLoc = 12217;
- };
8B043BFA23D5642C00DF857C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* ToTape6.h */;
@@ -96,22 +86,12 @@
vrLen = 584;
vrLoc = 2958;
};
- 8B043BFB23D5642C00DF857C /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 8BA05A660720730100365D66 /* ToTape6.cpp */;
- name = "ToTape6.cpp: 308";
- rLen = 0;
- rLoc = 13502;
- rType = 0;
- vrLen = 594;
- vrLoc = 12268;
- };
8BA05A660720730100365D66 /* ToTape6.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {803, 5889}}";
- sepNavSelRange = "{13502, 0}";
- sepNavVisRange = "{12268, 594}";
- sepNavWindowFrame = "{{732, 83}, {956, 795}}";
+ sepNavIntBoundsRect = "{{0, 0}, {705, 5798}}";
+ sepNavSelRange = "{13591, 0}";
+ sepNavVisRange = "{12576, 379}";
+ sepNavWindowFrame = "{{549, 83}, {956, 795}}";
};
};
8BA05A690720730100365D66 /* ToTape6Version.h */ = {
@@ -119,15 +99,35 @@
sepNavIntBoundsRect = "{{0, 0}, {824, 767}}";
sepNavSelRange = "{2881, 0}";
sepNavVisRange = "{70, 2874}";
- sepNavWindowFrame = "{{15, 58}, {784, 815}}";
+ sepNavWindowFrame = "{{548, 58}, {784, 815}}";
};
};
+ 8BA0D9AF23E37D1C00721922 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 8BA05A660720730100365D66 /* ToTape6.cpp */;
+ name = "ToTape6.cpp: 313";
+ rLen = 0;
+ rLoc = 13591;
+ rType = 0;
+ vrLen = 379;
+ vrLoc = 12604;
+ };
+ 8BA0D9B023E37D1C00721922 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 8BA05A660720730100365D66 /* ToTape6.cpp */;
+ name = "ToTape6.cpp: 313";
+ rLen = 0;
+ rLoc = 13591;
+ rType = 0;
+ vrLen = 379;
+ vrLoc = 12576;
+ };
8BC6025B073B072D006C4272 /* ToTape6.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {803, 2171}}";
- sepNavSelRange = "{3276, 0}";
- sepNavVisRange = "{2958, 584}";
- sepNavWindowFrame = "{{757, 63}, {784, 815}}";
+ sepNavIntBoundsRect = "{{0, 0}, {894, 2158}}";
+ sepNavSelRange = "{5664, 348}";
+ sepNavVisRange = "{2589, 1432}";
+ sepNavWindowFrame = "{{656, 63}, {784, 815}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
diff --git a/plugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev3
index 0afb03e..397318a 100755
--- a/plugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacAU/ToTape6/ToTape6.xcodeproj/christopherjohnson.perspectivev3
@@ -326,7 +326,7 @@
<real>288</real>
</array>
<key>RubberWindowFrame</key>
- <string>599 224 841 654 0 0 1440 878 </string>
+ <string>506 200 841 654 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -354,12 +354,12 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B043BFB23D5642C00DF857C</string>
+ <string>8BA0D9B023E37D1C00721922</string>
<key>history</key>
<array>
<string>8B0437A823D499A600DF857C</string>
<string>8B043BFA23D5642C00DF857C</string>
- <string>8B043BE023D5632700DF857C</string>
+ <string>8BA0D9AF23E37D1C00721922</string>
</array>
</dict>
<key>SplitCount</key>
@@ -373,18 +373,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {531, 202}}</string>
+ <string>{{0, 0}, {531, 142}}</string>
<key>RubberWindowFrame</key>
- <string>599 224 841 654 0 0 1440 878 </string>
+ <string>506 200 841 654 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>202pt</string>
+ <string>142pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>406pt</string>
+ <string>466pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -398,9 +398,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {531, 379}}</string>
+ <string>{{10, 27}, {531, 439}}</string>
<key>RubberWindowFrame</key>
- <string>599 224 841 654 0 0 1440 878 </string>
+ <string>506 200 841 654 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -454,7 +454,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {531, 352}}</string>
+ <string>{{10, 27}, {531, 408}}</string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -482,11 +482,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B043BFC23D5642C00DF857C</string>
+ <string>8BA0D9B123E37D1C00721922</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B043BFD23D5642C00DF857C</string>
+ <string>8BA0D9B223E37D1C00721922</string>
<string>8BD7274A1D46E5A5000176F0</string>
- <string>8B043BFE23D5642C00DF857C</string>
+ <string>8BA0D9B323E37D1C00721922</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -659,7 +659,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>601187372.72559798</real>
+ <real>602111260.78300297</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -676,11 +676,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B043BFF23D5642C00DF857C</string>
+ <string>8BA0D9B423E37D1C00721922</string>
<string>/Users/christopherjohnson/Desktop/Plugins/MacAU/ToTape6/ToTape6.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>599 224 841 654 0 0 1440 878 </string>
+ <string>506 200 841 654 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
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 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>52 327 810 487 0 0 1440 878 </string>
+ <string>530 344 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>audioeffectx.cpp</string>
+ <string>TapeProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -345,16 +347,17 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>audioeffectx.cpp</string>
+ <string>TapeProc.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B043D1B23DCFF6200DF857C</string>
+ <string>8BA0D9C223E37DB300721922</string>
<key>history</key>
<array>
<string>8B043CDA23DCE7AD00DF857C</string>
<string>8B043D1923DCFF6200DF857C</string>
- <string>8B043D1A23DCFF6200DF857C</string>
+ <string>8BA0D9C023E37DB300721922</string>
+ <string>8BA0D9C123E37DB300721922</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +371,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 102}}</string>
<key>RubberWindowFrame</key>
- <string>52 327 810 487 0 0 1440 878 </string>
+ <string>530 344 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>102pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>339pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +396,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
+ <string>{{10, 27}, {603, 312}}</string>
+ <key>RubberWindowFrame</key>
+ <string>530 344 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -448,8 +453,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 297}}</string>
- <key>RubberWindowFrame</key>
- <string>52 327 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +480,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B043D1C23DCFF6200DF857C</string>
+ <string>8BA0D9C323E37DB300721922</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B043D1D23DCFF6200DF857C</string>
+ <string>8BA0D9C423E37DB300721922</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B043D1E23DCFF6200DF857C</string>
+ <string>8BA0D9C523E37DB300721922</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +637,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>601685858.32363296</real>
+ <real>602111411.395051</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,10 +654,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/Tape/Tape.xcodeproj</string>
+ <string>8BA0D9C623E37DB300721922</string>
+ <string>/Users/christopherjohnson/Desktop/Plugins/MacVST/Tape/Tape.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>52 327 810 487 0 0 1440 878 </string>
+ <string>530 344 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
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 @@
<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.
diff --git a/plugins/WinVST/Tape/.vs/VSTProject/v14/.suo b/plugins/WinVST/Tape/.vs/VSTProject/v14/.suo
index ee3a0a2..98df0af 100755
--- a/plugins/WinVST/Tape/.vs/VSTProject/v14/.suo
+++ b/plugins/WinVST/Tape/.vs/VSTProject/v14/.suo
Binary files differ
diff --git a/plugins/WinVST/Tape/TapeProc.cpp b/plugins/WinVST/Tape/TapeProc.cpp
index 1d1050c..e29f71a 100755
--- a/plugins/WinVST/Tape/TapeProc.cpp
+++ b/plugins/WinVST/Tape/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/WinVST/ToTape6/.vs/VSTProject/v14/.suo b/plugins/WinVST/ToTape6/.vs/VSTProject/v14/.suo
index bb04217..5e0c932 100755
--- a/plugins/WinVST/ToTape6/.vs/VSTProject/v14/.suo
+++ b/plugins/WinVST/ToTape6/.vs/VSTProject/v14/.suo
Binary files differ
diff --git a/plugins/WinVST/ToTape6/ToTape6Proc.cpp b/plugins/WinVST/ToTape6/ToTape6Proc.cpp
index 6140295..1b4ff7d 100755
--- a/plugins/WinVST/ToTape6/ToTape6Proc.cpp
+++ b/plugins/WinVST/ToTape6/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.