mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-15 14:16:00 -06:00
Distance3
This commit is contained in:
parent
249c1fe508
commit
3910224be8
96 changed files with 22016 additions and 79 deletions
|
|
@ -29,7 +29,7 @@ Dynamics: Pop2, Pressure5, Dynamics, Pop, DigitalBlack, Logical4, VariMu, Butter
|
|||
|
||||
Effects: GalacticVibe, CloudCoat, Fracture2, Dubly, Pafnuty2, PitchNasty, Trianglizer, ShortBuss, GuitarConditioner, Aura, TremoSquare, Tremolo, GlitchShifter, Gringer, Exciter, Energy2, Energy, Facet, Fracture, PowerSag2, PowerSag, Preponderant, Nikola
|
||||
|
||||
Filter: Stonefire, Baxandall2, Pear2, Capacitor2, Pear, ResEQ2, SubTight, CStrip2, Weight, Isolator2, Kalman, Holt2, Holt, ToneSlant, AverMatrix, Average, MackEQ, Hull2, Baxandall, Hull, EQ, Capacitor, Isolator, TapeFat, ResEQ, Lowpass2, Highpass2, Distance2, Distance, Lowpass, Highpass
|
||||
Filter: Stonefire, Baxandall2, Pear2, Capacitor2, Distance3, Pear, ResEQ2, SubTight, CStrip2, Weight, Isolator2, Kalman, Holt2, Holt, ToneSlant, AverMatrix, Average, MackEQ, Hull2, Baxandall, Hull, EQ, Capacitor, Isolator, TapeFat, ResEQ, Lowpass2, Highpass2, Distance, Distance2, Lowpass, Highpass
|
||||
|
||||
Lo-Fi: Pockey2, Flutter, CrunchyGrooveWear, GrooveWear, Pockey, DeRez2, BitGlitter, DeRez, ChromeOxide, Cojones, Vibrato, Bite, Deckwrecka, DustBunny
|
||||
|
||||
|
|
@ -1482,6 +1482,20 @@ And the reason I’m able to put out a plugin where I KNOW that some people will
|
|||
|
||||
Patreon lets me give you the chainsaw :D now, whether you do damage with it is your own affair. But I think once you strap it across some buss with drums or guitars or whatever, and fire it up, you’ll like chainsaws too. Just remember to dial it back when you need it not to be distractingly obnoxious. Or not: hey, it IS a distinct new distortion voice, with a whole new approach to slew clipping not previously available. Darken it or not, as it pleases you. Have fun.
|
||||
|
||||
############ Distance3 combines the best parts of Distance and Discontinuity.
|
||||
|
||||
By request from my livestreams, let's jump right back into the Discontinuity thing, but this time combined with a much older plugin: the original Distance!
|
||||
|
||||
This is a kind of plugin meant to darken the sound and make stuff sound really far away. Originally, I was thinking something that could take all the highs out and accentuate rumble, like turning a sound into the thunder version of itself. And so the first Distance worked basically as an EQ: three stacked stages of processing that combined to make stuff huge, kind of like my monitoring plugin SubsOnly.
|
||||
|
||||
Thing is, that doesn't have any nonlinearities to speak of in it, not the kind that happen in the real world over that much air. And at the time I was working on a Console version called Atmosphere, and thought I had a handle on bringing in that kind of nonlinearity. And so the next one was Distance2… but it lost some of the purity and depth of Distance, but didn't sound quite the way I wanted. It was the best I could do at the time, and is still there if you're interested in different sorts of darken/distort.
|
||||
|
||||
And then I brought in Discontinuity and was working on it in livestreams and someone mentioned, what if it was part of Distance? And the interesting thing is that Discontinuity also gets its sound from… three stages of processing, stacked. (as in, not side-by-side but in series, one after the other.)
|
||||
|
||||
Anytime you look at a situation like that, you can think to yourself: well, I could run these two plugins on after the other, but what if I interleaved the stages? One of Distance, one of Discontinuity, another Distance, another Discontinuity, and so on? Surely that would combine the effects in a more interesting way, merge them into a new distinct thing as they work on each other in turn?
|
||||
|
||||
And so here is Distance3. It goes right back to the tone quality of Distance, but it has all of the 'loud vibe' from Discontinuity, and outperforms either of them if you need the synthesis of both. There's probably lots of uses for this and my hope is that it'll be very easy to find those uses: if a thing has to be convincingly far away and you've already got reverb and ambience taken care of, Distance3 should immediately get you there in the best possible way.
|
||||
|
||||
############ Distortion is a slightly dark analog-style distortion with several presets, like Focus.
|
||||
|
||||
I think this one ought to go over well. People often want ‘analog-style distortion’. Here’s a collection of Airwindows distortion algorithms in a handy plugin with a new twist: it’s optimized for high sample rate in an innovative way.
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ void Console9Channel::processReplacing(float **inputs, float **outputs, VstInt32
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
@ -98,7 +98,7 @@ void Console9Channel::processDoubleReplacing(double **inputs, double **outputs,
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
|
|||
172
plugins/LinuxVST/src/Srsly3/Srsly3.cpp
Executable file
172
plugins/LinuxVST/src/Srsly3/Srsly3.cpp
Executable file
|
|
@ -0,0 +1,172 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#include "Srsly3.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Srsly3(audioMaster);}
|
||||
|
||||
Srsly3::Srsly3(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 0.5;
|
||||
C = 1.0;
|
||||
D = 0.5;
|
||||
E = 0.5;
|
||||
F = 1.0;
|
||||
|
||||
for (int x = 0; x < 9; x++) {
|
||||
biquadM2[x] = 0.0;
|
||||
biquadM7[x] = 0.0;
|
||||
biquadM10[x] = 0.0;
|
||||
biquadL3[x] = 0.0;
|
||||
biquadL7[x] = 0.0;
|
||||
biquadR3[x] = 0.0;
|
||||
biquadR7[x] = 0.0;
|
||||
biquadS3[x] = 0.0;
|
||||
biquadS5[x] = 0.0;
|
||||
}
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
//this is reset: values being initialized only once. Startup values, whatever they are.
|
||||
|
||||
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
|
||||
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
|
||||
_canDo.insert("x2in2out");
|
||||
setNumInputs(kNumInputs);
|
||||
setNumOutputs(kNumOutputs);
|
||||
setUniqueID(kUniqueId);
|
||||
canProcessReplacing(); // supports output replacing
|
||||
canDoubleReplacing(); // supports double precision processing
|
||||
programsAreChunks(true);
|
||||
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
|
||||
}
|
||||
|
||||
Srsly3::~Srsly3() {}
|
||||
VstInt32 Srsly3::getVendorVersion () {return 1000;}
|
||||
void Srsly3::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void Srsly3::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
|
||||
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
|
||||
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
|
||||
|
||||
static float pinParameter(float data)
|
||||
{
|
||||
if (data < 0.0f) return 0.0f;
|
||||
if (data > 1.0f) return 1.0f;
|
||||
return data;
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = A;
|
||||
chunkData[1] = B;
|
||||
chunkData[2] = C;
|
||||
chunkData[3] = D;
|
||||
chunkData[4] = E;
|
||||
chunkData[5] = F;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
A = pinParameter(chunkData[0]);
|
||||
B = pinParameter(chunkData[1]);
|
||||
C = pinParameter(chunkData[2]);
|
||||
D = pinParameter(chunkData[3]);
|
||||
E = pinParameter(chunkData[4]);
|
||||
F = pinParameter(chunkData[5]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Srsly3::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParamA: A = value; break;
|
||||
case kParamB: B = value; break;
|
||||
case kParamC: C = value; break;
|
||||
case kParamD: D = value; break;
|
||||
case kParamE: E = value; break;
|
||||
case kParamF: F = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float Srsly3::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParamA: return A; break;
|
||||
case kParamB: return B; break;
|
||||
case kParamC: return C; break;
|
||||
case kParamD: return D; break;
|
||||
case kParamE: return E; break;
|
||||
case kParamF: return F; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void Srsly3::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "Center", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "Space", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Level", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "Q", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "Nonlin", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void Srsly3::getParameterDisplay(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
|
||||
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
|
||||
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
|
||||
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
|
||||
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
|
||||
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void Srsly3::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool Srsly3::getEffectName(char* name) {
|
||||
vst_strncpy(name, "Srsly3", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory Srsly3::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool Srsly3::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows Srsly3", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool Srsly3::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
84
plugins/LinuxVST/src/Srsly3/Srsly3.h
Executable file
84
plugins/LinuxVST/src/Srsly3/Srsly3.h
Executable file
|
|
@ -0,0 +1,84 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#define __Srsly3_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParamA =0,
|
||||
kParamB =1,
|
||||
kParamC =2,
|
||||
kParamD =3,
|
||||
kParamE =4,
|
||||
kParamF =5,
|
||||
kNumParameters = 6
|
||||
}; //
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'srsn'; //Change this to what the AU identity is!
|
||||
|
||||
class Srsly3 :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
Srsly3(audioMasterCallback audioMaster);
|
||||
~Srsly3();
|
||||
virtual bool getEffectName(char* name); // The plug-in name
|
||||
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
|
||||
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
|
||||
virtual bool getVendorString(char* text); // Vendor info
|
||||
virtual VstInt32 getVendorVersion(); // Version number
|
||||
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
|
||||
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
|
||||
virtual void getProgramName(char *name); // read the name from the host
|
||||
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
|
||||
virtual VstInt32 getChunk (void** data, bool isPreset);
|
||||
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
|
||||
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
|
||||
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
|
||||
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
|
||||
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
|
||||
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
|
||||
virtual VstInt32 canDo(char *text);
|
||||
private:
|
||||
char _programName[kVstMaxProgNameLen + 1];
|
||||
std::set< std::string > _canDo;
|
||||
|
||||
float A;
|
||||
float B;
|
||||
float C;
|
||||
float D;
|
||||
float E;
|
||||
float F;
|
||||
|
||||
double biquadM2[9];
|
||||
double biquadM7[9];
|
||||
double biquadM10[9];
|
||||
|
||||
double biquadL3[9]; //note that this isn't the stereo
|
||||
double biquadL7[9]; //form of the biquad, like it's set
|
||||
double biquadR3[9]; //up to be. The M/S parts don't lend
|
||||
double biquadR7[9]; //themselves to that
|
||||
|
||||
double biquadS3[9];
|
||||
double biquadS5[9];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
510
plugins/LinuxVST/src/Srsly3/Srsly3Proc.cpp
Executable file
510
plugins/LinuxVST/src/Srsly3/Srsly3Proc.cpp
Executable file
|
|
@ -0,0 +1,510 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#include "Srsly3.h"
|
||||
#endif
|
||||
|
||||
void Srsly3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
float* in1 = inputs[0];
|
||||
float* in2 = inputs[1];
|
||||
float* out1 = outputs[0];
|
||||
float* out2 = outputs[1];
|
||||
|
||||
double sampleRate = getSampleRate();
|
||||
if (sampleRate < 22000) sampleRate = 22000; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000 / sampleRate; //up
|
||||
biquadM7[0] = 7000 / sampleRate; //down
|
||||
biquadM10[0] = 10000 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000 / sampleRate; //up
|
||||
biquadL7[0] = 7000 / sampleRate; //way up
|
||||
biquadR3[0] = 3000 / sampleRate; //up
|
||||
biquadR7[0] = 7000 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000 / sampleRate; //up
|
||||
biquadS5[0] = 5000 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(A*10.0);
|
||||
double focusS = 21.0-(B*15.0);
|
||||
double Q = D+0.25; //add Q control: from half to double intensity
|
||||
double gainM = A*2.0;
|
||||
double gainS = B*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(A,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(B,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = C; //output pad
|
||||
double nonLin = pow(E,2); //output pad
|
||||
double wet = F; //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
//[9] is RIGHT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[10] is RIGHT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
|
||||
void Srsly3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
double* in1 = inputs[0];
|
||||
double* in2 = inputs[1];
|
||||
double* out1 = outputs[0];
|
||||
double* out2 = outputs[1];
|
||||
|
||||
double sampleRate = getSampleRate();
|
||||
if (sampleRate < 22000) sampleRate = 22000; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000 / sampleRate; //up
|
||||
biquadM7[0] = 7000 / sampleRate; //down
|
||||
biquadM10[0] = 10000 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000 / sampleRate; //up
|
||||
biquadL7[0] = 7000 / sampleRate; //way up
|
||||
biquadR3[0] = 3000 / sampleRate; //up
|
||||
biquadR7[0] = 7000 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000 / sampleRate; //up
|
||||
biquadS5[0] = 5000 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(A*10.0);
|
||||
double focusS = 21.0-(B*15.0);
|
||||
double Q = D+0.25; //add Q control: from half to double intensity
|
||||
double gainM = A*2.0;
|
||||
double gainS = B*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(A,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(B,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = C; //output pad
|
||||
double nonLin = pow(E,2); //output pad
|
||||
double wet = F; //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
//[9] is RIGHT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[10] is RIGHT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 64 bit stereo floating point dither
|
||||
//int expon; frexp((double)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//frexp((double)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//end 64 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
|
|
@ -220,7 +220,7 @@ OSStatus Console9Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
|
|||
|
|
@ -49,24 +49,60 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 733266696;
|
||||
PBXWorkspaceStateSaveDate = 733266696;
|
||||
PBXPerProjectTemplateStateSaveDate = 737199969;
|
||||
PBXWorkspaceStateSaveDate = 737199969;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B6E246A2BF0C77100FBB27F /* PBXBookmark */ = 8B6E246A2BF0C77100FBB27F /* PBXBookmark */;
|
||||
8B6E247E2BF0C7BC00FBB27F /* PBXTextBookmark */ = 8B6E247E2BF0C7BC00FBB27F /* PBXTextBookmark */;
|
||||
8B6E24812BF0C7CD00FBB27F /* PBXTextBookmark */ = 8B6E24812BF0C7CD00FBB27F /* PBXTextBookmark */;
|
||||
8B6E24872BF0C7CD00FBB27F /* PBXTextBookmark */ = 8B6E24872BF0C7CD00FBB27F /* PBXTextBookmark */;
|
||||
8BFF23B02BB4C45300B6740F /* PBXTextBookmark */ = 8BFF23B02BB4C45300B6740F /* PBXTextBookmark */;
|
||||
8BFF23B12BB4C45300B6740F /* PBXBookmark */ = 8BFF23B12BB4C45300B6740F /* PBXBookmark */;
|
||||
8BFF23B22BB4C45300B6740F /* PBXTextBookmark */ = 8BFF23B22BB4C45300B6740F /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B6E246A2BF0C77100FBB27F /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Console9Channel.cpp */;
|
||||
};
|
||||
8B6E247E2BF0C7BC00FBB27F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Console9Channel.h */;
|
||||
name = "Console9Channel.h: 115";
|
||||
rLen = 62;
|
||||
rLoc = 4976;
|
||||
rType = 0;
|
||||
vrLen = 73;
|
||||
vrLoc = 3157;
|
||||
};
|
||||
8B6E24812BF0C7CD00FBB27F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Console9Channel.h */;
|
||||
name = "Console9Channel.h: 115";
|
||||
rLen = 62;
|
||||
rLoc = 4976;
|
||||
rType = 0;
|
||||
vrLen = 73;
|
||||
vrLoc = 3157;
|
||||
};
|
||||
8B6E24872BF0C7CD00FBB27F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Console9Channel.cpp */;
|
||||
name = "Console9Channel.cpp: 223";
|
||||
rLen = 0;
|
||||
rLoc = 9916;
|
||||
rType = 0;
|
||||
vrLen = 1635;
|
||||
vrLoc = 8841;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Console9Channel.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 4716}}";
|
||||
sepNavSelRange = "{9569, 1152}";
|
||||
sepNavVisRange = "{8760, 1716}";
|
||||
sepNavWindowFrame = "{{662, 38}, {778, 840}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {939, 4914}}";
|
||||
sepNavSelRange = "{9916, 0}";
|
||||
sepNavVisRange = "{8841, 1635}";
|
||||
sepNavWindowFrame = "{{296, 38}, {778, 840}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Console9ChannelVersion.h */ = {
|
||||
|
|
@ -86,9 +122,9 @@
|
|||
};
|
||||
8BC6025B073B072D006C4272 /* Console9Channel.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 2574}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {597, 2466}}";
|
||||
sepNavSelRange = "{4976, 62}";
|
||||
sepNavVisRange = "{3141, 89}";
|
||||
sepNavVisRange = "{3157, 73}";
|
||||
sepNavWindowFrame = "{{661, 38}, {778, 840}}";
|
||||
};
|
||||
};
|
||||
|
|
@ -116,20 +152,6 @@
|
|||
vrLen = 170;
|
||||
vrLoc = 9843;
|
||||
};
|
||||
8BFF23B12BB4C45300B6740F /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Console9Channel.h */;
|
||||
};
|
||||
8BFF23B22BB4C45300B6740F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Console9Channel.h */;
|
||||
name = "Console9Channel.h: 115";
|
||||
rLen = 62;
|
||||
rLoc = 4976;
|
||||
rType = 0;
|
||||
vrLen = 89;
|
||||
vrLoc = 3141;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Console9Channel */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -222,7 +222,48 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>OpenEditors</key>
|
||||
<array/>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8B6E24852BF0C7CD00FBB27F</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Console9Channel.cpp</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8B6E24862BF0C7CD00FBB27F</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Console9Channel.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8B6E24872BF0C7CD00FBB27F</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B6E246A2BF0C77100FBB27F</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}, {778, 743}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>296 94 778 784 0 0 1440 878 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>PerspectiveWidths</key>
|
||||
<array>
|
||||
<integer>810</integer>
|
||||
|
|
@ -256,8 +297,6 @@
|
|||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXBottomSmartGroupGIDs</key>
|
||||
|
|
@ -352,11 +391,11 @@
|
|||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BFF23B22BB4C45300B6740F</string>
|
||||
<string>8B6E24812BF0C7CD00FBB27F</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8BFF23B02BB4C45300B6740F</string>
|
||||
<string>8BFF23B12BB4C45300B6740F</string>
|
||||
<string>8B6E247E2BF0C7BC00FBB27F</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -370,18 +409,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {561, 117}}</string>
|
||||
<string>{{0, 0}, {561, 102}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>630 354 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>
|
||||
|
|
@ -395,9 +434,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {561, 297}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>630 354 810 487 0 0 1440 878 </string>
|
||||
<string>{{10, 27}, {561, 312}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -451,7 +488,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {561, 414}}</string>
|
||||
<string>{{10, 27}, {561, 312}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>630 354 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -479,11 +518,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BFF23B32BB4C45300B6740F</string>
|
||||
<string>8B6E24822BF0C7CD00FBB27F</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BFF23B42BB4C45300B6740F</string>
|
||||
<string>8B6E24832BF0C7CD00FBB27F</string>
|
||||
<string>8BFF22082BB4B03B00B6740F</string>
|
||||
<string>8BFF23B52BB4C45300B6740F</string>
|
||||
<string>8B6E24842BF0C7CD00FBB27F</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -636,7 +675,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>733267027.72161901</real>
|
||||
<real>737200077.29841805</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -653,7 +692,7 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BFF23B62BB4C45300B6740F</string>
|
||||
<string>8B6E24852BF0C7CD00FBB27F</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Console9Channel/Console9Channel.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
|
|
|
|||
BIN
plugins/MacAU/Srsly3/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/Srsly3/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/Srsly3/Info.plist
Executable file
28
plugins/MacAU/Srsly3/Info.plist
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PROJECTNAMEASIDENTIFIER}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
489
plugins/MacAU/Srsly3/Srsly3.cpp
Executable file
489
plugins/MacAU/Srsly3/Srsly3.cpp
Executable file
|
|
@ -0,0 +1,489 @@
|
|||
/*
|
||||
* File: Srsly3.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 5/7/24
|
||||
*
|
||||
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
Srsly3.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "Srsly3.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(Srsly3)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::Srsly3
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Srsly3::Srsly3(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_One, kDefaultValue_ParamOne );
|
||||
SetParameter(kParam_Two, kDefaultValue_ParamTwo );
|
||||
SetParameter(kParam_Three, kDefaultValue_ParamThree );
|
||||
SetParameter(kParam_Four, kDefaultValue_ParamFour );
|
||||
SetParameter(kParam_Five, kDefaultValue_ParamFive );
|
||||
SetParameter(kParam_Six, kDefaultValue_ParamSix );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_One:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterOneName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamOne;
|
||||
break;
|
||||
case kParam_Two:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTwoName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTwo;
|
||||
break;
|
||||
case kParam_Three:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterThreeName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamThree;
|
||||
break;
|
||||
case kParam_Four:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFourName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFour;
|
||||
break;
|
||||
case kParam_Five:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFiveName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFive;
|
||||
break;
|
||||
case kParam_Six:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterSixName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamSix;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// state that plugin supports only stereo-in/stereo-out processing
|
||||
UInt32 Srsly3::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// Srsly3::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____Srsly3EffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::Srsly3Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for (int x = 0; x < 9; x++) {
|
||||
biquadM2[x] = 0.0;
|
||||
biquadM7[x] = 0.0;
|
||||
biquadM10[x] = 0.0;
|
||||
biquadL3[x] = 0.0;
|
||||
biquadL7[x] = 0.0;
|
||||
biquadR3[x] = 0.0;
|
||||
biquadR7[x] = 0.0;
|
||||
biquadS3[x] = 0.0;
|
||||
biquadS5[x] = 0.0;
|
||||
}
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus Srsly3::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer,
|
||||
AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess)
|
||||
{
|
||||
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
|
||||
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
|
||||
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
|
||||
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
|
||||
double sampleRate = GetSampleRate();
|
||||
if (sampleRate < 22000.0) sampleRate = 22000.0; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000.0 / sampleRate; //up
|
||||
biquadM7[0] = 7000.0 / sampleRate; //down
|
||||
biquadM10[0] = 10000.0 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000.0 / sampleRate; //up
|
||||
biquadL7[0] = 7000.0 / sampleRate; //way up
|
||||
biquadR3[0] = 3000.0 / sampleRate; //up
|
||||
biquadR7[0] = 7000.0 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000.0 / sampleRate; //up
|
||||
biquadS5[0] = 5000.0 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(GetParameter( kParam_One )*10.0);
|
||||
double focusS = 20.0-(GetParameter( kParam_Two )*15.0);
|
||||
double Q = GetParameter( kParam_Four )+0.25; //add Q control: from half to double intensity
|
||||
|
||||
double gainM = GetParameter( kParam_One )*2.0;
|
||||
double gainS = GetParameter( kParam_Two )*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(GetParameter( kParam_One ),2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(GetParameter( kParam_Two ),2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = GetParameter( kParam_Three ); //output pad
|
||||
double nonLin = pow(GetParameter( kParam_Five ),2); //nonlinearity of filters
|
||||
double wet = GetParameter( kParam_Six ); //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSampleL = *inputL;
|
||||
double inputSampleR = *inputR;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*outputL = inputSampleL;
|
||||
*outputR = inputSampleR;
|
||||
//direct stereo out
|
||||
|
||||
inputL += 1;
|
||||
inputR += 1;
|
||||
outputL += 1;
|
||||
outputR += 1;
|
||||
}
|
||||
return noErr;
|
||||
}
|
||||
|
||||
1
plugins/MacAU/Srsly3/Srsly3.exp
Executable file
1
plugins/MacAU/Srsly3/Srsly3.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_Srsly3Entry
|
||||
146
plugins/MacAU/Srsly3/Srsly3.h
Executable file
146
plugins/MacAU/Srsly3/Srsly3.h
Executable file
|
|
@ -0,0 +1,146 @@
|
|||
/*
|
||||
* File: Srsly3.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 5/7/24
|
||||
*
|
||||
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "Srsly3Version.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __Srsly3_h__
|
||||
#define __Srsly3_h__
|
||||
|
||||
|
||||
#pragma mark ____Srsly3 Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamOne = 0.5;
|
||||
static const float kDefaultValue_ParamTwo = 0.5;
|
||||
static const float kDefaultValue_ParamThree = 1.0;
|
||||
static const float kDefaultValue_ParamFour = 0.5;
|
||||
static const float kDefaultValue_ParamFive = 0.5;
|
||||
static const float kDefaultValue_ParamSix = 1.0;
|
||||
|
||||
static CFStringRef kParameterOneName = CFSTR("Center");
|
||||
static CFStringRef kParameterTwoName = CFSTR("Space");
|
||||
static CFStringRef kParameterThreeName = CFSTR("Level");
|
||||
static CFStringRef kParameterFourName = CFSTR("Q");
|
||||
static CFStringRef kParameterFiveName = CFSTR("NonLin");
|
||||
static CFStringRef kParameterSixName = CFSTR("Dry/Wet");
|
||||
//Alter the name if desired, but using the plugin name is a start
|
||||
|
||||
enum {
|
||||
kParam_One =0,
|
||||
kParam_Two =1,
|
||||
kParam_Three =2,
|
||||
kParam_Four =3,
|
||||
kParam_Five =4,
|
||||
kParam_Six =5,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=6
|
||||
};
|
||||
|
||||
#pragma mark ____Srsly3
|
||||
class Srsly3 : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
Srsly3(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~Srsly3 () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
|
||||
|
||||
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess);
|
||||
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
|
||||
|
||||
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings);
|
||||
|
||||
virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo);
|
||||
|
||||
virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable );
|
||||
|
||||
virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData);
|
||||
|
||||
virtual ComponentResult Initialize();
|
||||
virtual bool SupportsTail () { return true; }
|
||||
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
|
||||
virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
|
||||
|
||||
/*! @method Version */
|
||||
virtual ComponentResult Version() { return kSrsly3Version; }
|
||||
|
||||
private:
|
||||
double biquadM2[9];
|
||||
double biquadM7[9];
|
||||
double biquadM10[9];
|
||||
|
||||
double biquadL3[9]; //note that this isn't the stereo
|
||||
double biquadL7[9]; //form of the biquad, like it's set
|
||||
double biquadR3[9]; //up to be. The M/S parts don't lend
|
||||
double biquadR7[9]; //themselves to that
|
||||
|
||||
double biquadS3[9];
|
||||
double biquadS5[9];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/Srsly3/Srsly3.r
Executable file
61
plugins/MacAU/Srsly3/Srsly3.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: Srsly3.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 5/7/24
|
||||
*
|
||||
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "Srsly3Version.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_Srsly3 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Srsly3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_Srsly3
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE Srsly3_COMP_SUBTYPE
|
||||
#define COMP_MANUF Srsly3_COMP_MANF
|
||||
|
||||
#define VERSION kSrsly3Version
|
||||
#define NAME "Airwindows: Srsly3"
|
||||
#define DESCRIPTION "Srsly3 AU"
|
||||
#define ENTRY_POINT "Srsly3Entry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
136
plugins/MacAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.pbxuser
Executable file
136
plugins/MacAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,136 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Srsly3 */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 737201587;
|
||||
PBXWorkspaceStateSaveDate = 737201587;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B6E25112BF0D0F000FBB27F /* PBXTextBookmark */ = 8B6E25112BF0D0F000FBB27F /* PBXTextBookmark */;
|
||||
8B6E25122BF0D0F000FBB27F /* PBXBookmark */ = 8B6E25122BF0D0F000FBB27F /* PBXBookmark */;
|
||||
8B6E25132BF0D0F000FBB27F /* PBXTextBookmark */ = 8B6E25132BF0D0F000FBB27F /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B6E25112BF0D0F000FBB27F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Srsly3.h */;
|
||||
name = "Srsly3.h: 137";
|
||||
rLen = 0;
|
||||
rLoc = 5698;
|
||||
rType = 0;
|
||||
vrLen = 44;
|
||||
vrLoc = 5531;
|
||||
};
|
||||
8B6E25122BF0D0F000FBB27F /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Srsly3.cpp */;
|
||||
};
|
||||
8B6E25132BF0D0F000FBB27F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Srsly3.cpp */;
|
||||
name = "Srsly3.cpp: 440";
|
||||
rLen = 0;
|
||||
rLoc = 19267;
|
||||
rType = 0;
|
||||
vrLen = 39;
|
||||
vrLoc = 11695;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Srsly3.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {867, 9036}}";
|
||||
sepNavSelRange = "{19267, 0}";
|
||||
sepNavVisRange = "{11695, 39}";
|
||||
sepNavWindowFrame = "{{674, 48}, {988, 830}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Srsly3Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2885, 0}";
|
||||
sepNavVisRange = "{963, 1985}";
|
||||
sepNavWindowFrame = "{{15, 43}, {988, 830}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Srsly3.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 2628}}";
|
||||
sepNavSelRange = "{5475, 0}";
|
||||
sepNavVisRange = "{2814, 1283}";
|
||||
sepNavWindowFrame = "{{452, 48}, {988, 830}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1485
plugins/MacAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.perspectivev3
Executable file
1485
plugins/MacAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/Srsly3/Srsly3.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/Srsly3/Srsly3.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,490 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */; };
|
||||
3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */; };
|
||||
3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */; };
|
||||
8B4119B70749654200361ABE /* Srsly3.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Srsly3.r */; };
|
||||
8BA05A6B0720730100365D66 /* Srsly3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Srsly3.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* Srsly3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Srsly3Version.h */; };
|
||||
8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A7F072073D200365D66 /* AUBase.cpp */; };
|
||||
8BA05AAF072073D300365D66 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A80072073D200365D66 /* AUBase.h */; };
|
||||
8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A81072073D200365D66 /* AUDispatch.cpp */; };
|
||||
8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A82072073D200365D66 /* AUDispatch.h */; };
|
||||
8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A83072073D200365D66 /* AUInputElement.cpp */; };
|
||||
8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A84072073D200365D66 /* AUInputElement.h */; };
|
||||
8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A85072073D200365D66 /* AUOutputElement.cpp */; };
|
||||
8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A86072073D200365D66 /* AUOutputElement.h */; };
|
||||
8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A88072073D200365D66 /* AUScopeElement.cpp */; };
|
||||
8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A89072073D200365D66 /* AUScopeElement.h */; };
|
||||
8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A8A072073D200365D66 /* ComponentBase.cpp */; };
|
||||
8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A8B072073D200365D66 /* ComponentBase.h */; };
|
||||
8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */; };
|
||||
8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A9B072073D200365D66 /* AUEffectBase.h */; };
|
||||
8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA7072073D200365D66 /* AUBuffer.cpp */; };
|
||||
8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AA8072073D200365D66 /* AUBuffer.h */; };
|
||||
8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */; };
|
||||
8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */; };
|
||||
8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */; };
|
||||
8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */; };
|
||||
8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */; };
|
||||
8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */; };
|
||||
8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */; };
|
||||
8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE10720742100365D66 /* CAMutex.cpp */; };
|
||||
8BA05AE80720742100365D66 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE20720742100365D66 /* CAMutex.h */; };
|
||||
8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */; };
|
||||
8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */; };
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
|
||||
8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05B050720754400365D66 /* CAAUParameter.cpp */; };
|
||||
8BA05B080720754400365D66 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05B060720754400365D66 /* CAAUParameter.h */; };
|
||||
8BC6025C073B072D006C4272 /* Srsly3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Srsly3.h */; };
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */; };
|
||||
F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
8BA05A660720730100365D66 /* Srsly3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Srsly3.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Srsly3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Srsly3.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Srsly3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Srsly3.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* Srsly3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Srsly3Version.h; sourceTree = "<group>"; };
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = "<group>"; };
|
||||
8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = "<group>"; };
|
||||
8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8BC6025B073B072D006C4272 /* Srsly3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Srsly3.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* Srsly3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Srsly3.component; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUBaseHelper.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.cpp; sourceTree = SYSTEM_DEVELOPER_DIR; };
|
||||
F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUBaseHelper.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.h; sourceTree = SYSTEM_DEVELOPER_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */,
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */,
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* Srsly3 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = Srsly3;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */,
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */,
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */,
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */,
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
8BA05AEB0720742700365D66 /* PublicUtility */,
|
||||
8BA05A7D072073D200365D66 /* AUPublic */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* Srsly3.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* Srsly3.h */,
|
||||
8BA05A660720730100365D66 /* Srsly3.cpp */,
|
||||
8BA05A670720730100365D66 /* Srsly3.exp */,
|
||||
8BA05A680720730100365D66 /* Srsly3.r */,
|
||||
8BA05A690720730100365D66 /* Srsly3Version.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A7D072073D200365D66 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A7E072073D200365D66 /* AUBase */,
|
||||
8BA05A99072073D200365D66 /* OtherBases */,
|
||||
8BA05AA6072073D200365D66 /* Utility */,
|
||||
);
|
||||
name = AUPublic;
|
||||
path = Extras/CoreAudio/AudioUnits/AUPublic;
|
||||
sourceTree = SYSTEM_DEVELOPER_DIR;
|
||||
};
|
||||
8BA05A7E072073D200365D66 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */,
|
||||
8BA05A80072073D200365D66 /* AUBase.h */,
|
||||
8BA05A81072073D200365D66 /* AUDispatch.cpp */,
|
||||
8BA05A82072073D200365D66 /* AUDispatch.h */,
|
||||
8BA05A83072073D200365D66 /* AUInputElement.cpp */,
|
||||
8BA05A84072073D200365D66 /* AUInputElement.h */,
|
||||
8BA05A85072073D200365D66 /* AUOutputElement.cpp */,
|
||||
8BA05A86072073D200365D66 /* AUOutputElement.h */,
|
||||
8BA05A87072073D200365D66 /* AUResources.r */,
|
||||
8BA05A88072073D200365D66 /* AUScopeElement.cpp */,
|
||||
8BA05A89072073D200365D66 /* AUScopeElement.h */,
|
||||
8BA05A8A072073D200365D66 /* ComponentBase.cpp */,
|
||||
8BA05A8B072073D200365D66 /* ComponentBase.h */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A99072073D200365D66 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A9A072073D200365D66 /* AUEffectBase.cpp */,
|
||||
8BA05A9B072073D200365D66 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05AA6072073D200365D66 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */,
|
||||
F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */,
|
||||
8BA05AA7072073D200365D66 /* AUBuffer.cpp */,
|
||||
8BA05AA8072073D200365D66 /* AUBuffer.h */,
|
||||
8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */,
|
||||
8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */,
|
||||
8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */,
|
||||
8BA05AAC072073D200365D66 /* AUSilentTimeout.h */,
|
||||
8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05AEB0720742700365D66 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05B050720754400365D66 /* CAAUParameter.cpp */,
|
||||
8BA05B060720754400365D66 /* CAAUParameter.h */,
|
||||
8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */,
|
||||
8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */,
|
||||
8BA05AE10720742100365D66 /* CAMutex.cpp */,
|
||||
8BA05AE20720742100365D66 /* CAMutex.h */,
|
||||
8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */,
|
||||
8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */,
|
||||
3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */,
|
||||
3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */,
|
||||
3EEA126C089847F5002C6BFC /* CAVectorUnit.h */,
|
||||
);
|
||||
name = PublicUtility;
|
||||
path = Extras/CoreAudio/PublicUtility;
|
||||
sourceTree = SYSTEM_DEVELOPER_DIR;
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6E0720730100365D66 /* Srsly3Version.h in Headers */,
|
||||
8BA05AAF072073D300365D66 /* AUBase.h in Headers */,
|
||||
8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */,
|
||||
8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */,
|
||||
8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */,
|
||||
8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */,
|
||||
8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */,
|
||||
8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */,
|
||||
8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */,
|
||||
8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */,
|
||||
8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */,
|
||||
8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */,
|
||||
8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */,
|
||||
8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */,
|
||||
8BA05AE80720742100365D66 /* CAMutex.h in Headers */,
|
||||
8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */,
|
||||
8BA05B080720754400365D66 /* CAAUParameter.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* Srsly3.h in Headers */,
|
||||
3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */,
|
||||
3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */,
|
||||
F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Srsly3" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Srsly3;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = Srsly3;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* Srsly3.component */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Srsly3" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* Srsly3 */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXRezBuildPhase section */
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */ = {
|
||||
isa = PBXRezBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B4119B70749654200361ABE /* Srsly3.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* Srsly3.cpp in Sources */,
|
||||
8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */,
|
||||
8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */,
|
||||
8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */,
|
||||
8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */,
|
||||
8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */,
|
||||
8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */,
|
||||
8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */,
|
||||
8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */,
|
||||
8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */,
|
||||
8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */,
|
||||
8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */,
|
||||
3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */,
|
||||
F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C167EFE841241C02AAC07 /* English */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
3E4BA244089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
EXPORTED_SYMBOLS_FILE = Srsly3.exp;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
|
||||
PRODUCT_NAME = Srsly3;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = Srsly3.exp;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.4;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
|
||||
PRODUCT_NAME = Srsly3;
|
||||
SDKROOT = macosx10.5;
|
||||
STRIP_INSTALLED_PRODUCT = YES;
|
||||
STRIP_STYLE = all;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
3E4BA248089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
SDKROOT = macosx10.6;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA249089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
SDKROOT = macosx10.6;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Srsly3" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Srsly3" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/Srsly3/Srsly3Version.h
Executable file
58
plugins/MacAU/Srsly3/Srsly3Version.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: Srsly3Version.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 5/7/24
|
||||
*
|
||||
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef __Srsly3Version_h__
|
||||
#define __Srsly3Version_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kSrsly3Version 0xFFFFFFFF
|
||||
#else
|
||||
#define kSrsly3Version 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define Srsly3_COMP_MANF 'Dthr'
|
||||
#define Srsly3_COMP_SUBTYPE 'srsn'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
5
plugins/MacAU/Srsly3/StarterAU_Prefix.pch
Executable file
5
plugins/MacAU/Srsly3/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
16
plugins/MacAU/Srsly3/version.plist
Executable file
16
plugins/MacAU/Srsly3/version.plist
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildVersion</key>
|
||||
<string>3</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>ProjectName</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>SourceVersion</key>
|
||||
<string>590000</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -220,7 +220,7 @@ OSStatus Console9Channel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
|
|||
Binary file not shown.
47
plugins/MacSignedAU/Srsly3/Info.plist
Executable file
47
plugins/MacSignedAU/Srsly3/Info.plist
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AudioComponents</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>${PRODUCT_NAME:identifier} AU</string>
|
||||
<key>factoryFunction</key>
|
||||
<string>${PRODUCT_NAME:identifier}Factory</string>
|
||||
<key>manufacturer</key>
|
||||
<string>Dthr</string>
|
||||
<key>name</key>
|
||||
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
|
||||
<key>subtype</key>
|
||||
<string>srsn</string>
|
||||
<key>type</key>
|
||||
<string>aufx</string>
|
||||
<key>version</key>
|
||||
<integer>65536</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PROJECTNAMEASIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
489
plugins/MacSignedAU/Srsly3/Srsly3.cpp
Executable file
489
plugins/MacSignedAU/Srsly3/Srsly3.cpp
Executable file
|
|
@ -0,0 +1,489 @@
|
|||
/*
|
||||
* File: Srsly3.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 5/7/24
|
||||
*
|
||||
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
Srsly3.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "Srsly3.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Srsly3)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::Srsly3
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Srsly3::Srsly3(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_One, kDefaultValue_ParamOne );
|
||||
SetParameter(kParam_Two, kDefaultValue_ParamTwo );
|
||||
SetParameter(kParam_Three, kDefaultValue_ParamThree );
|
||||
SetParameter(kParam_Four, kDefaultValue_ParamFour );
|
||||
SetParameter(kParam_Five, kDefaultValue_ParamFive );
|
||||
SetParameter(kParam_Six, kDefaultValue_ParamSix );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_One:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterOneName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamOne;
|
||||
break;
|
||||
case kParam_Two:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTwoName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTwo;
|
||||
break;
|
||||
case kParam_Three:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterThreeName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamThree;
|
||||
break;
|
||||
case kParam_Four:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFourName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFour;
|
||||
break;
|
||||
case kParam_Five:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFiveName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFive;
|
||||
break;
|
||||
case kParam_Six:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterSixName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamSix;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// state that plugin supports only stereo-in/stereo-out processing
|
||||
UInt32 Srsly3::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// Srsly3::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____Srsly3EffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::Srsly3Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Srsly3::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for (int x = 0; x < 9; x++) {
|
||||
biquadM2[x] = 0.0;
|
||||
biquadM7[x] = 0.0;
|
||||
biquadM10[x] = 0.0;
|
||||
biquadL3[x] = 0.0;
|
||||
biquadL7[x] = 0.0;
|
||||
biquadR3[x] = 0.0;
|
||||
biquadR7[x] = 0.0;
|
||||
biquadS3[x] = 0.0;
|
||||
biquadS5[x] = 0.0;
|
||||
}
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Srsly3::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus Srsly3::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer,
|
||||
AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess)
|
||||
{
|
||||
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
|
||||
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
|
||||
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
|
||||
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
|
||||
double sampleRate = GetSampleRate();
|
||||
if (sampleRate < 22000.0) sampleRate = 22000.0; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000.0 / sampleRate; //up
|
||||
biquadM7[0] = 7000.0 / sampleRate; //down
|
||||
biquadM10[0] = 10000.0 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000.0 / sampleRate; //up
|
||||
biquadL7[0] = 7000.0 / sampleRate; //way up
|
||||
biquadR3[0] = 3000.0 / sampleRate; //up
|
||||
biquadR7[0] = 7000.0 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000.0 / sampleRate; //up
|
||||
biquadS5[0] = 5000.0 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(GetParameter( kParam_One )*10.0);
|
||||
double focusS = 20.0-(GetParameter( kParam_Two )*15.0);
|
||||
double Q = GetParameter( kParam_Four )+0.25; //add Q control: from half to double intensity
|
||||
|
||||
double gainM = GetParameter( kParam_One )*2.0;
|
||||
double gainS = GetParameter( kParam_Two )*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(GetParameter( kParam_One ),2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(GetParameter( kParam_Two ),2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = GetParameter( kParam_Three ); //output pad
|
||||
double nonLin = pow(GetParameter( kParam_Five ),2); //nonlinearity of filters
|
||||
double wet = GetParameter( kParam_Six ); //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSampleL = *inputL;
|
||||
double inputSampleR = *inputR;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*outputL = inputSampleL;
|
||||
*outputR = inputSampleR;
|
||||
//direct stereo out
|
||||
|
||||
inputL += 1;
|
||||
inputR += 1;
|
||||
outputL += 1;
|
||||
outputR += 1;
|
||||
}
|
||||
return noErr;
|
||||
}
|
||||
|
||||
2
plugins/MacSignedAU/Srsly3/Srsly3.exp
Executable file
2
plugins/MacSignedAU/Srsly3/Srsly3.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_Srsly3Entry
|
||||
_Srsly3Factory
|
||||
146
plugins/MacSignedAU/Srsly3/Srsly3.h
Executable file
146
plugins/MacSignedAU/Srsly3/Srsly3.h
Executable file
|
|
@ -0,0 +1,146 @@
|
|||
/*
|
||||
* File: Srsly3.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 5/7/24
|
||||
*
|
||||
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "Srsly3Version.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __Srsly3_h__
|
||||
#define __Srsly3_h__
|
||||
|
||||
|
||||
#pragma mark ____Srsly3 Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamOne = 0.5;
|
||||
static const float kDefaultValue_ParamTwo = 0.5;
|
||||
static const float kDefaultValue_ParamThree = 1.0;
|
||||
static const float kDefaultValue_ParamFour = 0.5;
|
||||
static const float kDefaultValue_ParamFive = 0.5;
|
||||
static const float kDefaultValue_ParamSix = 1.0;
|
||||
|
||||
static CFStringRef kParameterOneName = CFSTR("Center");
|
||||
static CFStringRef kParameterTwoName = CFSTR("Space");
|
||||
static CFStringRef kParameterThreeName = CFSTR("Level");
|
||||
static CFStringRef kParameterFourName = CFSTR("Q");
|
||||
static CFStringRef kParameterFiveName = CFSTR("NonLin");
|
||||
static CFStringRef kParameterSixName = CFSTR("Dry/Wet");
|
||||
//Alter the name if desired, but using the plugin name is a start
|
||||
|
||||
enum {
|
||||
kParam_One =0,
|
||||
kParam_Two =1,
|
||||
kParam_Three =2,
|
||||
kParam_Four =3,
|
||||
kParam_Five =4,
|
||||
kParam_Six =5,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=6
|
||||
};
|
||||
|
||||
#pragma mark ____Srsly3
|
||||
class Srsly3 : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
Srsly3(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~Srsly3 () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
|
||||
|
||||
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess);
|
||||
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
|
||||
|
||||
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings);
|
||||
|
||||
virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo);
|
||||
|
||||
virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable );
|
||||
|
||||
virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData);
|
||||
|
||||
virtual ComponentResult Initialize();
|
||||
virtual bool SupportsTail () { return true; }
|
||||
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
|
||||
virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
|
||||
|
||||
/*! @method Version */
|
||||
virtual ComponentResult Version() { return kSrsly3Version; }
|
||||
|
||||
private:
|
||||
double biquadM2[9];
|
||||
double biquadM7[9];
|
||||
double biquadM10[9];
|
||||
|
||||
double biquadL3[9]; //note that this isn't the stereo
|
||||
double biquadL7[9]; //form of the biquad, like it's set
|
||||
double biquadR3[9]; //up to be. The M/S parts don't lend
|
||||
double biquadR7[9]; //themselves to that
|
||||
|
||||
double biquadS3[9];
|
||||
double biquadS5[9];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacSignedAU/Srsly3/Srsly3.r
Executable file
61
plugins/MacSignedAU/Srsly3/Srsly3.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: Srsly3.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 5/7/24
|
||||
*
|
||||
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "Srsly3Version.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_Srsly3 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Srsly3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_Srsly3
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE Srsly3_COMP_SUBTYPE
|
||||
#define COMP_MANUF Srsly3_COMP_MANF
|
||||
|
||||
#define VERSION kSrsly3Version
|
||||
#define NAME "Airwindows: Srsly3"
|
||||
#define DESCRIPTION "Srsly3 AU"
|
||||
#define ENTRY_POINT "Srsly3Entry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
136
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.pbxuser
Executable file
136
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,136 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Srsly3 */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 737201587;
|
||||
PBXWorkspaceStateSaveDate = 737201587;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B6E25112BF0D0F000FBB27F /* PBXTextBookmark */ = 8B6E25112BF0D0F000FBB27F /* PBXTextBookmark */;
|
||||
8B6E25122BF0D0F000FBB27F /* PBXBookmark */ = 8B6E25122BF0D0F000FBB27F /* PBXBookmark */;
|
||||
8B6E25132BF0D0F000FBB27F /* PBXTextBookmark */ = 8B6E25132BF0D0F000FBB27F /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B6E25112BF0D0F000FBB27F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Srsly3.h */;
|
||||
name = "Srsly3.h: 137";
|
||||
rLen = 0;
|
||||
rLoc = 5698;
|
||||
rType = 0;
|
||||
vrLen = 44;
|
||||
vrLoc = 5531;
|
||||
};
|
||||
8B6E25122BF0D0F000FBB27F /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Srsly3.cpp */;
|
||||
};
|
||||
8B6E25132BF0D0F000FBB27F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Srsly3.cpp */;
|
||||
name = "Srsly3.cpp: 440";
|
||||
rLen = 0;
|
||||
rLoc = 19267;
|
||||
rType = 0;
|
||||
vrLen = 39;
|
||||
vrLoc = 11695;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Srsly3.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {867, 9036}}";
|
||||
sepNavSelRange = "{19267, 0}";
|
||||
sepNavVisRange = "{11695, 39}";
|
||||
sepNavWindowFrame = "{{674, 48}, {988, 830}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Srsly3Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2885, 0}";
|
||||
sepNavVisRange = "{963, 1985}";
|
||||
sepNavWindowFrame = "{{15, 43}, {988, 830}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Srsly3.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 2628}}";
|
||||
sepNavSelRange = "{5475, 0}";
|
||||
sepNavVisRange = "{2814, 1283}";
|
||||
sepNavWindowFrame = "{{452, 48}, {988, 830}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1485
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.perspectivev3
Executable file
1485
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
965
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/project.pbxproj
Executable file
965
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,965 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8B8243762BF14D2C005852AD /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242EE2BF14D2C005852AD /* CAExtAudioFile.h */; };
|
||||
8B8243772BF14D2C005852AD /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242EF2BF14D2C005852AD /* CACFMachPort.h */; };
|
||||
8B8243782BF14D2C005852AD /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242F02BF14D2C005852AD /* CABool.h */; };
|
||||
8B8243792BF14D2C005852AD /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8242F12BF14D2C005852AD /* CAComponent.cpp */; };
|
||||
8B82437A2BF14D2C005852AD /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242F22BF14D2C005852AD /* CADebugger.h */; };
|
||||
8B82437B2BF14D2C005852AD /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8242F32BF14D2C005852AD /* CACFNumber.cpp */; };
|
||||
8B82437C2BF14D2C005852AD /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242F42BF14D2C005852AD /* CAGuard.h */; };
|
||||
8B82437D2BF14D2C005852AD /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242F52BF14D2C005852AD /* CAAtomic.h */; };
|
||||
8B82437E2BF14D2C005852AD /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242F62BF14D2C005852AD /* CAStreamBasicDescription.h */; };
|
||||
8B82437F2BF14D2C005852AD /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242F72BF14D2C005852AD /* CACFObject.h */; };
|
||||
8B8243802BF14D2C005852AD /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242F82BF14D2C005852AD /* CAStreamRangedDescription.h */; };
|
||||
8B8243812BF14D2C005852AD /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242F92BF14D2C005852AD /* CATokenMap.h */; };
|
||||
8B8243822BF14D2C005852AD /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242FA2BF14D2C005852AD /* CAComponent.h */; };
|
||||
8B8243832BF14D2C005852AD /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242FB2BF14D2C005852AD /* CAAudioBufferList.h */; };
|
||||
8B8243842BF14D2C005852AD /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242FC2BF14D2C005852AD /* CAAudioUnit.h */; };
|
||||
8B8243852BF14D2C005852AD /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242FD2BF14D2C005852AD /* CAAUParameter.h */; };
|
||||
8B8243862BF14D2C005852AD /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8242FE2BF14D2C005852AD /* CAException.h */; };
|
||||
8B8243872BF14D2C005852AD /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8242FF2BF14D2C005852AD /* CAAUProcessor.cpp */; };
|
||||
8B8243882BF14D2C005852AD /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243002BF14D2C005852AD /* CAAUProcessor.h */; };
|
||||
8B8243892BF14D2C005852AD /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243012BF14D2C005852AD /* CAProcess.h */; };
|
||||
8B82438A2BF14D2C005852AD /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243022BF14D2C005852AD /* CACFDictionary.h */; };
|
||||
8B82438B2BF14D2C005852AD /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243032BF14D2C005852AD /* CAPThread.h */; };
|
||||
8B82438C2BF14D2C005852AD /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243042BF14D2C005852AD /* CAAUParameter.cpp */; };
|
||||
8B82438D2BF14D2C005852AD /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243052BF14D2C005852AD /* CAAudioTimeStamp.h */; };
|
||||
8B82438E2BF14D2C005852AD /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243062BF14D2C005852AD /* CAFilePathUtils.cpp */; };
|
||||
8B82438F2BF14D2C005852AD /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243072BF14D2C005852AD /* CAAudioValueRange.h */; };
|
||||
8B8243902BF14D2C005852AD /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243082BF14D2C005852AD /* CAVectorUnitTypes.h */; };
|
||||
8B8243912BF14D2C005852AD /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243092BF14D2C005852AD /* CAAudioChannelLayoutObject.cpp */; };
|
||||
8B8243922BF14D2C005852AD /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82430A2BF14D2C005852AD /* CAGuard.cpp */; };
|
||||
8B8243932BF14D2C005852AD /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82430B2BF14D2C005852AD /* CACFNumber.h */; };
|
||||
8B8243942BF14D2C005852AD /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82430C2BF14D2C005852AD /* CACFDistributedNotification.cpp */; };
|
||||
8B8243952BF14D2C005852AD /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82430D2BF14D2C005852AD /* CACFString.h */; };
|
||||
8B8243962BF14D2C005852AD /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82430E2BF14D2C005852AD /* CAAUMIDIMapManager.cpp */; };
|
||||
8B8243972BF14D2C005852AD /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82430F2BF14D2C005852AD /* CAComponentDescription.cpp */; };
|
||||
8B8243982BF14D2C005852AD /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243102BF14D2C005852AD /* CAHostTimeBase.h */; };
|
||||
8B8243992BF14D2C005852AD /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243112BF14D2C005852AD /* CADebugMacros.cpp */; };
|
||||
8B82439A2BF14D2C005852AD /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243122BF14D2C005852AD /* CAAudioFileFormats.h */; };
|
||||
8B82439B2BF14D2C005852AD /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243132BF14D2C005852AD /* CAAUMIDIMapManager.h */; };
|
||||
8B82439C2BF14D2C005852AD /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243142BF14D2C005852AD /* CACFDictionary.cpp */; };
|
||||
8B82439D2BF14D2C005852AD /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243152BF14D2C005852AD /* CAMutex.h */; };
|
||||
8B82439E2BF14D2C005852AD /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243162BF14D2C005852AD /* CACFString.cpp */; };
|
||||
8B82439F2BF14D2C005852AD /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243172BF14D2C005852AD /* CASettingsStorage.h */; };
|
||||
8B8243A02BF14D2C005852AD /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243182BF14D2C005852AD /* CADebugPrintf.h */; };
|
||||
8B8243A12BF14D2C005852AD /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243192BF14D2C005852AD /* CAXException.cpp */; };
|
||||
8B8243A22BF14D2C005852AD /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82431A2BF14D2C005852AD /* CAAUMIDIMap.h */; };
|
||||
8B8243A32BF14D2C005852AD /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82431B2BF14D2C005852AD /* AUParamInfo.h */; };
|
||||
8B8243A42BF14D2C005852AD /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82431C2BF14D2C005852AD /* CABitOperations.h */; };
|
||||
8B8243A52BF14D2C005852AD /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82431D2BF14D2C005852AD /* CACFPreferences.cpp */; };
|
||||
8B8243A62BF14D2C005852AD /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82431E2BF14D2C005852AD /* CABundleLocker.h */; };
|
||||
8B8243A72BF14D2C005852AD /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82431F2BF14D2C005852AD /* CAPropertyAddress.h */; };
|
||||
8B8243A82BF14D2C005852AD /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243202BF14D2C005852AD /* CAXException.h */; };
|
||||
8B8243A92BF14D2C005852AD /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243212BF14D2C005852AD /* CAAudioChannelLayout.cpp */; };
|
||||
8B8243AA2BF14D2C005852AD /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243222BF14D2C005852AD /* CAThreadSafeList.h */; };
|
||||
8B8243AB2BF14D2C005852AD /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243232BF14D2C005852AD /* CAAudioUnitOutputCapturer.h */; };
|
||||
8B8243AC2BF14D2C005852AD /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243242BF14D2C005852AD /* AUParamInfo.cpp */; };
|
||||
8B8243AD2BF14D2C005852AD /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243252BF14D2C005852AD /* CASharedLibrary.cpp */; };
|
||||
8B8243AE2BF14D2C005852AD /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243262BF14D2C005852AD /* CAAUMIDIMap.cpp */; };
|
||||
8B8243AF2BF14D2C005852AD /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243272BF14D2C005852AD /* CALogMacros.h */; };
|
||||
8B8243B02BF14D2C005852AD /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243282BF14D2C005852AD /* CACFMessagePort.cpp */; };
|
||||
8B8243B12BF14D2C005852AD /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243292BF14D2C005852AD /* CARingBuffer.h */; };
|
||||
8B8243B22BF14D2C005852AD /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82432A2BF14D2C005852AD /* AUOutputBL.cpp */; };
|
||||
8B8243B32BF14D2C005852AD /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82432B2BF14D2C005852AD /* CABufferList.h */; };
|
||||
8B8243B42BF14D2C005852AD /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82432C2BF14D2C005852AD /* CASharedLibrary.h */; };
|
||||
8B8243B52BF14D2C005852AD /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82432D2BF14D2C005852AD /* CACFData.h */; };
|
||||
8B8243B62BF14D2C005852AD /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82432E2BF14D2C005852AD /* CAStreamRangedDescription.cpp */; };
|
||||
8B8243B72BF14D2C005852AD /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82432F2BF14D2C005852AD /* CAPThread.cpp */; };
|
||||
8B8243B82BF14D2C005852AD /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243302BF14D2C005852AD /* CAAutoDisposer.h */; };
|
||||
8B8243B92BF14D2C005852AD /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243312BF14D2C005852AD /* CACFPreferences.h */; };
|
||||
8B8243BA2BF14D2C005852AD /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243322BF14D2C005852AD /* CAVectorUnit.cpp */; };
|
||||
8B8243BB2BF14D2C005852AD /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243332BF14D2C005852AD /* CAComponentDescription.h */; };
|
||||
8B8243BC2BF14D2C005852AD /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243342BF14D2C005852AD /* CADebugMacros.h */; };
|
||||
8B8243BD2BF14D2C005852AD /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243352BF14D2C005852AD /* AUOutputBL.h */; };
|
||||
8B8243BE2BF14D2C005852AD /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243362BF14D2C005852AD /* CADebugPrintf.cpp */; };
|
||||
8B8243BF2BF14D2C005852AD /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243372BF14D2C005852AD /* CARingBuffer.cpp */; };
|
||||
8B8243C02BF14D2C005852AD /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243382BF14D2C005852AD /* CACFPlugIn.h */; };
|
||||
8B8243C12BF14D2C005852AD /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243392BF14D2C005852AD /* CASettingsStorage.cpp */; };
|
||||
8B8243C22BF14D2C005852AD /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82433A2BF14D2C005852AD /* CAMixMap.h */; };
|
||||
8B8243C32BF14D2C005852AD /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82433B2BF14D2C005852AD /* CACFDistributedNotification.h */; };
|
||||
8B8243C42BF14D2C005852AD /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82433C2BF14D2C005852AD /* CAFilePathUtils.h */; };
|
||||
8B8243C52BF14D2C005852AD /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82433D2BF14D2C005852AD /* CATink.h */; };
|
||||
8B8243C62BF14D2C005852AD /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82433E2BF14D2C005852AD /* CAStreamBasicDescription.cpp */; };
|
||||
8B8243C72BF14D2C005852AD /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82433F2BF14D2C005852AD /* CAAudioChannelLayout.h */; };
|
||||
8B8243C82BF14D2C005852AD /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243402BF14D2C005852AD /* CAProcess.cpp */; };
|
||||
8B8243C92BF14D2C005852AD /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243412BF14D2C005852AD /* CAHostTimeBase.cpp */; };
|
||||
8B8243CA2BF14D2C005852AD /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243422BF14D2C005852AD /* CAPersistence.cpp */; };
|
||||
8B8243CB2BF14D2C005852AD /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243432BF14D2C005852AD /* CAAudioBufferList.cpp */; };
|
||||
8B8243CC2BF14D2C005852AD /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243442BF14D2C005852AD /* CAAudioTimeStamp.cpp */; };
|
||||
8B8243CD2BF14D2C005852AD /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243452BF14D2C005852AD /* CAVectorUnit.h */; };
|
||||
8B8243CE2BF14D2C005852AD /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243462BF14D2C005852AD /* CAByteOrder.h */; };
|
||||
8B8243CF2BF14D2C005852AD /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243472BF14D2C005852AD /* CACFArray.h */; };
|
||||
8B8243D02BF14D2C005852AD /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243482BF14D2C005852AD /* CAAtomicStack.h */; };
|
||||
8B8243D12BF14D2C005852AD /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243492BF14D2C005852AD /* CAReferenceCounted.h */; };
|
||||
8B8243D22BF14D2C005852AD /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82434A2BF14D2C005852AD /* CACFMachPort.cpp */; };
|
||||
8B8243D32BF14D2C005852AD /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82434B2BF14D2C005852AD /* CABufferList.cpp */; };
|
||||
8B8243D42BF14D2C005852AD /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82434C2BF14D2C005852AD /* CAMutex.cpp */; };
|
||||
8B8243D52BF14D2C005852AD /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82434D2BF14D2C005852AD /* CADebugger.cpp */; };
|
||||
8B8243D62BF14D2C005852AD /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82434E2BF14D2C005852AD /* CABundleLocker.cpp */; };
|
||||
8B8243D72BF14D2C005852AD /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82434F2BF14D2C005852AD /* CAAudioFileFormats.cpp */; };
|
||||
8B8243D82BF14D2C005852AD /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243502BF14D2C005852AD /* CAMath.h */; };
|
||||
8B8243D92BF14D2C005852AD /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243512BF14D2C005852AD /* CACFArray.cpp */; };
|
||||
8B8243DA2BF14D2C005852AD /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243522BF14D2C005852AD /* CACFMessagePort.h */; };
|
||||
8B8243DB2BF14D2C005852AD /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243532BF14D2C005852AD /* CAAudioValueRange.cpp */; };
|
||||
8B8243DC2BF14D2C005852AD /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243542BF14D2C005852AD /* CAAudioUnit.cpp */; };
|
||||
8B8243DD2BF14D2C005852AD /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243582BF14D2C005852AD /* AUViewLocalizedStringKeys.h */; };
|
||||
8B8243DE2BF14D2C005852AD /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82435A2BF14D2C005852AD /* ComponentBase.cpp */; };
|
||||
8B8243DF2BF14D2C005852AD /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82435B2BF14D2C005852AD /* AUScopeElement.cpp */; };
|
||||
8B8243E02BF14D2C005852AD /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82435C2BF14D2C005852AD /* ComponentBase.h */; };
|
||||
8B8243E12BF14D2C005852AD /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82435D2BF14D2C005852AD /* AUBase.cpp */; };
|
||||
8B8243E22BF14D2C005852AD /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82435E2BF14D2C005852AD /* AUInputElement.h */; };
|
||||
8B8243E32BF14D2C005852AD /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82435F2BF14D2C005852AD /* AUBase.h */; };
|
||||
8B8243E42BF14D2C005852AD /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243602BF14D2C005852AD /* AUPlugInDispatch.h */; };
|
||||
8B8243E52BF14D2C005852AD /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243612BF14D2C005852AD /* AUDispatch.h */; };
|
||||
8B8243E62BF14D2C005852AD /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243622BF14D2C005852AD /* AUOutputElement.cpp */; };
|
||||
8B8243E82BF14D2C005852AD /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243642BF14D2C005852AD /* AUPlugInDispatch.cpp */; };
|
||||
8B8243E92BF14D2C005852AD /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243652BF14D2C005852AD /* AUOutputElement.h */; };
|
||||
8B8243EA2BF14D2C005852AD /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243662BF14D2C005852AD /* AUDispatch.cpp */; };
|
||||
8B8243EB2BF14D2C005852AD /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243672BF14D2C005852AD /* AUScopeElement.h */; };
|
||||
8B8243EC2BF14D2C005852AD /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243682BF14D2C005852AD /* AUInputElement.cpp */; };
|
||||
8B8243ED2BF14D2C005852AD /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82436A2BF14D2C005852AD /* AUEffectBase.cpp */; };
|
||||
8B8243EE2BF14D2C005852AD /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82436B2BF14D2C005852AD /* AUEffectBase.h */; };
|
||||
8B8243EF2BF14D2C005852AD /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82436D2BF14D2C005852AD /* AUTimestampGenerator.h */; };
|
||||
8B8243F02BF14D2C005852AD /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B82436E2BF14D2C005852AD /* AUBaseHelper.cpp */; };
|
||||
8B8243F12BF14D2C005852AD /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82436F2BF14D2C005852AD /* AUSilentTimeout.h */; };
|
||||
8B8243F22BF14D2C005852AD /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243702BF14D2C005852AD /* AUInputFormatConverter.h */; };
|
||||
8B8243F32BF14D2C005852AD /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243712BF14D2C005852AD /* AUTimestampGenerator.cpp */; };
|
||||
8B8243F42BF14D2C005852AD /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8243722BF14D2C005852AD /* AUBuffer.cpp */; };
|
||||
8B8243F52BF14D2C005852AD /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243732BF14D2C005852AD /* AUMIDIDefs.h */; };
|
||||
8B8243F62BF14D2C005852AD /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243742BF14D2C005852AD /* AUBuffer.h */; };
|
||||
8B8243F72BF14D2C005852AD /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243752BF14D2C005852AD /* AUBaseHelper.h */; };
|
||||
8BA05A6B0720730100365D66 /* Srsly3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Srsly3.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* Srsly3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Srsly3Version.h */; };
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
|
||||
8BC6025C073B072D006C4272 /* Srsly3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Srsly3.h */; };
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
8B8242EE2BF14D2C005852AD /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
|
||||
8B8242EF2BF14D2C005852AD /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
|
||||
8B8242F02BF14D2C005852AD /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
|
||||
8B8242F12BF14D2C005852AD /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
|
||||
8B8242F22BF14D2C005852AD /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
|
||||
8B8242F32BF14D2C005852AD /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
|
||||
8B8242F42BF14D2C005852AD /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
|
||||
8B8242F52BF14D2C005852AD /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
|
||||
8B8242F62BF14D2C005852AD /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8B8242F72BF14D2C005852AD /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
|
||||
8B8242F82BF14D2C005852AD /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
|
||||
8B8242F92BF14D2C005852AD /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
|
||||
8B8242FA2BF14D2C005852AD /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
|
||||
8B8242FB2BF14D2C005852AD /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
|
||||
8B8242FC2BF14D2C005852AD /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
|
||||
8B8242FD2BF14D2C005852AD /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8B8242FE2BF14D2C005852AD /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
|
||||
8B8242FF2BF14D2C005852AD /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
|
||||
8B8243002BF14D2C005852AD /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
|
||||
8B8243012BF14D2C005852AD /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
|
||||
8B8243022BF14D2C005852AD /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
|
||||
8B8243032BF14D2C005852AD /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
|
||||
8B8243042BF14D2C005852AD /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8B8243052BF14D2C005852AD /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
|
||||
8B8243062BF14D2C005852AD /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
|
||||
8B8243072BF14D2C005852AD /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
|
||||
8B8243082BF14D2C005852AD /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B8243092BF14D2C005852AD /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
|
||||
8B82430A2BF14D2C005852AD /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
|
||||
8B82430B2BF14D2C005852AD /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
|
||||
8B82430C2BF14D2C005852AD /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
|
||||
8B82430D2BF14D2C005852AD /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
|
||||
8B82430E2BF14D2C005852AD /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
|
||||
8B82430F2BF14D2C005852AD /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8243102BF14D2C005852AD /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
|
||||
8B8243112BF14D2C005852AD /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
|
||||
8B8243122BF14D2C005852AD /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
|
||||
8B8243132BF14D2C005852AD /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
|
||||
8B8243142BF14D2C005852AD /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
|
||||
8B8243152BF14D2C005852AD /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8B8243162BF14D2C005852AD /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
|
||||
8B8243172BF14D2C005852AD /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
|
||||
8B8243182BF14D2C005852AD /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
|
||||
8B8243192BF14D2C005852AD /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
|
||||
8B82431A2BF14D2C005852AD /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
|
||||
8B82431B2BF14D2C005852AD /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
|
||||
8B82431C2BF14D2C005852AD /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
|
||||
8B82431D2BF14D2C005852AD /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
|
||||
8B82431E2BF14D2C005852AD /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
|
||||
8B82431F2BF14D2C005852AD /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
|
||||
8B8243202BF14D2C005852AD /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
|
||||
8B8243212BF14D2C005852AD /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8B8243222BF14D2C005852AD /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
8B8243232BF14D2C005852AD /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
|
||||
8B8243242BF14D2C005852AD /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
|
||||
8B8243252BF14D2C005852AD /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
|
||||
8B8243262BF14D2C005852AD /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
|
||||
8B8243272BF14D2C005852AD /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
|
||||
8B8243282BF14D2C005852AD /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
|
||||
8B8243292BF14D2C005852AD /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
|
||||
8B82432A2BF14D2C005852AD /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
|
||||
8B82432B2BF14D2C005852AD /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
|
||||
8B82432C2BF14D2C005852AD /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
|
||||
8B82432D2BF14D2C005852AD /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
|
||||
8B82432E2BF14D2C005852AD /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
|
||||
8B82432F2BF14D2C005852AD /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
|
||||
8B8243302BF14D2C005852AD /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
|
||||
8B8243312BF14D2C005852AD /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
|
||||
8B8243322BF14D2C005852AD /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
8B8243332BF14D2C005852AD /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
|
||||
8B8243342BF14D2C005852AD /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
|
||||
8B8243352BF14D2C005852AD /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
|
||||
8B8243362BF14D2C005852AD /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
|
||||
8B8243372BF14D2C005852AD /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B8243382BF14D2C005852AD /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
|
||||
8B8243392BF14D2C005852AD /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
|
||||
8B82433A2BF14D2C005852AD /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
|
||||
8B82433B2BF14D2C005852AD /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
|
||||
8B82433C2BF14D2C005852AD /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
|
||||
8B82433D2BF14D2C005852AD /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
|
||||
8B82433E2BF14D2C005852AD /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8B82433F2BF14D2C005852AD /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8B8243402BF14D2C005852AD /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
|
||||
8B8243412BF14D2C005852AD /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
|
||||
8B8243422BF14D2C005852AD /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
|
||||
8B8243432BF14D2C005852AD /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
|
||||
8B8243442BF14D2C005852AD /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
|
||||
8B8243452BF14D2C005852AD /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
8B8243462BF14D2C005852AD /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
|
||||
8B8243472BF14D2C005852AD /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
|
||||
8B8243482BF14D2C005852AD /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
|
||||
8B8243492BF14D2C005852AD /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
|
||||
8B82434A2BF14D2C005852AD /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
|
||||
8B82434B2BF14D2C005852AD /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
|
||||
8B82434C2BF14D2C005852AD /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8B82434D2BF14D2C005852AD /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
|
||||
8B82434E2BF14D2C005852AD /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
|
||||
8B82434F2BF14D2C005852AD /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
|
||||
8B8243502BF14D2C005852AD /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
|
||||
8B8243512BF14D2C005852AD /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
|
||||
8B8243522BF14D2C005852AD /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
|
||||
8B8243532BF14D2C005852AD /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
|
||||
8B8243542BF14D2C005852AD /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
|
||||
8B8243582BF14D2C005852AD /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
8B82435A2BF14D2C005852AD /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8B82435B2BF14D2C005852AD /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8B82435C2BF14D2C005852AD /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8B82435D2BF14D2C005852AD /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8B82435E2BF14D2C005852AD /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8B82435F2BF14D2C005852AD /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8B8243602BF14D2C005852AD /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
|
||||
8B8243612BF14D2C005852AD /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8B8243622BF14D2C005852AD /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8B8243632BF14D2C005852AD /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8B8243642BF14D2C005852AD /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B8243652BF14D2C005852AD /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8B8243662BF14D2C005852AD /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B8243672BF14D2C005852AD /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8B8243682BF14D2C005852AD /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8B82436A2BF14D2C005852AD /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8B82436B2BF14D2C005852AD /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8B82436D2BF14D2C005852AD /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8B82436E2BF14D2C005852AD /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
|
||||
8B82436F2BF14D2C005852AD /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8B8243702BF14D2C005852AD /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8B8243712BF14D2C005852AD /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
|
||||
8B8243722BF14D2C005852AD /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B8243732BF14D2C005852AD /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
|
||||
8B8243742BF14D2C005852AD /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8B8243752BF14D2C005852AD /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
|
||||
8B8243F82BF14DCB005852AD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8BA05A660720730100365D66 /* Srsly3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Srsly3.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Srsly3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Srsly3.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Srsly3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Srsly3.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* Srsly3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Srsly3Version.h; sourceTree = "<group>"; };
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||
8BC6025B073B072D006C4272 /* Srsly3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Srsly3.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* Srsly3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Srsly3.component; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */,
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */,
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* Srsly3 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = Srsly3;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */,
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */,
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */,
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */,
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8242EC2BF14D2C005852AD /* CA_SDK */,
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* Srsly3.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8242EC2BF14D2C005852AD /* CA_SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8242ED2BF14D2C005852AD /* PublicUtility */,
|
||||
8B8243552BF14D2C005852AD /* AudioUnits */,
|
||||
);
|
||||
name = CA_SDK;
|
||||
path = ../../../../CA_SDK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8242ED2BF14D2C005852AD /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8242EE2BF14D2C005852AD /* CAExtAudioFile.h */,
|
||||
8B8242EF2BF14D2C005852AD /* CACFMachPort.h */,
|
||||
8B8242F02BF14D2C005852AD /* CABool.h */,
|
||||
8B8242F12BF14D2C005852AD /* CAComponent.cpp */,
|
||||
8B8242F22BF14D2C005852AD /* CADebugger.h */,
|
||||
8B8242F32BF14D2C005852AD /* CACFNumber.cpp */,
|
||||
8B8242F42BF14D2C005852AD /* CAGuard.h */,
|
||||
8B8242F52BF14D2C005852AD /* CAAtomic.h */,
|
||||
8B8242F62BF14D2C005852AD /* CAStreamBasicDescription.h */,
|
||||
8B8242F72BF14D2C005852AD /* CACFObject.h */,
|
||||
8B8242F82BF14D2C005852AD /* CAStreamRangedDescription.h */,
|
||||
8B8242F92BF14D2C005852AD /* CATokenMap.h */,
|
||||
8B8242FA2BF14D2C005852AD /* CAComponent.h */,
|
||||
8B8242FB2BF14D2C005852AD /* CAAudioBufferList.h */,
|
||||
8B8242FC2BF14D2C005852AD /* CAAudioUnit.h */,
|
||||
8B8242FD2BF14D2C005852AD /* CAAUParameter.h */,
|
||||
8B8242FE2BF14D2C005852AD /* CAException.h */,
|
||||
8B8242FF2BF14D2C005852AD /* CAAUProcessor.cpp */,
|
||||
8B8243002BF14D2C005852AD /* CAAUProcessor.h */,
|
||||
8B8243012BF14D2C005852AD /* CAProcess.h */,
|
||||
8B8243022BF14D2C005852AD /* CACFDictionary.h */,
|
||||
8B8243032BF14D2C005852AD /* CAPThread.h */,
|
||||
8B8243042BF14D2C005852AD /* CAAUParameter.cpp */,
|
||||
8B8243052BF14D2C005852AD /* CAAudioTimeStamp.h */,
|
||||
8B8243062BF14D2C005852AD /* CAFilePathUtils.cpp */,
|
||||
8B8243072BF14D2C005852AD /* CAAudioValueRange.h */,
|
||||
8B8243082BF14D2C005852AD /* CAVectorUnitTypes.h */,
|
||||
8B8243092BF14D2C005852AD /* CAAudioChannelLayoutObject.cpp */,
|
||||
8B82430A2BF14D2C005852AD /* CAGuard.cpp */,
|
||||
8B82430B2BF14D2C005852AD /* CACFNumber.h */,
|
||||
8B82430C2BF14D2C005852AD /* CACFDistributedNotification.cpp */,
|
||||
8B82430D2BF14D2C005852AD /* CACFString.h */,
|
||||
8B82430E2BF14D2C005852AD /* CAAUMIDIMapManager.cpp */,
|
||||
8B82430F2BF14D2C005852AD /* CAComponentDescription.cpp */,
|
||||
8B8243102BF14D2C005852AD /* CAHostTimeBase.h */,
|
||||
8B8243112BF14D2C005852AD /* CADebugMacros.cpp */,
|
||||
8B8243122BF14D2C005852AD /* CAAudioFileFormats.h */,
|
||||
8B8243132BF14D2C005852AD /* CAAUMIDIMapManager.h */,
|
||||
8B8243142BF14D2C005852AD /* CACFDictionary.cpp */,
|
||||
8B8243152BF14D2C005852AD /* CAMutex.h */,
|
||||
8B8243162BF14D2C005852AD /* CACFString.cpp */,
|
||||
8B8243172BF14D2C005852AD /* CASettingsStorage.h */,
|
||||
8B8243182BF14D2C005852AD /* CADebugPrintf.h */,
|
||||
8B8243192BF14D2C005852AD /* CAXException.cpp */,
|
||||
8B82431A2BF14D2C005852AD /* CAAUMIDIMap.h */,
|
||||
8B82431B2BF14D2C005852AD /* AUParamInfo.h */,
|
||||
8B82431C2BF14D2C005852AD /* CABitOperations.h */,
|
||||
8B82431D2BF14D2C005852AD /* CACFPreferences.cpp */,
|
||||
8B82431E2BF14D2C005852AD /* CABundleLocker.h */,
|
||||
8B82431F2BF14D2C005852AD /* CAPropertyAddress.h */,
|
||||
8B8243202BF14D2C005852AD /* CAXException.h */,
|
||||
8B8243212BF14D2C005852AD /* CAAudioChannelLayout.cpp */,
|
||||
8B8243222BF14D2C005852AD /* CAThreadSafeList.h */,
|
||||
8B8243232BF14D2C005852AD /* CAAudioUnitOutputCapturer.h */,
|
||||
8B8243242BF14D2C005852AD /* AUParamInfo.cpp */,
|
||||
8B8243252BF14D2C005852AD /* CASharedLibrary.cpp */,
|
||||
8B8243262BF14D2C005852AD /* CAAUMIDIMap.cpp */,
|
||||
8B8243272BF14D2C005852AD /* CALogMacros.h */,
|
||||
8B8243282BF14D2C005852AD /* CACFMessagePort.cpp */,
|
||||
8B8243292BF14D2C005852AD /* CARingBuffer.h */,
|
||||
8B82432A2BF14D2C005852AD /* AUOutputBL.cpp */,
|
||||
8B82432B2BF14D2C005852AD /* CABufferList.h */,
|
||||
8B82432C2BF14D2C005852AD /* CASharedLibrary.h */,
|
||||
8B82432D2BF14D2C005852AD /* CACFData.h */,
|
||||
8B82432E2BF14D2C005852AD /* CAStreamRangedDescription.cpp */,
|
||||
8B82432F2BF14D2C005852AD /* CAPThread.cpp */,
|
||||
8B8243302BF14D2C005852AD /* CAAutoDisposer.h */,
|
||||
8B8243312BF14D2C005852AD /* CACFPreferences.h */,
|
||||
8B8243322BF14D2C005852AD /* CAVectorUnit.cpp */,
|
||||
8B8243332BF14D2C005852AD /* CAComponentDescription.h */,
|
||||
8B8243342BF14D2C005852AD /* CADebugMacros.h */,
|
||||
8B8243352BF14D2C005852AD /* AUOutputBL.h */,
|
||||
8B8243362BF14D2C005852AD /* CADebugPrintf.cpp */,
|
||||
8B8243372BF14D2C005852AD /* CARingBuffer.cpp */,
|
||||
8B8243382BF14D2C005852AD /* CACFPlugIn.h */,
|
||||
8B8243392BF14D2C005852AD /* CASettingsStorage.cpp */,
|
||||
8B82433A2BF14D2C005852AD /* CAMixMap.h */,
|
||||
8B82433B2BF14D2C005852AD /* CACFDistributedNotification.h */,
|
||||
8B82433C2BF14D2C005852AD /* CAFilePathUtils.h */,
|
||||
8B82433D2BF14D2C005852AD /* CATink.h */,
|
||||
8B82433E2BF14D2C005852AD /* CAStreamBasicDescription.cpp */,
|
||||
8B82433F2BF14D2C005852AD /* CAAudioChannelLayout.h */,
|
||||
8B8243402BF14D2C005852AD /* CAProcess.cpp */,
|
||||
8B8243412BF14D2C005852AD /* CAHostTimeBase.cpp */,
|
||||
8B8243422BF14D2C005852AD /* CAPersistence.cpp */,
|
||||
8B8243432BF14D2C005852AD /* CAAudioBufferList.cpp */,
|
||||
8B8243442BF14D2C005852AD /* CAAudioTimeStamp.cpp */,
|
||||
8B8243452BF14D2C005852AD /* CAVectorUnit.h */,
|
||||
8B8243462BF14D2C005852AD /* CAByteOrder.h */,
|
||||
8B8243472BF14D2C005852AD /* CACFArray.h */,
|
||||
8B8243482BF14D2C005852AD /* CAAtomicStack.h */,
|
||||
8B8243492BF14D2C005852AD /* CAReferenceCounted.h */,
|
||||
8B82434A2BF14D2C005852AD /* CACFMachPort.cpp */,
|
||||
8B82434B2BF14D2C005852AD /* CABufferList.cpp */,
|
||||
8B82434C2BF14D2C005852AD /* CAMutex.cpp */,
|
||||
8B82434D2BF14D2C005852AD /* CADebugger.cpp */,
|
||||
8B82434E2BF14D2C005852AD /* CABundleLocker.cpp */,
|
||||
8B82434F2BF14D2C005852AD /* CAAudioFileFormats.cpp */,
|
||||
8B8243502BF14D2C005852AD /* CAMath.h */,
|
||||
8B8243512BF14D2C005852AD /* CACFArray.cpp */,
|
||||
8B8243522BF14D2C005852AD /* CACFMessagePort.h */,
|
||||
8B8243532BF14D2C005852AD /* CAAudioValueRange.cpp */,
|
||||
8B8243542BF14D2C005852AD /* CAAudioUnit.cpp */,
|
||||
);
|
||||
path = PublicUtility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8243552BF14D2C005852AD /* AudioUnits */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8243562BF14D2C005852AD /* AUPublic */,
|
||||
);
|
||||
path = AudioUnits;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8243562BF14D2C005852AD /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8243572BF14D2C005852AD /* AUViewBase */,
|
||||
8B8243592BF14D2C005852AD /* AUBase */,
|
||||
8B8243692BF14D2C005852AD /* OtherBases */,
|
||||
8B82436C2BF14D2C005852AD /* Utility */,
|
||||
);
|
||||
path = AUPublic;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8243572BF14D2C005852AD /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8243582BF14D2C005852AD /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8243592BF14D2C005852AD /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B82435A2BF14D2C005852AD /* ComponentBase.cpp */,
|
||||
8B82435B2BF14D2C005852AD /* AUScopeElement.cpp */,
|
||||
8B82435C2BF14D2C005852AD /* ComponentBase.h */,
|
||||
8B82435D2BF14D2C005852AD /* AUBase.cpp */,
|
||||
8B82435E2BF14D2C005852AD /* AUInputElement.h */,
|
||||
8B82435F2BF14D2C005852AD /* AUBase.h */,
|
||||
8B8243602BF14D2C005852AD /* AUPlugInDispatch.h */,
|
||||
8B8243612BF14D2C005852AD /* AUDispatch.h */,
|
||||
8B8243622BF14D2C005852AD /* AUOutputElement.cpp */,
|
||||
8B8243632BF14D2C005852AD /* AUResources.r */,
|
||||
8B8243642BF14D2C005852AD /* AUPlugInDispatch.cpp */,
|
||||
8B8243652BF14D2C005852AD /* AUOutputElement.h */,
|
||||
8B8243662BF14D2C005852AD /* AUDispatch.cpp */,
|
||||
8B8243672BF14D2C005852AD /* AUScopeElement.h */,
|
||||
8B8243682BF14D2C005852AD /* AUInputElement.cpp */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8243692BF14D2C005852AD /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B82436A2BF14D2C005852AD /* AUEffectBase.cpp */,
|
||||
8B82436B2BF14D2C005852AD /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B82436C2BF14D2C005852AD /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B82436D2BF14D2C005852AD /* AUTimestampGenerator.h */,
|
||||
8B82436E2BF14D2C005852AD /* AUBaseHelper.cpp */,
|
||||
8B82436F2BF14D2C005852AD /* AUSilentTimeout.h */,
|
||||
8B8243702BF14D2C005852AD /* AUInputFormatConverter.h */,
|
||||
8B8243712BF14D2C005852AD /* AUTimestampGenerator.cpp */,
|
||||
8B8243722BF14D2C005852AD /* AUBuffer.cpp */,
|
||||
8B8243732BF14D2C005852AD /* AUMIDIDefs.h */,
|
||||
8B8243742BF14D2C005852AD /* AUBuffer.h */,
|
||||
8B8243752BF14D2C005852AD /* AUBaseHelper.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* Srsly3.h */,
|
||||
8BA05A660720730100365D66 /* Srsly3.cpp */,
|
||||
8BA05A670720730100365D66 /* Srsly3.exp */,
|
||||
8BA05A680720730100365D66 /* Srsly3.r */,
|
||||
8BA05A690720730100365D66 /* Srsly3Version.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B8243A62BF14D2C005852AD /* CABundleLocker.h in Headers */,
|
||||
8B8243C72BF14D2C005852AD /* CAAudioChannelLayout.h in Headers */,
|
||||
8B8243BD2BF14D2C005852AD /* AUOutputBL.h in Headers */,
|
||||
8B8243982BF14D2C005852AD /* CAHostTimeBase.h in Headers */,
|
||||
8B8243E02BF14D2C005852AD /* ComponentBase.h in Headers */,
|
||||
8B8243D02BF14D2C005852AD /* CAAtomicStack.h in Headers */,
|
||||
8B82438D2BF14D2C005852AD /* CAAudioTimeStamp.h in Headers */,
|
||||
8B8243AA2BF14D2C005852AD /* CAThreadSafeList.h in Headers */,
|
||||
8B8243852BF14D2C005852AD /* CAAUParameter.h in Headers */,
|
||||
8B8243F72BF14D2C005852AD /* AUBaseHelper.h in Headers */,
|
||||
8B8243EF2BF14D2C005852AD /* AUTimestampGenerator.h in Headers */,
|
||||
8B8243A02BF14D2C005852AD /* CADebugPrintf.h in Headers */,
|
||||
8B8243DA2BF14D2C005852AD /* CACFMessagePort.h in Headers */,
|
||||
8B8243882BF14D2C005852AD /* CAAUProcessor.h in Headers */,
|
||||
8B8243842BF14D2C005852AD /* CAAudioUnit.h in Headers */,
|
||||
8B8243DD2BF14D2C005852AD /* AUViewLocalizedStringKeys.h in Headers */,
|
||||
8B8243C32BF14D2C005852AD /* CACFDistributedNotification.h in Headers */,
|
||||
8B8243822BF14D2C005852AD /* CAComponent.h in Headers */,
|
||||
8B8243902BF14D2C005852AD /* CAVectorUnitTypes.h in Headers */,
|
||||
8BA05A6E0720730100365D66 /* Srsly3Version.h in Headers */,
|
||||
8B8243C42BF14D2C005852AD /* CAFilePathUtils.h in Headers */,
|
||||
8B8243862BF14D2C005852AD /* CAException.h in Headers */,
|
||||
8B82437D2BF14D2C005852AD /* CAAtomic.h in Headers */,
|
||||
8B82437C2BF14D2C005852AD /* CAGuard.h in Headers */,
|
||||
8B8243E22BF14D2C005852AD /* AUInputElement.h in Headers */,
|
||||
8B8243B92BF14D2C005852AD /* CACFPreferences.h in Headers */,
|
||||
8B8243CE2BF14D2C005852AD /* CAByteOrder.h in Headers */,
|
||||
8B8243B12BF14D2C005852AD /* CARingBuffer.h in Headers */,
|
||||
8B8243782BF14D2C005852AD /* CABool.h in Headers */,
|
||||
8B82439D2BF14D2C005852AD /* CAMutex.h in Headers */,
|
||||
8B8243E32BF14D2C005852AD /* AUBase.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* Srsly3.h in Headers */,
|
||||
8B8243952BF14D2C005852AD /* CACFString.h in Headers */,
|
||||
8B8243B42BF14D2C005852AD /* CASharedLibrary.h in Headers */,
|
||||
8B8243812BF14D2C005852AD /* CATokenMap.h in Headers */,
|
||||
8B8243762BF14D2C005852AD /* CAExtAudioFile.h in Headers */,
|
||||
8B82438B2BF14D2C005852AD /* CAPThread.h in Headers */,
|
||||
8B8243A72BF14D2C005852AD /* CAPropertyAddress.h in Headers */,
|
||||
8B8243D12BF14D2C005852AD /* CAReferenceCounted.h in Headers */,
|
||||
8B8243F62BF14D2C005852AD /* AUBuffer.h in Headers */,
|
||||
8B8243D82BF14D2C005852AD /* CAMath.h in Headers */,
|
||||
8B8243B82BF14D2C005852AD /* CAAutoDisposer.h in Headers */,
|
||||
8B82437F2BF14D2C005852AD /* CACFObject.h in Headers */,
|
||||
8B82439F2BF14D2C005852AD /* CASettingsStorage.h in Headers */,
|
||||
8B8243A82BF14D2C005852AD /* CAXException.h in Headers */,
|
||||
8B8243C52BF14D2C005852AD /* CATink.h in Headers */,
|
||||
8B8243F22BF14D2C005852AD /* AUInputFormatConverter.h in Headers */,
|
||||
8B8243CD2BF14D2C005852AD /* CAVectorUnit.h in Headers */,
|
||||
8B8243892BF14D2C005852AD /* CAProcess.h in Headers */,
|
||||
8B82438F2BF14D2C005852AD /* CAAudioValueRange.h in Headers */,
|
||||
8B8243A42BF14D2C005852AD /* CABitOperations.h in Headers */,
|
||||
8B82439A2BF14D2C005852AD /* CAAudioFileFormats.h in Headers */,
|
||||
8B8243932BF14D2C005852AD /* CACFNumber.h in Headers */,
|
||||
8B8243AB2BF14D2C005852AD /* CAAudioUnitOutputCapturer.h in Headers */,
|
||||
8B8243BC2BF14D2C005852AD /* CADebugMacros.h in Headers */,
|
||||
8B8243F52BF14D2C005852AD /* AUMIDIDefs.h in Headers */,
|
||||
8B8243B52BF14D2C005852AD /* CACFData.h in Headers */,
|
||||
8B82437E2BF14D2C005852AD /* CAStreamBasicDescription.h in Headers */,
|
||||
8B8243E42BF14D2C005852AD /* AUPlugInDispatch.h in Headers */,
|
||||
8B8243802BF14D2C005852AD /* CAStreamRangedDescription.h in Headers */,
|
||||
8B8243C02BF14D2C005852AD /* CACFPlugIn.h in Headers */,
|
||||
8B8243832BF14D2C005852AD /* CAAudioBufferList.h in Headers */,
|
||||
8B82439B2BF14D2C005852AD /* CAAUMIDIMapManager.h in Headers */,
|
||||
8B8243EE2BF14D2C005852AD /* AUEffectBase.h in Headers */,
|
||||
8B82438A2BF14D2C005852AD /* CACFDictionary.h in Headers */,
|
||||
8B8243EB2BF14D2C005852AD /* AUScopeElement.h in Headers */,
|
||||
8B8243BB2BF14D2C005852AD /* CAComponentDescription.h in Headers */,
|
||||
8B8243F12BF14D2C005852AD /* AUSilentTimeout.h in Headers */,
|
||||
8B8243B32BF14D2C005852AD /* CABufferList.h in Headers */,
|
||||
8B8243E52BF14D2C005852AD /* AUDispatch.h in Headers */,
|
||||
8B8243E92BF14D2C005852AD /* AUOutputElement.h in Headers */,
|
||||
8B8243AF2BF14D2C005852AD /* CALogMacros.h in Headers */,
|
||||
8B8243A32BF14D2C005852AD /* AUParamInfo.h in Headers */,
|
||||
8B8243C22BF14D2C005852AD /* CAMixMap.h in Headers */,
|
||||
8B8243CF2BF14D2C005852AD /* CACFArray.h in Headers */,
|
||||
8B8243772BF14D2C005852AD /* CACFMachPort.h in Headers */,
|
||||
8B8243A22BF14D2C005852AD /* CAAUMIDIMap.h in Headers */,
|
||||
8B82437A2BF14D2C005852AD /* CADebugger.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Srsly3" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Srsly3;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = Srsly3;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* Srsly3.component */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1420;
|
||||
};
|
||||
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Srsly3" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
de,
|
||||
en,
|
||||
fr,
|
||||
ja,
|
||||
Base,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* Srsly3 */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B8243B22BF14D2C005852AD /* AUOutputBL.cpp in Sources */,
|
||||
8B8243D72BF14D2C005852AD /* CAAudioFileFormats.cpp in Sources */,
|
||||
8B8243C92BF14D2C005852AD /* CAHostTimeBase.cpp in Sources */,
|
||||
8B8243A12BF14D2C005852AD /* CAXException.cpp in Sources */,
|
||||
8B8243CB2BF14D2C005852AD /* CAAudioBufferList.cpp in Sources */,
|
||||
8B82438E2BF14D2C005852AD /* CAFilePathUtils.cpp in Sources */,
|
||||
8B82438C2BF14D2C005852AD /* CAAUParameter.cpp in Sources */,
|
||||
8B8243AE2BF14D2C005852AD /* CAAUMIDIMap.cpp in Sources */,
|
||||
8B8243DB2BF14D2C005852AD /* CAAudioValueRange.cpp in Sources */,
|
||||
8B8243EA2BF14D2C005852AD /* AUDispatch.cpp in Sources */,
|
||||
8B8243A52BF14D2C005852AD /* CACFPreferences.cpp in Sources */,
|
||||
8B8243E82BF14D2C005852AD /* AUPlugInDispatch.cpp in Sources */,
|
||||
8B8243872BF14D2C005852AD /* CAAUProcessor.cpp in Sources */,
|
||||
8B82439C2BF14D2C005852AD /* CACFDictionary.cpp in Sources */,
|
||||
8B8243F02BF14D2C005852AD /* AUBaseHelper.cpp in Sources */,
|
||||
8B8243D52BF14D2C005852AD /* CADebugger.cpp in Sources */,
|
||||
8B8243A92BF14D2C005852AD /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8B8243AC2BF14D2C005852AD /* AUParamInfo.cpp in Sources */,
|
||||
8B8243CA2BF14D2C005852AD /* CAPersistence.cpp in Sources */,
|
||||
8B8243BE2BF14D2C005852AD /* CADebugPrintf.cpp in Sources */,
|
||||
8B8243F32BF14D2C005852AD /* AUTimestampGenerator.cpp in Sources */,
|
||||
8B8243C62BF14D2C005852AD /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8B8243962BF14D2C005852AD /* CAAUMIDIMapManager.cpp in Sources */,
|
||||
8B8243C12BF14D2C005852AD /* CASettingsStorage.cpp in Sources */,
|
||||
8B8243E62BF14D2C005852AD /* AUOutputElement.cpp in Sources */,
|
||||
8B8243922BF14D2C005852AD /* CAGuard.cpp in Sources */,
|
||||
8BA05A6B0720730100365D66 /* Srsly3.cpp in Sources */,
|
||||
8B8243D42BF14D2C005852AD /* CAMutex.cpp in Sources */,
|
||||
8B8243ED2BF14D2C005852AD /* AUEffectBase.cpp in Sources */,
|
||||
8B8243D22BF14D2C005852AD /* CACFMachPort.cpp in Sources */,
|
||||
8B8243E12BF14D2C005852AD /* AUBase.cpp in Sources */,
|
||||
8B8243AD2BF14D2C005852AD /* CASharedLibrary.cpp in Sources */,
|
||||
8B8243942BF14D2C005852AD /* CACFDistributedNotification.cpp in Sources */,
|
||||
8B8243972BF14D2C005852AD /* CAComponentDescription.cpp in Sources */,
|
||||
8B82439E2BF14D2C005852AD /* CACFString.cpp in Sources */,
|
||||
8B8243DE2BF14D2C005852AD /* ComponentBase.cpp in Sources */,
|
||||
8B8243BF2BF14D2C005852AD /* CARingBuffer.cpp in Sources */,
|
||||
8B8243DF2BF14D2C005852AD /* AUScopeElement.cpp in Sources */,
|
||||
8B8243DC2BF14D2C005852AD /* CAAudioUnit.cpp in Sources */,
|
||||
8B8243D92BF14D2C005852AD /* CACFArray.cpp in Sources */,
|
||||
8B8243D62BF14D2C005852AD /* CABundleLocker.cpp in Sources */,
|
||||
8B8243C82BF14D2C005852AD /* CAProcess.cpp in Sources */,
|
||||
8B8243B62BF14D2C005852AD /* CAStreamRangedDescription.cpp in Sources */,
|
||||
8B8243B72BF14D2C005852AD /* CAPThread.cpp in Sources */,
|
||||
8B8243792BF14D2C005852AD /* CAComponent.cpp in Sources */,
|
||||
8B8243912BF14D2C005852AD /* CAAudioChannelLayoutObject.cpp in Sources */,
|
||||
8B8243CC2BF14D2C005852AD /* CAAudioTimeStamp.cpp in Sources */,
|
||||
8B8243D32BF14D2C005852AD /* CABufferList.cpp in Sources */,
|
||||
8B8243B02BF14D2C005852AD /* CACFMessagePort.cpp in Sources */,
|
||||
8B8243BA2BF14D2C005852AD /* CAVectorUnit.cpp in Sources */,
|
||||
8B8243EC2BF14D2C005852AD /* AUInputElement.cpp in Sources */,
|
||||
8B8243F42BF14D2C005852AD /* AUBuffer.cpp in Sources */,
|
||||
8B8243992BF14D2C005852AD /* CADebugMacros.cpp in Sources */,
|
||||
8B82437B2BF14D2C005852AD /* CACFNumber.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8B8243F82BF14DCB005852AD /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
3E4BA244089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
EXPORTED_SYMBOLS_FILE = Srsly3.exp;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
|
||||
PRODUCT_NAME = Srsly3;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SDKROOT = macosx;
|
||||
STRIP_STYLE = debugging;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
EXPORTED_SYMBOLS_FILE = Srsly3.exp;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
|
||||
PRODUCT_NAME = Srsly3;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SDKROOT = macosx;
|
||||
STRIP_INSTALLED_PRODUCT = YES;
|
||||
STRIP_STYLE = debugging;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
3E4BA248089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/CA_SDK/**";
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA249089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/CA_SDK/**";
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Srsly3" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Srsly3" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
7
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
plugins/MacSignedAU/Srsly3/Srsly3.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1420"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Srsly3.component"
|
||||
BlueprintName = "Srsly3"
|
||||
ReferencedContainer = "container:Srsly3.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Srsly3.component"
|
||||
BlueprintName = "Srsly3"
|
||||
ReferencedContainer = "container:Srsly3.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Srsly3.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D01CCC60486CAD60068D4B7</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
58
plugins/MacSignedAU/Srsly3/Srsly3Version.h
Executable file
58
plugins/MacSignedAU/Srsly3/Srsly3Version.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: Srsly3Version.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 5/7/24
|
||||
*
|
||||
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef __Srsly3Version_h__
|
||||
#define __Srsly3Version_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kSrsly3Version 0xFFFFFFFF
|
||||
#else
|
||||
#define kSrsly3Version 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define Srsly3_COMP_MANF 'Dthr'
|
||||
#define Srsly3_COMP_SUBTYPE 'srsn'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
5
plugins/MacSignedAU/Srsly3/StarterAU_Prefix.pch
Executable file
5
plugins/MacSignedAU/Srsly3/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
BIN
plugins/MacSignedAU/Srsly3/en.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacSignedAU/Srsly3/en.lproj/InfoPlist.strings
Executable file
Binary file not shown.
16
plugins/MacSignedAU/Srsly3/version.plist
Executable file
16
plugins/MacSignedAU/Srsly3/version.plist
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildVersion</key>
|
||||
<string>3</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>ProjectName</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>SourceVersion</key>
|
||||
<string>590000</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
|
|
@ -15,7 +15,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "Console9Channel.vst"
|
||||
BlueprintName = "Console9Channel"
|
||||
ReferencedContainer = "container:Console9Channel.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BuildableName = "Console9Channel.vst"
|
||||
BlueprintName = "Console9Channel"
|
||||
ReferencedContainer = "container:Console9Channel.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ void Console9Channel::processReplacing(float **inputs, float **outputs, VstInt32
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
@ -98,7 +98,7 @@ void Console9Channel::processDoubleReplacing(double **inputs, double **outputs,
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
|
|||
108
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/christopherjohnson.pbxuser
Executable file
108
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,108 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Srsly3 */;
|
||||
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
324,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 737200632;
|
||||
PBXWorkspaceStateSaveDate = 737200632;
|
||||
};
|
||||
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
2407DEB6089929BA00EB68BF /* Srsly3.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {849, 2952}}";
|
||||
sepNavSelRange = "{521, 0}";
|
||||
sepNavVisRange = "{4615, 1745}";
|
||||
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
245463B80991757100464AD3 /* Srsly3.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1110, 1530}}";
|
||||
sepNavSelRange = "{2831, 0}";
|
||||
sepNavVisRange = "{247, 1450}";
|
||||
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
|
||||
sepNavSelRange = "{10616, 0}";
|
||||
sepNavVisRange = "{9653, 2414}";
|
||||
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
24D8286F09A914000093AEF8 /* Srsly3Proc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {966, 8838}}";
|
||||
sepNavSelRange = "{19693, 0}";
|
||||
sepNavVisRange = "{6079, 1916}";
|
||||
sepNavWindowFrame = "{{31, 42}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1503
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/christopherjohnson.perspectivev3
Executable file
1503
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
462
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/project.pbxproj
Executable file
462
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,462 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
2407DEB9089929BA00EB68BF /* Srsly3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* Srsly3.cpp */; };
|
||||
245463B90991757100464AD3 /* Srsly3.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* Srsly3.h */; };
|
||||
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
|
||||
24D8287009A914000093AEF8 /* Srsly3Proc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* Srsly3Proc.cpp */; };
|
||||
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
|
||||
8B82440B2BF14E1E005852AD /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8243FF2BF14E1E005852AD /* vstfxstore.h */; };
|
||||
8B82440C2BF14E1E005852AD /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8244002BF14E1E005852AD /* aeffect.h */; };
|
||||
8B82440D2BF14E1E005852AD /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8244012BF14E1E005852AD /* aeffectx.h */; };
|
||||
8B82440E2BF14E1E005852AD /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8244052BF14E1E005852AD /* audioeffectx.h */; };
|
||||
8B82440F2BF14E1E005852AD /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8244062BF14E1E005852AD /* audioeffect.cpp */; };
|
||||
8B8244102BF14E1E005852AD /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8244072BF14E1E005852AD /* audioeffectx.cpp */; };
|
||||
8B8244112BF14E1E005852AD /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8244082BF14E1E005852AD /* aeffeditor.h */; };
|
||||
8B8244122BF14E1E005852AD /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8244092BF14E1E005852AD /* vstplugmain.cpp */; };
|
||||
8B8244132BF14E1E005852AD /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B82440A2BF14E1E005852AD /* audioeffect.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
2407DE920899296600EB68BF /* Srsly3.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Srsly3.vst; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2407DEB6089929BA00EB68BF /* Srsly3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Srsly3.cpp; path = source/Srsly3.cpp; sourceTree = "<group>"; };
|
||||
245463B80991757100464AD3 /* Srsly3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Srsly3.h; path = source/Srsly3.h; sourceTree = "<group>"; };
|
||||
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
|
||||
24D8286F09A914000093AEF8 /* Srsly3Proc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Srsly3Proc.cpp; path = source/Srsly3Proc.cpp; sourceTree = "<group>"; };
|
||||
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; };
|
||||
8B8243FF2BF14E1E005852AD /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
|
||||
8B8244002BF14E1E005852AD /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
|
||||
8B8244012BF14E1E005852AD /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
|
||||
8B8244052BF14E1E005852AD /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
|
||||
8B8244062BF14E1E005852AD /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
|
||||
8B8244072BF14E1E005852AD /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
|
||||
8B8244082BF14E1E005852AD /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
|
||||
8B8244092BF14E1E005852AD /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
|
||||
8B82440A2BF14E1E005852AD /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* FM-Chopper */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
);
|
||||
name = "FM-Chopper";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */,
|
||||
24CFB70307E7A0220081BD57 /* PkgInfo */,
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8243FC2BF14E1E005852AD /* vstsdk2.4 */,
|
||||
2407DEB6089929BA00EB68BF /* Srsly3.cpp */,
|
||||
24D8286F09A914000093AEF8 /* Srsly3Proc.cpp */,
|
||||
245463B80991757100464AD3 /* Srsly3.h */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2407DE920899296600EB68BF /* Srsly3.vst */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8243FC2BF14E1E005852AD /* vstsdk2.4 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8243FD2BF14E1E005852AD /* pluginterfaces */,
|
||||
8B8244022BF14E1E005852AD /* public.sdk */,
|
||||
);
|
||||
name = vstsdk2.4;
|
||||
path = ../../../../vstsdk2.4;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8243FD2BF14E1E005852AD /* pluginterfaces */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8243FE2BF14E1E005852AD /* vst2.x */,
|
||||
);
|
||||
path = pluginterfaces;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8243FE2BF14E1E005852AD /* vst2.x */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8243FF2BF14E1E005852AD /* vstfxstore.h */,
|
||||
8B8244002BF14E1E005852AD /* aeffect.h */,
|
||||
8B8244012BF14E1E005852AD /* aeffectx.h */,
|
||||
);
|
||||
path = vst2.x;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8244022BF14E1E005852AD /* public.sdk */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8244032BF14E1E005852AD /* source */,
|
||||
);
|
||||
path = public.sdk;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8244032BF14E1E005852AD /* source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8244042BF14E1E005852AD /* vst2.x */,
|
||||
);
|
||||
path = source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8244042BF14E1E005852AD /* vst2.x */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8244052BF14E1E005852AD /* audioeffectx.h */,
|
||||
8B8244062BF14E1E005852AD /* audioeffect.cpp */,
|
||||
8B8244072BF14E1E005852AD /* audioeffectx.cpp */,
|
||||
8B8244082BF14E1E005852AD /* aeffeditor.h */,
|
||||
8B8244092BF14E1E005852AD /* vstplugmain.cpp */,
|
||||
8B82440A2BF14E1E005852AD /* audioeffect.h */,
|
||||
);
|
||||
path = vst2.x;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B8244112BF14E1E005852AD /* aeffeditor.h in Headers */,
|
||||
245463B90991757100464AD3 /* Srsly3.h in Headers */,
|
||||
8B8244132BF14E1E005852AD /* audioeffect.h in Headers */,
|
||||
8B82440C2BF14E1E005852AD /* aeffect.h in Headers */,
|
||||
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
|
||||
8B82440E2BF14E1E005852AD /* audioeffectx.h in Headers */,
|
||||
8B82440B2BF14E1E005852AD /* vstfxstore.h in Headers */,
|
||||
8B82440D2BF14E1E005852AD /* aeffectx.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Srsly3" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Srsly3;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = "FM-Chopper";
|
||||
productReference = 2407DE920899296600EB68BF /* Srsly3.vst */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1420;
|
||||
};
|
||||
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Srsly3" */;
|
||||
compatibilityVersion = "Xcode 2.4";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
ja,
|
||||
Base,
|
||||
en,
|
||||
fr,
|
||||
de,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Copy PkgInfo";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\"";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B8244102BF14E1E005852AD /* audioeffectx.cpp in Sources */,
|
||||
2407DEB9089929BA00EB68BF /* Srsly3.cpp in Sources */,
|
||||
8B82440F2BF14E1E005852AD /* audioeffect.cpp in Sources */,
|
||||
8B8244122BF14E1E005852AD /* vstplugmain.cpp in Sources */,
|
||||
24D8287009A914000093AEF8 /* Srsly3Proc.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
24BEAAEE08919AE700E695F9 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_MODEL_TUNING = "";
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
|
||||
GCC_WARN_UNKNOWN_PRAGMAS = NO;
|
||||
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
|
||||
INFOPLIST_FILE = ./mac/Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
|
||||
LIBRARY_SEARCH_PATHS = "";
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.Srsly3;
|
||||
PRODUCT_NAME = Srsly3;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SDKROOT = macosx;
|
||||
SECTORDER_FLAGS = "";
|
||||
STRIP_STYLE = debugging;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
WRAPPER_EXTENSION = vst;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
24BEAAEF08919AE700E695F9 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_ENABLE_TRIGRAPHS = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = "";
|
||||
GCC_OPTIMIZATION_LEVEL = s;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
|
||||
GCC_WARN_UNKNOWN_PRAGMAS = NO;
|
||||
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
|
||||
INFOPLIST_FILE = ./mac/Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
|
||||
LIBRARY_SEARCH_PATHS = "";
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_REZFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.Srsly3;
|
||||
PRODUCT_NAME = Srsly3;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SDKROOT = macosx;
|
||||
SECTORDER_FLAGS = "";
|
||||
SKIP_INSTALL = NO;
|
||||
STRIP_INSTALLED_PRODUCT = YES;
|
||||
STRIP_STYLE = debugging;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
WRAPPER_EXTENSION = vst;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
24BEAAF208919AE700E695F9 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
INFOPLIST_FILE = "";
|
||||
INFOPLIST_PREPROCESS = NO;
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
24BEAAF308919AE700E695F9 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_MODEL_TUNING = G4;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = s;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
INFOPLIST_FILE = "";
|
||||
INFOPLIST_PREPROCESS = NO;
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.1;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Srsly3" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
24BEAAEE08919AE700E695F9 /* Debug */,
|
||||
24BEAAEF08919AE700E695F9 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Srsly3" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
24BEAAF208919AE700E695F9 /* Debug */,
|
||||
24BEAAF308919AE700E695F9 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
7
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Executable file
7
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:Sample.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
1372
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/spiadmin.mode1v3
Executable file
1372
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/spiadmin.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
143
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/spiadmin.pbxuser
Executable file
143
plugins/MacSignedVST/Srsly3/Srsly3.xcodeproj/spiadmin.pbxuser
Executable file
|
|
@ -0,0 +1,143 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */;
|
||||
codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
829,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
789,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 345089498;
|
||||
PBXWorkspaceStateSaveDate = 345089498;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */;
|
||||
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
2407DEB6089929BA00EB68BF /* Gain.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}";
|
||||
sepNavSelRange = "{247, 0}";
|
||||
sepNavVisRange = "{0, 1657}";
|
||||
};
|
||||
};
|
||||
245463B80991757100464AD3 /* Gain.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 975}}";
|
||||
sepNavSelRange = "{1552, 0}";
|
||||
sepNavVisRange = "{796, 1857}";
|
||||
sepNavWindowFrame = "{{15, 465}, {750, 558}}";
|
||||
};
|
||||
};
|
||||
24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 488}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 798}";
|
||||
};
|
||||
};
|
||||
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}";
|
||||
sepNavSelRange = "{10641, 0}";
|
||||
sepNavVisRange = "{10076, 1095}";
|
||||
};
|
||||
};
|
||||
24D8286F09A914000093AEF8 /* GainProc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 482}}";
|
||||
sepNavSelRange = "{239, 0}";
|
||||
sepNavVisRange = "{0, 950}";
|
||||
};
|
||||
};
|
||||
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 493}}";
|
||||
sepNavSelRange = "{249, 0}";
|
||||
sepNavVisRange = "{0, 249}";
|
||||
};
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Gain */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
|
||||
name = "Gain.cpp: 10";
|
||||
rLen = 0;
|
||||
rLoc = 247;
|
||||
rType = 0;
|
||||
vrLen = 1657;
|
||||
vrLoc = 0;
|
||||
};
|
||||
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
|
||||
name = "Gain.cpp: 10";
|
||||
rLen = 0;
|
||||
rLoc = 247;
|
||||
rType = 0;
|
||||
vrLen = 1625;
|
||||
vrLoc = 0;
|
||||
};
|
||||
91857D94148EF55400AAA11B /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
91857D95148EF55400AAA11B /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1420"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BlueprintName = "Srsly3"
|
||||
ReferencedContainer = "container:Srsly3.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BlueprintName = "Srsly3"
|
||||
ReferencedContainer = "container:Srsly3.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Srsly3.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D01CCC60486CAD60068D4B7</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>«PROJECTNAME».xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D01CCC60486CAD60068D4B7</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "«PROJECTNAME».vst"
|
||||
BlueprintName = "«PROJECTNAME»"
|
||||
ReferencedContainer = "container:Sample.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
24
plugins/MacSignedVST/Srsly3/mac/Info.plist
Executable file
24
plugins/MacSignedVST/Srsly3/mac/Info.plist
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Srsly3</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
1
plugins/MacSignedVST/Srsly3/mac/PkgInfo
Executable file
1
plugins/MacSignedVST/Srsly3/mac/PkgInfo
Executable file
|
|
@ -0,0 +1 @@
|
|||
BNDL????
|
||||
17
plugins/MacSignedVST/Srsly3/mac/xcode_vst_prefix.h
Executable file
17
plugins/MacSignedVST/Srsly3/mac/xcode_vst_prefix.h
Executable file
|
|
@ -0,0 +1,17 @@
|
|||
#define MAC 1
|
||||
#define MACX 1
|
||||
|
||||
#define USE_NAMESPACE 0
|
||||
|
||||
#define TARGET_API_MAC_CARBON 1
|
||||
#define USENAVSERVICES 1
|
||||
|
||||
#define __CF_USE_FRAMEWORK_INCLUDES__
|
||||
|
||||
#if __MWERKS__
|
||||
#define __NOEXTENSIONS__
|
||||
#endif
|
||||
|
||||
#define QUARTZ 1
|
||||
|
||||
#include <AvailabilityMacros.h>
|
||||
172
plugins/MacSignedVST/Srsly3/source/Srsly3.cpp
Executable file
172
plugins/MacSignedVST/Srsly3/source/Srsly3.cpp
Executable file
|
|
@ -0,0 +1,172 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#include "Srsly3.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Srsly3(audioMaster);}
|
||||
|
||||
Srsly3::Srsly3(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 0.5;
|
||||
C = 1.0;
|
||||
D = 0.5;
|
||||
E = 0.5;
|
||||
F = 1.0;
|
||||
|
||||
for (int x = 0; x < 9; x++) {
|
||||
biquadM2[x] = 0.0;
|
||||
biquadM7[x] = 0.0;
|
||||
biquadM10[x] = 0.0;
|
||||
biquadL3[x] = 0.0;
|
||||
biquadL7[x] = 0.0;
|
||||
biquadR3[x] = 0.0;
|
||||
biquadR7[x] = 0.0;
|
||||
biquadS3[x] = 0.0;
|
||||
biquadS5[x] = 0.0;
|
||||
}
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
//this is reset: values being initialized only once. Startup values, whatever they are.
|
||||
|
||||
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
|
||||
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
|
||||
_canDo.insert("x2in2out");
|
||||
setNumInputs(kNumInputs);
|
||||
setNumOutputs(kNumOutputs);
|
||||
setUniqueID(kUniqueId);
|
||||
canProcessReplacing(); // supports output replacing
|
||||
canDoubleReplacing(); // supports double precision processing
|
||||
programsAreChunks(true);
|
||||
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
|
||||
}
|
||||
|
||||
Srsly3::~Srsly3() {}
|
||||
VstInt32 Srsly3::getVendorVersion () {return 1000;}
|
||||
void Srsly3::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void Srsly3::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
|
||||
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
|
||||
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
|
||||
|
||||
static float pinParameter(float data)
|
||||
{
|
||||
if (data < 0.0f) return 0.0f;
|
||||
if (data > 1.0f) return 1.0f;
|
||||
return data;
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = A;
|
||||
chunkData[1] = B;
|
||||
chunkData[2] = C;
|
||||
chunkData[3] = D;
|
||||
chunkData[4] = E;
|
||||
chunkData[5] = F;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
A = pinParameter(chunkData[0]);
|
||||
B = pinParameter(chunkData[1]);
|
||||
C = pinParameter(chunkData[2]);
|
||||
D = pinParameter(chunkData[3]);
|
||||
E = pinParameter(chunkData[4]);
|
||||
F = pinParameter(chunkData[5]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Srsly3::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParamA: A = value; break;
|
||||
case kParamB: B = value; break;
|
||||
case kParamC: C = value; break;
|
||||
case kParamD: D = value; break;
|
||||
case kParamE: E = value; break;
|
||||
case kParamF: F = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float Srsly3::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParamA: return A; break;
|
||||
case kParamB: return B; break;
|
||||
case kParamC: return C; break;
|
||||
case kParamD: return D; break;
|
||||
case kParamE: return E; break;
|
||||
case kParamF: return F; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void Srsly3::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "Center", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "Space", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Level", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "Q", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "Nonlin", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void Srsly3::getParameterDisplay(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
|
||||
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
|
||||
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
|
||||
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
|
||||
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
|
||||
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void Srsly3::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool Srsly3::getEffectName(char* name) {
|
||||
vst_strncpy(name, "Srsly3", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory Srsly3::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool Srsly3::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows Srsly3", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool Srsly3::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
84
plugins/MacSignedVST/Srsly3/source/Srsly3.h
Executable file
84
plugins/MacSignedVST/Srsly3/source/Srsly3.h
Executable file
|
|
@ -0,0 +1,84 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#define __Srsly3_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParamA =0,
|
||||
kParamB =1,
|
||||
kParamC =2,
|
||||
kParamD =3,
|
||||
kParamE =4,
|
||||
kParamF =5,
|
||||
kNumParameters = 6
|
||||
}; //
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'srsn'; //Change this to what the AU identity is!
|
||||
|
||||
class Srsly3 :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
Srsly3(audioMasterCallback audioMaster);
|
||||
~Srsly3();
|
||||
virtual bool getEffectName(char* name); // The plug-in name
|
||||
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
|
||||
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
|
||||
virtual bool getVendorString(char* text); // Vendor info
|
||||
virtual VstInt32 getVendorVersion(); // Version number
|
||||
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
|
||||
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
|
||||
virtual void getProgramName(char *name); // read the name from the host
|
||||
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
|
||||
virtual VstInt32 getChunk (void** data, bool isPreset);
|
||||
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
|
||||
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
|
||||
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
|
||||
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
|
||||
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
|
||||
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
|
||||
virtual VstInt32 canDo(char *text);
|
||||
private:
|
||||
char _programName[kVstMaxProgNameLen + 1];
|
||||
std::set< std::string > _canDo;
|
||||
|
||||
float A;
|
||||
float B;
|
||||
float C;
|
||||
float D;
|
||||
float E;
|
||||
float F;
|
||||
|
||||
double biquadM2[9];
|
||||
double biquadM7[9];
|
||||
double biquadM10[9];
|
||||
|
||||
double biquadL3[9]; //note that this isn't the stereo
|
||||
double biquadL7[9]; //form of the biquad, like it's set
|
||||
double biquadR3[9]; //up to be. The M/S parts don't lend
|
||||
double biquadR7[9]; //themselves to that
|
||||
|
||||
double biquadS3[9];
|
||||
double biquadS5[9];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
510
plugins/MacSignedVST/Srsly3/source/Srsly3Proc.cpp
Executable file
510
plugins/MacSignedVST/Srsly3/source/Srsly3Proc.cpp
Executable file
|
|
@ -0,0 +1,510 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#include "Srsly3.h"
|
||||
#endif
|
||||
|
||||
void Srsly3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
float* in1 = inputs[0];
|
||||
float* in2 = inputs[1];
|
||||
float* out1 = outputs[0];
|
||||
float* out2 = outputs[1];
|
||||
|
||||
double sampleRate = getSampleRate();
|
||||
if (sampleRate < 22000) sampleRate = 22000; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000 / sampleRate; //up
|
||||
biquadM7[0] = 7000 / sampleRate; //down
|
||||
biquadM10[0] = 10000 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000 / sampleRate; //up
|
||||
biquadL7[0] = 7000 / sampleRate; //way up
|
||||
biquadR3[0] = 3000 / sampleRate; //up
|
||||
biquadR7[0] = 7000 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000 / sampleRate; //up
|
||||
biquadS5[0] = 5000 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(A*10.0);
|
||||
double focusS = 21.0-(B*15.0);
|
||||
double Q = D+0.25; //add Q control: from half to double intensity
|
||||
double gainM = A*2.0;
|
||||
double gainS = B*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(A,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(B,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = C; //output pad
|
||||
double nonLin = pow(E,2); //output pad
|
||||
double wet = F; //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
//[9] is RIGHT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[10] is RIGHT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
|
||||
void Srsly3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
double* in1 = inputs[0];
|
||||
double* in2 = inputs[1];
|
||||
double* out1 = outputs[0];
|
||||
double* out2 = outputs[1];
|
||||
|
||||
double sampleRate = getSampleRate();
|
||||
if (sampleRate < 22000) sampleRate = 22000; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000 / sampleRate; //up
|
||||
biquadM7[0] = 7000 / sampleRate; //down
|
||||
biquadM10[0] = 10000 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000 / sampleRate; //up
|
||||
biquadL7[0] = 7000 / sampleRate; //way up
|
||||
biquadR3[0] = 3000 / sampleRate; //up
|
||||
biquadR7[0] = 7000 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000 / sampleRate; //up
|
||||
biquadS5[0] = 5000 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(A*10.0);
|
||||
double focusS = 21.0-(B*15.0);
|
||||
double Q = D+0.25; //add Q control: from half to double intensity
|
||||
double gainM = A*2.0;
|
||||
double gainS = B*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(A,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(B,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = C; //output pad
|
||||
double nonLin = pow(E,2); //output pad
|
||||
double wet = F; //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
//[9] is RIGHT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[10] is RIGHT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 64 bit stereo floating point dither
|
||||
//int expon; frexp((double)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//frexp((double)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//end 64 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
|
|
@ -49,11 +49,11 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 733434966;
|
||||
PBXWorkspaceStateSaveDate = 733434966;
|
||||
PBXPerProjectTemplateStateSaveDate = 737200115;
|
||||
PBXWorkspaceStateSaveDate = 737200115;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BFF25EF2BB754B400B6740F /* PBXTextBookmark */ = 8BFF25EF2BB754B400B6740F /* PBXTextBookmark */;
|
||||
8B6E24A42BF0C87E00FBB27F /* PBXTextBookmark */ = 8B6E24A42BF0C87E00FBB27F /* PBXTextBookmark */;
|
||||
8BFF25F02BB754B400B6740F /* PBXTextBookmark */ = 8BFF25F02BB754B400B6740F /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
|
||||
|
|
@ -86,10 +86,10 @@
|
|||
};
|
||||
24D8286F09A914000093AEF8 /* Console9ChannelProc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1029, 2394}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {660, 2484}}";
|
||||
sepNavSelRange = "{923, 0}";
|
||||
sepNavVisRange = "{761, 279}";
|
||||
sepNavWindowFrame = "{{732, 47}, {895, 831}}";
|
||||
sepNavVisRange = "{828, 177}";
|
||||
sepNavWindowFrame = "{{330, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
|
||||
|
|
@ -106,15 +106,15 @@
|
|||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8BFF25EF2BB754B400B6740F /* PBXTextBookmark */ = {
|
||||
8B6E24A42BF0C87E00FBB27F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 24D8286F09A914000093AEF8 /* Console9ChannelProc.cpp */;
|
||||
name = "Console9ChannelProc.cpp: 28";
|
||||
rLen = 0;
|
||||
rLoc = 923;
|
||||
rType = 0;
|
||||
vrLen = 279;
|
||||
vrLoc = 761;
|
||||
vrLen = 177;
|
||||
vrLoc = 828;
|
||||
};
|
||||
8BFF25F02BB754B400B6740F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@
|
|||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>698 322 810 487 0 0 1440 878 </string>
|
||||
<string>630 322 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -351,10 +351,10 @@
|
|||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BFF25F02BB754B400B6740F</string>
|
||||
<string>8B6E24A42BF0C87E00FBB27F</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8BFF25EF2BB754B400B6740F</string>
|
||||
<string>8BFF25F02BB754B400B6740F</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -368,18 +368,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {603, 132}}</string>
|
||||
<string>{{0, 0}, {603, 117}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>698 322 810 487 0 0 1440 878 </string>
|
||||
<string>630 322 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>132pt</string>
|
||||
<string>117pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>309pt</string>
|
||||
<string>324pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -393,9 +393,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {603, 282}}</string>
|
||||
<string>{{10, 27}, {603, 297}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>698 322 810 487 0 0 1440 878 </string>
|
||||
<string>630 322 810 487 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -477,11 +477,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BFF25F12BB754B400B6740F</string>
|
||||
<string>8B6E24A52BF0C87E00FBB27F</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BFF25F22BB754B400B6740F</string>
|
||||
<string>8B6E24A62BF0C87E00FBB27F</string>
|
||||
<string>8B0237581D42B1C400E1E8C8</string>
|
||||
<string>8BFF25F32BB754B400B6740F</string>
|
||||
<string>8B6E24A72BF0C87E00FBB27F</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -634,7 +634,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>733435060.53206003</real>
|
||||
<real>737200254.36259902</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -651,11 +651,10 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BFF25F42BB754B400B6740F</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacVST/Console9Channel/Console9Channel.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>698 322 810 487 0 0 1440 878 </string>
|
||||
<string>630 322 810 487 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ void Console9Channel::processReplacing(float **inputs, float **outputs, VstInt32
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
@ -98,7 +98,7 @@ void Console9Channel::processDoubleReplacing(double **inputs, double **outputs,
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
|
|||
108
plugins/MacVST/Srsly3/Srsly3.xcodeproj/christopherjohnson.pbxuser
Executable file
108
plugins/MacVST/Srsly3/Srsly3.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,108 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Srsly3 */;
|
||||
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
324,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 737200632;
|
||||
PBXWorkspaceStateSaveDate = 737200632;
|
||||
};
|
||||
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
2407DEB6089929BA00EB68BF /* Srsly3.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {849, 2952}}";
|
||||
sepNavSelRange = "{521, 0}";
|
||||
sepNavVisRange = "{4615, 1745}";
|
||||
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
245463B80991757100464AD3 /* Srsly3.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1110, 1530}}";
|
||||
sepNavSelRange = "{2831, 0}";
|
||||
sepNavVisRange = "{247, 1450}";
|
||||
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
|
||||
sepNavSelRange = "{10616, 0}";
|
||||
sepNavVisRange = "{9653, 2414}";
|
||||
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
24D8286F09A914000093AEF8 /* Srsly3Proc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {966, 8838}}";
|
||||
sepNavSelRange = "{19693, 0}";
|
||||
sepNavVisRange = "{6079, 1916}";
|
||||
sepNavWindowFrame = "{{31, 42}, {895, 831}}";
|
||||
};
|
||||
};
|
||||
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Srsly3 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1503
plugins/MacVST/Srsly3/Srsly3.xcodeproj/christopherjohnson.perspectivev3
Executable file
1503
plugins/MacVST/Srsly3/Srsly3.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
2201
plugins/MacVST/Srsly3/Srsly3.xcodeproj/project.pbxproj
Executable file
2201
plugins/MacVST/Srsly3/Srsly3.xcodeproj/project.pbxproj
Executable file
File diff suppressed because it is too large
Load diff
7
plugins/MacVST/Srsly3/Srsly3.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Executable file
7
plugins/MacVST/Srsly3/Srsly3.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:Sample.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
Binary file not shown.
Binary file not shown.
1372
plugins/MacVST/Srsly3/Srsly3.xcodeproj/spiadmin.mode1v3
Executable file
1372
plugins/MacVST/Srsly3/Srsly3.xcodeproj/spiadmin.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
143
plugins/MacVST/Srsly3/Srsly3.xcodeproj/spiadmin.pbxuser
Executable file
143
plugins/MacVST/Srsly3/Srsly3.xcodeproj/spiadmin.pbxuser
Executable file
|
|
@ -0,0 +1,143 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */;
|
||||
codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
829,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
789,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 345089498;
|
||||
PBXWorkspaceStateSaveDate = 345089498;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */;
|
||||
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
2407DEB6089929BA00EB68BF /* Gain.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}";
|
||||
sepNavSelRange = "{247, 0}";
|
||||
sepNavVisRange = "{0, 1657}";
|
||||
};
|
||||
};
|
||||
245463B80991757100464AD3 /* Gain.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 975}}";
|
||||
sepNavSelRange = "{1552, 0}";
|
||||
sepNavVisRange = "{796, 1857}";
|
||||
sepNavWindowFrame = "{{15, 465}, {750, 558}}";
|
||||
};
|
||||
};
|
||||
24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 488}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 798}";
|
||||
};
|
||||
};
|
||||
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}";
|
||||
sepNavSelRange = "{10641, 0}";
|
||||
sepNavVisRange = "{10076, 1095}";
|
||||
};
|
||||
};
|
||||
24D8286F09A914000093AEF8 /* GainProc.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 482}}";
|
||||
sepNavSelRange = "{239, 0}";
|
||||
sepNavVisRange = "{0, 950}";
|
||||
};
|
||||
};
|
||||
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {992, 493}}";
|
||||
sepNavSelRange = "{249, 0}";
|
||||
sepNavVisRange = "{0, 249}";
|
||||
};
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Gain */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
|
||||
name = "Gain.cpp: 10";
|
||||
rLen = 0;
|
||||
rLoc = 247;
|
||||
rType = 0;
|
||||
vrLen = 1657;
|
||||
vrLoc = 0;
|
||||
};
|
||||
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
|
||||
name = "Gain.cpp: 10";
|
||||
rLen = 0;
|
||||
rLoc = 247;
|
||||
rType = 0;
|
||||
vrLen = 1625;
|
||||
vrLoc = 0;
|
||||
};
|
||||
91857D94148EF55400AAA11B /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
91857D95148EF55400AAA11B /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0720"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BlueprintName = "Gain"
|
||||
ReferencedContainer = "container:Gain.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BlueprintName = "Gain"
|
||||
ReferencedContainer = "container:Gain.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "Gain.vst"
|
||||
BlueprintName = "Gain"
|
||||
ReferencedContainer = "container:Gain.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Gain.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>8</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D01CCC60486CAD60068D4B7</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>«PROJECTNAME».xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D01CCC60486CAD60068D4B7</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
|
||||
BuildableName = "«PROJECTNAME».vst"
|
||||
BlueprintName = "«PROJECTNAME»"
|
||||
ReferencedContainer = "container:Sample.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
24
plugins/MacVST/Srsly3/mac/Info.plist
Executable file
24
plugins/MacVST/Srsly3/mac/Info.plist
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Srsly3</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.airwindows.Srsly3</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
1
plugins/MacVST/Srsly3/mac/PkgInfo
Executable file
1
plugins/MacVST/Srsly3/mac/PkgInfo
Executable file
|
|
@ -0,0 +1 @@
|
|||
BNDL????
|
||||
17
plugins/MacVST/Srsly3/mac/xcode_vst_prefix.h
Executable file
17
plugins/MacVST/Srsly3/mac/xcode_vst_prefix.h
Executable file
|
|
@ -0,0 +1,17 @@
|
|||
#define MAC 1
|
||||
#define MACX 1
|
||||
|
||||
#define USE_NAMESPACE 0
|
||||
|
||||
#define TARGET_API_MAC_CARBON 1
|
||||
#define USENAVSERVICES 1
|
||||
|
||||
#define __CF_USE_FRAMEWORK_INCLUDES__
|
||||
|
||||
#if __MWERKS__
|
||||
#define __NOEXTENSIONS__
|
||||
#endif
|
||||
|
||||
#define QUARTZ 1
|
||||
|
||||
#include <AvailabilityMacros.h>
|
||||
172
plugins/MacVST/Srsly3/source/Srsly3.cpp
Executable file
172
plugins/MacVST/Srsly3/source/Srsly3.cpp
Executable file
|
|
@ -0,0 +1,172 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#include "Srsly3.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Srsly3(audioMaster);}
|
||||
|
||||
Srsly3::Srsly3(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 0.5;
|
||||
C = 1.0;
|
||||
D = 0.5;
|
||||
E = 0.5;
|
||||
F = 1.0;
|
||||
|
||||
for (int x = 0; x < 9; x++) {
|
||||
biquadM2[x] = 0.0;
|
||||
biquadM7[x] = 0.0;
|
||||
biquadM10[x] = 0.0;
|
||||
biquadL3[x] = 0.0;
|
||||
biquadL7[x] = 0.0;
|
||||
biquadR3[x] = 0.0;
|
||||
biquadR7[x] = 0.0;
|
||||
biquadS3[x] = 0.0;
|
||||
biquadS5[x] = 0.0;
|
||||
}
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
//this is reset: values being initialized only once. Startup values, whatever they are.
|
||||
|
||||
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
|
||||
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
|
||||
_canDo.insert("x2in2out");
|
||||
setNumInputs(kNumInputs);
|
||||
setNumOutputs(kNumOutputs);
|
||||
setUniqueID(kUniqueId);
|
||||
canProcessReplacing(); // supports output replacing
|
||||
canDoubleReplacing(); // supports double precision processing
|
||||
programsAreChunks(true);
|
||||
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
|
||||
}
|
||||
|
||||
Srsly3::~Srsly3() {}
|
||||
VstInt32 Srsly3::getVendorVersion () {return 1000;}
|
||||
void Srsly3::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void Srsly3::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
|
||||
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
|
||||
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
|
||||
|
||||
static float pinParameter(float data)
|
||||
{
|
||||
if (data < 0.0f) return 0.0f;
|
||||
if (data > 1.0f) return 1.0f;
|
||||
return data;
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = A;
|
||||
chunkData[1] = B;
|
||||
chunkData[2] = C;
|
||||
chunkData[3] = D;
|
||||
chunkData[4] = E;
|
||||
chunkData[5] = F;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
A = pinParameter(chunkData[0]);
|
||||
B = pinParameter(chunkData[1]);
|
||||
C = pinParameter(chunkData[2]);
|
||||
D = pinParameter(chunkData[3]);
|
||||
E = pinParameter(chunkData[4]);
|
||||
F = pinParameter(chunkData[5]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Srsly3::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParamA: A = value; break;
|
||||
case kParamB: B = value; break;
|
||||
case kParamC: C = value; break;
|
||||
case kParamD: D = value; break;
|
||||
case kParamE: E = value; break;
|
||||
case kParamF: F = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float Srsly3::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParamA: return A; break;
|
||||
case kParamB: return B; break;
|
||||
case kParamC: return C; break;
|
||||
case kParamD: return D; break;
|
||||
case kParamE: return E; break;
|
||||
case kParamF: return F; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void Srsly3::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "Center", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "Space", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Level", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "Q", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "Nonlin", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void Srsly3::getParameterDisplay(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
|
||||
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
|
||||
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
|
||||
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
|
||||
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
|
||||
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void Srsly3::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool Srsly3::getEffectName(char* name) {
|
||||
vst_strncpy(name, "Srsly3", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory Srsly3::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool Srsly3::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows Srsly3", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool Srsly3::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
84
plugins/MacVST/Srsly3/source/Srsly3.h
Executable file
84
plugins/MacVST/Srsly3/source/Srsly3.h
Executable file
|
|
@ -0,0 +1,84 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#define __Srsly3_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParamA =0,
|
||||
kParamB =1,
|
||||
kParamC =2,
|
||||
kParamD =3,
|
||||
kParamE =4,
|
||||
kParamF =5,
|
||||
kNumParameters = 6
|
||||
}; //
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'srsn'; //Change this to what the AU identity is!
|
||||
|
||||
class Srsly3 :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
Srsly3(audioMasterCallback audioMaster);
|
||||
~Srsly3();
|
||||
virtual bool getEffectName(char* name); // The plug-in name
|
||||
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
|
||||
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
|
||||
virtual bool getVendorString(char* text); // Vendor info
|
||||
virtual VstInt32 getVendorVersion(); // Version number
|
||||
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
|
||||
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
|
||||
virtual void getProgramName(char *name); // read the name from the host
|
||||
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
|
||||
virtual VstInt32 getChunk (void** data, bool isPreset);
|
||||
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
|
||||
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
|
||||
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
|
||||
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
|
||||
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
|
||||
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
|
||||
virtual VstInt32 canDo(char *text);
|
||||
private:
|
||||
char _programName[kVstMaxProgNameLen + 1];
|
||||
std::set< std::string > _canDo;
|
||||
|
||||
float A;
|
||||
float B;
|
||||
float C;
|
||||
float D;
|
||||
float E;
|
||||
float F;
|
||||
|
||||
double biquadM2[9];
|
||||
double biquadM7[9];
|
||||
double biquadM10[9];
|
||||
|
||||
double biquadL3[9]; //note that this isn't the stereo
|
||||
double biquadL7[9]; //form of the biquad, like it's set
|
||||
double biquadR3[9]; //up to be. The M/S parts don't lend
|
||||
double biquadR7[9]; //themselves to that
|
||||
|
||||
double biquadS3[9];
|
||||
double biquadS5[9];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
510
plugins/MacVST/Srsly3/source/Srsly3Proc.cpp
Executable file
510
plugins/MacVST/Srsly3/source/Srsly3Proc.cpp
Executable file
|
|
@ -0,0 +1,510 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#include "Srsly3.h"
|
||||
#endif
|
||||
|
||||
void Srsly3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
float* in1 = inputs[0];
|
||||
float* in2 = inputs[1];
|
||||
float* out1 = outputs[0];
|
||||
float* out2 = outputs[1];
|
||||
|
||||
double sampleRate = getSampleRate();
|
||||
if (sampleRate < 22000) sampleRate = 22000; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000 / sampleRate; //up
|
||||
biquadM7[0] = 7000 / sampleRate; //down
|
||||
biquadM10[0] = 10000 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000 / sampleRate; //up
|
||||
biquadL7[0] = 7000 / sampleRate; //way up
|
||||
biquadR3[0] = 3000 / sampleRate; //up
|
||||
biquadR7[0] = 7000 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000 / sampleRate; //up
|
||||
biquadS5[0] = 5000 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(A*10.0);
|
||||
double focusS = 21.0-(B*15.0);
|
||||
double Q = D+0.25; //add Q control: from half to double intensity
|
||||
double gainM = A*2.0;
|
||||
double gainS = B*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(A,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(B,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = C; //output pad
|
||||
double nonLin = pow(E,2); //output pad
|
||||
double wet = F; //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
//[9] is RIGHT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[10] is RIGHT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
|
||||
void Srsly3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
double* in1 = inputs[0];
|
||||
double* in2 = inputs[1];
|
||||
double* out1 = outputs[0];
|
||||
double* out2 = outputs[1];
|
||||
|
||||
double sampleRate = getSampleRate();
|
||||
if (sampleRate < 22000) sampleRate = 22000; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000 / sampleRate; //up
|
||||
biquadM7[0] = 7000 / sampleRate; //down
|
||||
biquadM10[0] = 10000 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000 / sampleRate; //up
|
||||
biquadL7[0] = 7000 / sampleRate; //way up
|
||||
biquadR3[0] = 3000 / sampleRate; //up
|
||||
biquadR7[0] = 7000 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000 / sampleRate; //up
|
||||
biquadS5[0] = 5000 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(A*10.0);
|
||||
double focusS = 21.0-(B*15.0);
|
||||
double Q = D+0.25; //add Q control: from half to double intensity
|
||||
double gainM = A*2.0;
|
||||
double gainS = B*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(A,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(B,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = C; //output pad
|
||||
double nonLin = pow(E,2); //output pad
|
||||
double wet = F; //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
//[9] is RIGHT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[10] is RIGHT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 64 bit stereo floating point dither
|
||||
//int expon; frexp((double)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//frexp((double)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//end 64 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
|
|
@ -34,7 +34,7 @@ void Console9Channel::processReplacing(float **inputs, float **outputs, VstInt32
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
@ -98,7 +98,7 @@ void Console9Channel::processDoubleReplacing(double **inputs, double **outputs,
|
|||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 1.527864045000421;
|
||||
gain *= 0.763932022500211;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
|
|
|
|||
BIN
plugins/WinVST/Srsly3/.vs/Console4Channel64/v14/.suo
Executable file
BIN
plugins/WinVST/Srsly3/.vs/Console4Channel64/v14/.suo
Executable file
Binary file not shown.
BIN
plugins/WinVST/Srsly3/.vs/VSTProject/v14/.suo
Executable file
BIN
plugins/WinVST/Srsly3/.vs/VSTProject/v14/.suo
Executable file
Binary file not shown.
172
plugins/WinVST/Srsly3/Srsly3.cpp
Executable file
172
plugins/WinVST/Srsly3/Srsly3.cpp
Executable file
|
|
@ -0,0 +1,172 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#include "Srsly3.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Srsly3(audioMaster);}
|
||||
|
||||
Srsly3::Srsly3(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 0.5;
|
||||
C = 1.0;
|
||||
D = 0.5;
|
||||
E = 0.5;
|
||||
F = 1.0;
|
||||
|
||||
for (int x = 0; x < 9; x++) {
|
||||
biquadM2[x] = 0.0;
|
||||
biquadM7[x] = 0.0;
|
||||
biquadM10[x] = 0.0;
|
||||
biquadL3[x] = 0.0;
|
||||
biquadL7[x] = 0.0;
|
||||
biquadR3[x] = 0.0;
|
||||
biquadR7[x] = 0.0;
|
||||
biquadS3[x] = 0.0;
|
||||
biquadS5[x] = 0.0;
|
||||
}
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
//this is reset: values being initialized only once. Startup values, whatever they are.
|
||||
|
||||
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
|
||||
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
|
||||
_canDo.insert("x2in2out");
|
||||
setNumInputs(kNumInputs);
|
||||
setNumOutputs(kNumOutputs);
|
||||
setUniqueID(kUniqueId);
|
||||
canProcessReplacing(); // supports output replacing
|
||||
canDoubleReplacing(); // supports double precision processing
|
||||
programsAreChunks(true);
|
||||
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
|
||||
}
|
||||
|
||||
Srsly3::~Srsly3() {}
|
||||
VstInt32 Srsly3::getVendorVersion () {return 1000;}
|
||||
void Srsly3::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void Srsly3::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
|
||||
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
|
||||
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
|
||||
|
||||
static float pinParameter(float data)
|
||||
{
|
||||
if (data < 0.0f) return 0.0f;
|
||||
if (data > 1.0f) return 1.0f;
|
||||
return data;
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = A;
|
||||
chunkData[1] = B;
|
||||
chunkData[2] = C;
|
||||
chunkData[3] = D;
|
||||
chunkData[4] = E;
|
||||
chunkData[5] = F;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
A = pinParameter(chunkData[0]);
|
||||
B = pinParameter(chunkData[1]);
|
||||
C = pinParameter(chunkData[2]);
|
||||
D = pinParameter(chunkData[3]);
|
||||
E = pinParameter(chunkData[4]);
|
||||
F = pinParameter(chunkData[5]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Srsly3::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParamA: A = value; break;
|
||||
case kParamB: B = value; break;
|
||||
case kParamC: C = value; break;
|
||||
case kParamD: D = value; break;
|
||||
case kParamE: E = value; break;
|
||||
case kParamF: F = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float Srsly3::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParamA: return A; break;
|
||||
case kParamB: return B; break;
|
||||
case kParamC: return C; break;
|
||||
case kParamD: return D; break;
|
||||
case kParamE: return E; break;
|
||||
case kParamF: return F; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void Srsly3::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "Center", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "Space", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Level", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "Q", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "Nonlin", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void Srsly3::getParameterDisplay(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
|
||||
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
|
||||
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
|
||||
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
|
||||
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
|
||||
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void Srsly3::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 Srsly3::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool Srsly3::getEffectName(char* name) {
|
||||
vst_strncpy(name, "Srsly3", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory Srsly3::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool Srsly3::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows Srsly3", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool Srsly3::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
84
plugins/WinVST/Srsly3/Srsly3.h
Executable file
84
plugins/WinVST/Srsly3/Srsly3.h
Executable file
|
|
@ -0,0 +1,84 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#define __Srsly3_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParamA =0,
|
||||
kParamB =1,
|
||||
kParamC =2,
|
||||
kParamD =3,
|
||||
kParamE =4,
|
||||
kParamF =5,
|
||||
kNumParameters = 6
|
||||
}; //
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'srsn'; //Change this to what the AU identity is!
|
||||
|
||||
class Srsly3 :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
Srsly3(audioMasterCallback audioMaster);
|
||||
~Srsly3();
|
||||
virtual bool getEffectName(char* name); // The plug-in name
|
||||
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
|
||||
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
|
||||
virtual bool getVendorString(char* text); // Vendor info
|
||||
virtual VstInt32 getVendorVersion(); // Version number
|
||||
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
|
||||
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
|
||||
virtual void getProgramName(char *name); // read the name from the host
|
||||
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
|
||||
virtual VstInt32 getChunk (void** data, bool isPreset);
|
||||
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
|
||||
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
|
||||
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
|
||||
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
|
||||
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
|
||||
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
|
||||
virtual VstInt32 canDo(char *text);
|
||||
private:
|
||||
char _programName[kVstMaxProgNameLen + 1];
|
||||
std::set< std::string > _canDo;
|
||||
|
||||
float A;
|
||||
float B;
|
||||
float C;
|
||||
float D;
|
||||
float E;
|
||||
float F;
|
||||
|
||||
double biquadM2[9];
|
||||
double biquadM7[9];
|
||||
double biquadM10[9];
|
||||
|
||||
double biquadL3[9]; //note that this isn't the stereo
|
||||
double biquadL7[9]; //form of the biquad, like it's set
|
||||
double biquadR3[9]; //up to be. The M/S parts don't lend
|
||||
double biquadR7[9]; //themselves to that
|
||||
|
||||
double biquadS3[9];
|
||||
double biquadS5[9];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
510
plugins/WinVST/Srsly3/Srsly3Proc.cpp
Executable file
510
plugins/WinVST/Srsly3/Srsly3Proc.cpp
Executable file
|
|
@ -0,0 +1,510 @@
|
|||
/* ========================================
|
||||
* Srsly3 - Srsly3.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Srsly3_H
|
||||
#include "Srsly3.h"
|
||||
#endif
|
||||
|
||||
void Srsly3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
float* in1 = inputs[0];
|
||||
float* in2 = inputs[1];
|
||||
float* out1 = outputs[0];
|
||||
float* out2 = outputs[1];
|
||||
|
||||
double sampleRate = getSampleRate();
|
||||
if (sampleRate < 22000) sampleRate = 22000; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000 / sampleRate; //up
|
||||
biquadM7[0] = 7000 / sampleRate; //down
|
||||
biquadM10[0] = 10000 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000 / sampleRate; //up
|
||||
biquadL7[0] = 7000 / sampleRate; //way up
|
||||
biquadR3[0] = 3000 / sampleRate; //up
|
||||
biquadR7[0] = 7000 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000 / sampleRate; //up
|
||||
biquadS5[0] = 5000 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(A*10.0);
|
||||
double focusS = 21.0-(B*15.0);
|
||||
double Q = D+0.25; //add Q control: from half to double intensity
|
||||
double gainM = A*2.0;
|
||||
double gainS = B*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(A,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(B,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = C; //output pad
|
||||
double nonLin = pow(E,2); //output pad
|
||||
double wet = F; //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
//[9] is RIGHT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[10] is RIGHT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
|
||||
void Srsly3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
double* in1 = inputs[0];
|
||||
double* in2 = inputs[1];
|
||||
double* out1 = outputs[0];
|
||||
double* out2 = outputs[1];
|
||||
|
||||
double sampleRate = getSampleRate();
|
||||
if (sampleRate < 22000) sampleRate = 22000; //keep biquads in range
|
||||
|
||||
biquadM2[0] = 2000 / sampleRate; //up
|
||||
biquadM7[0] = 7000 / sampleRate; //down
|
||||
biquadM10[0] = 10000 / sampleRate; //down
|
||||
|
||||
biquadL3[0] = 3000 / sampleRate; //up
|
||||
biquadL7[0] = 7000 / sampleRate; //way up
|
||||
biquadR3[0] = 3000 / sampleRate; //up
|
||||
biquadR7[0] = 7000 / sampleRate; //way up
|
||||
|
||||
biquadS3[0] = 3000 / sampleRate; //up
|
||||
biquadS5[0] = 5000 / sampleRate; //way down
|
||||
|
||||
double focusM = 15.0-(A*10.0);
|
||||
double focusS = 21.0-(B*15.0);
|
||||
double Q = D+0.25; //add Q control: from half to double intensity
|
||||
double gainM = A*2.0;
|
||||
double gainS = B*2.0;
|
||||
if (gainS > 1.0) {
|
||||
gainM /= gainS;
|
||||
gainS *= gainS;
|
||||
}
|
||||
if (gainM > 1.0) gainM = 1.0;
|
||||
|
||||
biquadM2[1] = focusM*0.25*Q; //Q, mid 2K boost is much broader
|
||||
biquadM7[1] = focusM*Q; //Q
|
||||
biquadM10[1] = focusM*Q; //Q
|
||||
biquadS3[1] = focusM*Q; //Q
|
||||
biquadS5[1] = focusM*Q; //Q
|
||||
|
||||
biquadL3[1] = focusS*Q; //Q
|
||||
biquadL7[1] = focusS*Q; //Q
|
||||
biquadR3[1] = focusS*Q; //Q
|
||||
biquadR7[1] = focusS*Q; //Q
|
||||
|
||||
double K = tan(M_PI * biquadM2[0]);
|
||||
double norm = 1.0 / (1.0 + K / biquadM2[1] + K * K);
|
||||
biquadM2[2] = K / biquadM2[1] * norm;
|
||||
biquadM2[4] = -biquadM2[2];
|
||||
biquadM2[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM2[6] = (1.0 - K / biquadM2[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM7[1] + K * K);
|
||||
biquadM7[2] = K / biquadM7[1] * norm;
|
||||
biquadM7[4] = -biquadM7[2];
|
||||
biquadM7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM7[6] = (1.0 - K / biquadM7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadM10[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadM10[1] + K * K);
|
||||
biquadM10[2] = K / biquadM10[1] * norm;
|
||||
biquadM10[4] = -biquadM10[2];
|
||||
biquadM10[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadM10[6] = (1.0 - K / biquadM10[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL3[1] + K * K);
|
||||
biquadL3[2] = K / biquadL3[1] * norm;
|
||||
biquadL3[4] = -biquadL3[2];
|
||||
biquadL3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL3[6] = (1.0 - K / biquadL3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadL7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadL7[1] + K * K);
|
||||
biquadL7[2] = K / biquadL7[1] * norm;
|
||||
biquadL7[4] = -biquadL7[2];
|
||||
biquadL7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadL7[6] = (1.0 - K / biquadL7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR3[1] + K * K);
|
||||
biquadR3[2] = K / biquadR3[1] * norm;
|
||||
biquadR3[4] = -biquadR3[2];
|
||||
biquadR3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR3[6] = (1.0 - K / biquadR3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadR7[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadR7[1] + K * K);
|
||||
biquadR7[2] = K / biquadR7[1] * norm;
|
||||
biquadR7[4] = -biquadR7[2];
|
||||
biquadR7[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadR7[6] = (1.0 - K / biquadR7[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS3[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS3[1] + K * K);
|
||||
biquadS3[2] = K / biquadS3[1] * norm;
|
||||
biquadS3[4] = -biquadS3[2];
|
||||
biquadS3[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS3[6] = (1.0 - K / biquadS3[1] + K * K) * norm;
|
||||
|
||||
K = tan(M_PI * biquadS5[0]);
|
||||
norm = 1.0 / (1.0 + K / biquadS5[1] + K * K);
|
||||
biquadS5[2] = K / biquadS5[1] * norm;
|
||||
biquadS5[4] = -biquadS5[2];
|
||||
biquadS5[5] = 2.0 * (K * K - 1.0) * norm;
|
||||
biquadS5[6] = (1.0 - K / biquadS5[1] + K * K) * norm;
|
||||
|
||||
double depthM = pow(A,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double depthS = pow(B,2)*2.0; //proportion to mix in the filtered stuff
|
||||
double level = C; //output pad
|
||||
double nonLin = pow(E,2); //output pad
|
||||
double wet = F; //dry/wet
|
||||
|
||||
//biquad contains these values:
|
||||
//[0] is frequency: 0.000001 to 0.499999 is near-zero to near-Nyquist
|
||||
//[1] is resonance, 0.7071 is Butterworth. Also can't be zero
|
||||
//[2] is a0 but you need distinct ones for additional biquad instances so it's here
|
||||
//[3] is a1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[4] is a2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[5] is b1 but you need distinct ones for additional biquad instances so it's here
|
||||
//[6] is b2 but you need distinct ones for additional biquad instances so it's here
|
||||
//[7] is LEFT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[8] is LEFT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
//[9] is RIGHT stored delayed sample (freq and res are stored so you can move them sample by sample)
|
||||
//[10] is RIGHT stored delayed sample (you have to include the coefficient making code if you do that)
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double drySampleR = inputSampleR;
|
||||
|
||||
double mid = inputSampleL + inputSampleR;
|
||||
double rawmid = mid * 0.5; //we'll use this to isolate L&R a little
|
||||
double side = inputSampleL - inputSampleR;
|
||||
double boostside = side * depthS;
|
||||
//assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
double dia0 = fabs(biquadM2[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
double tempSample = (mid * dia0) + biquadM2[7];
|
||||
biquadM2[7] = (-tempSample * biquadM2[5]) + biquadM2[8];
|
||||
biquadM2[8] = (mid * -dia0) - (tempSample * biquadM2[6]);
|
||||
double M2Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM7[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM7[7];
|
||||
biquadM7[7] = (-tempSample * biquadM7[5]) + biquadM7[8];
|
||||
biquadM7[8] = (mid * -dia0) - (tempSample * biquadM7[6]);
|
||||
double M7Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadM10[2]*(1.0+(mid*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (mid * dia0) + biquadM10[7];
|
||||
biquadM10[7] = (-tempSample * biquadM10[5]) + biquadM10[8];
|
||||
biquadM10[8] = (mid * -dia0) - (tempSample * biquadM10[6]);
|
||||
double M10Sample = -tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
//mid
|
||||
|
||||
dia0 = fabs(biquadS3[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS3[7];
|
||||
biquadS3[7] = (-tempSample * biquadS3[5]) + biquadS3[8];
|
||||
biquadS3[8] = (side * -dia0) - (tempSample * biquadS3[6]);
|
||||
double S3Sample = tempSample*2.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadS5[2]*(1.0+(side*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (side * dia0) + biquadS5[7];
|
||||
biquadS5[7] = (-tempSample * biquadS5[5]) + biquadS5[8];
|
||||
biquadS5[8] = (side * -dia0) - (tempSample * biquadS5[6]);
|
||||
double S5Sample = -tempSample*5.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
mid = (M2Sample + M7Sample + M10Sample)*depthM;
|
||||
side = (S3Sample + S5Sample + boostside)*depthS;
|
||||
|
||||
double msOutSampleL = (mid+side)/2.0;
|
||||
double msOutSampleR = (mid-side)/2.0;
|
||||
//unassign mid and side
|
||||
|
||||
double isoSampleL = inputSampleL-rawmid;
|
||||
double isoSampleR = inputSampleR-rawmid; //trying to isolate L and R a little
|
||||
|
||||
dia0 = fabs(biquadL3[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL3[7];
|
||||
biquadL3[7] = (-tempSample * biquadL3[5]) + biquadL3[8];
|
||||
biquadL3[8] = (isoSampleL * -dia0) - (tempSample * biquadL3[6]);
|
||||
double L3Sample = tempSample; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR3[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR3[7];
|
||||
biquadR3[7] = (-tempSample * biquadR3[5]) + biquadR3[8];
|
||||
biquadR3[8] = (isoSampleR * -dia0) - (tempSample * biquadR3[6]);
|
||||
double R3Sample = tempSample; //note: 9 and 10 store the R channel
|
||||
|
||||
dia0 = fabs(biquadL7[2]*(1.0+(isoSampleL*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleL * dia0) + biquadL7[7];
|
||||
biquadL7[7] = (-tempSample * biquadL7[5]) + biquadL7[8];
|
||||
biquadL7[8] = (isoSampleL * -dia0) - (tempSample * biquadL7[6]);
|
||||
double L7Sample = tempSample*3.0; //like mono AU, 7 and 8 store L channel
|
||||
|
||||
dia0 = fabs(biquadR7[2]*(1.0+(isoSampleR*nonLin))); if (dia0 > 1.0) dia0 = 1.0;
|
||||
tempSample = (isoSampleR * dia0) + biquadR7[7];
|
||||
biquadR7[7] = (-tempSample * biquadR7[5]) + biquadR7[8];
|
||||
biquadR7[8] = (isoSampleR * -dia0) - (tempSample * biquadR7[6]);
|
||||
double R7Sample = tempSample*3.0; //note: 9 and 10 store the R channel
|
||||
|
||||
double processingL = msOutSampleL + ((L3Sample + L7Sample)*depthS);
|
||||
double processingR = msOutSampleR + ((R3Sample + R7Sample)*depthS);
|
||||
//done with making filters, now we apply them
|
||||
|
||||
mid = inputSampleL + inputSampleR;
|
||||
side = inputSampleL - inputSampleR;
|
||||
//re-assign mid and side.Between these sections, you can do mid/side processing
|
||||
|
||||
mid *= gainM;
|
||||
side *= gainS;
|
||||
|
||||
inputSampleL = ((mid+side)/2.0)+processingL;
|
||||
inputSampleR = ((mid-side)/2.0)+processingR;
|
||||
//unassign mid and side
|
||||
|
||||
if (level < 1.0) {
|
||||
inputSampleL *= level;
|
||||
inputSampleR *= level;
|
||||
}
|
||||
|
||||
if (wet != 1.0) {
|
||||
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
|
||||
}
|
||||
//Dry/Wet control, defaults to the last slider
|
||||
|
||||
//begin 64 bit stereo floating point dither
|
||||
//int expon; frexp((double)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//frexp((double)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//end 64 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
28
plugins/WinVST/Srsly3/VSTProject.sln
Executable file
28
plugins/WinVST/Srsly3/VSTProject.sln
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.25420.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VSTProject", "VSTProject.vcxproj", "{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.Build.0 = Debug|x64
|
||||
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.Build.0 = Debug|Win32
|
||||
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.ActiveCfg = Release|x64
|
||||
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.Build.0 = Release|x64
|
||||
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.ActiveCfg = Release|Win32
|
||||
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
183
plugins/WinVST/Srsly3/VSTProject.vcxproj
Executable file
183
plugins/WinVST/Srsly3/VSTProject.vcxproj
Executable file
|
|
@ -0,0 +1,183 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.cpp" />
|
||||
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.cpp" />
|
||||
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\vstplugmain.cpp" />
|
||||
<ClCompile Include="Srsly3.cpp" />
|
||||
<ClCompile Include="Srsly3Proc.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\aeffeditor.h" />
|
||||
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.h" />
|
||||
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h" />
|
||||
<ClInclude Include="Srsly3.h" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}</ProjectGuid>
|
||||
<RootNamespace>VSTProject</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||
<ProjectName>Srsly364</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<TargetExt>.dll</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<DebugInformationFormat>None</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
|
||||
<IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<DebugInformationFormat>None</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>None</DebugInformationFormat>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalDependencies>libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>None</DebugInformationFormat>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalDependencies>libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
48
plugins/WinVST/Srsly3/VSTProject.vcxproj.filters
Executable file
48
plugins/WinVST/Srsly3/VSTProject.vcxproj.filters
Executable file
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\vstplugmain.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Srsly3.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Srsly3Proc.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\aeffeditor.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Srsly3.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
19
plugins/WinVST/Srsly3/VSTProject.vcxproj.user
Executable file
19
plugins/WinVST/Srsly3/VSTProject.vcxproj.user
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
3
plugins/WinVST/Srsly3/vstplug.def
Executable file
3
plugins/WinVST/Srsly3/vstplug.def
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
EXPORTS
|
||||
VSTPluginMain
|
||||
main=VSTPluginMain
|
||||
3
what.txt
3
what.txt
|
|
@ -125,7 +125,8 @@ DigitalBlack is a quick, staccato gate.[coll=Basic,Recommended,Latest]
|
|||
Dirt is a soft-clip distortion in the spirit of Edge.[coll=Latest]
|
||||
Discontinuity models air under intense loudness.[coll=Recommended,Latest]
|
||||
Distance is a sound design or reverb far-away-izer.[coll=]
|
||||
Distance2 is a versatile space shaper for creating depth.[coll=Latest]
|
||||
Distance2 is a versatile space shaper for creating depth.[coll=]
|
||||
Distance3 combines the best parts of Distance and Discontinuity.[coll=Recommended,Latest]
|
||||
Distortion is a slightly dark analog-style distortion with several presets, like Focus.[coll=Latest]
|
||||
Ditherbox is a switchable selection of dithers in 16 and 24 bit, plus monitoring tools.[coll=]
|
||||
DitherFloat is a demo of floating point truncation: can also dither to 32 bit float output.[coll=]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue