aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/MacVST
diff options
context:
space:
mode:
authorChris Johnson <jinx6568@sover.net>2019-10-20 20:00:40 -0400
committerChris Johnson <jinx6568@sover.net>2019-10-20 20:00:40 -0400
commit06b19d09efd9c7ee5afb264475eba042ad6790d4 (patch)
treeefbc2c490fbd7feefd8cfce72f3ca0eab4b28a8b /plugins/MacVST
parent1340c990ffe6e09462eb6edba892cd06d0e3dc3c (diff)
downloadairwindows-lv2-port-06b19d09efd9c7ee5afb264475eba042ad6790d4.tar.gz
airwindows-lv2-port-06b19d09efd9c7ee5afb264475eba042ad6790d4.tar.bz2
airwindows-lv2-port-06b19d09efd9c7ee5afb264475eba042ad6790d4.zip
Monitoring Threedux
Diffstat (limited to 'plugins/MacVST')
-rwxr-xr-xplugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.pbxuser52
-rwxr-xr-xplugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.perspectivev373
-rwxr-xr-xplugins/MacVST/Monitoring/source/MonitoringProc.cpp102
3 files changed, 160 insertions, 67 deletions
diff --git a/plugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.pbxuser
index bcff55a..e73fde2 100755
--- a/plugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 592088736;
- PBXWorkspaceStateSaveDate = 592088736;
+ PBXPerProjectTemplateStateSaveDate = 593304926;
+ PBXWorkspaceStateSaveDate = 593304926;
};
perUserProjectItems = {
- 8B120FF1234A8EEE00C990C9 /* PBXTextBookmark */ = 8B120FF1234A8EEE00C990C9 /* PBXTextBookmark */;
- 8BB29AD0234A4F71003B3A8E /* PBXTextBookmark */ = 8BB29AD0234A4F71003B3A8E /* PBXTextBookmark */;
+ 8B25952F235D1D620051EAA4 /* PBXBookmark */ = 8B25952F235D1D620051EAA4 /* PBXBookmark */;
+ 8B259532235D1D780051EAA4 /* PBXTextBookmark */ = 8B259532235D1D780051EAA4 /* PBXTextBookmark */;
+ 8B259544235D1D780051EAA4 /* PBXTextBookmark */ = 8B259544235D1D780051EAA4 /* PBXTextBookmark */;
+ 8B259545235D1D780051EAA4 /* PBXTextBookmark */ = 8B259545235D1D780051EAA4 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -86,10 +88,10 @@
};
24D8286F09A914000093AEF8 /* MonitoringProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 12792}}";
- sepNavSelRange = "{46745, 0}";
- sepNavVisRange = "{0, 0}";
- sepNavWindowFrame = "{{518, 57}, {895, 821}}";
+ sepNavIntBoundsRect = "{{0, 0}, {908, 13234}}";
+ sepNavSelRange = "{47910, 0}";
+ sepNavVisRange = "{44, 187}";
+ sepNavWindowFrame = "{{539, 57}, {895, 821}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
@@ -106,25 +108,39 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B120FF1234A8EEE00C990C9 /* PBXTextBookmark */ = {
+ 8B25952F235D1D620051EAA4 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* MonitoringProc.cpp */;
+ };
+ 8B259532235D1D780051EAA4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* MonitoringProc.cpp */;
+ name = "MonitoringProc.cpp: 801";
+ rLen = 0;
+ rLoc = 47910;
+ rType = 0;
+ vrLen = 187;
+ vrLoc = 44;
+ };
+ 8B259544235D1D780051EAA4 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* MonitoringProc.cpp */;
- name = "MonitoringProc.cpp: 783";
+ name = "MonitoringProc.cpp: 801";
rLen = 0;
- rLoc = 46745;
+ rLoc = 47910;
rType = 0;
- vrLen = 0;
- vrLoc = 0;
+ vrLen = 187;
+ vrLoc = 44;
};
- 8BB29AD0234A4F71003B3A8E /* PBXTextBookmark */ = {
+ 8B259545235D1D780051EAA4 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* MonitoringProc.cpp */;
- name = "MonitoringProc.cpp: 782";
+ name = "MonitoringProc.cpp: 801";
rLen = 0;
- rLoc = 46745;
+ rLoc = 47910;
rType = 0;
- vrLen = 25;
- vrLoc = 27860;
+ vrLen = 3014;
+ vrLoc = 49111;
};
8D01CCC60486CAD60068D4B7 /* Monitoring */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.perspectivev3
index e9adff3..5fc07fb 100755
--- a/plugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Monitoring/Monitoring.xcodeproj/christopherjohnson.perspectivev3
@@ -222,7 +222,48 @@
</dict>
</array>
<key>OpenEditors</key>
- <array/>
+ <array>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8B259537235D1D780051EAA4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MonitoringProc.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8B259538235D1D780051EAA4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MonitoringProc.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8B259545235D1D780051EAA4</string>
+ <key>history</key>
+ <array>
+ <string>8B25952F235D1D620051EAA4</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {895, 724}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>539 113 895 765 0 0 1440 878 </string>
+ </dict>
+ </dict>
+ </array>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -323,7 +364,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>246 279 810 487 0 0 1440 878 </string>
+ <string>476 276 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +392,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B120FF1234A8EEE00C990C9</string>
+ <string>8B259544235D1D780051EAA4</string>
<key>history</key>
<array>
- <string>8BB29AD0234A4F71003B3A8E</string>
+ <string>8B259532235D1D780051EAA4</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +409,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 32}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>246 279 810 487 0 0 1440 878 </string>
+ <string>476 276 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>32pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>409pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +434,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
<key>RubberWindowFrame</key>
- <string>246 279 810 487 0 0 1440 878 </string>
+ <string>476 276 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -477,11 +518,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B120FF2234A8EEE00C990C9</string>
+ <string>8B259534235D1D780051EAA4</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B120FF3234A8EEE00C990C9</string>
+ <string>8B259535235D1D780051EAA4</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B120FF4234A8EEE00C990C9</string>
+ <string>8B259536235D1D780051EAA4</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +675,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>592088814.93142998</real>
+ <real>593304952.09331</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,11 +692,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B120FF5234A8EEE00C990C9</string>
<string>/Users/christopherjohnson/Desktop/Plugins/MacVST/Monitoring/Monitoring.xcodeproj</string>
+ <string>8B259537235D1D780051EAA4</string>
</array>
<key>WindowString</key>
- <string>246 279 810 487 0 0 1440 878 </string>
+ <string>476 276 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Monitoring/source/MonitoringProc.cpp b/plugins/MacVST/Monitoring/source/MonitoringProc.cpp
index db51380..ae46dca 100755
--- a/plugins/MacVST/Monitoring/source/MonitoringProc.cpp
+++ b/plugins/MacVST/Monitoring/source/MonitoringProc.cpp
@@ -320,24 +320,37 @@ void Monitoring::processReplacing(float **inputs, float **outputs, VstInt32 samp
case 13:
case 14:
case 15:
+ if (processing == 12) {inputSampleL *= 0.855; inputSampleR *= 0.855;}
+ if (processing == 13) {inputSampleL *= 0.748; inputSampleR *= 0.748;}
+ if (processing == 14) {inputSampleL *= 0.713; inputSampleR *= 0.713;}
+ if (processing == 15) {inputSampleL *= 0.680; inputSampleR *= 0.680;}
+ //we do a volume compensation immediately to gain stage stuff cleanly
inputSampleL = sin(inputSampleL);
inputSampleR = sin(inputSampleR);
long double drySampleL; drySampleL = inputSampleL;
long double drySampleR; drySampleR = inputSampleR; //everything runs 'inside' Console
+ long double bass; bass = (processing * processing * 0.00001) / overallscale;
+ //we are using the iir filters from out of SubsOnly
+
+ mid = inputSampleL + inputSampleR; side = inputSampleL - inputSampleR;
+ iirSampleAL = (iirSampleAL * (1.0 - (bass*0.618))) + (side * bass * 0.618); side = side - iirSampleAL;
+ inputSampleL = (mid+side)/2.0; inputSampleR = (mid-side)/2.0;
+ //bass narrowing filter
allpasstemp = ax - 1; if (allpasstemp < 0 || allpasstemp > am) allpasstemp = am;
inputSampleL -= aL[allpasstemp]*0.5; aL[ax] = inputSampleL; inputSampleL *= 0.5;
inputSampleR -= aR[allpasstemp]*0.5; aR[ax] = inputSampleR; inputSampleR *= 0.5;
+
ax--; if (ax < 0 || ax > am) {ax = am;}
- inputSampleL += (aL[ax]);
- inputSampleR += (aR[ax]);
- //a single Midiverb-style allpass
+ inputSampleL += (aL[ax])*0.5; inputSampleR += (aR[ax])*0.5;
+ if (ax == am) {inputSampleL += (aL[0])*0.5; inputSampleR += (aR[0])*0.5;}
+ else {inputSampleL += (aL[ax+1])*0.5; inputSampleR += (aR[ax+1])*0.5;}
+ //a darkened Midiverb-style allpass
if (processing == 12) {inputSampleL *= 0.125; inputSampleR *= 0.125;}
if (processing == 13) {inputSampleL *= 0.25; inputSampleR *= 0.25;}
- if (processing == 14) {inputSampleL *= 0.5; inputSampleR *= 0.5;}
- if (processing == 15) {drySampleL *= 0.5; drySampleR *= 0.5;}
- if (processing == 15) {inputSampleL *= 0.5; inputSampleR *= 0.5;}
+ if (processing == 14) {inputSampleL *= 0.30; inputSampleR *= 0.30;}
+ if (processing == 15) {inputSampleL *= 0.35; inputSampleR *= 0.35;}
//Cans A suppresses the crossfeed more, Cans B makes it louder
drySampleL += inputSampleR;
@@ -346,23 +359,28 @@ void Monitoring::processReplacing(float **inputs, float **outputs, VstInt32 samp
allpasstemp = dx - 1; if (allpasstemp < 0 || allpasstemp > dm) allpasstemp = dm;
inputSampleL -= dL[allpasstemp]*0.5; dL[dx] = inputSampleL; inputSampleL *= 0.5;
inputSampleR -= dR[allpasstemp]*0.5; dR[dx] = inputSampleR; inputSampleR *= 0.5;
+
dx--; if (dx < 0 || dx > dm) {dx = dm;}
- inputSampleL += (dL[dx]);
- inputSampleR += (dR[dx]);
- //a single Midiverb-style allpass, which is stretching the previous one even more
+ inputSampleL += (dL[dx])*0.5; inputSampleR += (dR[dx])*0.5;
+ if (dx == dm) {inputSampleL += (dL[0])*0.5; inputSampleR += (dR[0])*0.5;}
+ else {inputSampleL += (dL[dx+1])*0.5; inputSampleR += (dR[dx+1])*0.5;}
+ //a darkened Midiverb-style allpass, which is stretching the previous one even more
- if (processing == 12) {inputSampleL *= 0.5; inputSampleR *= 0.5;}
- if (processing == 13) {inputSampleL *= 0.25; inputSampleR *= 0.25;}
- if (processing == 14) {inputSampleL *= 0.125; inputSampleR *= 0.125;}
- if (processing == 15) {inputSampleL *= 0.5; inputSampleR *= 0.5;}
- //Cans A already had crossfeeds down, bloom is louder. Cans B sits on bloom more
+ inputSampleL *= 0.25; inputSampleR *= 0.25;
+ //for all versions of Cans the second level of bloom is this far down
+ //and, remains on the opposite speaker rather than crossing again to the original side
- drySampleL += inputSampleL;
- drySampleR += inputSampleR; //add the crossfeed and very faint extra verbyness
+ drySampleL += inputSampleR;
+ drySampleR += inputSampleL; //add the crossfeed and very faint extra verbyness
inputSampleL = drySampleL;
inputSampleR = drySampleR; //and output our can-opened headphone feed
+ mid = inputSampleL + inputSampleR; side = inputSampleL - inputSampleR;
+ iirSampleAR = (iirSampleAR * (1.0 - bass)) + (side * bass); side = side - iirSampleAR;
+ inputSampleL = (mid+side)/2.0; inputSampleR = (mid-side)/2.0;
+ //bass narrowing filter
+
if (inputSampleL > 1.0) inputSampleL = 1.0; if (inputSampleL < -1.0) inputSampleL = -1.0; inputSampleL = asin(inputSampleL);
if (inputSampleR > 1.0) inputSampleR = 1.0; if (inputSampleR < -1.0) inputSampleR = -1.0; inputSampleR = asin(inputSampleR);
//ConsoleBuss processing
@@ -804,24 +822,37 @@ void Monitoring::processDoubleReplacing(double **inputs, double **outputs, VstIn
case 13:
case 14:
case 15:
+ if (processing == 12) {inputSampleL *= 0.855; inputSampleR *= 0.855;}
+ if (processing == 13) {inputSampleL *= 0.748; inputSampleR *= 0.748;}
+ if (processing == 14) {inputSampleL *= 0.713; inputSampleR *= 0.713;}
+ if (processing == 15) {inputSampleL *= 0.680; inputSampleR *= 0.680;}
+ //we do a volume compensation immediately to gain stage stuff cleanly
inputSampleL = sin(inputSampleL);
inputSampleR = sin(inputSampleR);
long double drySampleL; drySampleL = inputSampleL;
long double drySampleR; drySampleR = inputSampleR; //everything runs 'inside' Console
+ long double bass; bass = (processing * processing * 0.00001) / overallscale;
+ //we are using the iir filters from out of SubsOnly
+
+ mid = inputSampleL + inputSampleR; side = inputSampleL - inputSampleR;
+ iirSampleAL = (iirSampleAL * (1.0 - (bass*0.618))) + (side * bass * 0.618); side = side - iirSampleAL;
+ inputSampleL = (mid+side)/2.0; inputSampleR = (mid-side)/2.0;
+ //bass narrowing filter
allpasstemp = ax - 1; if (allpasstemp < 0 || allpasstemp > am) allpasstemp = am;
inputSampleL -= aL[allpasstemp]*0.5; aL[ax] = inputSampleL; inputSampleL *= 0.5;
inputSampleR -= aR[allpasstemp]*0.5; aR[ax] = inputSampleR; inputSampleR *= 0.5;
+
ax--; if (ax < 0 || ax > am) {ax = am;}
- inputSampleL += (aL[ax]);
- inputSampleR += (aR[ax]);
- //a single Midiverb-style allpass
+ inputSampleL += (aL[ax])*0.5; inputSampleR += (aR[ax])*0.5;
+ if (ax == am) {inputSampleL += (aL[0])*0.5; inputSampleR += (aR[0])*0.5;}
+ else {inputSampleL += (aL[ax+1])*0.5; inputSampleR += (aR[ax+1])*0.5;}
+ //a darkened Midiverb-style allpass
if (processing == 12) {inputSampleL *= 0.125; inputSampleR *= 0.125;}
if (processing == 13) {inputSampleL *= 0.25; inputSampleR *= 0.25;}
- if (processing == 14) {inputSampleL *= 0.5; inputSampleR *= 0.5;}
- if (processing == 15) {drySampleL *= 0.5; drySampleR *= 0.5;}
- if (processing == 15) {inputSampleL *= 0.5; inputSampleR *= 0.5;}
+ if (processing == 14) {inputSampleL *= 0.30; inputSampleR *= 0.30;}
+ if (processing == 15) {inputSampleL *= 0.35; inputSampleR *= 0.35;}
//Cans A suppresses the crossfeed more, Cans B makes it louder
drySampleL += inputSampleR;
@@ -830,27 +861,32 @@ void Monitoring::processDoubleReplacing(double **inputs, double **outputs, VstIn
allpasstemp = dx - 1; if (allpasstemp < 0 || allpasstemp > dm) allpasstemp = dm;
inputSampleL -= dL[allpasstemp]*0.5; dL[dx] = inputSampleL; inputSampleL *= 0.5;
inputSampleR -= dR[allpasstemp]*0.5; dR[dx] = inputSampleR; inputSampleR *= 0.5;
+
dx--; if (dx < 0 || dx > dm) {dx = dm;}
- inputSampleL += (dL[dx]);
- inputSampleR += (dR[dx]);
- //a single Midiverb-style allpass, which is stretching the previous one even more
+ inputSampleL += (dL[dx])*0.5; inputSampleR += (dR[dx])*0.5;
+ if (dx == dm) {inputSampleL += (dL[0])*0.5; inputSampleR += (dR[0])*0.5;}
+ else {inputSampleL += (dL[dx+1])*0.5; inputSampleR += (dR[dx+1])*0.5;}
+ //a darkened Midiverb-style allpass, which is stretching the previous one even more
- if (processing == 12) {inputSampleL *= 0.5; inputSampleR *= 0.5;}
- if (processing == 13) {inputSampleL *= 0.25; inputSampleR *= 0.25;}
- if (processing == 14) {inputSampleL *= 0.125; inputSampleR *= 0.125;}
- if (processing == 15) {inputSampleL *= 0.5; inputSampleR *= 0.5;}
- //Cans A already had crossfeeds down, bloom is louder. Cans B sits on bloom more
+ inputSampleL *= 0.25; inputSampleR *= 0.25;
+ //for all versions of Cans the second level of bloom is this far down
+ //and, remains on the opposite speaker rather than crossing again to the original side
- drySampleL += inputSampleL;
- drySampleR += inputSampleR; //add the crossfeed and very faint extra verbyness
+ drySampleL += inputSampleR;
+ drySampleR += inputSampleL; //add the crossfeed and very faint extra verbyness
inputSampleL = drySampleL;
inputSampleR = drySampleR; //and output our can-opened headphone feed
+ mid = inputSampleL + inputSampleR; side = inputSampleL - inputSampleR;
+ iirSampleAR = (iirSampleAR * (1.0 - bass)) + (side * bass); side = side - iirSampleAR;
+ inputSampleL = (mid+side)/2.0; inputSampleR = (mid-side)/2.0;
+ //bass narrowing filter
+
if (inputSampleL > 1.0) inputSampleL = 1.0; if (inputSampleL < -1.0) inputSampleL = -1.0; inputSampleL = asin(inputSampleL);
if (inputSampleR > 1.0) inputSampleR = 1.0; if (inputSampleR < -1.0) inputSampleR = -1.0; inputSampleR = asin(inputSampleR);
//ConsoleBuss processing
- break;
+ break;
}