diff --git a/Airwindopedia.txt b/Airwindopedia.txt
index 1ee58c78c..a8445cf94 100644
--- a/Airwindopedia.txt
+++ b/Airwindopedia.txt
@@ -39,7 +39,7 @@ Reverb: kStation, kGuitarHall2, kCathedral5, VerbTiny, VerbThic, kAlienSpaceship
Saturation: PurestSaturation, SquareRoot, Hypersoft, Creature, Huge, NCSeventeen, Tube2, Tube, Spiral2, PurestDrive, Focus, Mojo, Dyno, Spiral, UnBox, Desk4, Righteous4
-Stereo: Srsly3, Srsly2, Srsly, Wider, StereoFX, ToVinyl4, AutoPan, LRFlipTimer, MSFlipTimer, Sidepass, SideDull
+Stereo: Srsly3, Srsly2, Srsly, SweetWide, Wider, StereoFX, ToVinyl4, AutoPan, LRFlipTimer, MSFlipTimer, Sidepass, SideDull
Subtlety: Mastering2, Discontapeity, Mastering, Discontinuity, Hype, Shape, Inflamer, Sweeten, PurestWarm2, PurestWarm, Coils2, Interstage, PhaseNudge, Remap, SingleEndedTriode, Coils, Desk, TransDesk, TubeDesk
@@ -5400,6 +5400,24 @@ The only thing Sweeten can do that you can't already do with Inflamer is be simp
I'll be using it: if anybody else finds it useful, that's even better :)
+############ SweetWide is a strange grungy stereo widener.
+
+It's experiment time! This is a really good example of the sort of thing I do for Airwindows, and for the folks out there.
+
+You may well find this horrible, lame and useless. That is OK, it's not going to be for everybody.
+
+But if you like the sort of weird grunge this produces, we're talking signature sound, secret weapon town, bigtime… and NOBODY else will be bringing it, and no AI will arrive at this unless literally told to copy it (in which case they should credit and say it's SweetWide they're using).
+
+This plugin comes not from the world of Srsly or EdIsDim or Wider (plenty of other things I've made to do stereo widening nicely). It comes from my experiments with ring modulation. It's really a very simple algorithm though it does use square root functions: that's next to nothing, as far as CPU is concerned. It's doing terrible things to the stereo signal coming in, for the purpose of exaggerating side-channel informaqtion, but in a way where it's tending to produce asymmetric modulations. That's more along the lines of 'second harmonic, fourth harmonic etc' rather than 'third harmonic and normal distortion', and that's why Sweet is part of the name: we tend to hear even harmonics as more 'sweet' than odd harmonics.
+
+Even then it's not acting normal because it's using that Soar control to govern how the square-root reacts to subtle sounds. It serves the purpose of bringing up a gnarly compressey grunginess, except for stereo widening. If you crank it out all the way it's very obvious, but you can dial the Soar setting in that way, and then pull it back if you'd like it to still be unique but not so obnoxious.
+
+It'll also do a stereo narrowing effect that's maybe even more obnoxious, by turning Un/Wide all the way to Un. It's basically the same thing as an Inv/Dry/Wet control. The whole thing runs without any stored variables, and the setup of controls is hilariously trivial: without the square roots it'd be about the most CPU-efficient plugin you have.
+
+The reason you don't have this already is, it sounds terrible. But it's terrible in kind of a wonderful way. I demonstrate it on a full mix, and you should never use it on a full mix. Instead, I think it'd be a great widener on a heavy guitar buss, or certain synth tones, or maybe it's a really interesting way to narrow a drum room sound and bring a lot of grungey color to things. Any sound you can get from it, you can tune with the Soar control. I've managed to bring the totally weird Soar control from my ring modulators to a stereo widener/narrower, in case that's handy.
+
+If this is the plugin for you, you've probably already started throwing it on things and enjoying its unique gnarly space-distortions, and if this isn't the plugin for you, I don't know how much more clearly I can warn you. You're welcome :)
+
############ Swell is Dial-an-attack, like sidechaining.
Every now and then you come up with something a little different. The fun of that is in identifying it.
@@ -6424,7 +6442,7 @@ ZRegion is that filter. The original Airwindows Region wasn't written in the con
The reason I might be needing this one is, I can get pretty killer bass tones using it. I'll set the first filter higher for midrange articulation, set the last filter very low for heavy bass mojo, and it's instantly a bass-amp type of sound. And if I intend to leave the setting as a fixed setting, ZRegion will give me that with the same flavor as my other Z filters.
-But if I want to automate or move the controls as part of the mix…
+But if I want to automate or move the controls as part of the mix… see ZRegion2.
############ ZRegion2 is an Emu e6400 style Airwindows Region filter, with coefficient smoothing.
diff --git a/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2ChannelProc.cpp b/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2ChannelProc.cpp
index 127bf13bc..38a92a8f1 100755
--- a/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2ChannelProc.cpp
+++ b/plugins/LinuxVST/src/ConsoleX2Channel/ConsoleX2ChannelProc.cpp
@@ -23,7 +23,7 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -550,7 +550,7 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs,
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
diff --git a/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2PreProc.cpp b/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2PreProc.cpp
index 18ab0486d..2366e1835 100755
--- a/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2PreProc.cpp
+++ b/plugins/LinuxVST/src/ConsoleX2Pre/ConsoleX2PreProc.cpp
@@ -23,7 +23,7 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -459,7 +459,7 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa
inputSampleL *= 1.0-(fmin(CBAL*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBAR*bezThresh,1.0));
}
- //Dynamics3, but with crossfade over EQ or HipCrush
+ //Dynamics3
const double temp = (double)sampleFrames/inFramesToProcess;
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
@@ -555,7 +555,7 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -991,7 +991,7 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst
inputSampleL *= 1.0-(fmin(CBAL*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBAR*bezThresh,1.0));
}
- //Dynamics3, but with crossfade over EQ or HipCrush
+ //Dynamics3
const double temp = (double)sampleFrames/inFramesToProcess;
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
diff --git a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index dd2ad956e..59d9334cf 100755
Binary files a/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp b/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp
index 127bf13bc..38a92a8f1 100755
--- a/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp
+++ b/plugins/MacSignedVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp
@@ -23,7 +23,7 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -550,7 +550,7 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs,
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
diff --git a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 450194f46..cb9e3c148 100755
Binary files a/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate and b/plugins/MacSignedVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp b/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp
index 18ab0486d..2366e1835 100755
--- a/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp
+++ b/plugins/MacSignedVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp
@@ -23,7 +23,7 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -459,7 +459,7 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa
inputSampleL *= 1.0-(fmin(CBAL*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBAR*bezThresh,1.0));
}
- //Dynamics3, but with crossfade over EQ or HipCrush
+ //Dynamics3
const double temp = (double)sampleFrames/inFramesToProcess;
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
@@ -555,7 +555,7 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -991,7 +991,7 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst
inputSampleL *= 1.0-(fmin(CBAL*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBAR*bezThresh,1.0));
}
- //Dynamics3, but with crossfade over EQ or HipCrush
+ //Dynamics3
const double temp = (double)sampleFrames/inFramesToProcess;
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
diff --git a/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser
index 5148e27ab..554699e2a 100755
--- a/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,15 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 787100300;
- PBXWorkspaceStateSaveDate = 787100300;
+ PBXPerProjectTemplateStateSaveDate = 788657052;
+ PBXWorkspaceStateSaveDate = 788657052;
};
perUserProjectItems = {
8B5AB6382EEA332A00A3F512 /* PBXTextBookmark */ = 8B5AB6382EEA332A00A3F512 /* PBXTextBookmark */;
- 8B5AB6392EEA332A00A3F512 /* PBXTextBookmark */ = 8B5AB6392EEA332A00A3F512 /* PBXTextBookmark */;
- 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */ = 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */;
+ 8BAE90962F01EBB700A311FE /* PBXTextBookmark */ = 8BAE90962F01EBB700A311FE /* PBXTextBookmark */;
+ 8BAE90ED2F01F3A000A311FE /* PBXBookmark */ = 8BAE90ED2F01F3A000A311FE /* PBXBookmark */;
+ 8BAE90F82F01F3BC00A311FE /* PBXTextBookmark */ = 8BAE90F82F01F3BC00A311FE /* PBXTextBookmark */;
+ 8BAE90FE2F01F3BC00A311FE /* PBXTextBookmark */ = 8BAE90FE2F01F3BC00A311FE /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -63,10 +65,10 @@
};
2407DEB6089929BA00EB68BF /* ConsoleX2Channel.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {777, 5814}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1002, 5814}}";
sepNavSelRange = "{9004, 0}";
- sepNavVisRange = "{0, 0}";
- sepNavWindowFrame = "{{545, 47}, {895, 831}}";
+ sepNavVisRange = "{7336, 2733}";
+ sepNavWindowFrame = "{{210, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* ConsoleX2Channel.h */ = {
@@ -87,8 +89,8 @@
};
24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1101, 19368}}";
- sepNavSelRange = "{22669, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 19332}}";
+ sepNavSelRange = "{22675, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{3, 46}, {895, 831}}";
};
@@ -117,25 +119,39 @@
vrLen = 0;
vrLoc = 0;
};
- 8B5AB6392EEA332A00A3F512 /* PBXTextBookmark */ = {
+ 8BAE90962F01EBB700A311FE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */;
name = "ConsoleX2ChannelProc.cpp: 495";
rLen = 0;
- rLoc = 22669;
+ rLoc = 22675;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
- 8BC5BE2E2EB165A900031C01 /* PBXTextBookmark */ = {
+ 8BAE90ED2F01F3A000A311FE /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */;
+ };
+ 8BAE90F82F01F3BC00A311FE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */;
- name = "ConsoleX2ChannelProc.cpp: 492";
+ name = "ConsoleX2ChannelProc.cpp: 495";
rLen = 0;
- rLoc = 22669;
+ rLoc = 22675;
rType = 0;
- vrLen = 98;
- vrLoc = 22602;
+ vrLen = 0;
+ vrLoc = 0;
+ };
+ 8BAE90FE2F01F3BC00A311FE /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* ConsoleX2ChannelProc.cpp */;
+ name = "ConsoleX2ChannelProc.cpp: 495";
+ rLen = 0;
+ rLoc = 22675;
+ rType = 0;
+ vrLen = 1933;
+ vrLoc = 19554;
};
8D01CCC60486CAD60068D4B7 /* ConsoleX2Channel */ = {
activeExec = 0;
diff --git a/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3
index 7650747c8..75e32d634 100755
--- a/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj/christopherjohnson.perspectivev3
@@ -222,7 +222,48 @@
OpenEditors
-
+
+
+ Content
+
+ PBXProjectModuleGUID
+ 8BAE90FC2F01F3BC00A311FE
+ PBXProjectModuleLabel
+ ConsoleX2ChannelProc.cpp
+ PBXSplitModuleInNavigatorKey
+
+ Split0
+
+ PBXProjectModuleGUID
+ 8BAE90FD2F01F3BC00A311FE
+ PBXProjectModuleLabel
+ ConsoleX2ChannelProc.cpp
+ _historyCapacity
+ 0
+ bookmark
+ 8BAE90FE2F01F3BC00A311FE
+ history
+
+ 8BAE90ED2F01F3A000A311FE
+
+
+ SplitCount
+ 1
+
+ StatusBarVisibility
+
+
+ Geometry
+
+ Frame
+ {{0, 20}, {895, 734}}
+ PBXModuleWindowStatusBarHidden2
+
+ RubberWindowFrame
+ 3 102 895 775 0 0 1440 878
+
+
+
PerspectiveWidths
810
@@ -323,7 +364,7 @@
185
RubberWindowFrame
- 14 340 810 487 0 0 1440 878
+ 518 235 810 487 0 0 1440 878
Module
PBXSmartGroupTreeModule
@@ -351,11 +392,11 @@
_historyCapacity
0
bookmark
- 8B5AB6392EEA332A00A3F512
+ 8BAE90F82F01F3BC00A311FE
history
8B5AB6382EEA332A00A3F512
- 8BC5BE2E2EB165A900031C01
+ 8BAE90962F01EBB700A311FE
SplitCount
@@ -369,18 +410,18 @@
GeometryConfiguration
Frame
- {{0, 0}, {603, 32}}
+ {{0, 0}, {603, 0}}
RubberWindowFrame
- 14 340 810 487 0 0 1440 878
+ 518 235 810 487 0 0 1440 878
Module
PBXNavigatorGroup
Proportion
- 32pt
+ 0pt
Proportion
- 409pt
+ 441pt
Tabs
@@ -394,9 +435,9 @@
GeometryConfiguration
Frame
- {{10, 27}, {603, 382}}
+ {{10, 27}, {603, 414}}
RubberWindowFrame
- 14 340 810 487 0 0 1440 878
+ 518 235 810 487 0 0 1440 878
Module
XCDetailModule
@@ -450,7 +491,7 @@
GeometryConfiguration
Frame
- {{10, 27}, {603, 363}}
+ {{10, 27}, {603, 401}}
Module
PBXBuildResultsModule
@@ -478,11 +519,11 @@
TableOfContents
- 8B5AB63A2EEA332A00A3F512
+ 8BAE90F92F01F3BC00A311FE
1CA23ED40692098700951B8B
- 8B5AB63B2EEA332A00A3F512
+ 8BAE90FA2F01F3BC00A311FE
8B0237581D42B1C400E1E8C8
- 8B5AB63C2EEA332A00A3F512
+ 8BAE90FB2F01F3BC00A311FE
1CA23EDF0692099D00951B8B
1CA23EE00692099D00951B8B
1CA23EE10692099D00951B8B
@@ -635,7 +676,7 @@
StatusbarIsVisible
TimeStamp
- 787100458.98253703
+ 788657084.68492305
ToolbarConfigUserDefaultsMinorVersion
2
ToolbarDisplayMode
@@ -652,11 +693,11 @@
5
WindowOrderList
- 8B5AB63D2EEA332A00A3F512
/Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/ConsoleX2Channel/ConsoleX2Channel.xcodeproj
+ 8BAE90FC2F01F3BC00A311FE
WindowString
- 14 340 810 487 0 0 1440 878
+ 518 235 810 487 0 0 1440 878
WindowToolsV3
diff --git a/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp b/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp
index 127bf13bc..38a92a8f1 100755
--- a/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp
+++ b/plugins/MacVST/ConsoleX2Channel/source/ConsoleX2ChannelProc.cpp
@@ -23,7 +23,7 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -550,7 +550,7 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs,
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
diff --git a/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser
index f81e4a6ed..8ca15e790 100755
--- a/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 787095373;
- PBXWorkspaceStateSaveDate = 787095373;
+ PBXPerProjectTemplateStateSaveDate = 788656896;
+ PBXWorkspaceStateSaveDate = 788656896;
};
perUserProjectItems = {
- 8B5AB6782EEA346C00A3F512 /* PBXTextBookmark */ = 8B5AB6782EEA346C00A3F512 /* PBXTextBookmark */;
- 8B5AB67D2EEA34FC00A3F512 /* PBXTextBookmark */ = 8B5AB67D2EEA34FC00A3F512 /* PBXTextBookmark */;
- 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */ = 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */;
+ 8BAE90B92F01EC1300A311FE /* PBXTextBookmark */ = 8BAE90B92F01EC1300A311FE /* PBXTextBookmark */;
+ 8BAE90BA2F01EC1300A311FE /* PBXTextBookmark */ = 8BAE90BA2F01EC1300A311FE /* PBXTextBookmark */;
+ 8BAE90BC2F01EC1300A311FE /* PBXTextBookmark */ = 8BAE90BC2F01EC1300A311FE /* PBXTextBookmark */;
+ 8BAE90DA2F01F39700A311FE /* PBXTextBookmark */ = 8BAE90DA2F01F39700A311FE /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -63,17 +64,17 @@
};
2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {966, 6318}}";
- sepNavSelRange = "{1207, 0}";
- sepNavVisRange = "{684, 865}";
+ sepNavIntBoundsRect = "{{0, 0}, {633, 6012}}";
+ sepNavSelRange = "{2267, 0}";
+ sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* ConsoleX2Pre.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 3636}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 3564}}";
sepNavSelRange = "{2892, 0}";
- sepNavVisRange = "{2948, 24}";
+ sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{669, 38}, {768, 840}}";
};
};
@@ -87,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* ConsoleX2PreProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1101, 19224}}";
- sepNavSelRange = "{20840, 0}";
- sepNavVisRange = "{19760, 2092}";
+ sepNavIntBoundsRect = "{{0, 0}, {912, 19332}}";
+ sepNavSelRange = "{20846, 0}";
+ sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{524, 47}, {895, 831}}";
};
};
@@ -107,35 +108,45 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B5AB6782EEA346C00A3F512 /* PBXTextBookmark */ = {
+ 8BAE90B92F01EC1300A311FE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* ConsoleX2Pre.h */;
name = "ConsoleX2Pre.h: 85";
rLen = 0;
rLoc = 2892;
rType = 0;
- vrLen = 24;
- vrLoc = 2948;
+ vrLen = 0;
+ vrLoc = 0;
};
- 8B5AB67D2EEA34FC00A3F512 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* ConsoleX2Pre.h */;
- name = "ConsoleX2Pre.h: 85";
- rLen = 0;
- rLoc = 2892;
- rType = 0;
- vrLen = 24;
- vrLoc = 2948;
- };
- 8B692BB82EB4DCCF00F51381 /* PBXTextBookmark */ = {
+ 8BAE90BA2F01EC1300A311FE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* ConsoleX2Pre.cpp */;
- name = "ConsoleX2Pre.cpp: 88";
+ name = "ConsoleX2Pre.cpp: 99";
rLen = 0;
rLoc = 2267;
rType = 0;
- vrLen = 51;
- vrLoc = 779;
+ vrLen = 0;
+ vrLoc = 0;
+ };
+ 8BAE90BC2F01EC1300A311FE /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* ConsoleX2PreProc.cpp */;
+ name = "ConsoleX2PreProc.cpp: 457";
+ rLen = 0;
+ rLoc = 20846;
+ rType = 0;
+ vrLen = 0;
+ vrLoc = 0;
+ };
+ 8BAE90DA2F01F39700A311FE /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* ConsoleX2PreProc.cpp */;
+ name = "ConsoleX2PreProc.cpp: 457";
+ rLen = 0;
+ rLoc = 20846;
+ rType = 0;
+ vrLen = 0;
+ vrLoc = 0;
};
8D01CCC60486CAD60068D4B7 /* ConsoleX2Pre */ = {
activeExec = 0;
diff --git a/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3
index bbd0a7bda..7fd3e9cc4 100755
--- a/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
Layout
+ BecomeActive
+
ContentConfiguration
PBXBottomSmartGroupGIDs
@@ -321,7 +323,7 @@
185
RubberWindowFrame
- 632 298 810 487 0 0 1440 878
+ 630 298 810 487 0 0 1440 878
Module
PBXSmartGroupTreeModule
@@ -337,7 +339,7 @@
PBXProjectModuleGUID
8B0237581D42B1C400E1E8C8
PBXProjectModuleLabel
- ConsoleX2Pre.h
+ ConsoleX2PreProc.cpp
PBXSplitModuleInNavigatorKey
Split0
@@ -345,15 +347,16 @@
PBXProjectModuleGUID
8B0237591D42B1C400E1E8C8
PBXProjectModuleLabel
- ConsoleX2Pre.h
+ ConsoleX2PreProc.cpp
_historyCapacity
0
bookmark
- 8B5AB67D2EEA34FC00A3F512
+ 8BAE90DA2F01F39700A311FE
history
- 8B692BB82EB4DCCF00F51381
- 8B5AB6782EEA346C00A3F512
+ 8BAE90B92F01EC1300A311FE
+ 8BAE90BA2F01EC1300A311FE
+ 8BAE90BC2F01EC1300A311FE
SplitCount
@@ -367,18 +370,18 @@
GeometryConfiguration
Frame
- {{0, 0}, {603, 51}}
+ {{0, 0}, {603, 13}}
RubberWindowFrame
- 632 298 810 487 0 0 1440 878
+ 630 298 810 487 0 0 1440 878
Module
PBXNavigatorGroup
Proportion
- 51pt
+ 13pt
Proportion
- 390pt
+ 428pt
Tabs
@@ -392,7 +395,9 @@
GeometryConfiguration
Frame
- {{10, 27}, {603, 363}}
+ {{10, 27}, {603, 401}}
+ RubberWindowFrame
+ 630 298 810 487 0 0 1440 878
Module
XCDetailModule
@@ -447,8 +452,6 @@
Frame
{{10, 27}, {603, 363}}
- RubberWindowFrame
- 632 298 810 487 0 0 1440 878
Module
PBXBuildResultsModule
@@ -476,11 +479,11 @@
TableOfContents
- 8B5AB6062EEA1F5100A3F512
+ 8BAE90DB2F01F39700A311FE
1CA23ED40692098700951B8B
- 8B5AB6072EEA1F5100A3F512
+ 8BAE90DC2F01F39700A311FE
8B0237581D42B1C400E1E8C8
- 8B5AB6082EEA1F5100A3F512
+ 8BAE90DD2F01F39700A311FE
1CA23EDF0692099D00951B8B
1CA23EE00692099D00951B8B
1CA23EE10692099D00951B8B
@@ -633,7 +636,7 @@
StatusbarIsVisible
TimeStamp
- 787100924.42353201
+ 788657047.75144994
ToolbarConfigUserDefaultsMinorVersion
2
ToolbarDisplayMode
@@ -650,11 +653,11 @@
5
WindowOrderList
- 8B5AB67E2EEA34FC00A3F512
+ 8BAE90DE2F01F39700A311FE
/Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/ConsoleX2Pre/ConsoleX2Pre.xcodeproj
WindowString
- 632 298 810 487 0 0 1440 878
+ 630 298 810 487 0 0 1440 878
WindowToolsV3
diff --git a/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp b/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp
index 18ab0486d..2366e1835 100755
--- a/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp
+++ b/plugins/MacVST/ConsoleX2Pre/source/ConsoleX2PreProc.cpp
@@ -23,7 +23,7 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -459,7 +459,7 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa
inputSampleL *= 1.0-(fmin(CBAL*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBAR*bezThresh,1.0));
}
- //Dynamics3, but with crossfade over EQ or HipCrush
+ //Dynamics3
const double temp = (double)sampleFrames/inFramesToProcess;
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
@@ -555,7 +555,7 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -991,7 +991,7 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst
inputSampleL *= 1.0-(fmin(CBAL*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBAR*bezThresh,1.0));
}
- //Dynamics3, but with crossfade over EQ or HipCrush
+ //Dynamics3
const double temp = (double)sampleFrames/inFramesToProcess;
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
diff --git a/plugins/WinVST/ConsoleX2Channel/ConsoleX2ChannelProc.cpp b/plugins/WinVST/ConsoleX2Channel/ConsoleX2ChannelProc.cpp
index 127bf13bc..38a92a8f1 100755
--- a/plugins/WinVST/ConsoleX2Channel/ConsoleX2ChannelProc.cpp
+++ b/plugins/WinVST/ConsoleX2Channel/ConsoleX2ChannelProc.cpp
@@ -23,7 +23,7 @@ void ConsoleX2Channel::processReplacing(float **inputs, float **outputs, VstInt3
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -550,7 +550,7 @@ void ConsoleX2Channel::processDoubleReplacing(double **inputs, double **outputs,
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
diff --git a/plugins/WinVST/ConsoleX2Pre/ConsoleX2PreProc.cpp b/plugins/WinVST/ConsoleX2Pre/ConsoleX2PreProc.cpp
index 18ab0486d..2366e1835 100755
--- a/plugins/WinVST/ConsoleX2Pre/ConsoleX2PreProc.cpp
+++ b/plugins/WinVST/ConsoleX2Pre/ConsoleX2PreProc.cpp
@@ -23,7 +23,7 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -459,7 +459,7 @@ void ConsoleX2Pre::processReplacing(float **inputs, float **outputs, VstInt32 sa
inputSampleL *= 1.0-(fmin(CBAL*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBAR*bezThresh,1.0));
}
- //Dynamics3, but with crossfade over EQ or HipCrush
+ //Dynamics3
const double temp = (double)sampleFrames/inFramesToProcess;
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
@@ -555,7 +555,7 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst
double moreTapeHack = (MOR*2.0)+1.0;
bool tapehackOff = (MOR == 0.0);
- switch ((int)TRM){
+ switch ((int)(TRM*4.0)){
case 0: moreTapeHack *= 0.5; break;
case 1: break;
case 2: moreTapeHack *= 2.0; break;
@@ -991,7 +991,7 @@ void ConsoleX2Pre::processDoubleReplacing(double **inputs, double **outputs, Vst
inputSampleL *= 1.0-(fmin(CBAL*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBAR*bezThresh,1.0));
}
- //Dynamics3, but with crossfade over EQ or HipCrush
+ //Dynamics3
const double temp = (double)sampleFrames/inFramesToProcess;
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
diff --git a/what.txt b/what.txt
index ce29b8ecb..b0c426446 100644
--- a/what.txt
+++ b/what.txt
@@ -398,6 +398,7 @@ SubTight uses a variation on the Creature algorithm to tighten sub-lows.[coll=La
Surge is a compressor for accentuating beats and pulses.[coll=]
SurgeTide is a surge and flow dynamics plugin.[coll=Latest]
Sweeten is where you can find super-clean second harmonic.[coll=Basic,Recommended,Latest]
+SweetWide is a strange grungy stereo widener.[coll=Latest]
Swell is Dial-an-attack, like sidechaining.[coll=Latest]
TakeCare is a lush chorus ensemble universe.[coll=Recommended,Latest]
Tape is simplified, all-purpose tape mojo: my personal jam.[coll=]