mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-15 14:16:00 -06:00
TakeCare
This commit is contained in:
parent
f4ae8163f2
commit
6dff1d1a05
342 changed files with 72379 additions and 3032 deletions
|
|
@ -5084,6 +5084,20 @@ If that sounds odd, don’t worry about it, just try Swell. It has a threshold l
|
|||
|
||||
What this does is very interesting. I expect to see this turn up in an EDM channel strip at some point. Essentially, you can play with the controls in various ways and completely step on the attack of anything you want. This relates to GROOVE and the layering of stuff in a dance mix: any element, no matter what it is, can be turned into a pad and back again, just by squishing away its attack. You can do it live, you can take an element (snare, punchy chord) and manipulate how it hits inside the groove. Extreme values make stuff extra soft and quiet and squishy, and then if you drop the threshold or Swell, you can have the element jump right back out again, and the control is direct, not relative to a sidechained track or LFO setting. It’s a more organic approach, more hands-on, and I think it’ll fit into a lot of people’s mixes. There’s always a place for balancing the intensity of the attacks of your tracks, and that’s literally what Swell does.
|
||||
|
||||
############ TakeCare is a lush chorus ensemble universe.
|
||||
|
||||
The idea was to revisit plugins like Melt, with an eye to even more disconcerting sonic spaces like the works of The Caretaker. Seemed reasonable to do. I started off with my Melt plugin, to see what would happen.
|
||||
|
||||
Then, in working on Householder matrices, I found that using a Householder matrix for a 3x3 grid of delays (rather than simply using them as delays, which I'd done before, thinking 'what difference could there possibly be?') made a HUGE difference. This is what's creating early reflections in my plugins post kBeyond (which it turned out I immediately went beyond).
|
||||
|
||||
So, if you can do that with a 3x3 grid of delays that produces 27 echoes per channel… what if those delays were instead a chorus ensemble machine?
|
||||
|
||||
This is TakeCare. Most of the work I did on it, was using synth pads in order to make giant illbient soundscapes, and indeed it's quite good at that. You can get real seasick off TakeCare. I've also set it up so the 'buffer' control can be manipulated to intentionally create horrible noises: at full regen, it'll even feed back at small buffer settings, and it's made to go into distortion a little below full scale in case you want to get real crunchy. It's also using an old Console algorithm internally, to expand the space inside the blast of noise.
|
||||
|
||||
And then it turns out that if you keep it more calm, less regen, very small buffers and the depth not too extreme… it's a gorgeous chorus ensemble on something as revealing as a vintage Fender Rhodes. It generates stereo width, supplies a lovely pad of lushness around the instrument, and doesn't have to be weird at all. This could come in handy on things like synth pads, voices, who knows what? Think 'lush stereo chorus ensemble' and dial it in to whatever your needs are. The range on this is pretty nuts, because it was originally designed for radical uses but cleans up really well.
|
||||
|
||||
I hope you like it :)
|
||||
|
||||
############ Tape is simplified, all-purpose tape mojo: my personal jam.
|
||||
|
||||
This one’s for me. It’s very similar to last week’s ToTape, but with the following differences:
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ add_airwindows_plugin(DarkNoise)
|
|||
add_airwindows_plugin(DCVoltage)
|
||||
add_airwindows_plugin(Deckwrecka)
|
||||
add_airwindows_plugin(DeBess)
|
||||
add_airwindows_plugin(DeBez)
|
||||
add_airwindows_plugin(DeCrackle)
|
||||
add_airwindows_plugin(DeEss)
|
||||
add_airwindows_plugin(DeHiss)
|
||||
|
|
@ -248,6 +249,7 @@ add_airwindows_plugin(kCathedral)
|
|||
add_airwindows_plugin(kCathedral2)
|
||||
add_airwindows_plugin(kCathedral3)
|
||||
add_airwindows_plugin(kCathedral4)
|
||||
add_airwindows_plugin(kCathedral5)
|
||||
add_airwindows_plugin(kChamberAR)
|
||||
add_airwindows_plugin(kCosmos)
|
||||
add_airwindows_plugin(kGuitarHall)
|
||||
|
|
@ -400,6 +402,7 @@ add_airwindows_plugin(SurgeTide)
|
|||
add_airwindows_plugin(Sweeten)
|
||||
add_airwindows_plugin(SweetWide)
|
||||
add_airwindows_plugin(Swell)
|
||||
add_airwindows_plugin(TakeCare)
|
||||
add_airwindows_plugin(Tape)
|
||||
add_airwindows_plugin(TapeBias)
|
||||
add_airwindows_plugin(TapeDelay)
|
||||
|
|
|
|||
|
|
@ -23,23 +23,14 @@ ChimeyDeluxe::ChimeyDeluxe(audioMasterCallback audioMaster) :
|
|||
I = 0.5;
|
||||
J = 0.5;
|
||||
|
||||
for(int x=0; x<21; x++) {
|
||||
for(int y=0; y<11; y++) {
|
||||
for(int x=0; x<17; x++) {
|
||||
for(int y=0; y<14; y++) {
|
||||
angSL[x][y] = 0.0;angAL[x][y] = 0.0;
|
||||
angSR[x][y] = 0.0;angAR[x][y] = 0.0;
|
||||
}
|
||||
}
|
||||
for(int y=0; y<11; y++) angG[y] = 0.0;
|
||||
for(int count = 0; count < 36; count++) {
|
||||
iirHPositionL[count] = 0.0;
|
||||
iirHAngleL[count] = 0.0;
|
||||
iirBPositionL[count] = 0.0;
|
||||
iirBAngleL[count] = 0.0;
|
||||
iirHPositionR[count] = 0.0;
|
||||
iirHAngleR[count] = 0.0;
|
||||
iirBPositionR[count] = 0.0;
|
||||
iirBAngleR[count] = 0.0;
|
||||
}
|
||||
for(int y=0; y<14; y++) angG[y] = 0.0;
|
||||
|
||||
muCompL = 1.0;
|
||||
muSpdL = 100.0;
|
||||
muCompR = 1.0;
|
||||
|
|
|
|||
|
|
@ -72,25 +72,17 @@ private:
|
|||
float I;
|
||||
float J;
|
||||
|
||||
double angSL[18][12];
|
||||
double angAL[18][12];
|
||||
double iirHPositionL[37];
|
||||
double iirHAngleL[37];
|
||||
double iirBPositionL[37];
|
||||
double iirBAngleL[37];
|
||||
double angSL[18][15];
|
||||
double angAL[18][15];
|
||||
double muCompL;
|
||||
double muSpdL;
|
||||
|
||||
double angSR[18][12];
|
||||
double angAR[18][12];
|
||||
double iirHPositionR[37];
|
||||
double iirHAngleR[37];
|
||||
double iirBPositionR[37];
|
||||
double iirBAngleR[37];
|
||||
double angSR[18][15];
|
||||
double angAR[18][15];
|
||||
double muCompR;
|
||||
double muSpdR;
|
||||
|
||||
double angG[12];
|
||||
double angG[15];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ void ChimeyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa
|
|||
angG[10] = J+0.5;
|
||||
if (pad > angG[10]) pad = angG[10];
|
||||
if (drive < angG[10]) drive = angG[10];
|
||||
angG[11] = 1.0;
|
||||
angG[12] = 1.0;
|
||||
angG[11] = (angG[10]+1.0)*0.5;
|
||||
angG[12] = (angG[11]+1.0)*0.5;
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double threshold = 1.0-(drive*0.23);
|
||||
double adjSpd = ((drive*120.0)+50.0)*overallscale;
|
||||
|
|
@ -189,8 +189,8 @@ void ChimeyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst
|
|||
angG[10] = J+0.5;
|
||||
if (pad > angG[10]) pad = angG[10];
|
||||
if (drive < angG[10]) drive = angG[10];
|
||||
angG[11] = 1.0;
|
||||
angG[12] = 1.0;
|
||||
angG[11] = (angG[10]+1.0)*0.5;
|
||||
angG[12] = (angG[11]+1.0)*0.5;
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double threshold = 1.0-(drive*0.23);
|
||||
double adjSpd = ((drive*120.0)+50.0)*overallscale;
|
||||
|
|
|
|||
143
plugins/LinuxVST/src/DeBez/DeBez.cpp
Executable file
143
plugins/LinuxVST/src/DeBez/DeBez.cpp
Executable file
|
|
@ -0,0 +1,143 @@
|
|||
/* ========================================
|
||||
* DeBez - DeBez.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __DeBez_H
|
||||
#include "DeBez.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new DeBez(audioMaster);}
|
||||
|
||||
DeBez::DeBez(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 0.5;
|
||||
C = 1.0;
|
||||
|
||||
for (int x = 0; x < bez_total; x++) bezF[x] = 0.0;
|
||||
bezF[bez_cycle] = 1.0;
|
||||
|
||||
rezA = 0.5; rezB = 0.5;
|
||||
bitA = 0.5; bitB = 0.5;
|
||||
wetA = 1.0; wetB = 1.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
|
||||
}
|
||||
|
||||
DeBez::~DeBez() {}
|
||||
VstInt32 DeBez::getVendorVersion () {return 1000;}
|
||||
void DeBez::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void DeBez::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 DeBez::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = A;
|
||||
chunkData[1] = B;
|
||||
chunkData[2] = C;
|
||||
/* 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 DeBez::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
A = pinParameter(chunkData[0]);
|
||||
B = pinParameter(chunkData[1]);
|
||||
C = pinParameter(chunkData[2]);
|
||||
/* 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 DeBez::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParamA: A = value; break;
|
||||
case kParamB: B = value; break;
|
||||
case kParamC: C = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float DeBez::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParamA: return A; break;
|
||||
case kParamB: return B; break;
|
||||
case kParamC: return C; 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 DeBez::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "DeBez", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "DeRez", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Inv/Wet", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void DeBez::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;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void DeBez::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;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 DeBez::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool DeBez::getEffectName(char* name) {
|
||||
vst_strncpy(name, "DeBez", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory DeBez::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool DeBez::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows DeBez", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool DeBez::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
95
plugins/LinuxVST/src/DeBez/DeBez.h
Executable file
95
plugins/LinuxVST/src/DeBez/DeBez.h
Executable file
|
|
@ -0,0 +1,95 @@
|
|||
/* ========================================
|
||||
* DeBez - DeBez.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __DeBez_H
|
||||
#define __DeBez_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParamA =0,
|
||||
kParamB =1,
|
||||
kParamC =2,
|
||||
kNumParameters = 3
|
||||
}; //
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'debz'; //Change this to what the AU identity is!
|
||||
|
||||
class DeBez :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
DeBez(audioMasterCallback audioMaster);
|
||||
~DeBez();
|
||||
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;
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_AR,
|
||||
bez_BR,
|
||||
bez_CR,
|
||||
bez_InR,
|
||||
bez_UnInR,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezF[bez_total];
|
||||
|
||||
double rezA;
|
||||
double rezB;
|
||||
double bitA;
|
||||
double bitB;
|
||||
double wetA;
|
||||
double wetB;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
238
plugins/LinuxVST/src/DeBez/DeBezProc.cpp
Executable file
238
plugins/LinuxVST/src/DeBez/DeBezProc.cpp
Executable file
|
|
@ -0,0 +1,238 @@
|
|||
/* ========================================
|
||||
* DeBez - DeBez.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __DeBez_H
|
||||
#include "DeBez.h"
|
||||
#endif
|
||||
|
||||
void DeBez::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
float* in1 = inputs[0];
|
||||
float* in2 = inputs[1];
|
||||
float* out1 = outputs[0];
|
||||
float* out2 = outputs[1];
|
||||
|
||||
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= getSampleRate();
|
||||
|
||||
rezA = rezB; rezB = A*2.0;
|
||||
bitA = bitB; bitB = B*2.0;
|
||||
wetA = wetB; wetB = C*2.0;
|
||||
|
||||
bool steppedFreq = true; // Revised Bezier Undersampling
|
||||
if (rezB > 1.0) { // has full rez at center, stepped
|
||||
steppedFreq = false; // to left, continuous to right
|
||||
rezB = 1.0-(rezB-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
rezB = fmin(fmax(pow(rezB,3.0),0.0005),1.0); //note: no overallscale, already inside undersampling
|
||||
int bezFreqFraction = (int)(1.0/rezB);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
rezB = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(rezB*bezFreqTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
bezFreqTrim = 1.0-pow(rezB*0.5,1.0/(rezB*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
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 temp = (double)sampleFrames/inFramesToProcess;
|
||||
double rez = (rezA*temp)+(rezB*(1.0-temp));
|
||||
double bit = ((bitA*temp)+(bitB*(1.0-temp)))-1.0;
|
||||
double wet = ((wetA*temp)+(wetB*(1.0-temp)))-1.0;
|
||||
double dry = 1.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
if (wet < -1.0) wet = -1.0;
|
||||
if (dry > 1.0) dry = 1.0;
|
||||
if (dry < 0.0) dry = 0.0;
|
||||
//this bitcrush can be subtracted.
|
||||
|
||||
bezF[bez_cycle] += rez;
|
||||
bezF[bez_SampL] += (inputSampleL * rez);
|
||||
bezF[bez_SampR] += (inputSampleR * rez);
|
||||
if (bezF[bez_cycle] > 1.0) {
|
||||
if (steppedFreq) bezF[bez_cycle] = 0.0;
|
||||
else bezF[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5;
|
||||
bezF[bez_AvgInSampL] = bezF[bez_SampL];
|
||||
inputSampleR = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5;
|
||||
bezF[bez_AvgInSampR] = bezF[bez_SampR];
|
||||
|
||||
bool crushGate = (bit < 0.0);
|
||||
bit = 1.0-fabs(bit);
|
||||
bit = fmin(fmax(bit*16.0,0.5),16.0);
|
||||
double bitFactor = pow(2.0,bit);
|
||||
inputSampleL *= bitFactor;
|
||||
inputSampleL = floor(inputSampleL+(crushGate?0.5/bitFactor:0.0));
|
||||
inputSampleL /= bitFactor;
|
||||
inputSampleR *= bitFactor;
|
||||
inputSampleR = floor(inputSampleR+(crushGate?0.5/bitFactor:0.0));
|
||||
inputSampleR /= bitFactor;
|
||||
//derez inside debez
|
||||
bezF[bez_CL] = bezF[bez_BL];
|
||||
bezF[bez_BL] = bezF[bez_AL];
|
||||
bezF[bez_AL] = inputSampleL;
|
||||
bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_CR] = bezF[bez_BR];
|
||||
bezF[bez_BR] = bezF[bez_AR];
|
||||
bezF[bez_AR] = inputSampleR;
|
||||
bezF[bez_SampR] = 0.0;
|
||||
}
|
||||
double X = bezF[bez_cycle]*bezFreqTrim;
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X);
|
||||
double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125;
|
||||
inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; bezF[bez_AvgOutSampL] = CBALfreq;
|
||||
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X);
|
||||
double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125;
|
||||
inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; bezF[bez_AvgOutSampR] = CBARfreq;
|
||||
|
||||
inputSampleL = (wet*inputSampleL)+(dry*drySampleL);
|
||||
inputSampleR = (wet*inputSampleR)+(dry*drySampleR);
|
||||
|
||||
//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 DeBez::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
double* in1 = inputs[0];
|
||||
double* in2 = inputs[1];
|
||||
double* out1 = outputs[0];
|
||||
double* out2 = outputs[1];
|
||||
|
||||
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= getSampleRate();
|
||||
|
||||
rezA = rezB; rezB = A*2.0;
|
||||
bitA = bitB; bitB = B*2.0;
|
||||
wetA = wetB; wetB = C*2.0;
|
||||
|
||||
bool steppedFreq = true; // Revised Bezier Undersampling
|
||||
if (rezB > 1.0) { // has full rez at center, stepped
|
||||
steppedFreq = false; // to left, continuous to right
|
||||
rezB = 1.0-(rezB-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
rezB = fmin(fmax(pow(rezB,3.0),0.0005),1.0); //note: no overallscale, already inside undersampling
|
||||
int bezFreqFraction = (int)(1.0/rezB);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
rezB = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(rezB*bezFreqTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
bezFreqTrim = 1.0-pow(rezB*0.5,1.0/(rezB*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
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 temp = (double)sampleFrames/inFramesToProcess;
|
||||
double rez = (rezA*temp)+(rezB*(1.0-temp));
|
||||
double bit = ((bitA*temp)+(bitB*(1.0-temp)))-1.0;
|
||||
double wet = ((wetA*temp)+(wetB*(1.0-temp)))-1.0;
|
||||
double dry = 1.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
if (wet < -1.0) wet = -1.0;
|
||||
if (dry > 1.0) dry = 1.0;
|
||||
if (dry < 0.0) dry = 0.0;
|
||||
//this bitcrush can be subtracted.
|
||||
|
||||
bezF[bez_cycle] += rez;
|
||||
bezF[bez_SampL] += (inputSampleL * rez);
|
||||
bezF[bez_SampR] += (inputSampleR * rez);
|
||||
if (bezF[bez_cycle] > 1.0) {
|
||||
if (steppedFreq) bezF[bez_cycle] = 0.0;
|
||||
else bezF[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5;
|
||||
bezF[bez_AvgInSampL] = bezF[bez_SampL];
|
||||
inputSampleR = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5;
|
||||
bezF[bez_AvgInSampR] = bezF[bez_SampR];
|
||||
|
||||
bool crushGate = (bit < 0.0);
|
||||
bit = 1.0-fabs(bit);
|
||||
bit = fmin(fmax(bit*16.0,0.5),16.0);
|
||||
double bitFactor = pow(2.0,bit);
|
||||
inputSampleL *= bitFactor;
|
||||
inputSampleL = floor(inputSampleL+(crushGate?0.5/bitFactor:0.0));
|
||||
inputSampleL /= bitFactor;
|
||||
inputSampleR *= bitFactor;
|
||||
inputSampleR = floor(inputSampleR+(crushGate?0.5/bitFactor:0.0));
|
||||
inputSampleR /= bitFactor;
|
||||
//derez inside debez
|
||||
bezF[bez_CL] = bezF[bez_BL];
|
||||
bezF[bez_BL] = bezF[bez_AL];
|
||||
bezF[bez_AL] = inputSampleL;
|
||||
bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_CR] = bezF[bez_BR];
|
||||
bezF[bez_BR] = bezF[bez_AR];
|
||||
bezF[bez_AR] = inputSampleR;
|
||||
bezF[bez_SampR] = 0.0;
|
||||
}
|
||||
double X = bezF[bez_cycle]*bezFreqTrim;
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X);
|
||||
double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125;
|
||||
inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; bezF[bez_AvgOutSampL] = CBALfreq;
|
||||
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X);
|
||||
double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.125;
|
||||
inputSampleR = CBARfreq+bezF[bez_AvgOutSampR]; bezF[bez_AvgOutSampR] = CBARfreq;
|
||||
|
||||
inputSampleL = (wet*inputSampleL)+(dry*drySampleL);
|
||||
inputSampleR = (wet*inputSampleR)+(dry*drySampleR);
|
||||
|
||||
//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++;
|
||||
}
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@ enum {
|
|||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'dblz'; //Change this to what the AU identity is!
|
||||
const unsigned long kUniqueId = 'dblx'; //Change this to what the AU identity is!
|
||||
|
||||
class Dubly3 :
|
||||
public AudioEffectX
|
||||
|
|
|
|||
213
plugins/LinuxVST/src/TakeCare/TakeCare.cpp
Executable file
213
plugins/LinuxVST/src/TakeCare/TakeCare.cpp
Executable file
|
|
@ -0,0 +1,213 @@
|
|||
/* ========================================
|
||||
* TakeCare - TakeCare.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __TakeCare_H
|
||||
#include "TakeCare.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new TakeCare(audioMaster);}
|
||||
|
||||
TakeCare::TakeCare(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.15;
|
||||
B = 0.5;
|
||||
C = 0.5;
|
||||
D = 0.5;
|
||||
E = 0.5;
|
||||
F = 0.5;
|
||||
G = 1.0;
|
||||
H = 1.0;
|
||||
|
||||
for(int x = 0; x < 32767+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;}
|
||||
c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1;
|
||||
c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1;
|
||||
f3AL = f3BL = f3CL = 0.0;
|
||||
f3CR = f3FR = f3IR = 0.0;
|
||||
avg3L = avg3R = 0.0;
|
||||
|
||||
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
|
||||
bez[bez_cycle] = 1.0;
|
||||
|
||||
rotate = 0.0;
|
||||
oldfpd = 0.4294967295;
|
||||
|
||||
buf = 8192;
|
||||
vibDepth = 0.0;
|
||||
outA = 1.0;
|
||||
outB = 1.0;
|
||||
wetA = 1.0;
|
||||
wetB = 1.0;
|
||||
derezA = 0.5;
|
||||
derezB = 0.5;
|
||||
|
||||
lastSampleL = 0.0;
|
||||
wasPosClipL = false;
|
||||
wasNegClipL = false;
|
||||
lastSampleR = 0.0;
|
||||
wasPosClipR = false;
|
||||
wasNegClipR = false;
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
TakeCare::~TakeCare() {}
|
||||
VstInt32 TakeCare::getVendorVersion () {return 1000;}
|
||||
void TakeCare::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void TakeCare::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 TakeCare::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;
|
||||
chunkData[6] = G;
|
||||
chunkData[7] = H;
|
||||
/* 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 TakeCare::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]);
|
||||
G = pinParameter(chunkData[6]);
|
||||
H = pinParameter(chunkData[7]);
|
||||
/* 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 TakeCare::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;
|
||||
case kParamG: G = value; break;
|
||||
case kParamH: H = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float TakeCare::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;
|
||||
case kParamG: return G; break;
|
||||
case kParamH: return H; 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 TakeCare::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "Speed", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "Rando", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Depth", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "Regen", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "Derez", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "Buffer", kVstMaxParamStrLen); break;
|
||||
case kParamG: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
|
||||
case kParamH: 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 TakeCare::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;
|
||||
case kParamG: float2string (G, text, kVstMaxParamStrLen); break;
|
||||
case kParamH: float2string (H, text, kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void TakeCare::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;
|
||||
case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 TakeCare::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool TakeCare::getEffectName(char* name) {
|
||||
vst_strncpy(name, "TakeCare", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory TakeCare::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool TakeCare::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows TakeCare", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool TakeCare::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
140
plugins/LinuxVST/src/TakeCare/TakeCare.h
Executable file
140
plugins/LinuxVST/src/TakeCare/TakeCare.h
Executable file
|
|
@ -0,0 +1,140 @@
|
|||
/* ========================================
|
||||
* TakeCare - TakeCare.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __TakeCare_H
|
||||
#define __TakeCare_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,
|
||||
kParamG =6,
|
||||
kParamH =7,
|
||||
kNumParameters = 8
|
||||
}; //
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'tcar'; //Change this to what the AU identity is!
|
||||
|
||||
class TakeCare :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
TakeCare(audioMasterCallback audioMaster);
|
||||
~TakeCare();
|
||||
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;
|
||||
float G;
|
||||
float H;
|
||||
|
||||
double a3AL[32767+5];
|
||||
double a3BL[32767+5];
|
||||
double a3CL[32767+5];
|
||||
double a3DL[32767+5];
|
||||
double a3EL[32767+5];
|
||||
double a3FL[32767+5];
|
||||
double a3GL[32767+5];
|
||||
double a3HL[32767+5];
|
||||
double a3IL[32767+5];
|
||||
double a3AR[32767+5];
|
||||
double a3BR[32767+5];
|
||||
double a3CR[32767+5];
|
||||
double a3DR[32767+5];
|
||||
double a3ER[32767+5];
|
||||
double a3FR[32767+5];
|
||||
double a3GR[32767+5];
|
||||
double a3HR[32767+5];
|
||||
double a3IR[32767+5];
|
||||
int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER;
|
||||
int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR;
|
||||
double f3AL,f3BL,f3CL,f3CR,f3FR,f3IR;
|
||||
double avg3L,avg3R;
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_AR,
|
||||
bez_BL,
|
||||
bez_BR,
|
||||
bez_CL,
|
||||
bez_CR,
|
||||
bez_InL,
|
||||
bez_InR,
|
||||
bez_UnInL,
|
||||
bez_UnInR,
|
||||
bez_SampL,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bez[bez_total];
|
||||
|
||||
double rotate;
|
||||
double oldfpd;
|
||||
|
||||
int buf;
|
||||
double vibDepth;
|
||||
double derezA;
|
||||
double derezB;
|
||||
double outA;
|
||||
double outB;
|
||||
double wetA;
|
||||
double wetB;
|
||||
|
||||
double lastSampleL;
|
||||
bool wasPosClipL;
|
||||
bool wasNegClipL;
|
||||
double lastSampleR;
|
||||
bool wasPosClipR;
|
||||
bool wasNegClipR; //Stereo ClipOnly
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
540
plugins/LinuxVST/src/TakeCare/TakeCareProc.cpp
Executable file
540
plugins/LinuxVST/src/TakeCare/TakeCareProc.cpp
Executable file
|
|
@ -0,0 +1,540 @@
|
|||
/* ========================================
|
||||
* TakeCare - TakeCare.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __TakeCare_H
|
||||
#include "TakeCare.h"
|
||||
#endif
|
||||
|
||||
void TakeCare::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
float* in1 = inputs[0];
|
||||
float* in2 = inputs[1];
|
||||
float* out1 = outputs[0];
|
||||
float* out2 = outputs[1];
|
||||
|
||||
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= getSampleRate();
|
||||
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
|
||||
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
|
||||
double vibSpeed = pow(A,5.0) * 0.1;
|
||||
double vibRandom = pow(B,3.0) * 0.99;
|
||||
double targetDepth = pow(C,2.0) * 0.5;
|
||||
double reg3n = D*0.0625;
|
||||
|
||||
derezA = derezB; derezB = E*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derezB > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derezB = 1.0-(derezB-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derezB = fmin(fmax(derezB/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derezB);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derezB = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derezB*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derezB /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derezB*0.5,1.0/(derezB*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
int targetBuf = (pow(F,3.0)*32510.0)+256;
|
||||
outA = outB; outB = G;
|
||||
wetA = wetB; wetB = 1.0-pow(1.0-H,2.0);
|
||||
|
||||
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 temp = (double)sampleFrames/inFramesToProcess;
|
||||
double derez = (derezA*temp)+(derezB*(1.0-temp));
|
||||
double out = (outA*temp)+(outB*(1.0-temp));
|
||||
double wet = (wetA*temp)+(wetB*(1.0-temp));
|
||||
|
||||
bez[bez_cycle] += derez;
|
||||
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
|
||||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
rotate += (oldfpd*vibSpeed);
|
||||
if (rotate > (M_PI*2.0)) {
|
||||
rotate -= (M_PI*2.0);
|
||||
oldfpd = (1.0-vibRandom) + ((fpdL*0.000000000618)*vibRandom);
|
||||
}
|
||||
vibDepth = (vibDepth*0.99)+(targetDepth*0.01);
|
||||
if (buf < targetBuf) buf++;
|
||||
if (buf > targetBuf) buf--;
|
||||
|
||||
double mA = (sin(rotate)+1.0)*vibDepth*buf;
|
||||
double mB = (sin(rotate+(M_PI/9.0))+1.0)*vibDepth*buf;
|
||||
double mC = (sin(rotate+((M_PI/9.0)*2.0))+1.0)*vibDepth*buf;
|
||||
double mD = (sin(rotate+((M_PI/9.0)*3.0))+1.0)*vibDepth*buf;
|
||||
double mE = (sin(rotate+((M_PI/9.0)*4.0))+1.0)*vibDepth*buf;
|
||||
double mF = (sin(rotate+((M_PI/9.0)*5.0))+1.0)*vibDepth*buf;
|
||||
double mG = (sin(rotate+((M_PI/9.0)*6.0))+1.0)*vibDepth*buf;
|
||||
double mH = (sin(rotate+((M_PI/9.0)*7.0))+1.0)*vibDepth*buf;
|
||||
double mI = (sin(rotate+((M_PI/9.0)*8.0))+1.0)*vibDepth*buf;
|
||||
|
||||
inputSampleL = sin(fmin(fmax(inputSampleL*0.5,-M_PI_2),M_PI_2));
|
||||
inputSampleR = sin(fmin(fmax(inputSampleR*0.5,-M_PI_2),M_PI_2));
|
||||
|
||||
a3AL[c3AL] = inputSampleL + fmin(fmax(f3AL*reg3n,-M_PI),M_PI);
|
||||
a3BL[c3BL] = inputSampleL + fmin(fmax(f3BL*reg3n,-M_PI),M_PI);
|
||||
a3CL[c3CL] = inputSampleL + fmin(fmax(f3CL*reg3n,-M_PI),M_PI);
|
||||
|
||||
a3CR[c3CR] = inputSampleR + fmin(fmax(f3CR*reg3n,-M_PI),M_PI);
|
||||
a3FR[c3FR] = inputSampleR + fmin(fmax(f3FR*reg3n,-M_PI),M_PI);
|
||||
a3IR[c3IR] = inputSampleR + fmin(fmax(f3IR*reg3n,-M_PI),M_PI);
|
||||
|
||||
c3AL++; if (c3AL < 0 || c3AL > buf) c3AL = 0;
|
||||
c3BL++; if (c3BL < 0 || c3BL > buf) c3BL = 0;
|
||||
c3CL++; if (c3CL < 0 || c3CL > buf) c3CL = 0;
|
||||
c3CR++; if (c3CR < 0 || c3CR > buf) c3CR = 0;
|
||||
c3FR++; if (c3FR < 0 || c3FR > buf) c3FR = 0;
|
||||
c3IR++; if (c3IR < 0 || c3IR > buf) c3IR = 0;
|
||||
|
||||
double o3AL = a3AL[(int)(c3AL+mA-((c3AL+mA>buf)?buf+1:0))] *(1.0-(mA-floor(mA)));
|
||||
o3AL += (a3AL[(int)(c3AL+mA+1-((c3AL+mA+1>buf)?buf+1:0))] *((mA-floor(mA))));
|
||||
double o3BL = a3BL[(int)(c3BL+mB-((c3BL+mB>buf)?buf+1:0))] *(1.0-(mB-floor(mB)));
|
||||
o3BL += (a3BL[(int)(c3BL+mB+1-((c3BL+mB+1>buf)?buf+1:0))] *((mB-floor(mB))));
|
||||
double o3CL = a3CL[(int)(c3CL+mC-((c3CL+mC>buf)?buf+1:0))] *(1.0-(mC-floor(mC)));
|
||||
o3CL += (a3CL[(int)(c3CL+mC+1-((c3CL+mC+1>buf)?buf+1:0))] *((mC-floor(mC))));
|
||||
double o3CR = a3CR[(int)(c3CR+mC-((c3CR+mC>buf)?buf+1:0))] *(1.0-(mC-floor(mC)));
|
||||
o3CR += (a3CR[(int)(c3CR+mC+1-((c3CR+mC+1>buf)?buf+1:0))] *((mC-floor(mC))));
|
||||
double o3FR = a3FR[(int)(c3FR+mF-((c3FR+mF>buf)?buf+1:0))] *(1.0-(mF-floor(mF)));
|
||||
o3FR += (a3FR[(int)(c3FR+mF+1-((c3FR+mF+1>buf)?buf+1:0))] *((mF-floor(mF))));
|
||||
double o3IR = a3IR[(int)(c3IR+mI-((c3IR+mI>buf)?buf+1:0))] *(1.0-(mI-floor(mI)));
|
||||
o3IR += (a3IR[(int)(c3IR+mI+1-((c3IR+mI+1>buf)?buf+1:0))] *((mI-floor(mI))));
|
||||
|
||||
a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL);
|
||||
a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL);
|
||||
a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL);
|
||||
a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR);
|
||||
a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR);
|
||||
a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR);
|
||||
|
||||
c3DL++; if (c3DL < 0 || c3DL > buf) c3DL = 0;
|
||||
c3EL++; if (c3EL < 0 || c3EL > buf) c3EL = 0;
|
||||
c3FL++; if (c3FL < 0 || c3FL > buf) c3FL = 0;
|
||||
c3BR++; if (c3BR < 0 || c3BR > buf) c3BR = 0;
|
||||
c3ER++; if (c3ER < 0 || c3ER > buf) c3ER = 0;
|
||||
c3HR++; if (c3HR < 0 || c3HR > buf) c3HR = 0;
|
||||
|
||||
double o3DL = a3DL[(int)(c3DL+mD-((c3DL+mD>buf)?buf+1:0))] *(1.0-(mD-floor(mD)));
|
||||
o3DL += (a3DL[(int)(c3DL+mD+1-((c3DL+mD+1>buf)?buf+1:0))] *((mD-floor(mD))));
|
||||
double o3EL = a3EL[(int)(c3EL+mE-((c3EL+mE>buf)?buf+1:0))] *(1.0-(mE-floor(mE)));
|
||||
o3EL += (a3EL[(int)(c3EL+mE+1-((c3EL+mE+1>buf)?buf+1:0))] *((mE-floor(mE))));
|
||||
double o3FL = a3FL[(int)(c3FL+mF-((c3FL+mF>buf)?buf+1:0))] *(1.0-(mF-floor(mF)));
|
||||
o3FL += (a3FL[(int)(c3FL+mF+1-((c3FL+mF+1>buf)?buf+1:0))] *((mF-floor(mF))));
|
||||
double o3BR = a3BR[(int)(c3BR+mB-((c3BR+mB>buf)?buf+1:0))] *(1.0-(mB-floor(mB)));
|
||||
o3BR += (a3BR[(int)(c3BR+mB+1-((c3BR+mB+1>buf)?buf+1:0))] *((mB-floor(mB))));
|
||||
double o3ER = a3ER[(int)(c3ER+mE-((c3ER+mE>buf)?buf+1:0))] *(1.0-(mE-floor(mE)));
|
||||
o3ER += (a3ER[(int)(c3ER+mE+1-((c3ER+mE+1>buf)?buf+1:0))] *((mE-floor(mE))));
|
||||
double o3HR = a3HR[(int)(c3HR+mH-((c3HR+mH>buf)?buf+1:0))] *(1.0-(mH-floor(mH)));
|
||||
o3HR += (a3HR[(int)(c3HR+mH+1-((c3HR+mH+1>buf)?buf+1:0))] *((mH-floor(mH))));
|
||||
|
||||
a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL);
|
||||
a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL);
|
||||
a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL);
|
||||
a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR);
|
||||
a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER);
|
||||
a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR);
|
||||
|
||||
|
||||
c3GL++; if (c3GL < 0 || c3GL > buf) c3GL = 0;
|
||||
c3HL++; if (c3HL < 0 || c3HL > buf) c3HL = 0;
|
||||
c3IL++; if (c3IL < 0 || c3IL > buf) c3IL = 0;
|
||||
c3AR++; if (c3AR < 0 || c3AR > buf) c3AR = 0;
|
||||
c3DR++; if (c3DR < 0 || c3DR > buf) c3DR = 0;
|
||||
c3GR++; if (c3GR < 0 || c3GR > buf) c3GR = 0;
|
||||
|
||||
double o3GL = a3GL[(int)(c3GL+mG-((c3GL+mG>buf)?buf+1:0))] *(1.0-(mG-floor(mG)));
|
||||
o3GL += (a3GL[(int)(c3GL+mG+1-((c3GL+mG+1>buf)?buf+1:0))] *((mG-floor(mG))));
|
||||
double o3HL = a3HL[(int)(c3HL+mH-((c3HL+mH>buf)?buf+1:0))] *(1.0-(mH-floor(mH)));
|
||||
o3HL += (a3HL[(int)(c3HL+mH+1-((c3HL+mH+1>buf)?buf+1:0))] *((mH-floor(mH))));
|
||||
double o3IL = a3IL[(int)(c3IL+mI-((c3IL+mI>buf)?buf+1:0))] *(1.0-(mI-floor(mI)));
|
||||
o3IL += (a3IL[(int)(c3IL+mI+1-((c3IL+mI+1>buf)?buf+1:0))] *((mI-floor(mI))));
|
||||
double o3AR = a3AR[(int)(c3AR+mA-((c3AR+mA>buf)?buf+1:0))] *(1.0-(mA-floor(mA)));
|
||||
o3AR += (a3AR[(int)(c3AR+mA+1-((c3AR+mA+1>buf)?buf+1:0))] *((mA-floor(mA))));
|
||||
double o3DR = a3DR[(int)(c3DR+mD-((c3DR+mD>buf)?buf+1:0))] *(1.0-(mD-floor(mD)));
|
||||
o3DR += (a3DR[(int)(c3DR+mD+1-((c3DR+mD+1>buf)?buf+1:0))] *((mD-floor(mD))));
|
||||
double o3GR = a3GR[(int)(c3GR+mG-((c3GR+mG>buf)?buf+1:0))] *(1.0-(mG-floor(mG)));
|
||||
o3GR += (a3GR[(int)(c3GR+mG+1-((c3GR+mG+1>buf)?buf+1:0))] *((mG-floor(mG))));
|
||||
|
||||
f3AL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
f3BL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
f3CL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
|
||||
f3CR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
f3FR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
f3IR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
|
||||
double inputSampleL = (o3GL + o3HL + o3IL)*0.03125;
|
||||
double inputSampleR = (o3AR + o3DR + o3GR)*0.03125;
|
||||
|
||||
f3AL = (f3AL+f3AL+f3AL+fabs(avg3L))*0.25; avg3L = f3AL;
|
||||
f3CR = (f3CR+f3CR+f3CR+fabs(avg3R))*0.25; avg3R = f3CR;
|
||||
//manipulating deep reverb tail for realism
|
||||
|
||||
//begin ClipOnly stereo as a little, compressed chunk that can be dropped into undersampled code
|
||||
inputSampleL = fmin(fmax(inputSampleL,-4.0),4.0);
|
||||
if (wasPosClipL == true) { //current will be over
|
||||
if (inputSampleL<lastSampleL) lastSampleL=0.79+(inputSampleL*0.2);
|
||||
else lastSampleL = 0.2+(lastSampleL*0.79);
|
||||
} wasPosClipL = false;
|
||||
if (inputSampleL>0.99) {wasPosClipL=true;inputSampleL=0.79+(lastSampleL*0.2);}
|
||||
if (wasNegClipL == true) { //current will be -over
|
||||
if (inputSampleL > lastSampleL) lastSampleL=-0.79+(inputSampleL*0.2);
|
||||
else lastSampleL=-0.2+(lastSampleL*0.79);
|
||||
} wasNegClipL = false;
|
||||
if (inputSampleL<-0.99) {wasNegClipL=true;inputSampleL=-0.79+(lastSampleL*0.2);}
|
||||
lastSampleL = inputSampleL;
|
||||
inputSampleR = fmin(fmax(inputSampleR,-4.0),4.0);
|
||||
if (wasPosClipR == true) { //current will be over
|
||||
if (inputSampleR<lastSampleR) lastSampleR=0.79+(inputSampleR*0.2);
|
||||
else lastSampleR = 0.2+(lastSampleR*0.79);
|
||||
} wasPosClipR = false;
|
||||
if (inputSampleR>0.99) {wasPosClipR=true;inputSampleR=0.79+(lastSampleR*0.2);}
|
||||
if (wasNegClipR == true) { //current will be -over
|
||||
if (inputSampleR > lastSampleR) lastSampleR=-0.79+(inputSampleR*0.2);
|
||||
else lastSampleR=-0.2+(lastSampleR*0.79);
|
||||
} wasNegClipR = false;
|
||||
if (inputSampleR<-0.99) {wasNegClipR=true;inputSampleR=-0.79+(lastSampleR*0.2);}
|
||||
lastSampleR = inputSampleR;
|
||||
//end ClipOnly stereo as a little, compressed chunk that can be dropped into undersampled code
|
||||
|
||||
inputSampleL = asin(inputSampleL*0.7);
|
||||
inputSampleR = asin(inputSampleR*0.7);
|
||||
|
||||
bez[bez_CL] = bez[bez_BL];
|
||||
bez[bez_BL] = bez[bez_AL];
|
||||
bez[bez_AL] = inputSampleL;
|
||||
bez[bez_SampL] = 0.0;
|
||||
|
||||
bez[bez_CR] = bez[bez_BR];
|
||||
bez[bez_BR] = bez[bez_AR];
|
||||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
|
||||
double X = bez[bez_cycle] * bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.25;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.25;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
if (out != 1.0) {
|
||||
inputSampleL *= out;
|
||||
inputSampleR *= out;
|
||||
}
|
||||
|
||||
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 TakeCare::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
double* in1 = inputs[0];
|
||||
double* in2 = inputs[1];
|
||||
double* out1 = outputs[0];
|
||||
double* out2 = outputs[1];
|
||||
|
||||
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= getSampleRate();
|
||||
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
|
||||
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
|
||||
double vibSpeed = pow(A,5.0) * 0.1;
|
||||
double vibRandom = pow(B,3.0) * 0.99;
|
||||
double targetDepth = pow(C,2.0) * 0.5;
|
||||
double reg3n = D*0.0625;
|
||||
|
||||
derezA = derezB; derezB = E*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derezB > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derezB = 1.0-(derezB-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derezB = fmin(fmax(derezB/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derezB);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derezB = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derezB*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derezB /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derezB*0.5,1.0/(derezB*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
int targetBuf = (pow(F,3.0)*32510.0)+256;
|
||||
outA = outB; outB = G;
|
||||
wetA = wetB; wetB = 1.0-pow(1.0-H,2.0);
|
||||
|
||||
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 temp = (double)sampleFrames/inFramesToProcess;
|
||||
double derez = (derezA*temp)+(derezB*(1.0-temp));
|
||||
double out = (outA*temp)+(outB*(1.0-temp));
|
||||
double wet = (wetA*temp)+(wetB*(1.0-temp));
|
||||
|
||||
bez[bez_cycle] += derez;
|
||||
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
|
||||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
rotate += (oldfpd*vibSpeed);
|
||||
if (rotate > (M_PI*2.0)) {
|
||||
rotate -= (M_PI*2.0);
|
||||
oldfpd = (1.0-vibRandom) + ((fpdL*0.000000000618)*vibRandom);
|
||||
}
|
||||
vibDepth = (vibDepth*0.99)+(targetDepth*0.01);
|
||||
if (buf < targetBuf) buf++;
|
||||
if (buf > targetBuf) buf--;
|
||||
|
||||
double mA = (sin(rotate)+1.0)*vibDepth*buf;
|
||||
double mB = (sin(rotate+(M_PI/9.0))+1.0)*vibDepth*buf;
|
||||
double mC = (sin(rotate+((M_PI/9.0)*2.0))+1.0)*vibDepth*buf;
|
||||
double mD = (sin(rotate+((M_PI/9.0)*3.0))+1.0)*vibDepth*buf;
|
||||
double mE = (sin(rotate+((M_PI/9.0)*4.0))+1.0)*vibDepth*buf;
|
||||
double mF = (sin(rotate+((M_PI/9.0)*5.0))+1.0)*vibDepth*buf;
|
||||
double mG = (sin(rotate+((M_PI/9.0)*6.0))+1.0)*vibDepth*buf;
|
||||
double mH = (sin(rotate+((M_PI/9.0)*7.0))+1.0)*vibDepth*buf;
|
||||
double mI = (sin(rotate+((M_PI/9.0)*8.0))+1.0)*vibDepth*buf;
|
||||
|
||||
inputSampleL = sin(fmin(fmax(inputSampleL*0.5,-M_PI_2),M_PI_2));
|
||||
inputSampleR = sin(fmin(fmax(inputSampleR*0.5,-M_PI_2),M_PI_2));
|
||||
|
||||
a3AL[c3AL] = inputSampleL + fmin(fmax(f3AL*reg3n,-M_PI),M_PI);
|
||||
a3BL[c3BL] = inputSampleL + fmin(fmax(f3BL*reg3n,-M_PI),M_PI);
|
||||
a3CL[c3CL] = inputSampleL + fmin(fmax(f3CL*reg3n,-M_PI),M_PI);
|
||||
|
||||
a3CR[c3CR] = inputSampleR + fmin(fmax(f3CR*reg3n,-M_PI),M_PI);
|
||||
a3FR[c3FR] = inputSampleR + fmin(fmax(f3FR*reg3n,-M_PI),M_PI);
|
||||
a3IR[c3IR] = inputSampleR + fmin(fmax(f3IR*reg3n,-M_PI),M_PI);
|
||||
|
||||
c3AL++; if (c3AL < 0 || c3AL > buf) c3AL = 0;
|
||||
c3BL++; if (c3BL < 0 || c3BL > buf) c3BL = 0;
|
||||
c3CL++; if (c3CL < 0 || c3CL > buf) c3CL = 0;
|
||||
c3CR++; if (c3CR < 0 || c3CR > buf) c3CR = 0;
|
||||
c3FR++; if (c3FR < 0 || c3FR > buf) c3FR = 0;
|
||||
c3IR++; if (c3IR < 0 || c3IR > buf) c3IR = 0;
|
||||
|
||||
double o3AL = a3AL[(int)(c3AL+mA-((c3AL+mA>buf)?buf+1:0))] *(1.0-(mA-floor(mA)));
|
||||
o3AL += (a3AL[(int)(c3AL+mA+1-((c3AL+mA+1>buf)?buf+1:0))] *((mA-floor(mA))));
|
||||
double o3BL = a3BL[(int)(c3BL+mB-((c3BL+mB>buf)?buf+1:0))] *(1.0-(mB-floor(mB)));
|
||||
o3BL += (a3BL[(int)(c3BL+mB+1-((c3BL+mB+1>buf)?buf+1:0))] *((mB-floor(mB))));
|
||||
double o3CL = a3CL[(int)(c3CL+mC-((c3CL+mC>buf)?buf+1:0))] *(1.0-(mC-floor(mC)));
|
||||
o3CL += (a3CL[(int)(c3CL+mC+1-((c3CL+mC+1>buf)?buf+1:0))] *((mC-floor(mC))));
|
||||
double o3CR = a3CR[(int)(c3CR+mC-((c3CR+mC>buf)?buf+1:0))] *(1.0-(mC-floor(mC)));
|
||||
o3CR += (a3CR[(int)(c3CR+mC+1-((c3CR+mC+1>buf)?buf+1:0))] *((mC-floor(mC))));
|
||||
double o3FR = a3FR[(int)(c3FR+mF-((c3FR+mF>buf)?buf+1:0))] *(1.0-(mF-floor(mF)));
|
||||
o3FR += (a3FR[(int)(c3FR+mF+1-((c3FR+mF+1>buf)?buf+1:0))] *((mF-floor(mF))));
|
||||
double o3IR = a3IR[(int)(c3IR+mI-((c3IR+mI>buf)?buf+1:0))] *(1.0-(mI-floor(mI)));
|
||||
o3IR += (a3IR[(int)(c3IR+mI+1-((c3IR+mI+1>buf)?buf+1:0))] *((mI-floor(mI))));
|
||||
|
||||
a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL);
|
||||
a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL);
|
||||
a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL);
|
||||
a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR);
|
||||
a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR);
|
||||
a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR);
|
||||
|
||||
c3DL++; if (c3DL < 0 || c3DL > buf) c3DL = 0;
|
||||
c3EL++; if (c3EL < 0 || c3EL > buf) c3EL = 0;
|
||||
c3FL++; if (c3FL < 0 || c3FL > buf) c3FL = 0;
|
||||
c3BR++; if (c3BR < 0 || c3BR > buf) c3BR = 0;
|
||||
c3ER++; if (c3ER < 0 || c3ER > buf) c3ER = 0;
|
||||
c3HR++; if (c3HR < 0 || c3HR > buf) c3HR = 0;
|
||||
|
||||
double o3DL = a3DL[(int)(c3DL+mD-((c3DL+mD>buf)?buf+1:0))] *(1.0-(mD-floor(mD)));
|
||||
o3DL += (a3DL[(int)(c3DL+mD+1-((c3DL+mD+1>buf)?buf+1:0))] *((mD-floor(mD))));
|
||||
double o3EL = a3EL[(int)(c3EL+mE-((c3EL+mE>buf)?buf+1:0))] *(1.0-(mE-floor(mE)));
|
||||
o3EL += (a3EL[(int)(c3EL+mE+1-((c3EL+mE+1>buf)?buf+1:0))] *((mE-floor(mE))));
|
||||
double o3FL = a3FL[(int)(c3FL+mF-((c3FL+mF>buf)?buf+1:0))] *(1.0-(mF-floor(mF)));
|
||||
o3FL += (a3FL[(int)(c3FL+mF+1-((c3FL+mF+1>buf)?buf+1:0))] *((mF-floor(mF))));
|
||||
double o3BR = a3BR[(int)(c3BR+mB-((c3BR+mB>buf)?buf+1:0))] *(1.0-(mB-floor(mB)));
|
||||
o3BR += (a3BR[(int)(c3BR+mB+1-((c3BR+mB+1>buf)?buf+1:0))] *((mB-floor(mB))));
|
||||
double o3ER = a3ER[(int)(c3ER+mE-((c3ER+mE>buf)?buf+1:0))] *(1.0-(mE-floor(mE)));
|
||||
o3ER += (a3ER[(int)(c3ER+mE+1-((c3ER+mE+1>buf)?buf+1:0))] *((mE-floor(mE))));
|
||||
double o3HR = a3HR[(int)(c3HR+mH-((c3HR+mH>buf)?buf+1:0))] *(1.0-(mH-floor(mH)));
|
||||
o3HR += (a3HR[(int)(c3HR+mH+1-((c3HR+mH+1>buf)?buf+1:0))] *((mH-floor(mH))));
|
||||
|
||||
a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL);
|
||||
a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL);
|
||||
a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL);
|
||||
a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR);
|
||||
a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER);
|
||||
a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR);
|
||||
|
||||
|
||||
c3GL++; if (c3GL < 0 || c3GL > buf) c3GL = 0;
|
||||
c3HL++; if (c3HL < 0 || c3HL > buf) c3HL = 0;
|
||||
c3IL++; if (c3IL < 0 || c3IL > buf) c3IL = 0;
|
||||
c3AR++; if (c3AR < 0 || c3AR > buf) c3AR = 0;
|
||||
c3DR++; if (c3DR < 0 || c3DR > buf) c3DR = 0;
|
||||
c3GR++; if (c3GR < 0 || c3GR > buf) c3GR = 0;
|
||||
|
||||
double o3GL = a3GL[(int)(c3GL+mG-((c3GL+mG>buf)?buf+1:0))] *(1.0-(mG-floor(mG)));
|
||||
o3GL += (a3GL[(int)(c3GL+mG+1-((c3GL+mG+1>buf)?buf+1:0))] *((mG-floor(mG))));
|
||||
double o3HL = a3HL[(int)(c3HL+mH-((c3HL+mH>buf)?buf+1:0))] *(1.0-(mH-floor(mH)));
|
||||
o3HL += (a3HL[(int)(c3HL+mH+1-((c3HL+mH+1>buf)?buf+1:0))] *((mH-floor(mH))));
|
||||
double o3IL = a3IL[(int)(c3IL+mI-((c3IL+mI>buf)?buf+1:0))] *(1.0-(mI-floor(mI)));
|
||||
o3IL += (a3IL[(int)(c3IL+mI+1-((c3IL+mI+1>buf)?buf+1:0))] *((mI-floor(mI))));
|
||||
double o3AR = a3AR[(int)(c3AR+mA-((c3AR+mA>buf)?buf+1:0))] *(1.0-(mA-floor(mA)));
|
||||
o3AR += (a3AR[(int)(c3AR+mA+1-((c3AR+mA+1>buf)?buf+1:0))] *((mA-floor(mA))));
|
||||
double o3DR = a3DR[(int)(c3DR+mD-((c3DR+mD>buf)?buf+1:0))] *(1.0-(mD-floor(mD)));
|
||||
o3DR += (a3DR[(int)(c3DR+mD+1-((c3DR+mD+1>buf)?buf+1:0))] *((mD-floor(mD))));
|
||||
double o3GR = a3GR[(int)(c3GR+mG-((c3GR+mG>buf)?buf+1:0))] *(1.0-(mG-floor(mG)));
|
||||
o3GR += (a3GR[(int)(c3GR+mG+1-((c3GR+mG+1>buf)?buf+1:0))] *((mG-floor(mG))));
|
||||
|
||||
f3AL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
f3BL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
f3CL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
|
||||
f3CR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
f3FR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
f3IR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
|
||||
double inputSampleL = (o3GL + o3HL + o3IL)*0.03125;
|
||||
double inputSampleR = (o3AR + o3DR + o3GR)*0.03125;
|
||||
|
||||
f3AL = (f3AL+f3AL+f3AL+fabs(avg3L))*0.25; avg3L = f3AL;
|
||||
f3CR = (f3CR+f3CR+f3CR+fabs(avg3R))*0.25; avg3R = f3CR;
|
||||
//manipulating deep reverb tail for realism
|
||||
|
||||
//begin ClipOnly stereo as a little, compressed chunk that can be dropped into undersampled code
|
||||
inputSampleL = fmin(fmax(inputSampleL,-4.0),4.0);
|
||||
if (wasPosClipL == true) { //current will be over
|
||||
if (inputSampleL<lastSampleL) lastSampleL=0.79+(inputSampleL*0.2);
|
||||
else lastSampleL = 0.2+(lastSampleL*0.79);
|
||||
} wasPosClipL = false;
|
||||
if (inputSampleL>0.99) {wasPosClipL=true;inputSampleL=0.79+(lastSampleL*0.2);}
|
||||
if (wasNegClipL == true) { //current will be -over
|
||||
if (inputSampleL > lastSampleL) lastSampleL=-0.79+(inputSampleL*0.2);
|
||||
else lastSampleL=-0.2+(lastSampleL*0.79);
|
||||
} wasNegClipL = false;
|
||||
if (inputSampleL<-0.99) {wasNegClipL=true;inputSampleL=-0.79+(lastSampleL*0.2);}
|
||||
lastSampleL = inputSampleL;
|
||||
inputSampleR = fmin(fmax(inputSampleR,-4.0),4.0);
|
||||
if (wasPosClipR == true) { //current will be over
|
||||
if (inputSampleR<lastSampleR) lastSampleR=0.79+(inputSampleR*0.2);
|
||||
else lastSampleR = 0.2+(lastSampleR*0.79);
|
||||
} wasPosClipR = false;
|
||||
if (inputSampleR>0.99) {wasPosClipR=true;inputSampleR=0.79+(lastSampleR*0.2);}
|
||||
if (wasNegClipR == true) { //current will be -over
|
||||
if (inputSampleR > lastSampleR) lastSampleR=-0.79+(inputSampleR*0.2);
|
||||
else lastSampleR=-0.2+(lastSampleR*0.79);
|
||||
} wasNegClipR = false;
|
||||
if (inputSampleR<-0.99) {wasNegClipR=true;inputSampleR=-0.79+(lastSampleR*0.2);}
|
||||
lastSampleR = inputSampleR;
|
||||
//end ClipOnly stereo as a little, compressed chunk that can be dropped into undersampled code
|
||||
|
||||
inputSampleL = asin(inputSampleL*0.7);
|
||||
inputSampleR = asin(inputSampleR*0.7);
|
||||
|
||||
bez[bez_CL] = bez[bez_BL];
|
||||
bez[bez_BL] = bez[bez_AL];
|
||||
bez[bez_AL] = inputSampleL;
|
||||
bez[bez_SampL] = 0.0;
|
||||
|
||||
bez[bez_CR] = bez[bez_BR];
|
||||
bez[bez_BR] = bez[bez_AR];
|
||||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
|
||||
double X = bez[bez_cycle] * bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.25;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.25;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
if (out != 1.0) {
|
||||
inputSampleL *= out;
|
||||
inputSampleR *= out;
|
||||
}
|
||||
|
||||
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++;
|
||||
}
|
||||
}
|
||||
|
|
@ -13,10 +13,10 @@ kAlienSpaceship::kAlienSpaceship(audioMasterCallback audioMaster) :
|
|||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 1.0;
|
||||
B = 0.5;
|
||||
C = 0.5;
|
||||
D = 0.5;
|
||||
E = 0.0;
|
||||
E = 0.5;
|
||||
F = 0.5;
|
||||
|
||||
for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@ enum {
|
|||
kNumParameters = 6
|
||||
}; //
|
||||
|
||||
const int predelay = 15000;
|
||||
|
||||
const int d3A = 2639; const int d3B = 4367; const int d3C = 4370;
|
||||
const int d3D = 2549; const int d3E = 2706; const int d3F = 3376;
|
||||
const int d3G = 2029; const int d3H = 2261; const int d3I = 2712;
|
||||
|
|
@ -193,6 +191,10 @@ private:
|
|||
bez_UnInR,
|
||||
bez_SampL,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
|
|
|
|||
|
|
@ -21,11 +21,40 @@ void kAlienSpaceship::processReplacing(float **inputs, float **outputs, VstInt32
|
|||
double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333;
|
||||
double reg6n = (1.0-pow(1.0-A,3.0))*fdb6ck;
|
||||
//start this but pad it in the loop by volume of output?
|
||||
double derez = B/overallscale;
|
||||
derez = 1.0 / ((int)(1.0/derez));
|
||||
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
|
||||
double derezFreq = pow(C,3.0)+0.01;
|
||||
if (derezFreq > 1.0) derezFreq = 1.0;
|
||||
|
||||
double derez = B*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derez > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derez = 1.0-(derez-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derez = fmin(fmax(derez/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derez);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derez = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derez*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double derezFreq = C*2.0;
|
||||
bool steppedFreq = true; // Revised Bezier Undersampling
|
||||
if (derezFreq > 1.0) { // has full rez at center, stepped
|
||||
steppedFreq = false; // to left, continuous to right
|
||||
derezFreq = 1.0-(derezFreq-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling
|
||||
int bezFreqFraction = (int)(1.0/derezFreq);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derezFreq = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(derezFreq*bezFreqTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double earlyLoudness = D;
|
||||
int start = (int)(E * 27.0);
|
||||
int ld3G = early[start];
|
||||
|
|
@ -53,10 +82,13 @@ void kAlienSpaceship::processReplacing(float **inputs, float **outputs, VstInt32
|
|||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
bez[bez_cycle] = 0.0;
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = bez[bez_SampL];
|
||||
inputSampleR = bez[bez_SampR];
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n);
|
||||
a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n);
|
||||
|
|
@ -130,22 +162,28 @@ void kAlienSpaceship::processReplacing(float **inputs, float **outputs, VstInt32
|
|||
bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq);
|
||||
bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR;
|
||||
if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample
|
||||
bezF[bez_cycle] -= 1.0;
|
||||
if (steppedFreq) bezF[bez_cycle] = 0.0;
|
||||
else bezF[bez_cycle] -= 1.0;
|
||||
bezF[bez_CL] = bezF[bez_BL];
|
||||
bezF[bez_BL] = bezF[bez_AL];
|
||||
bezF[bez_AL] = inputSampleL;
|
||||
bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5;
|
||||
bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_CR] = bezF[bez_BR];
|
||||
bezF[bez_BR] = bezF[bez_AR];
|
||||
bezF[bez_AR] = inputSampleR;
|
||||
bezF[bez_SampR] = 0.0;
|
||||
bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5;
|
||||
bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-bezF[bez_cycle]))+(bezF[bez_BL]*bezF[bez_cycle]);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-bezF[bez_cycle]))+(bezF[bez_AL]*bezF[bez_cycle]);
|
||||
inputSampleL = (bezF[bez_BL]+(CBLfreq*(1.0-bezF[bez_cycle]))+(BALfreq*bezF[bez_cycle]))*0.5;
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-bezF[bez_cycle]))+(bezF[bez_BR]*bezF[bez_cycle]);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-bezF[bez_cycle]))+(bezF[bez_AR]*bezF[bez_cycle]);
|
||||
inputSampleR = (bezF[bez_BR]+(CBRfreq*(1.0-bezF[bez_cycle]))+(BARfreq*bezF[bez_cycle]))*0.5;
|
||||
double X = bezF[bez_cycle]*bezFreqTrim;
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X);
|
||||
double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.0625;
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X);
|
||||
double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.0625;
|
||||
inputSampleL = CBALfreq+bezF[bez_AvgOutSampL];
|
||||
bezF[bez_AvgOutSampL] = CBALfreq;
|
||||
inputSampleR = CBARfreq+bezF[bez_AvgOutSampR];
|
||||
bezF[bez_AvgOutSampR] = CBARfreq;
|
||||
|
||||
double earlyReflectionL = inputSampleL;
|
||||
double earlyReflectionR = inputSampleR; //for more alienness, early reflections are DeRezzed
|
||||
|
|
@ -448,14 +486,15 @@ void kAlienSpaceship::processReplacing(float **inputs, float **outputs, VstInt32
|
|||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
|
||||
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
|
||||
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
|
||||
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*-0.125;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*-0.125;
|
||||
inputSampleL = CBAL;
|
||||
inputSampleR = CBAR;
|
||||
double X = bez[bez_cycle]*bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
|
||||
|
|
@ -493,11 +532,40 @@ void kAlienSpaceship::processDoubleReplacing(double **inputs, double **outputs,
|
|||
double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333;
|
||||
double reg6n = (1.0-pow(1.0-A,3.0))*fdb6ck;
|
||||
//start this but pad it in the loop by volume of output?
|
||||
double derez = B/overallscale;
|
||||
derez = 1.0 / ((int)(1.0/derez));
|
||||
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
|
||||
double derezFreq = pow(C,3.0)+0.01;
|
||||
if (derezFreq > 1.0) derezFreq = 1.0;
|
||||
|
||||
double derez = B*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derez > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derez = 1.0-(derez-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derez = fmin(fmax(derez/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derez);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derez = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derez*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double derezFreq = C*2.0;
|
||||
bool steppedFreq = true; // Revised Bezier Undersampling
|
||||
if (derezFreq > 1.0) { // has full rez at center, stepped
|
||||
steppedFreq = false; // to left, continuous to right
|
||||
derezFreq = 1.0-(derezFreq-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling
|
||||
int bezFreqFraction = (int)(1.0/derezFreq);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derezFreq = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(derezFreq*bezFreqTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double earlyLoudness = D;
|
||||
int start = (int)(E * 27.0);
|
||||
int ld3G = early[start];
|
||||
|
|
@ -525,10 +593,13 @@ void kAlienSpaceship::processDoubleReplacing(double **inputs, double **outputs,
|
|||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
bez[bez_cycle] = 0.0;
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = bez[bez_SampL];
|
||||
inputSampleR = bez[bez_SampR];
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n);
|
||||
a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n);
|
||||
|
|
@ -602,22 +673,28 @@ void kAlienSpaceship::processDoubleReplacing(double **inputs, double **outputs,
|
|||
bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq);
|
||||
bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR;
|
||||
if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample
|
||||
bezF[bez_cycle] -= 1.0;
|
||||
if (steppedFreq) bezF[bez_cycle] = 0.0;
|
||||
else bezF[bez_cycle] -= 1.0;
|
||||
bezF[bez_CL] = bezF[bez_BL];
|
||||
bezF[bez_BL] = bezF[bez_AL];
|
||||
bezF[bez_AL] = inputSampleL;
|
||||
bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5;
|
||||
bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_CR] = bezF[bez_BR];
|
||||
bezF[bez_BR] = bezF[bez_AR];
|
||||
bezF[bez_AR] = inputSampleR;
|
||||
bezF[bez_SampR] = 0.0;
|
||||
bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5;
|
||||
bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-bezF[bez_cycle]))+(bezF[bez_BL]*bezF[bez_cycle]);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-bezF[bez_cycle]))+(bezF[bez_AL]*bezF[bez_cycle]);
|
||||
inputSampleL = (bezF[bez_BL]+(CBLfreq*(1.0-bezF[bez_cycle]))+(BALfreq*bezF[bez_cycle]))*0.5;
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-bezF[bez_cycle]))+(bezF[bez_BR]*bezF[bez_cycle]);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-bezF[bez_cycle]))+(bezF[bez_AR]*bezF[bez_cycle]);
|
||||
inputSampleR = (bezF[bez_BR]+(CBRfreq*(1.0-bezF[bez_cycle]))+(BARfreq*bezF[bez_cycle]))*0.5;
|
||||
double X = bezF[bez_cycle]*bezFreqTrim;
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X);
|
||||
double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.0625;
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X);
|
||||
double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.0625;
|
||||
inputSampleL = CBALfreq+bezF[bez_AvgOutSampL];
|
||||
bezF[bez_AvgOutSampL] = CBALfreq;
|
||||
inputSampleR = CBARfreq+bezF[bez_AvgOutSampR];
|
||||
bezF[bez_AvgOutSampR] = CBARfreq;
|
||||
|
||||
double earlyReflectionL = inputSampleL;
|
||||
double earlyReflectionR = inputSampleR; //for more alienness, early reflections are DeRezzed
|
||||
|
|
@ -920,14 +997,15 @@ void kAlienSpaceship::processDoubleReplacing(double **inputs, double **outputs,
|
|||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
|
||||
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
|
||||
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
|
||||
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*-0.125;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*-0.125;
|
||||
inputSampleL = CBAL;
|
||||
inputSampleR = CBAR;
|
||||
double X = bez[bez_cycle]*bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
|
||||
|
|
|
|||
227
plugins/LinuxVST/src/kCathedral5/kCathedral5.cpp
Executable file
227
plugins/LinuxVST/src/kCathedral5/kCathedral5.cpp
Executable file
|
|
@ -0,0 +1,227 @@
|
|||
/* ========================================
|
||||
* kCathedral5 - kCathedral5.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __kCathedral5_H
|
||||
#include "kCathedral5.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new kCathedral5(audioMaster);}
|
||||
|
||||
kCathedral5::kCathedral5(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 0.5;
|
||||
C = 0.24;
|
||||
D = 0.5;
|
||||
E = 0.5;
|
||||
F = 0.5;
|
||||
|
||||
for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
|
||||
for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;}
|
||||
for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;}
|
||||
for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;}
|
||||
for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;}
|
||||
for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;}
|
||||
for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;}
|
||||
for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;}
|
||||
for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;}
|
||||
c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1;
|
||||
c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1;
|
||||
|
||||
for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;}
|
||||
for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;}
|
||||
for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;}
|
||||
for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;}
|
||||
for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;}
|
||||
for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;}
|
||||
for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;}
|
||||
for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;}
|
||||
for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;}
|
||||
for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;}
|
||||
for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;}
|
||||
for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;}
|
||||
for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;}
|
||||
for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;}
|
||||
for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;}
|
||||
for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;}
|
||||
for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;}
|
||||
for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;}
|
||||
for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;}
|
||||
for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;}
|
||||
for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;}
|
||||
for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;}
|
||||
for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;}
|
||||
for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;}
|
||||
for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;}
|
||||
c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1;
|
||||
c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1;
|
||||
c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1;
|
||||
c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1;
|
||||
c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1;
|
||||
c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1;
|
||||
c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1;
|
||||
c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1;
|
||||
f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0;
|
||||
f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0;
|
||||
avg6L = avg6R = 0.0;
|
||||
|
||||
for (int x = 0; x < bez_total; x++) {
|
||||
bez[x] = 0.0;
|
||||
bezF[x] = 0.0;
|
||||
}
|
||||
bez[bez_cycle] = 1.0;
|
||||
bezF[bez_cycle] = 1.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
|
||||
}
|
||||
|
||||
kCathedral5::~kCathedral5() {}
|
||||
VstInt32 kCathedral5::getVendorVersion () {return 1000;}
|
||||
void kCathedral5::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void kCathedral5::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 kCathedral5::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 kCathedral5::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 kCathedral5::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 kCathedral5::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 kCathedral5::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "Regen", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "Derez", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Filter", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "EarlyRF", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "Positin", 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 kCathedral5::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 kCathedral5::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 kCathedral5::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool kCathedral5::getEffectName(char* name) {
|
||||
vst_strncpy(name, "kCathedral5", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory kCathedral5::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool kCathedral5::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows kCathedral5", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool kCathedral5::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
209
plugins/LinuxVST/src/kCathedral5/kCathedral5.h
Executable file
209
plugins/LinuxVST/src/kCathedral5/kCathedral5.h
Executable file
|
|
@ -0,0 +1,209 @@
|
|||
/* ========================================
|
||||
* kCathedral5 - kCathedral5.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __kCathedral5_H
|
||||
#define __kCathedral5_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 d3A = 1683; const int d3B = 2395; const int d3C = 2432;
|
||||
const int d3D = 1552; const int d3E = 1735; const int d3F = 2392;
|
||||
const int d3G = 1364; const int d3H = 1468; const int d3I = 1961;
|
||||
#define THREEBYTHREE true
|
||||
const int d6A = 2392; const int d6B = 710; const int d6C = 35; const int d6D = 396; const int d6E = 2395; const int d6F = 81; const int d6G = 20; const int d6H = 2432; const int d6I = 1031; const int d6J = 529; const int d6K = 921; const int d6L = 116; const int d6M = 1961; const int d6N = 747; const int d6O = 160; const int d6P = 231; const int d6Q = 820; const int d6R = 493; const int d6S = 188; const int d6T = 412; const int d6U = 1364; const int d6V = 43; const int d6W = 206; const int d6X = 855; const int d6Y = 216; const int d6ZA = 1735; const int d6ZB = 53; const int d6ZC = 1468; const int d6ZD = 1272; const int d6ZE = 1683; const int d6ZF = 1287; const int d6ZG = 8; const int d6ZH = 14; const int d6ZI = 1552; const int d6ZJ = 88; const int d6ZK = 914; //6 to 259 ms, 2094 seat arena
|
||||
#define SIXBYSIX true //2094-GIBCDG-VACX6 kCathedral5
|
||||
const int early[] = {8, 14, 20, 35, 43, 53, 81, 88, 116, 160, 188, 206, 216, 231, 396, 412, 493, 529, 710, 747, 820, 855, 914, 921, 1031, 1272, 1287, 1364, 1468, 1552, 1683, 1735, 1961, 2392, 2395, 2432};
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'kct5'; //Change this to what the AU identity is!
|
||||
|
||||
class kCathedral5 :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
kCathedral5(audioMasterCallback audioMaster);
|
||||
~kCathedral5();
|
||||
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 a3AL[d3A+5];
|
||||
double a3BL[d3B+5];
|
||||
double a3CL[d3C+5];
|
||||
double a3DL[d3D+5];
|
||||
double a3EL[d3E+5];
|
||||
double a3FL[d3F+5];
|
||||
double a3GL[d3G+5];
|
||||
double a3HL[d3H+5];
|
||||
double a3IL[d3I+5];
|
||||
double a3AR[d3A+5];
|
||||
double a3BR[d3B+5];
|
||||
double a3CR[d3C+5];
|
||||
double a3DR[d3D+5];
|
||||
double a3ER[d3E+5];
|
||||
double a3FR[d3F+5];
|
||||
double a3GR[d3G+5];
|
||||
double a3HR[d3H+5];
|
||||
double a3IR[d3I+5];
|
||||
int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER;
|
||||
int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR;
|
||||
|
||||
double a6AL[d6A+5];
|
||||
double a6BL[d6B+5];
|
||||
double a6CL[d6C+5];
|
||||
double a6DL[d6D+5];
|
||||
double a6EL[d6E+5];
|
||||
double a6FL[d6F+5];
|
||||
double a6GL[d6G+5];
|
||||
double a6HL[d6H+5];
|
||||
double a6IL[d6I+5];
|
||||
double a6JL[d6J+5];
|
||||
double a6KL[d6K+5];
|
||||
double a6LL[d6L+5];
|
||||
double a6ML[d6M+5];
|
||||
double a6NL[d6N+5];
|
||||
double a6OL[d6O+5];
|
||||
double a6PL[d6P+5];
|
||||
double a6QL[d6Q+5];
|
||||
double a6RL[d6R+5];
|
||||
double a6SL[d6S+5];
|
||||
double a6TL[d6T+5];
|
||||
double a6UL[d6U+5];
|
||||
double a6VL[d6V+5];
|
||||
double a6WL[d6W+5];
|
||||
double a6XL[d6X+5];
|
||||
double a6YL[d6Y+5];
|
||||
double a6ZAL[d6ZA+5];
|
||||
double a6ZBL[d6ZB+5];
|
||||
double a6ZCL[d6ZC+5];
|
||||
double a6ZDL[d6ZD+5];
|
||||
double a6ZEL[d6ZE+5];
|
||||
double a6ZFL[d6ZF+5];
|
||||
double a6ZGL[d6ZG+5];
|
||||
double a6ZHL[d6ZH+5];
|
||||
double a6ZIL[d6ZI+5];
|
||||
double a6ZJL[d6ZJ+5];
|
||||
double a6ZKL[d6ZK+5];
|
||||
double a6AR[d6A+5];
|
||||
double a6BR[d6B+5];
|
||||
double a6CR[d6C+5];
|
||||
double a6DR[d6D+5];
|
||||
double a6ER[d6E+5];
|
||||
double a6FR[d6F+5];
|
||||
double a6GR[d6G+5];
|
||||
double a6HR[d6H+5];
|
||||
double a6IR[d6I+5];
|
||||
double a6JR[d6J+5];
|
||||
double a6KR[d6K+5];
|
||||
double a6LR[d6L+5];
|
||||
double a6MR[d6M+5];
|
||||
double a6NR[d6N+5];
|
||||
double a6OR[d6O+5];
|
||||
double a6PR[d6P+5];
|
||||
double a6QR[d6Q+5];
|
||||
double a6RR[d6R+5];
|
||||
double a6SR[d6S+5];
|
||||
double a6TR[d6T+5];
|
||||
double a6UR[d6U+5];
|
||||
double a6VR[d6V+5];
|
||||
double a6WR[d6W+5];
|
||||
double a6XR[d6X+5];
|
||||
double a6YR[d6Y+5];
|
||||
double a6ZAR[d6ZA+5];
|
||||
double a6ZBR[d6ZB+5];
|
||||
double a6ZCR[d6ZC+5];
|
||||
double a6ZDR[d6ZD+5];
|
||||
double a6ZER[d6ZE+5];
|
||||
double a6ZFR[d6ZF+5];
|
||||
double a6ZGR[d6ZG+5];
|
||||
double a6ZHR[d6ZH+5];
|
||||
double a6ZIR[d6ZI+5];
|
||||
double a6ZJR[d6ZJ+5];
|
||||
double a6ZKR[d6ZK+5];
|
||||
int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL;
|
||||
int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL;
|
||||
int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL;
|
||||
int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL;
|
||||
int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR;
|
||||
int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR;
|
||||
int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR;
|
||||
int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR;
|
||||
double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL;
|
||||
double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR;
|
||||
double avg6L,avg6R;
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_AR,
|
||||
bez_BL,
|
||||
bez_BR,
|
||||
bez_CL,
|
||||
bez_CR,
|
||||
bez_InL,
|
||||
bez_InR,
|
||||
bez_UnInL,
|
||||
bez_UnInR,
|
||||
bez_SampL,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bez[bez_total];
|
||||
|
||||
double bezF[bez_total];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
1030
plugins/LinuxVST/src/kCathedral5/kCathedral5Proc.cpp
Executable file
1030
plugins/LinuxVST/src/kCathedral5/kCathedral5Proc.cpp
Executable file
File diff suppressed because it is too large
Load diff
|
|
@ -13,10 +13,10 @@ kGuitarHall2::kGuitarHall2(audioMasterCallback audioMaster) :
|
|||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 1.0;
|
||||
B = 0.5;
|
||||
C = 0.5;
|
||||
D = 0.5;
|
||||
E = 0.0;
|
||||
E = 0.5;
|
||||
F = 0.5;
|
||||
|
||||
for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
|
||||
|
|
|
|||
|
|
@ -25,16 +25,13 @@ enum {
|
|||
kNumParameters = 6
|
||||
}; //
|
||||
|
||||
const int predelay = 15000;
|
||||
|
||||
const int d3A = 1015; const int d3B = 1288; const int d3C = 1396;
|
||||
const int d3D = 784; const int d3E = 1188; const int d3F = 1258;
|
||||
const int d3G = 575; const int d3H = 771; const int d3I = 1257;
|
||||
const int d3A = 874; const int d3B = 1168; const int d3C = 1315;
|
||||
const int d3D = 590; const int d3E = 1060; const int d3F = 1162;
|
||||
const int d3G = 545; const int d3H = 574; const int d3I = 1146;
|
||||
#define THREEBYTHREE true
|
||||
const int d6A = 121; const int d6B = 1396; const int d6C = 784; const int d6D = 184; const int d6E = 132; const int d6F = 434; const int d6G = 91; const int d6H = 144; const int d6I = 155; const int d6J = 771; const int d6K = 122; const int d6L = 1288; const int d6M = 191; const int d6N = 224; const int d6O = 108; const int d6P = 35; const int d6Q = 1257; const int d6R = 575; const int d6S = 504; const int d6T = 264; const int d6U = 198; const int d6V = 14; const int d6W = 246; const int d6X = 81; const int d6Y = 17; const int d6ZA = 71; const int d6ZB = 1015; const int d6ZC = 1258; const int d6ZD = 24; const int d6ZE = 7; const int d6ZF = 255; const int d6ZG = 72; const int d6ZH = 68; const int d6ZI = 117; const int d6ZJ = 1188; const int d6ZK = 339; //6 to 156 ms, 784 seat theater
|
||||
#define SIXBYSIX true //784-EFCCFE-JLBY6 kGuitarHall2
|
||||
|
||||
const int early[] = {7, 14, 17, 24, 35, 68, 71, 72, 81, 91, 108, 117, 121, 122, 132, 144, 155, 184, 191, 198, 224, 246, 255, 264, 339, 434, 504, 575, 771, 784, 1015, 1188, 1257, 1258, 1288, 1396};
|
||||
const int d6A = 1315; const int d6B = 32; const int d6C = 459; const int d6D = 97; const int d6E = 358; const int d6F = 65; const int d6G = 47; const int d6H = 67; const int d6I = 1146; const int d6J = 312; const int d6K = 296; const int d6L = 17; const int d6M = 35; const int d6N = 1162; const int d6O = 1060; const int d6P = 355; const int d6Q = 56; const int d6R = 250; const int d6S = 161; const int d6T = 8; const int d6U = 45; const int d6V = 545; const int d6W = 543; const int d6X = 203; const int d6Y = 590; const int d6ZA = 24; const int d6ZB = 121; const int d6ZC = 35; const int d6ZD = 52; const int d6ZE = 874; const int d6ZF = 15; const int d6ZG = 574; const int d6ZH = 343; const int d6ZI = 24; const int d6ZJ = 102; const int d6ZK = 1168; //2 to 140 ms, 612 seat theater
|
||||
#define SIXBYSIX true //612-GGCCGF-JLBX6 kGuitarHall2
|
||||
const int early[] = {8, 15, 17, 24, 24, 32, 35, 35, 45, 47, 52, 56, 65, 67, 97, 102, 121, 161, 203, 250, 296, 312, 343, 355, 358, 459, 543, 545, 574, 590, 874, 1060, 1146, 1162, 1168, 1315};
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
|
|
@ -193,6 +190,10 @@ private:
|
|||
bez_UnInR,
|
||||
bez_SampL,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
|
|
|
|||
|
|
@ -20,9 +20,24 @@ void kGuitarHall2::processReplacing(float **inputs, float **outputs, VstInt32 sa
|
|||
|
||||
double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333;
|
||||
double reg6n = (1.0-pow(1.0-A,3.0))*fdb6ck;
|
||||
double derez = B/overallscale;
|
||||
derez = 1.0 / ((int)(1.0/derez));
|
||||
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
|
||||
|
||||
double derez = B*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derez > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derez = 1.0-(derez-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derez = fmin(fmax(derez/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derez);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derez = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derez*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double freq = C+0.02;
|
||||
double earlyLoudness = D;
|
||||
int start = (int)(E * 27.0);
|
||||
|
|
@ -51,10 +66,13 @@ void kGuitarHall2::processReplacing(float **inputs, float **outputs, VstInt32 sa
|
|||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
bez[bez_cycle] = 0.0;
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = bez[bez_SampL];
|
||||
inputSampleR = bez[bez_SampR];
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n);
|
||||
a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n);
|
||||
|
|
@ -127,7 +145,7 @@ void kGuitarHall2::processReplacing(float **inputs, float **outputs, VstInt32 sa
|
|||
double earlyReflectionR = inputSampleR;
|
||||
|
||||
if (freq < 1.0) {
|
||||
double di = fabs(freq*(1.0+(inputSampleL))); if (di > 1.0) di = 1.0;
|
||||
double di = fabs(freq*(1.0+(inputSampleL*0.125))); if (di > 1.0) di = 1.0;
|
||||
double slew = ((inputSampleL - pear[prevSampL1]) + pear[prevSlewL1])*di*0.5;
|
||||
pear[prevSampL1] = inputSampleL = (di * inputSampleL) + ((1.0-di) * (pear[prevSampL1] + pear[prevSlewL1]));
|
||||
pear[prevSlewL1] = slew;
|
||||
|
|
@ -140,7 +158,7 @@ void kGuitarHall2::processReplacing(float **inputs, float **outputs, VstInt32 sa
|
|||
pear[prevSampL3] = inputSampleL = (di * inputSampleL) + ((1.0-di) * (pear[prevSampL3] + pear[prevSlewL3]));
|
||||
pear[prevSlewL3] = slew;
|
||||
|
||||
di = fabs(freq*(1.0+(inputSampleR))); if (di > 1.0) di = 1.0;
|
||||
di = fabs(freq*(1.0+(inputSampleR*0.125))); if (di > 1.0) di = 1.0;
|
||||
slew = ((inputSampleR - pear[prevSampR1]) + pear[prevSlewR1])*di*0.5;
|
||||
pear[prevSampR1] = inputSampleR = (di * inputSampleR) + ((1.0-di) * (pear[prevSampR1] + pear[prevSlewR1]));
|
||||
pear[prevSlewR1] = slew;
|
||||
|
|
@ -452,14 +470,15 @@ void kGuitarHall2::processReplacing(float **inputs, float **outputs, VstInt32 sa
|
|||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
|
||||
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
|
||||
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
|
||||
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*-0.125;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*-0.125;
|
||||
inputSampleL = CBAL;
|
||||
inputSampleR = CBAR;
|
||||
double X = bez[bez_cycle]*bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
|
||||
|
|
@ -496,9 +515,22 @@ void kGuitarHall2::processDoubleReplacing(double **inputs, double **outputs, Vst
|
|||
|
||||
double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333;
|
||||
double reg6n = (1.0-pow(1.0-A,3.0))*fdb6ck;
|
||||
double derez = B/overallscale;
|
||||
derez = 1.0 / ((int)(1.0/derez));
|
||||
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
|
||||
double derez = B*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derez > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derez = 1.0-(derez-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derez = fmin(fmax(derez/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derez);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derez = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derez*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
double freq = C+0.02;
|
||||
double earlyLoudness = D;
|
||||
int start = (int)(E * 27.0);
|
||||
|
|
@ -527,10 +559,13 @@ void kGuitarHall2::processDoubleReplacing(double **inputs, double **outputs, Vst
|
|||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
bez[bez_cycle] = 0.0;
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = bez[bez_SampL];
|
||||
inputSampleR = bez[bez_SampR];
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n);
|
||||
a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n);
|
||||
|
|
@ -603,7 +638,7 @@ void kGuitarHall2::processDoubleReplacing(double **inputs, double **outputs, Vst
|
|||
double earlyReflectionR = inputSampleR;
|
||||
|
||||
if (freq < 1.0) {
|
||||
double di = fabs(freq*(1.0+(inputSampleL))); if (di > 1.0) di = 1.0;
|
||||
double di = fabs(freq*(1.0+(inputSampleL*0.125))); if (di > 1.0) di = 1.0;
|
||||
double slew = ((inputSampleL - pear[prevSampL1]) + pear[prevSlewL1])*di*0.5;
|
||||
pear[prevSampL1] = inputSampleL = (di * inputSampleL) + ((1.0-di) * (pear[prevSampL1] + pear[prevSlewL1]));
|
||||
pear[prevSlewL1] = slew;
|
||||
|
|
@ -616,7 +651,7 @@ void kGuitarHall2::processDoubleReplacing(double **inputs, double **outputs, Vst
|
|||
pear[prevSampL3] = inputSampleL = (di * inputSampleL) + ((1.0-di) * (pear[prevSampL3] + pear[prevSlewL3]));
|
||||
pear[prevSlewL3] = slew;
|
||||
|
||||
di = fabs(freq*(1.0+(inputSampleR))); if (di > 1.0) di = 1.0;
|
||||
di = fabs(freq*(1.0+(inputSampleR*0.125))); if (di > 1.0) di = 1.0;
|
||||
slew = ((inputSampleR - pear[prevSampR1]) + pear[prevSlewR1])*di*0.5;
|
||||
pear[prevSampR1] = inputSampleR = (di * inputSampleR) + ((1.0-di) * (pear[prevSampR1] + pear[prevSlewR1]));
|
||||
pear[prevSlewR1] = slew;
|
||||
|
|
@ -928,14 +963,15 @@ void kGuitarHall2::processDoubleReplacing(double **inputs, double **outputs, Vst
|
|||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
|
||||
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
|
||||
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
|
||||
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*-0.125;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*-0.125;
|
||||
inputSampleL = CBAL;
|
||||
inputSampleR = CBAR;
|
||||
double X = bez[bez_cycle]*bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
|
||||
|
|
|
|||
|
|
@ -241,11 +241,6 @@ void ChimeyDeluxe::ChimeyDeluxeKernel::Reset()
|
|||
|
||||
muComp = 1.0;
|
||||
muSpd = 100.0;
|
||||
|
||||
lastSample = 0.0;
|
||||
wasPosClip = false;
|
||||
wasNegClip = false;
|
||||
for (int x = 0; x < 16; x++) intermediate[x] = 0.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
|
@ -300,8 +295,8 @@ void ChimeyDeluxe::ChimeyDeluxeKernel::Process( const Float32 *inSourceP,
|
|||
angG[10] = GetParameter( kParam_J )+0.5;
|
||||
if (pad > angG[10]) pad = angG[10];
|
||||
if (drive < angG[10]) drive = angG[10];
|
||||
angG[11] = 1.0;
|
||||
angG[12] = 1.0;
|
||||
angG[11] = (angG[10]+1.0)*0.5;
|
||||
angG[12] = (angG[11]+1.0)*0.5;
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double threshold = 1.0-(drive*0.23);
|
||||
double adjSpd = ((drive*120.0)+50.0)*overallscale;
|
||||
|
|
@ -338,7 +333,6 @@ void ChimeyDeluxe::ChimeyDeluxeKernel::Process( const Float32 *inSourceP,
|
|||
inputSample *= (muComp*muComp);
|
||||
muSpd = fmax(fmin(((muSpd*(muSpd-1.0))+(fabs(inputSample*adjSpd)))/muSpd,adjSpd*2.0),adjSpd);
|
||||
}
|
||||
|
||||
inputSample = sin(fmin(fmax(inputSample*pad,-M_PI_2),M_PI_2));
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
|
|
|
|||
|
|
@ -151,18 +151,13 @@ public:
|
|||
virtual void Reset();
|
||||
|
||||
private:
|
||||
double angS[18][16];
|
||||
double angA[18][16];
|
||||
double angG[16];
|
||||
double angS[18][15];
|
||||
double angA[18][15];
|
||||
double angG[15];
|
||||
|
||||
double muComp;
|
||||
double muSpd;
|
||||
|
||||
double lastSample;
|
||||
double intermediate[16];
|
||||
bool wasPosClip;
|
||||
bool wasNegClip;
|
||||
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -49,14 +49,14 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 774987717;
|
||||
PBXWorkspaceStateSaveDate = 774987717;
|
||||
PBXPerProjectTemplateStateSaveDate = 776427414;
|
||||
PBXWorkspaceStateSaveDate = 776427414;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B33D58F2DF3AB1D0044A4FF /* PlistBookmark */ = 8B33D58F2DF3AB1D0044A4FF /* PlistBookmark */;
|
||||
8B42CBD92E315A03001C0B57 /* PBXTextBookmark */ = 8B42CBD92E315A03001C0B57 /* PBXTextBookmark */;
|
||||
8BB30DEF2E315FE100663A45 /* PBXTextBookmark */ = 8BB30DEF2E315FE100663A45 /* PBXTextBookmark */;
|
||||
8BB30DF42E315FE100663A45 /* PBXTextBookmark */ = 8BB30DF42E315FE100663A45 /* PBXTextBookmark */;
|
||||
8BB158F92E4759DF00D27777 /* PBXTextBookmark */ = 8BB158F92E4759DF00D27777 /* PBXTextBookmark */;
|
||||
8BB158FA2E4759DF00D27777 /* PBXTextBookmark */ = 8BB158FA2E4759DF00D27777 /* PBXTextBookmark */;
|
||||
8BFD341B2E058DBA00CA61BB /* PBXTextBookmark */ = 8BFD341B2E058DBA00CA61BB /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
|
|
@ -80,17 +80,17 @@
|
|||
fRef = 8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */;
|
||||
name = "ChimeyDeluxe.h: 166";
|
||||
rLen = 0;
|
||||
rLoc = 6270;
|
||||
rLoc = 6181;
|
||||
rType = 0;
|
||||
vrLen = 148;
|
||||
vrLoc = 3;
|
||||
};
|
||||
8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {498, 6516}}";
|
||||
sepNavSelRange = "{13609, 0}";
|
||||
sepNavVisRange = "{13592, 100}";
|
||||
sepNavWindowFrame = "{{5, 74}, {967, 804}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {920, 6696}}";
|
||||
sepNavSelRange = "{13457, 64}";
|
||||
sepNavVisRange = "{12723, 1520}";
|
||||
sepNavWindowFrame = "{{755, 74}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ChimeyDeluxeVersion.h */ = {
|
||||
|
|
@ -101,32 +101,32 @@
|
|||
sepNavWindowFrame = "{{38, 48}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BB30DEF2E315FE100663A45 /* PBXTextBookmark */ = {
|
||||
8BB158F92E4759DF00D27777 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 305";
|
||||
rLen = 0;
|
||||
rLoc = 13609;
|
||||
rLoc = 13521;
|
||||
rType = 0;
|
||||
vrLen = 100;
|
||||
vrLoc = 13592;
|
||||
vrLen = 45;
|
||||
vrLoc = 13609;
|
||||
};
|
||||
8BB30DF42E315FE100663A45 /* PBXTextBookmark */ = {
|
||||
8BB158FA2E4759DF00D27777 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 305";
|
||||
fRef = 8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */;
|
||||
name = "ChimeyDeluxe.h: 161";
|
||||
rLen = 0;
|
||||
rLoc = 13609;
|
||||
rLoc = 6181;
|
||||
rType = 0;
|
||||
vrLen = 100;
|
||||
vrLoc = 13592;
|
||||
vrLen = 103;
|
||||
vrLoc = 147;
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 2772}}";
|
||||
sepNavSelRange = "{3310, 0}";
|
||||
sepNavVisRange = "{2759, 1223}";
|
||||
sepNavWindowFrame = "{{7, 74}, {967, 804}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1029, 3006}}";
|
||||
sepNavSelRange = "{6181, 0}";
|
||||
sepNavVisRange = "{147, 103}";
|
||||
sepNavWindowFrame = "{{783, 74}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@
|
|||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
|
|
@ -326,7 +326,7 @@
|
|||
<real>288</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>5 510 737 363 0 0 1440 878 </string>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -342,7 +342,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>ChimeyDeluxe.cpp</string>
|
||||
<string>ChimeyDeluxe.h</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
|
@ -350,17 +350,17 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>ChimeyDeluxe.cpp</string>
|
||||
<string>ChimeyDeluxe.h</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BB30DF42E315FE100663A45</string>
|
||||
<string>8BB158FA2E4759DF00D27777</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B33D58F2DF3AB1D0044A4FF</string>
|
||||
<string>8BFD341B2E058DBA00CA61BB</string>
|
||||
<string>8BB158F92E4759DF00D27777</string>
|
||||
<string>8B42CBD92E315A03001C0B57</string>
|
||||
<string>8BB30DEF2E315FE100663A45</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -374,18 +374,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {427, 80}}</string>
|
||||
<string>{{0, 0}, {427, 47}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>5 510 737 363 0 0 1440 878 </string>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>80pt</string>
|
||||
<string>47pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>237pt</string>
|
||||
<string>270pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -399,9 +399,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {427, 210}}</string>
|
||||
<string>{{10, 27}, {427, 243}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>5 510 737 363 0 0 1440 878 </string>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -483,11 +483,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BB30DF12E315FE100663A45</string>
|
||||
<string>8BB158FB2E4759DF00D27777</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BB30DF22E315FE100663A45</string>
|
||||
<string>8BB158FC2E4759DF00D27777</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8BB30DF32E315FE100663A45</string>
|
||||
<string>8BB158FD2E4759DF00D27777</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -660,7 +660,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>774987745.83407199</real>
|
||||
<real>776427999.45691097</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -680,7 +680,7 @@
|
|||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ChimeyDeluxe/ChimeyDeluxe.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>5 510 737 363 0 0 1440 878 </string>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
278
plugins/MacAU/DeBez/DeBez.cpp
Executable file
278
plugins/MacAU/DeBez/DeBez.cpp
Executable file
|
|
@ -0,0 +1,278 @@
|
|||
/*
|
||||
* File: DeBez.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/4/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
DeBez.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "DeBez.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(DeBez)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::DeBez
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
DeBez::DeBez(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_A:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamA;
|
||||
break;
|
||||
case kParam_B:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamB;
|
||||
break;
|
||||
case kParam_C:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamC;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// DeBez::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____DeBezEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::DeBezKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void DeBez::DeBezKernel::Reset()
|
||||
{
|
||||
for (int x = 0; x < bez_total; x++) bezF[x] = 0.0;
|
||||
bezF[bez_cycle] = 1.0;
|
||||
|
||||
rezA = 0.5; rezB = 0.5;
|
||||
bitA = 0.5; bitB = 0.5;
|
||||
wetA = 1.0; wetB = 1.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::DeBezKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void DeBez::DeBezKernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
||||
rezA = rezB; rezB = GetParameter( kParam_A )*2.0;
|
||||
bitA = bitB; bitB = GetParameter( kParam_B )*2.0;
|
||||
wetA = wetB; wetB = GetParameter( kParam_C )*2.0;
|
||||
|
||||
bool steppedFreq = true; // Revised Bezier Undersampling
|
||||
if (rezB > 1.0) { // has full rez at center, stepped
|
||||
steppedFreq = false; // to left, continuous to right
|
||||
rezB = 1.0-(rezB-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
rezB = fmin(fmax(pow(rezB,3.0),0.0005),1.0);
|
||||
int bezFreqFraction = (int)(1.0/rezB);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
rezB = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(rezB*bezFreqTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
bezFreqTrim = 1.0-pow(rezB*0.5,1.0/(rezB*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
double rez = (rezA*temp)+(rezB*(1.0-temp));
|
||||
double bit = ((bitA*temp)+(bitB*(1.0-temp)))-1.0;
|
||||
double wet = ((wetA*temp)+(wetB*(1.0-temp)))-1.0;
|
||||
double dry = 1.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
if (wet < -1.0) wet = -1.0;
|
||||
if (dry > 1.0) dry = 1.0;
|
||||
if (dry < 0.0) dry = 0.0;
|
||||
//this bitcrush can be subtracted.
|
||||
|
||||
bezF[bez_cycle] += rez;
|
||||
bezF[bez_SampL] += (inputSampleL * rez);
|
||||
if (bezF[bez_cycle] > 1.0) {
|
||||
if (steppedFreq) bezF[bez_cycle] = 0.0;
|
||||
else bezF[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5;
|
||||
bezF[bez_AvgInSampL] = bezF[bez_SampL];
|
||||
|
||||
bool crushGate = (bit < 0.0);
|
||||
bit = 1.0-fabs(bit);
|
||||
bit = fmin(fmax(bit*16.0,0.5),16.0);
|
||||
double bitFactor = pow(2.0,bit);
|
||||
inputSampleL *= bitFactor;
|
||||
inputSampleL = floor(inputSampleL+(crushGate?0.5/bitFactor:0.0));
|
||||
inputSampleL /= bitFactor;
|
||||
//derez inside debez
|
||||
bezF[bez_CL] = bezF[bez_BL];
|
||||
bezF[bez_BL] = bezF[bez_AL];
|
||||
bezF[bez_AL] = inputSampleL;
|
||||
bezF[bez_SampL] = 0.0;
|
||||
}
|
||||
double X = bezF[bez_cycle]*bezFreqTrim;
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X);
|
||||
double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125;
|
||||
inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; bezF[bez_AvgOutSampL] = CBALfreq;
|
||||
|
||||
inputSampleL = (wet*inputSampleL)+(dry*drySampleL);
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
}
|
||||
|
||||
1
plugins/MacAU/DeBez/DeBez.exp
Executable file
1
plugins/MacAU/DeBez/DeBez.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_DeBezEntry
|
||||
162
plugins/MacAU/DeBez/DeBez.h
Executable file
162
plugins/MacAU/DeBez/DeBez.h
Executable file
|
|
@ -0,0 +1,162 @@
|
|||
/*
|
||||
* File: DeBez.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/4/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 "DeBezVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __DeBez_h__
|
||||
#define __DeBez_h__
|
||||
|
||||
|
||||
#pragma mark ____DeBez Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.5;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 1.0;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("DeBez");
|
||||
static CFStringRef kParameterBName = CFSTR("DeRez");
|
||||
static CFStringRef kParameterCName = CFSTR("Inv/Wet");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=3
|
||||
};
|
||||
|
||||
#pragma mark ____DeBez
|
||||
class DeBez : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
DeBez(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~DeBez () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new DeBezKernel(this); }
|
||||
|
||||
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 kDeBezVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class DeBezKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
DeBezKernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgOutSampL,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezF[bez_total];
|
||||
|
||||
double rezA;
|
||||
double rezB;
|
||||
double bitA;
|
||||
double bitB;
|
||||
double wetA;
|
||||
double wetB;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/DeBez/DeBez.r
Executable file
61
plugins/MacAU/DeBez/DeBez.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: DeBez.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/4/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 "DeBezVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_DeBez 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DeBez~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_DeBez
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE DeBez_COMP_SUBTYPE
|
||||
#define COMP_MANUF DeBez_COMP_MANF
|
||||
|
||||
#define VERSION kDeBezVersion
|
||||
#define NAME "Airwindows: DeBez"
|
||||
#define DESCRIPTION "DeBez AU"
|
||||
#define ENTRY_POINT "DeBezEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacAU/DeBez/DeBez.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacAU/DeBez/DeBez.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
128
plugins/MacAU/DeBez/DeBez.xcodeproj/christopherjohnson.pbxuser
Executable file
128
plugins/MacAU/DeBez/DeBez.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,128 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* DeBez */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
279,
|
||||
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,
|
||||
252,
|
||||
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 = 776362732;
|
||||
PBXWorkspaceStateSaveDate = 776362732;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BCCAF222E465A4300227B45 /* PlistBookmark */ = 8BCCAF222E465A4300227B45 /* PlistBookmark */;
|
||||
8BCCAF2F2E465E1D00227B45 /* PlistBookmark */ = 8BCCAF2F2E465E1D00227B45 /* PlistBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8BA05A660720730100365D66 /* DeBez.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {943, 5202}}";
|
||||
sepNavSelRange = "{9411, 0}";
|
||||
sepNavVisRange = "{10567, 1256}";
|
||||
sepNavWindowFrame = "{{450, 98}, {990, 780}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* DeBezVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1188}}";
|
||||
sepNavSelRange = "{2877, 0}";
|
||||
sepNavVisRange = "{2663, 277}";
|
||||
sepNavWindowFrame = "{{656, 401}, {666, 353}}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* DeBez.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {741, 3240}}";
|
||||
sepNavSelRange = "{5309, 0}";
|
||||
sepNavVisRange = "{0, 0}";
|
||||
sepNavWindowFrame = "{{732, 102}, {708, 768}}";
|
||||
};
|
||||
};
|
||||
8BCCAF222E465A4300227B45 /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/DeBez/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
};
|
||||
8BCCAF2F2E465E1D00227B45 /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/DeBez/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775807;
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* DeBez */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1506
plugins/MacAU/DeBez/DeBez.xcodeproj/christopherjohnson.perspectivev3
Executable file
1506
plugins/MacAU/DeBez/DeBez.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/DeBez/DeBez.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/DeBez/DeBez.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 /* DeBez.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* DeBez.r */; };
|
||||
8BA05A6B0720730100365D66 /* DeBez.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* DeBez.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* DeBezVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* DeBezVersion.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 /* DeBez.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* DeBez.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 /* DeBez.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DeBez.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* DeBez.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = DeBez.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* DeBez.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = DeBez.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* DeBezVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DeBezVersion.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 /* DeBez.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DeBez.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* DeBez.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DeBez.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 /* DeBez */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = DeBez;
|
||||
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 /* DeBez.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* DeBez.h */,
|
||||
8BA05A660720730100365D66 /* DeBez.cpp */,
|
||||
8BA05A670720730100365D66 /* DeBez.exp */,
|
||||
8BA05A680720730100365D66 /* DeBez.r */,
|
||||
8BA05A690720730100365D66 /* DeBezVersion.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 /* DeBezVersion.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 /* DeBez.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 /* DeBez */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "DeBez" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = DeBez;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = DeBez;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* DeBez.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 "DeBez" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* DeBez */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* DeBez */,
|
||||
);
|
||||
};
|
||||
/* 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 /* DeBez.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* DeBez.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 = DeBez.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 = DeBez;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = DeBez.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 = DeBez;
|
||||
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 "DeBez" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "DeBez" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/DeBez/DeBezVersion.h
Executable file
58
plugins/MacAU/DeBez/DeBezVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: DeBezVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/4/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 __DeBezVersion_h__
|
||||
#define __DeBezVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kDeBezVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kDeBezVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define DeBez_COMP_MANF 'Dthr'
|
||||
#define DeBez_COMP_SUBTYPE 'debz'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
BIN
plugins/MacAU/DeBez/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/DeBez/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/DeBez/Info.plist
Executable file
28
plugins/MacAU/DeBez/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>DthX</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
16
plugins/MacAU/DeBez/version.plist
Executable file
16
plugins/MacAU/DeBez/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>
|
||||
|
|
@ -49,14 +49,15 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 748547016;
|
||||
PBXWorkspaceStateSaveDate = 748547016;
|
||||
PBXPerProjectTemplateStateSaveDate = 776426859;
|
||||
PBXWorkspaceStateSaveDate = 776426859;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B859FD72C9CB9DC005F4A7E /* PlistBookmark */ = 8B859FD72C9CB9DC005F4A7E /* PlistBookmark */;
|
||||
8B85A01A2C9CC353005F4A7E /* PBXTextBookmark */ = 8B85A01A2C9CC353005F4A7E /* PBXTextBookmark */;
|
||||
8B85A0A12C9DD217005F4A7E /* PBXTextBookmark */ = 8B85A0A12C9DD217005F4A7E /* PBXTextBookmark */;
|
||||
8B85A16E2C9DEBD2005F4A7E /* PBXTextBookmark */ = 8B85A16E2C9DEBD2005F4A7E /* PBXTextBookmark */;
|
||||
8BA8572B2E475582005028C7 /* PBXTextBookmark */ = 8BA8572B2E475582005028C7 /* PBXTextBookmark */;
|
||||
8BA8572C2E475582005028C7 /* PBXBookmark */ = 8BA8572C2E475582005028C7 /* PBXBookmark */;
|
||||
8BA857312E475582005028C7 /* PBXTextBookmark */ = 8BA857312E475582005028C7 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
|
|
@ -84,17 +85,23 @@
|
|||
vrLen = 111;
|
||||
vrLoc = 5327;
|
||||
};
|
||||
8B85A0A12C9DD217005F4A7E /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dubly3.cpp */;
|
||||
name = "Dubly3.cpp: 249";
|
||||
rLen = 0;
|
||||
rLoc = 11063;
|
||||
rType = 0;
|
||||
vrLen = 280;
|
||||
vrLoc = 10918;
|
||||
8BA05A660720730100365D66 /* Dubly3.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {741, 4950}}";
|
||||
sepNavSelRange = "{11063, 0}";
|
||||
sepNavVisRange = "{10944, 254}";
|
||||
sepNavWindowFrame = "{{768, 57}, {1000, 821}}";
|
||||
};
|
||||
};
|
||||
8B85A16E2C9DEBD2005F4A7E /* PBXTextBookmark */ = {
|
||||
8BA05A690720730100365D66 /* Dubly3Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1134}}";
|
||||
sepNavSelRange = "{2886, 0}";
|
||||
sepNavVisRange = "{2764, 184}";
|
||||
sepNavWindowFrame = "{{15, 52}, {1000, 821}}";
|
||||
};
|
||||
};
|
||||
8BA8572B2E475582005028C7 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dubly3.cpp */;
|
||||
name = "Dubly3.cpp: 249";
|
||||
|
|
@ -104,21 +111,19 @@
|
|||
vrLen = 254;
|
||||
vrLoc = 10944;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Dubly3.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {741, 4968}}";
|
||||
sepNavSelRange = "{11063, 0}";
|
||||
sepNavVisRange = "{10944, 254}";
|
||||
sepNavWindowFrame = "{{768, 57}, {1000, 821}}";
|
||||
};
|
||||
8BA8572C2E475582005028C7 /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* Dubly3Version.h */;
|
||||
};
|
||||
8BA05A690720730100365D66 /* Dubly3Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2886, 0}";
|
||||
sepNavVisRange = "{964, 1985}";
|
||||
sepNavWindowFrame = "{{15, 52}, {1000, 821}}";
|
||||
};
|
||||
8BA857312E475582005028C7 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* Dubly3Version.h */;
|
||||
name = "Dubly3Version.h: 54";
|
||||
rLen = 0;
|
||||
rLoc = 2886;
|
||||
rType = 0;
|
||||
vrLen = 184;
|
||||
vrLoc = 2764;
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Dubly3.h */ = {
|
||||
uiCtxt = {
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@
|
|||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>4</integer>
|
||||
<integer>7</integer>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
|
|
@ -342,7 +342,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Dubly3.cpp</string>
|
||||
<string>Dubly3Version.h</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
|
@ -350,16 +350,17 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>Dubly3.cpp</string>
|
||||
<string>Dubly3Version.h</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8B85A16E2C9DEBD2005F4A7E</string>
|
||||
<string>8BA857312E475582005028C7</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B859FD72C9CB9DC005F4A7E</string>
|
||||
<string>8B85A01A2C9CC353005F4A7E</string>
|
||||
<string>8B85A0A12C9DD217005F4A7E</string>
|
||||
<string>8BA8572B2E475582005028C7</string>
|
||||
<string>8BA8572C2E475582005028C7</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -373,18 +374,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {531, 158}}</string>
|
||||
<string>{{0, 0}, {531, 142}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>593 178 841 654 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>158pt</string>
|
||||
<string>142pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>450pt</string>
|
||||
<string>466pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -398,7 +399,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 423}}</string>
|
||||
<string>{{10, 27}, {531, 439}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>593 178 841 654 0 0 1440 878 </string>
|
||||
</dict>
|
||||
|
|
@ -482,11 +483,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B85A16F2C9DEBD2005F4A7E</string>
|
||||
<string>8BA8572E2E475582005028C7</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8B85A1702C9DEBD2005F4A7E</string>
|
||||
<string>8BA8572F2E475582005028C7</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8B85A1712C9DEBD2005F4A7E</string>
|
||||
<string>8BA857302E475582005028C7</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -659,7 +660,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>748547026.063447</real>
|
||||
<real>776426882.82160604</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
|
|||
BIN
plugins/MacAU/TakeCare/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/TakeCare/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/TakeCare/Info.plist
Executable file
28
plugins/MacAU/TakeCare/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>
|
||||
5
plugins/MacAU/TakeCare/StarterAU_Prefix.pch
Executable file
5
plugins/MacAU/TakeCare/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>
|
||||
545
plugins/MacAU/TakeCare/TakeCare.cpp
Executable file
545
plugins/MacAU/TakeCare/TakeCare.cpp
Executable file
|
|
@ -0,0 +1,545 @@
|
|||
/*
|
||||
* File: TakeCare.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 7/29/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
TakeCare.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "TakeCare.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(TakeCare)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::TakeCare
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
TakeCare::TakeCare(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
SetParameter(kParam_E, kDefaultValue_ParamE );
|
||||
SetParameter(kParam_F, kDefaultValue_ParamF );
|
||||
SetParameter(kParam_G, kDefaultValue_ParamG );
|
||||
SetParameter(kParam_H, kDefaultValue_ParamH );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_A:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamA;
|
||||
break;
|
||||
case kParam_B:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamB;
|
||||
break;
|
||||
case kParam_C:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamC;
|
||||
break;
|
||||
case kParam_D:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamD;
|
||||
break;
|
||||
case kParam_E:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamE;
|
||||
break;
|
||||
case kParam_F:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamF;
|
||||
break;
|
||||
case kParam_G:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamG;
|
||||
break;
|
||||
case kParam_H:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamH;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::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 TakeCare::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// TakeCare::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____TakeCareEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::TakeCareKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for(int x = 0; x < 32767+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;}
|
||||
c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1;
|
||||
c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1;
|
||||
f3AL = f3BL = f3CL = 0.0;
|
||||
f3CR = f3FR = f3IR = 0.0;
|
||||
avg3L = avg3R = 0.0;
|
||||
|
||||
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
|
||||
bez[bez_cycle] = 1.0;
|
||||
|
||||
rotate = 0.0;
|
||||
oldfpd = 0.4294967295;
|
||||
|
||||
buf = 8192;
|
||||
vibDepth = 0.0;
|
||||
outA = 1.0;
|
||||
outB = 1.0;
|
||||
wetA = 1.0;
|
||||
wetB = 1.0;
|
||||
derezA = 0.5;
|
||||
derezB = 0.5;
|
||||
|
||||
lastSampleL = 0.0;
|
||||
wasPosClipL = false;
|
||||
wasNegClipL = false;
|
||||
lastSampleR = 0.0;
|
||||
wasPosClipR = false;
|
||||
wasNegClipR = false;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus TakeCare::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 overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
|
||||
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
|
||||
double vibSpeed = pow(GetParameter( kParam_A ),5.0) * 0.1;
|
||||
double vibRandom = pow(GetParameter( kParam_B ),3.0) * 0.99;
|
||||
double targetDepth = pow(GetParameter( kParam_C ),2.0) * 0.5;
|
||||
double reg3n = GetParameter( kParam_D )*0.0625;
|
||||
|
||||
derezA = derezB; derezB = GetParameter( kParam_E )*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derezB > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derezB = 1.0-(derezB-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derezB = fmin(fmax(derezB/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derezB);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derezB = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derezB*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derezB /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derezB*0.5,1.0/(derezB*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
int targetBuf = (pow(GetParameter( kParam_F ),3.0)*32510.0)+256;
|
||||
outA = outB; outB = GetParameter( kParam_G );
|
||||
wetA = wetB; wetB = 1.0-pow(1.0-GetParameter( kParam_H ),2.0);
|
||||
|
||||
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 temp = (double)nSampleFrames/inFramesToProcess;
|
||||
double derez = (derezA*temp)+(derezB*(1.0-temp));
|
||||
double out = (outA*temp)+(outB*(1.0-temp));
|
||||
double wet = (wetA*temp)+(wetB*(1.0-temp));
|
||||
|
||||
bez[bez_cycle] += derez;
|
||||
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
|
||||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
rotate += (oldfpd*vibSpeed);
|
||||
if (rotate > (M_PI*2.0)) {
|
||||
rotate -= (M_PI*2.0);
|
||||
oldfpd = (1.0-vibRandom) + ((fpdL*0.000000000618)*vibRandom);
|
||||
}
|
||||
vibDepth = (vibDepth*0.99)+(targetDepth*0.01);
|
||||
if (buf < targetBuf) buf++;
|
||||
if (buf > targetBuf) buf--;
|
||||
|
||||
double mA = (sin(rotate)+1.0)*vibDepth*buf;
|
||||
double mB = (sin(rotate+(M_PI/9.0))+1.0)*vibDepth*buf;
|
||||
double mC = (sin(rotate+((M_PI/9.0)*2.0))+1.0)*vibDepth*buf;
|
||||
double mD = (sin(rotate+((M_PI/9.0)*3.0))+1.0)*vibDepth*buf;
|
||||
double mE = (sin(rotate+((M_PI/9.0)*4.0))+1.0)*vibDepth*buf;
|
||||
double mF = (sin(rotate+((M_PI/9.0)*5.0))+1.0)*vibDepth*buf;
|
||||
double mG = (sin(rotate+((M_PI/9.0)*6.0))+1.0)*vibDepth*buf;
|
||||
double mH = (sin(rotate+((M_PI/9.0)*7.0))+1.0)*vibDepth*buf;
|
||||
double mI = (sin(rotate+((M_PI/9.0)*8.0))+1.0)*vibDepth*buf;
|
||||
|
||||
inputSampleL = sin(fmin(fmax(inputSampleL*0.5,-M_PI_2),M_PI_2));
|
||||
inputSampleR = sin(fmin(fmax(inputSampleR*0.5,-M_PI_2),M_PI_2));
|
||||
|
||||
a3AL[c3AL] = inputSampleL + fmin(fmax(f3AL*reg3n,-M_PI),M_PI);
|
||||
a3BL[c3BL] = inputSampleL + fmin(fmax(f3BL*reg3n,-M_PI),M_PI);
|
||||
a3CL[c3CL] = inputSampleL + fmin(fmax(f3CL*reg3n,-M_PI),M_PI);
|
||||
|
||||
a3CR[c3CR] = inputSampleR + fmin(fmax(f3CR*reg3n,-M_PI),M_PI);
|
||||
a3FR[c3FR] = inputSampleR + fmin(fmax(f3FR*reg3n,-M_PI),M_PI);
|
||||
a3IR[c3IR] = inputSampleR + fmin(fmax(f3IR*reg3n,-M_PI),M_PI);
|
||||
|
||||
c3AL++; if (c3AL < 0 || c3AL > buf) c3AL = 0;
|
||||
c3BL++; if (c3BL < 0 || c3BL > buf) c3BL = 0;
|
||||
c3CL++; if (c3CL < 0 || c3CL > buf) c3CL = 0;
|
||||
c3CR++; if (c3CR < 0 || c3CR > buf) c3CR = 0;
|
||||
c3FR++; if (c3FR < 0 || c3FR > buf) c3FR = 0;
|
||||
c3IR++; if (c3IR < 0 || c3IR > buf) c3IR = 0;
|
||||
|
||||
double o3AL = a3AL[(int)(c3AL+mA-((c3AL+mA>buf)?buf+1:0))] *(1.0-(mA-floor(mA)));
|
||||
o3AL += (a3AL[(int)(c3AL+mA+1-((c3AL+mA+1>buf)?buf+1:0))] *((mA-floor(mA))));
|
||||
double o3BL = a3BL[(int)(c3BL+mB-((c3BL+mB>buf)?buf+1:0))] *(1.0-(mB-floor(mB)));
|
||||
o3BL += (a3BL[(int)(c3BL+mB+1-((c3BL+mB+1>buf)?buf+1:0))] *((mB-floor(mB))));
|
||||
double o3CL = a3CL[(int)(c3CL+mC-((c3CL+mC>buf)?buf+1:0))] *(1.0-(mC-floor(mC)));
|
||||
o3CL += (a3CL[(int)(c3CL+mC+1-((c3CL+mC+1>buf)?buf+1:0))] *((mC-floor(mC))));
|
||||
double o3CR = a3CR[(int)(c3CR+mC-((c3CR+mC>buf)?buf+1:0))] *(1.0-(mC-floor(mC)));
|
||||
o3CR += (a3CR[(int)(c3CR+mC+1-((c3CR+mC+1>buf)?buf+1:0))] *((mC-floor(mC))));
|
||||
double o3FR = a3FR[(int)(c3FR+mF-((c3FR+mF>buf)?buf+1:0))] *(1.0-(mF-floor(mF)));
|
||||
o3FR += (a3FR[(int)(c3FR+mF+1-((c3FR+mF+1>buf)?buf+1:0))] *((mF-floor(mF))));
|
||||
double o3IR = a3IR[(int)(c3IR+mI-((c3IR+mI>buf)?buf+1:0))] *(1.0-(mI-floor(mI)));
|
||||
o3IR += (a3IR[(int)(c3IR+mI+1-((c3IR+mI+1>buf)?buf+1:0))] *((mI-floor(mI))));
|
||||
|
||||
a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL);
|
||||
a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL);
|
||||
a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL);
|
||||
a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR);
|
||||
a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR);
|
||||
a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR);
|
||||
|
||||
c3DL++; if (c3DL < 0 || c3DL > buf) c3DL = 0;
|
||||
c3EL++; if (c3EL < 0 || c3EL > buf) c3EL = 0;
|
||||
c3FL++; if (c3FL < 0 || c3FL > buf) c3FL = 0;
|
||||
c3BR++; if (c3BR < 0 || c3BR > buf) c3BR = 0;
|
||||
c3ER++; if (c3ER < 0 || c3ER > buf) c3ER = 0;
|
||||
c3HR++; if (c3HR < 0 || c3HR > buf) c3HR = 0;
|
||||
|
||||
double o3DL = a3DL[(int)(c3DL+mD-((c3DL+mD>buf)?buf+1:0))] *(1.0-(mD-floor(mD)));
|
||||
o3DL += (a3DL[(int)(c3DL+mD+1-((c3DL+mD+1>buf)?buf+1:0))] *((mD-floor(mD))));
|
||||
double o3EL = a3EL[(int)(c3EL+mE-((c3EL+mE>buf)?buf+1:0))] *(1.0-(mE-floor(mE)));
|
||||
o3EL += (a3EL[(int)(c3EL+mE+1-((c3EL+mE+1>buf)?buf+1:0))] *((mE-floor(mE))));
|
||||
double o3FL = a3FL[(int)(c3FL+mF-((c3FL+mF>buf)?buf+1:0))] *(1.0-(mF-floor(mF)));
|
||||
o3FL += (a3FL[(int)(c3FL+mF+1-((c3FL+mF+1>buf)?buf+1:0))] *((mF-floor(mF))));
|
||||
double o3BR = a3BR[(int)(c3BR+mB-((c3BR+mB>buf)?buf+1:0))] *(1.0-(mB-floor(mB)));
|
||||
o3BR += (a3BR[(int)(c3BR+mB+1-((c3BR+mB+1>buf)?buf+1:0))] *((mB-floor(mB))));
|
||||
double o3ER = a3ER[(int)(c3ER+mE-((c3ER+mE>buf)?buf+1:0))] *(1.0-(mE-floor(mE)));
|
||||
o3ER += (a3ER[(int)(c3ER+mE+1-((c3ER+mE+1>buf)?buf+1:0))] *((mE-floor(mE))));
|
||||
double o3HR = a3HR[(int)(c3HR+mH-((c3HR+mH>buf)?buf+1:0))] *(1.0-(mH-floor(mH)));
|
||||
o3HR += (a3HR[(int)(c3HR+mH+1-((c3HR+mH+1>buf)?buf+1:0))] *((mH-floor(mH))));
|
||||
|
||||
a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL);
|
||||
a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL);
|
||||
a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL);
|
||||
a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR);
|
||||
a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER);
|
||||
a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR);
|
||||
|
||||
|
||||
c3GL++; if (c3GL < 0 || c3GL > buf) c3GL = 0;
|
||||
c3HL++; if (c3HL < 0 || c3HL > buf) c3HL = 0;
|
||||
c3IL++; if (c3IL < 0 || c3IL > buf) c3IL = 0;
|
||||
c3AR++; if (c3AR < 0 || c3AR > buf) c3AR = 0;
|
||||
c3DR++; if (c3DR < 0 || c3DR > buf) c3DR = 0;
|
||||
c3GR++; if (c3GR < 0 || c3GR > buf) c3GR = 0;
|
||||
|
||||
double o3GL = a3GL[(int)(c3GL+mG-((c3GL+mG>buf)?buf+1:0))] *(1.0-(mG-floor(mG)));
|
||||
o3GL += (a3GL[(int)(c3GL+mG+1-((c3GL+mG+1>buf)?buf+1:0))] *((mG-floor(mG))));
|
||||
double o3HL = a3HL[(int)(c3HL+mH-((c3HL+mH>buf)?buf+1:0))] *(1.0-(mH-floor(mH)));
|
||||
o3HL += (a3HL[(int)(c3HL+mH+1-((c3HL+mH+1>buf)?buf+1:0))] *((mH-floor(mH))));
|
||||
double o3IL = a3IL[(int)(c3IL+mI-((c3IL+mI>buf)?buf+1:0))] *(1.0-(mI-floor(mI)));
|
||||
o3IL += (a3IL[(int)(c3IL+mI+1-((c3IL+mI+1>buf)?buf+1:0))] *((mI-floor(mI))));
|
||||
double o3AR = a3AR[(int)(c3AR+mA-((c3AR+mA>buf)?buf+1:0))] *(1.0-(mA-floor(mA)));
|
||||
o3AR += (a3AR[(int)(c3AR+mA+1-((c3AR+mA+1>buf)?buf+1:0))] *((mA-floor(mA))));
|
||||
double o3DR = a3DR[(int)(c3DR+mD-((c3DR+mD>buf)?buf+1:0))] *(1.0-(mD-floor(mD)));
|
||||
o3DR += (a3DR[(int)(c3DR+mD+1-((c3DR+mD+1>buf)?buf+1:0))] *((mD-floor(mD))));
|
||||
double o3GR = a3GR[(int)(c3GR+mG-((c3GR+mG>buf)?buf+1:0))] *(1.0-(mG-floor(mG)));
|
||||
o3GR += (a3GR[(int)(c3GR+mG+1-((c3GR+mG+1>buf)?buf+1:0))] *((mG-floor(mG))));
|
||||
|
||||
f3AL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
f3BL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
f3CL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
|
||||
f3CR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
f3FR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
f3IR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
|
||||
double inputSampleL = (o3GL + o3HL + o3IL)*0.03125;
|
||||
double inputSampleR = (o3AR + o3DR + o3GR)*0.03125;
|
||||
|
||||
f3AL = (f3AL+f3AL+f3AL+fabs(avg3L))*0.25; avg3L = f3AL;
|
||||
f3CR = (f3CR+f3CR+f3CR+fabs(avg3R))*0.25; avg3R = f3CR;
|
||||
//manipulating deep reverb tail for realism
|
||||
|
||||
//begin ClipOnly stereo as a little, compressed chunk that can be dropped into undersampled code
|
||||
inputSampleL = fmin(fmax(inputSampleL,-4.0),4.0);
|
||||
if (wasPosClipL == true) { //current will be over
|
||||
if (inputSampleL<lastSampleL) lastSampleL=0.79+(inputSampleL*0.2);
|
||||
else lastSampleL = 0.2+(lastSampleL*0.79);
|
||||
} wasPosClipL = false;
|
||||
if (inputSampleL>0.99) {wasPosClipL=true;inputSampleL=0.79+(lastSampleL*0.2);}
|
||||
if (wasNegClipL == true) { //current will be -over
|
||||
if (inputSampleL > lastSampleL) lastSampleL=-0.79+(inputSampleL*0.2);
|
||||
else lastSampleL=-0.2+(lastSampleL*0.79);
|
||||
} wasNegClipL = false;
|
||||
if (inputSampleL<-0.99) {wasNegClipL=true;inputSampleL=-0.79+(lastSampleL*0.2);}
|
||||
lastSampleL = inputSampleL;
|
||||
inputSampleR = fmin(fmax(inputSampleR,-4.0),4.0);
|
||||
if (wasPosClipR == true) { //current will be over
|
||||
if (inputSampleR<lastSampleR) lastSampleR=0.79+(inputSampleR*0.2);
|
||||
else lastSampleR = 0.2+(lastSampleR*0.79);
|
||||
} wasPosClipR = false;
|
||||
if (inputSampleR>0.99) {wasPosClipR=true;inputSampleR=0.79+(lastSampleR*0.2);}
|
||||
if (wasNegClipR == true) { //current will be -over
|
||||
if (inputSampleR > lastSampleR) lastSampleR=-0.79+(inputSampleR*0.2);
|
||||
else lastSampleR=-0.2+(lastSampleR*0.79);
|
||||
} wasNegClipR = false;
|
||||
if (inputSampleR<-0.99) {wasNegClipR=true;inputSampleR=-0.79+(lastSampleR*0.2);}
|
||||
lastSampleR = inputSampleR;
|
||||
//end ClipOnly stereo as a little, compressed chunk that can be dropped into undersampled code
|
||||
|
||||
inputSampleL = asin(inputSampleL*0.7);
|
||||
inputSampleR = asin(inputSampleR*0.7);
|
||||
|
||||
bez[bez_CL] = bez[bez_BL];
|
||||
bez[bez_BL] = bez[bez_AL];
|
||||
bez[bez_AL] = inputSampleL;
|
||||
bez[bez_SampL] = 0.0;
|
||||
|
||||
bez[bez_CR] = bez[bez_BR];
|
||||
bez[bez_BR] = bez[bez_AR];
|
||||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
|
||||
double X = bez[bez_cycle] * bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.25;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.25;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
if (out != 1.0) {
|
||||
inputSampleL *= out;
|
||||
inputSampleR *= out;
|
||||
}
|
||||
|
||||
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/TakeCare/TakeCare.exp
Executable file
1
plugins/MacAU/TakeCare/TakeCare.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_TakeCareEntry
|
||||
203
plugins/MacAU/TakeCare/TakeCare.h
Executable file
203
plugins/MacAU/TakeCare/TakeCare.h
Executable file
|
|
@ -0,0 +1,203 @@
|
|||
/*
|
||||
* File: TakeCare.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 7/29/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 "TakeCareVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __TakeCare_h__
|
||||
#define __TakeCare_h__
|
||||
|
||||
|
||||
#pragma mark ____TakeCare Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.15;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.5;
|
||||
static const float kDefaultValue_ParamE = 0.5;
|
||||
static const float kDefaultValue_ParamF = 0.5;
|
||||
static const float kDefaultValue_ParamG = 1.0;
|
||||
static const float kDefaultValue_ParamH = 1.0;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Speed");
|
||||
static CFStringRef kParameterBName = CFSTR("Rando");
|
||||
static CFStringRef kParameterCName = CFSTR("Depth");
|
||||
static CFStringRef kParameterDName = CFSTR("Regen");
|
||||
static CFStringRef kParameterEName = CFSTR("Derez");
|
||||
static CFStringRef kParameterFName = CFSTR("Buffer");
|
||||
static CFStringRef kParameterGName = CFSTR("Output");
|
||||
static CFStringRef kParameterHName = CFSTR("Dry/Wet");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
kParam_E =4,
|
||||
kParam_F =5,
|
||||
kParam_G =6,
|
||||
kParam_H =7,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=8
|
||||
};
|
||||
|
||||
#pragma mark ____TakeCare
|
||||
class TakeCare : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
TakeCare(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~TakeCare () { 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 kTakeCareVersion; }
|
||||
|
||||
private:
|
||||
double a3AL[32767+5];
|
||||
double a3BL[32767+5];
|
||||
double a3CL[32767+5];
|
||||
double a3DL[32767+5];
|
||||
double a3EL[32767+5];
|
||||
double a3FL[32767+5];
|
||||
double a3GL[32767+5];
|
||||
double a3HL[32767+5];
|
||||
double a3IL[32767+5];
|
||||
double a3AR[32767+5];
|
||||
double a3BR[32767+5];
|
||||
double a3CR[32767+5];
|
||||
double a3DR[32767+5];
|
||||
double a3ER[32767+5];
|
||||
double a3FR[32767+5];
|
||||
double a3GR[32767+5];
|
||||
double a3HR[32767+5];
|
||||
double a3IR[32767+5];
|
||||
int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER;
|
||||
int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR;
|
||||
double f3AL,f3BL,f3CL,f3CR,f3FR,f3IR;
|
||||
double avg3L,avg3R;
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_AR,
|
||||
bez_BL,
|
||||
bez_BR,
|
||||
bez_CL,
|
||||
bez_CR,
|
||||
bez_InL,
|
||||
bez_InR,
|
||||
bez_UnInL,
|
||||
bez_UnInR,
|
||||
bez_SampL,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bez[bez_total];
|
||||
|
||||
double rotate;
|
||||
double oldfpd;
|
||||
|
||||
int buf;
|
||||
double vibDepth;
|
||||
double derezA;
|
||||
double derezB;
|
||||
double outA;
|
||||
double outB;
|
||||
double wetA;
|
||||
double wetB;
|
||||
|
||||
double lastSampleL;
|
||||
bool wasPosClipL;
|
||||
bool wasNegClipL;
|
||||
double lastSampleR;
|
||||
bool wasPosClipR;
|
||||
bool wasNegClipR; //Stereo ClipOnly
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/TakeCare/TakeCare.r
Executable file
61
plugins/MacAU/TakeCare/TakeCare.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: TakeCare.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 7/29/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 "TakeCareVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_TakeCare 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TakeCare~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_TakeCare
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE TakeCare_COMP_SUBTYPE
|
||||
#define COMP_MANUF TakeCare_COMP_MANF
|
||||
|
||||
#define VERSION kTakeCareVersion
|
||||
#define NAME "Airwindows: TakeCare"
|
||||
#define DESCRIPTION "TakeCare AU"
|
||||
#define ENTRY_POINT "TakeCareEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacAU/TakeCare/TakeCare.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacAU/TakeCare/TakeCare.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
142
plugins/MacAU/TakeCare/TakeCare.xcodeproj/christopherjohnson.pbxuser
Executable file
142
plugins/MacAU/TakeCare/TakeCare.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,142 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* TakeCare */;
|
||||
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 = 776363752;
|
||||
PBXWorkspaceStateSaveDate = 776363752;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BCCAF662E46601A00227B45 /* PBXTextBookmark */ = 8BCCAF662E46601A00227B45 /* PBXTextBookmark */;
|
||||
8BCCAF672E46601A00227B45 /* PBXTextBookmark */ = 8BCCAF672E46601A00227B45 /* PBXTextBookmark */;
|
||||
8BCCAF682E46601A00227B45 /* PBXTextBookmark */ = 8BCCAF682E46601A00227B45 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8BA05A660720730100365D66 /* TakeCare.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1200, 9756}}";
|
||||
sepNavSelRange = "{23757, 268}";
|
||||
sepNavVisRange = "{23259, 1399}";
|
||||
sepNavWindowFrame = "{{528, 68}, {912, 810}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* TakeCareVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2900, 0}";
|
||||
sepNavVisRange = "{861, 2101}";
|
||||
sepNavWindowFrame = "{{15, 50}, {799, 823}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* TakeCare.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 4176}}";
|
||||
sepNavSelRange = "{5928, 0}";
|
||||
sepNavVisRange = "{6729, 131}";
|
||||
sepNavWindowFrame = "{{797, 51}, {643, 827}}";
|
||||
};
|
||||
};
|
||||
8BCCAF662E46601A00227B45 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* TakeCare.cpp */;
|
||||
name = "TakeCare.cpp: 513";
|
||||
rLen = 0;
|
||||
rLoc = 24025;
|
||||
rType = 0;
|
||||
vrLen = 252;
|
||||
vrLoc = 3;
|
||||
};
|
||||
8BCCAF672E46601A00227B45 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* TakeCare.h */;
|
||||
name = "TakeCare.h: 149";
|
||||
rLen = 0;
|
||||
rLoc = 5928;
|
||||
rType = 0;
|
||||
vrLen = 131;
|
||||
vrLoc = 6729;
|
||||
};
|
||||
8BCCAF682E46601A00227B45 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* TakeCare.h */;
|
||||
name = "TakeCare.h: 149";
|
||||
rLen = 0;
|
||||
rLoc = 5928;
|
||||
rType = 0;
|
||||
vrLen = 131;
|
||||
vrLoc = 6729;
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* TakeCare */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1484
plugins/MacAU/TakeCare/TakeCare.xcodeproj/christopherjohnson.perspectivev3
Executable file
1484
plugins/MacAU/TakeCare/TakeCare.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/TakeCare/TakeCare.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/TakeCare/TakeCare.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 /* TakeCare.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* TakeCare.r */; };
|
||||
8BA05A6B0720730100365D66 /* TakeCare.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* TakeCare.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* TakeCareVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* TakeCareVersion.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 /* TakeCare.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* TakeCare.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 /* TakeCare.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TakeCare.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* TakeCare.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = TakeCare.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* TakeCare.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = TakeCare.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* TakeCareVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TakeCareVersion.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 /* TakeCare.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TakeCare.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* TakeCare.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TakeCare.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 /* TakeCare */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = TakeCare;
|
||||
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 /* TakeCare.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* TakeCare.h */,
|
||||
8BA05A660720730100365D66 /* TakeCare.cpp */,
|
||||
8BA05A670720730100365D66 /* TakeCare.exp */,
|
||||
8BA05A680720730100365D66 /* TakeCare.r */,
|
||||
8BA05A690720730100365D66 /* TakeCareVersion.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 /* TakeCareVersion.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 /* TakeCare.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 /* TakeCare */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "TakeCare" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = TakeCare;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = TakeCare;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* TakeCare.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 "TakeCare" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* TakeCare */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* TakeCare */,
|
||||
);
|
||||
};
|
||||
/* 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 /* TakeCare.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* TakeCare.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 = TakeCare.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 = TakeCare;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = TakeCare.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 = TakeCare;
|
||||
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 "TakeCare" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "TakeCare" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/TakeCare/TakeCareVersion.h
Executable file
58
plugins/MacAU/TakeCare/TakeCareVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: TakeCareVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 7/29/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 __TakeCareVersion_h__
|
||||
#define __TakeCareVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kTakeCareVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kTakeCareVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define TakeCare_COMP_MANF 'Dthr'
|
||||
#define TakeCare_COMP_SUBTYPE 'tcar'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
16
plugins/MacAU/TakeCare/version.plist
Executable file
16
plugins/MacAU/TakeCare/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>
|
||||
|
|
@ -305,11 +305,40 @@ OSStatus kAlienSpaceship::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333;
|
||||
double reg6n = (1.0-pow(1.0-GetParameter( kParam_A ),3.0))*fdb6ck;
|
||||
//start this but pad it in the loop by volume of output?
|
||||
double derez = GetParameter( kParam_B )/overallscale;
|
||||
derez = 1.0 / ((int)(1.0/derez));
|
||||
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
|
||||
double derezFreq = pow(GetParameter( kParam_C ),3.0)+0.01;
|
||||
if (derezFreq > 1.0) derezFreq = 1.0;
|
||||
|
||||
double derez = GetParameter( kParam_B )*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derez > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derez = 1.0-(derez-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derez = fmin(fmax(derez/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derez);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derez = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derez*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double derezFreq = GetParameter( kParam_C )*2.0;
|
||||
bool steppedFreq = true; // Revised Bezier Undersampling
|
||||
if (derezFreq > 1.0) { // has full rez at center, stepped
|
||||
steppedFreq = false; // to left, continuous to right
|
||||
derezFreq = 1.0-(derezFreq-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling
|
||||
int bezFreqFraction = (int)(1.0/derezFreq);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derezFreq = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(derezFreq*bezFreqTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double earlyLoudness = GetParameter( kParam_D );
|
||||
int start = (int)(GetParameter( kParam_E ) * 27.0);
|
||||
int ld3G = early[start];
|
||||
|
|
@ -336,10 +365,13 @@ OSStatus kAlienSpaceship::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
bez[bez_cycle] = 0.0;
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = bez[bez_SampL];
|
||||
inputSampleR = bez[bez_SampR];
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n);
|
||||
a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n);
|
||||
|
|
@ -413,22 +445,28 @@ OSStatus kAlienSpaceship::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq);
|
||||
bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR;
|
||||
if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample
|
||||
bezF[bez_cycle] -= 1.0;
|
||||
if (steppedFreq) bezF[bez_cycle] = 0.0;
|
||||
else bezF[bez_cycle] -= 1.0;
|
||||
bezF[bez_CL] = bezF[bez_BL];
|
||||
bezF[bez_BL] = bezF[bez_AL];
|
||||
bezF[bez_AL] = inputSampleL;
|
||||
bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5;
|
||||
bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_CR] = bezF[bez_BR];
|
||||
bezF[bez_BR] = bezF[bez_AR];
|
||||
bezF[bez_AR] = inputSampleR;
|
||||
bezF[bez_SampR] = 0.0;
|
||||
bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5;
|
||||
bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-bezF[bez_cycle]))+(bezF[bez_BL]*bezF[bez_cycle]);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-bezF[bez_cycle]))+(bezF[bez_AL]*bezF[bez_cycle]);
|
||||
inputSampleL = (bezF[bez_BL]+(CBLfreq*(1.0-bezF[bez_cycle]))+(BALfreq*bezF[bez_cycle]))*0.5;
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-bezF[bez_cycle]))+(bezF[bez_BR]*bezF[bez_cycle]);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-bezF[bez_cycle]))+(bezF[bez_AR]*bezF[bez_cycle]);
|
||||
inputSampleR = (bezF[bez_BR]+(CBRfreq*(1.0-bezF[bez_cycle]))+(BARfreq*bezF[bez_cycle]))*0.5;
|
||||
double X = bezF[bez_cycle]*bezFreqTrim;
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X);
|
||||
double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.0625;
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X);
|
||||
double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.0625;
|
||||
inputSampleL = CBALfreq+bezF[bez_AvgOutSampL];
|
||||
bezF[bez_AvgOutSampL] = CBALfreq;
|
||||
inputSampleR = CBARfreq+bezF[bez_AvgOutSampR];
|
||||
bezF[bez_AvgOutSampR] = CBARfreq;
|
||||
|
||||
double earlyReflectionL = inputSampleL;
|
||||
double earlyReflectionR = inputSampleR; //for more alienness, early reflections are DeRezzed
|
||||
|
|
@ -731,14 +769,15 @@ OSStatus kAlienSpaceship::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
|
||||
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
|
||||
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
|
||||
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*-0.125;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*-0.125;
|
||||
inputSampleL = CBAL;
|
||||
inputSampleR = CBAR;
|
||||
double X = bez[bez_cycle]*bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
|
||||
|
|
|
|||
|
|
@ -55,10 +55,10 @@
|
|||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.5;
|
||||
static const float kDefaultValue_ParamB = 1.0;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.5;
|
||||
static const float kDefaultValue_ParamE = 0.0;
|
||||
static const float kDefaultValue_ParamE = 0.5;
|
||||
static const float kDefaultValue_ParamF = 0.5;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Regen");
|
||||
|
|
@ -250,6 +250,10 @@ private:
|
|||
bez_UnInR,
|
||||
bez_SampL,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
|
|
|
|||
|
|
@ -49,43 +49,23 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 774828702;
|
||||
PBXWorkspaceStateSaveDate = 774828702;
|
||||
PBXPerProjectTemplateStateSaveDate = 776364358;
|
||||
PBXWorkspaceStateSaveDate = 776364358;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B163A782E2EF46000A38672 /* PBXTextBookmark */ = 8B163A782E2EF46000A38672 /* PBXTextBookmark */;
|
||||
8B163A792E2EF46000A38672 /* PBXTextBookmark */ = 8B163A792E2EF46000A38672 /* PBXTextBookmark */;
|
||||
8BCCAED22E46541B00227B45 /* PBXTextBookmark */ = 8BCCAED22E46541B00227B45 /* PBXTextBookmark */;
|
||||
8BCCAFB22E46626300227B45 /* PBXTextBookmark */ = 8BCCAFB22E46626300227B45 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B163A782E2EF46000A38672 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* kAlienSpaceship.cpp */;
|
||||
name = "kAlienSpaceship.cpp: 282";
|
||||
rLen = 0;
|
||||
rLoc = 13746;
|
||||
rType = 0;
|
||||
vrLen = 47;
|
||||
vrLoc = 3;
|
||||
};
|
||||
8B163A792E2EF46000A38672 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* kAlienSpaceship.cpp */;
|
||||
name = "kAlienSpaceship.cpp: 282";
|
||||
rLen = 0;
|
||||
rLoc = 13746;
|
||||
rType = 0;
|
||||
vrLen = 47;
|
||||
vrLoc = 3;
|
||||
};
|
||||
8BA05A660720730100365D66 /* kAlienSpaceship.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {696, 13842}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {570, 14616}}";
|
||||
sepNavSelRange = "{13746, 0}";
|
||||
sepNavVisRange = "{3, 47}";
|
||||
sepNavWindowFrame = "{{14, 83}, {1158, 795}}";
|
||||
sepNavVisRange = "{32, 18}";
|
||||
sepNavWindowFrame = "{{669, 54}, {935, 824}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* kAlienSpaceshipVersion.h */ = {
|
||||
|
|
@ -105,12 +85,32 @@
|
|||
};
|
||||
8BC6025B073B072D006C4272 /* kAlienSpaceship.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {7338, 4806}}";
|
||||
sepNavSelRange = "{4718, 216}";
|
||||
sepNavVisRange = "{2151, 1339}";
|
||||
sepNavWindowFrame = "{{86, 71}, {889, 807}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 5832}}";
|
||||
sepNavSelRange = "{9399, 74}";
|
||||
sepNavVisRange = "{8768, 893}";
|
||||
sepNavWindowFrame = "{{98, 39}, {889, 807}}";
|
||||
};
|
||||
};
|
||||
8BCCAED22E46541B00227B45 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* kAlienSpaceship.cpp */;
|
||||
name = "kAlienSpaceship.cpp: 282";
|
||||
rLen = 0;
|
||||
rLoc = 13746;
|
||||
rType = 0;
|
||||
vrLen = 47;
|
||||
vrLoc = 3;
|
||||
};
|
||||
8BCCAFB22E46626300227B45 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* kAlienSpaceship.cpp */;
|
||||
name = "kAlienSpaceship.cpp: 282";
|
||||
rLen = 0;
|
||||
rLoc = 13746;
|
||||
rType = 0;
|
||||
vrLen = 18;
|
||||
vrLoc = 32;
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@
|
|||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
|
|
@ -324,7 +324,7 @@
|
|||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>83 488 683 324 0 0 1440 878 </string>
|
||||
<string>746 436 683 324 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -352,10 +352,10 @@
|
|||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8B163A792E2EF46000A38672</string>
|
||||
<string>8BCCAFB22E46626300227B45</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B163A782E2EF46000A38672</string>
|
||||
<string>8BCCAED22E46541B00227B45</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -369,18 +369,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {476, 83}}</string>
|
||||
<string>{{0, 0}, {476, 68}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>83 488 683 324 0 0 1440 878 </string>
|
||||
<string>746 436 683 324 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>83pt</string>
|
||||
<string>68pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>195pt</string>
|
||||
<string>210pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -394,9 +394,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {476, 168}}</string>
|
||||
<string>{{10, 27}, {476, 183}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>83 488 683 324 0 0 1440 878 </string>
|
||||
<string>746 436 683 324 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -478,11 +478,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B163A7A2E2EF46000A38672</string>
|
||||
<string>8BCCAF8E2E46614A00227B45</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8B163A7B2E2EF46000A38672</string>
|
||||
<string>8BCCAF8F2E46614A00227B45</string>
|
||||
<string>8B2F1E9E2E27BC9000C4127E</string>
|
||||
<string>8B163A7C2E2EF46000A38672</string>
|
||||
<string>8BCCAF902E46614A00227B45</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -635,7 +635,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>774829152.76509798</real>
|
||||
<real>776364643.76163304</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -652,10 +652,11 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8BCCAFB32E46626300227B45</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/kAlienSpaceship/kAlienSpaceship.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>83 488 683 324 0 0 1440 878 </string>
|
||||
<string>746 436 683 324 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
BIN
plugins/MacAU/kCathedral5/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/kCathedral5/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/kCathedral5/Info.plist
Executable file
28
plugins/MacAU/kCathedral5/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>
|
||||
5
plugins/MacAU/kCathedral5/StarterAU_Prefix.pch
Executable file
5
plugins/MacAU/kCathedral5/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>
|
||||
804
plugins/MacAU/kCathedral5/kCathedral5.cpp
Executable file
804
plugins/MacAU/kCathedral5/kCathedral5.cpp
Executable file
|
|
@ -0,0 +1,804 @@
|
|||
/*
|
||||
* File: kCathedral5.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/8/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
kCathedral5.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "kCathedral5.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(kCathedral5)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// kCathedral5::kCathedral5
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
kCathedral5::kCathedral5(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
SetParameter(kParam_E, kDefaultValue_ParamE );
|
||||
SetParameter(kParam_F, kDefaultValue_ParamF );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// kCathedral5::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult kCathedral5::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// kCathedral5::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult kCathedral5::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_A:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamA;
|
||||
break;
|
||||
case kParam_B:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamB;
|
||||
break;
|
||||
case kParam_C:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamC;
|
||||
break;
|
||||
case kParam_D:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamD;
|
||||
break;
|
||||
case kParam_E:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamE;
|
||||
break;
|
||||
case kParam_F:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamF;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// kCathedral5::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult kCathedral5::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 kCathedral5::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// kCathedral5::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult kCathedral5::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// kCathedral5::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult kCathedral5::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____kCathedral5EffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// kCathedral5::kCathedral5Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult kCathedral5::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
|
||||
for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;}
|
||||
for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;}
|
||||
for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;}
|
||||
for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;}
|
||||
for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;}
|
||||
for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;}
|
||||
for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;}
|
||||
for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;}
|
||||
c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1;
|
||||
c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1;
|
||||
|
||||
for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;}
|
||||
for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;}
|
||||
for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;}
|
||||
for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;}
|
||||
for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;}
|
||||
for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;}
|
||||
for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;}
|
||||
for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;}
|
||||
for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;}
|
||||
for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;}
|
||||
for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;}
|
||||
for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;}
|
||||
for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;}
|
||||
for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;}
|
||||
for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;}
|
||||
for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;}
|
||||
for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;}
|
||||
for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;}
|
||||
for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;}
|
||||
for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;}
|
||||
for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;}
|
||||
for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;}
|
||||
for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;}
|
||||
for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;}
|
||||
for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;}
|
||||
for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;}
|
||||
c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1;
|
||||
c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1;
|
||||
c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1;
|
||||
c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1;
|
||||
c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1;
|
||||
c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1;
|
||||
c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1;
|
||||
c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1;
|
||||
f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0;
|
||||
f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0;
|
||||
avg6L = avg6R = 0.0;
|
||||
|
||||
for (int x = 0; x < bez_total; x++) {
|
||||
bez[x] = 0.0;
|
||||
bezF[x] = 0.0;
|
||||
}
|
||||
bez[bez_cycle] = 1.0;
|
||||
bezF[bez_cycle] = 1.0;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// kCathedral5::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus kCathedral5::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 overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
||||
double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333;
|
||||
double reg6n = (1.0-pow(1.0-GetParameter( kParam_A ),3.0))*fdb6ck;
|
||||
//start this but pad it in the loop by volume of output?
|
||||
|
||||
double derez = GetParameter( kParam_B )*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derez > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derez = 1.0-(derez-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derez = fmin(fmax(derez/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derez);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derez = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derez*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double derezFreq = GetParameter( kParam_C )*2.0;
|
||||
bool steppedFreq = true; // Revised Bezier Undersampling
|
||||
if (derezFreq > 1.0) { // has full rez at center, stepped
|
||||
steppedFreq = false; // to left, continuous to right
|
||||
derezFreq = 1.0-(derezFreq-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derezFreq = fmin(fmax(derezFreq,0.0005),1.0); //note: no overallscale, already inside undersampling
|
||||
int bezFreqFraction = (int)(1.0/derezFreq);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derezFreq = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(derezFreq*bezFreqTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
bezFreqTrim = 1.0-pow(derezFreq*0.5,1.0/(derezFreq*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double earlyLoudness = GetParameter( kParam_D );
|
||||
int start = (int)(GetParameter( kParam_E ) * 27.0);
|
||||
int ld3G = early[start];
|
||||
int ld3H = early[start+1];
|
||||
int ld3D = early[start+2];
|
||||
int ld3A = early[start+3];
|
||||
int ld3E = early[start+4];
|
||||
int ld3I = early[start+5];
|
||||
int ld3F = early[start+6];
|
||||
int ld3B = early[start+7];
|
||||
int ld3C = early[start+8];
|
||||
double wet = GetParameter( kParam_F );
|
||||
|
||||
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;
|
||||
|
||||
bez[bez_cycle] += derez;
|
||||
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
|
||||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n);
|
||||
a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n);
|
||||
a3CL[c3CL] = inputSampleL;// + (f3CL * reg3n);
|
||||
|
||||
a3CR[c3CR] = inputSampleR;// + (f3CR * reg3n);
|
||||
a3FR[c3FR] = inputSampleR;// + (f3FR * reg3n);
|
||||
a3IR[c3IR] = inputSampleR;// + (f3IR * reg3n);
|
||||
|
||||
c3AL++; if (c3AL < 0 || c3AL > ld3A) c3AL = 0;
|
||||
c3BL++; if (c3BL < 0 || c3BL > ld3B) c3BL = 0;
|
||||
c3CL++; if (c3CL < 0 || c3CL > ld3C) c3CL = 0;
|
||||
c3CR++; if (c3CR < 0 || c3CR > ld3C) c3CR = 0;
|
||||
c3FR++; if (c3FR < 0 || c3FR > ld3F) c3FR = 0;
|
||||
c3IR++; if (c3IR < 0 || c3IR > ld3I) c3IR = 0;
|
||||
|
||||
double o3AL = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)];
|
||||
double o3BL = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)];
|
||||
double o3CL = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)];
|
||||
double o3CR = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)];
|
||||
double o3FR = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)];
|
||||
double o3IR = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)];
|
||||
|
||||
a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL);
|
||||
a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL);
|
||||
a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL);
|
||||
a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR);
|
||||
a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR);
|
||||
a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR);
|
||||
|
||||
c3DL++; if (c3DL < 0 || c3DL > ld3D) c3DL = 0;
|
||||
c3EL++; if (c3EL < 0 || c3EL > ld3E) c3EL = 0;
|
||||
c3FL++; if (c3FL < 0 || c3FL > ld3F) c3FL = 0;
|
||||
c3BR++; if (c3BR < 0 || c3BR > ld3B) c3BR = 0;
|
||||
c3ER++; if (c3ER < 0 || c3ER > ld3E) c3ER = 0;
|
||||
c3HR++; if (c3HR < 0 || c3HR > ld3H) c3HR = 0;
|
||||
|
||||
double o3DL = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)];
|
||||
double o3EL = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)];
|
||||
double o3FL = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)];
|
||||
double o3BR = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)];
|
||||
double o3ER = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)];
|
||||
double o3HR = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)];
|
||||
|
||||
a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL);
|
||||
a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL);
|
||||
a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL);
|
||||
a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR);
|
||||
a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER);
|
||||
a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR);
|
||||
|
||||
c3GL++; if (c3GL < 0 || c3GL > ld3G) c3GL = 0;
|
||||
c3HL++; if (c3HL < 0 || c3HL > ld3H) c3HL = 0;
|
||||
c3IL++; if (c3IL < 0 || c3IL > ld3I) c3IL = 0;
|
||||
c3AR++; if (c3AR < 0 || c3AR > ld3A) c3AR = 0;
|
||||
c3DR++; if (c3DR < 0 || c3DR > ld3D) c3DR = 0;
|
||||
c3GR++; if (c3GR < 0 || c3GR > ld3G) c3GR = 0;
|
||||
|
||||
double o3GL = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)];
|
||||
double o3HL = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)];
|
||||
double o3IL = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)];
|
||||
double o3AR = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)];
|
||||
double o3DR = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)];
|
||||
double o3GR = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)];
|
||||
|
||||
double inputSampleL = (o3GL + o3HL + o3IL)*0.03125;
|
||||
double inputSampleR = (o3AR + o3DR + o3GR)*0.03125;
|
||||
|
||||
double earlyReflectionL = inputSampleL;
|
||||
double earlyReflectionR = inputSampleR;
|
||||
|
||||
bezF[bez_cycle] += derezFreq;
|
||||
bezF[bez_SampL] += ((inputSampleL+bezF[bez_InL]) * derezFreq);
|
||||
bezF[bez_SampR] += ((inputSampleL+bezF[bez_InR]) * derezFreq);
|
||||
bezF[bez_InL] = inputSampleL; bezF[bez_InR] = inputSampleR;
|
||||
if (bezF[bez_cycle] > 1.0) { //hit the end point and we do a filter sample
|
||||
if (steppedFreq) bezF[bez_cycle] = 0.0;
|
||||
else bezF[bez_cycle] -= 1.0;
|
||||
bezF[bez_CL] = bezF[bez_BL];
|
||||
bezF[bez_BL] = bezF[bez_AL];
|
||||
bezF[bez_AL] = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5;
|
||||
bezF[bez_AvgInSampL] = bezF[bez_SampL]; bezF[bez_SampL] = 0.0;
|
||||
bezF[bez_CR] = bezF[bez_BR];
|
||||
bezF[bez_BR] = bezF[bez_AR];
|
||||
bezF[bez_AR] = (bezF[bez_SampR]+bezF[bez_AvgInSampR])*0.5;
|
||||
bezF[bez_AvgInSampR] = bezF[bez_SampR]; bezF[bez_SampR] = 0.0;
|
||||
}
|
||||
double X = bezF[bez_cycle]*bezFreqTrim;
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X);
|
||||
double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.0625;
|
||||
double CBRfreq = (bezF[bez_CR]*(1.0-X))+(bezF[bez_BR]*X);
|
||||
double BARfreq = (bezF[bez_BR]*(1.0-X))+(bezF[bez_AR]*X);
|
||||
double CBARfreq = (bezF[bez_BR]+(CBRfreq*(1.0-X))+(BARfreq*X))*0.0625;
|
||||
inputSampleL = CBALfreq+bezF[bez_AvgOutSampL];
|
||||
bezF[bez_AvgOutSampL] = CBALfreq;
|
||||
inputSampleR = CBARfreq+bezF[bez_AvgOutSampR];
|
||||
bezF[bez_AvgOutSampR] = CBARfreq;
|
||||
|
||||
a6AL[c6AL] = inputSampleL + (f6BL * reg6n);
|
||||
a6BL[c6BL] = inputSampleL + (f6CL * reg6n);
|
||||
a6CL[c6CL] = inputSampleL + (f6DL * reg6n);
|
||||
a6DL[c6DL] = inputSampleL + (f6EL * reg6n);
|
||||
a6EL[c6EL] = inputSampleL + (f6FL * reg6n);
|
||||
a6FL[c6FL] = inputSampleL + (f6AL * reg6n);
|
||||
|
||||
c6AL++; if (c6AL < 0 || c6AL > d6A) c6AL = 0;
|
||||
c6BL++; if (c6BL < 0 || c6BL > d6B) c6BL = 0;
|
||||
c6CL++; if (c6CL < 0 || c6CL > d6C) c6CL = 0;
|
||||
c6DL++; if (c6DL < 0 || c6DL > d6D) c6DL = 0;
|
||||
c6EL++; if (c6EL < 0 || c6EL > d6E) c6EL = 0;
|
||||
c6FL++; if (c6FL < 0 || c6FL > d6F) c6FL = 0;
|
||||
|
||||
double o6AL = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)];
|
||||
double o6BL = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)];
|
||||
double o6CL = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)];
|
||||
double o6DL = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)];
|
||||
double o6EL = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)];
|
||||
double o6FL = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)];
|
||||
|
||||
a6FR[c6FR] = inputSampleR + (f6LR * reg6n);
|
||||
a6LR[c6LR] = inputSampleR + (f6RR * reg6n);
|
||||
a6RR[c6RR] = inputSampleR + (f6XR * reg6n);
|
||||
a6XR[c6XR] = inputSampleR + (f6ZER * reg6n);
|
||||
a6ZER[c6ZER] = inputSampleR + (f6ZKR * reg6n);
|
||||
a6ZKR[c6ZKR] = inputSampleR + (f6FR * reg6n);
|
||||
|
||||
c6FR++; if (c6FR < 0 || c6FR > d6F) c6FR = 0;
|
||||
c6LR++; if (c6LR < 0 || c6LR > d6L) c6LR = 0;
|
||||
c6RR++; if (c6RR < 0 || c6RR > d6R) c6RR = 0;
|
||||
c6XR++; if (c6XR < 0 || c6XR > d6X) c6XR = 0;
|
||||
c6ZER++; if (c6ZER < 0 || c6ZER > d6ZE) c6ZER = 0;
|
||||
c6ZKR++; if (c6ZKR < 0 || c6ZKR > d6ZK) c6ZKR = 0;
|
||||
|
||||
double o6FR = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)];
|
||||
double o6LR = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)];
|
||||
double o6RR = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)];
|
||||
double o6XR = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)];
|
||||
double o6ZER = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)];
|
||||
double o6ZKR = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)];
|
||||
|
||||
//-------- one
|
||||
|
||||
a6GL[c6GL] = ((o6AL*2.0) - (o6BL + o6CL + o6DL + o6EL + o6FL));
|
||||
a6HL[c6HL] = ((o6BL*2.0) - (o6AL + o6CL + o6DL + o6EL + o6FL));
|
||||
a6IL[c6IL] = ((o6CL*2.0) - (o6AL + o6BL + o6DL + o6EL + o6FL));
|
||||
a6JL[c6JL] = ((o6DL*2.0) - (o6AL + o6BL + o6CL + o6EL + o6FL));
|
||||
a6KL[c6KL] = ((o6EL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6FL));
|
||||
a6LL[c6LL] = ((o6FL*2.0) - (o6AL + o6BL + o6CL + o6DL + o6EL));
|
||||
|
||||
c6GL++; if (c6GL < 0 || c6GL > d6G) c6GL = 0;
|
||||
c6HL++; if (c6HL < 0 || c6HL > d6H) c6HL = 0;
|
||||
c6IL++; if (c6IL < 0 || c6IL > d6I) c6IL = 0;
|
||||
c6JL++; if (c6JL < 0 || c6JL > d6J) c6JL = 0;
|
||||
c6KL++; if (c6KL < 0 || c6KL > d6K) c6KL = 0;
|
||||
c6LL++; if (c6LL < 0 || c6LL > d6L) c6LL = 0;
|
||||
|
||||
double o6GL = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)];
|
||||
double o6HL = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)];
|
||||
double o6IL = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)];
|
||||
double o6JL = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)];
|
||||
double o6KL = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)];
|
||||
double o6LL = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)];
|
||||
|
||||
a6ER[c6ER] = ((o6FR*2.0) - (o6LR + o6RR + o6XR + o6ZER + o6ZKR));
|
||||
a6KR[c6KR] = ((o6LR*2.0) - (o6FR + o6RR + o6XR + o6ZER + o6ZKR));
|
||||
a6QR[c6QR] = ((o6RR*2.0) - (o6FR + o6LR + o6XR + o6ZER + o6ZKR));
|
||||
a6WR[c6WR] = ((o6XR*2.0) - (o6FR + o6LR + o6RR + o6ZER + o6ZKR));
|
||||
a6ZDR[c6ZDR] = ((o6ZER*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZKR));
|
||||
a6ZJR[c6ZJR] = ((o6ZKR*2.0) - (o6FR + o6LR + o6RR + o6XR + o6ZER));
|
||||
|
||||
c6ER++; if (c6ER < 0 || c6ER > d6E) c6ER = 0;
|
||||
c6KR++; if (c6KR < 0 || c6KR > d6K) c6KR = 0;
|
||||
c6QR++; if (c6QR < 0 || c6QR > d6Q) c6QR = 0;
|
||||
c6WR++; if (c6WR < 0 || c6WR > d6W) c6WR = 0;
|
||||
c6ZDR++; if (c6ZDR < 0 || c6ZDR > d6ZD) c6ZDR = 0;
|
||||
c6ZJR++; if (c6ZJR < 0 || c6ZJR > d6ZJ) c6ZJR = 0;
|
||||
|
||||
double o6ER = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)];
|
||||
double o6KR = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)];
|
||||
double o6QR = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)];
|
||||
double o6WR = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)];
|
||||
double o6ZDR = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)];
|
||||
double o6ZJR = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)];
|
||||
|
||||
//-------- two
|
||||
|
||||
a6ML[c6ML] = ((o6GL*2.0) - (o6HL + o6IL + o6JL + o6KL + o6LL));
|
||||
a6NL[c6NL] = ((o6HL*2.0) - (o6GL + o6IL + o6JL + o6KL + o6LL));
|
||||
a6OL[c6OL] = ((o6IL*2.0) - (o6GL + o6HL + o6JL + o6KL + o6LL));
|
||||
a6PL[c6PL] = ((o6JL*2.0) - (o6GL + o6HL + o6IL + o6KL + o6LL));
|
||||
a6QL[c6QL] = ((o6KL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6LL));
|
||||
a6RL[c6RL] = ((o6LL*2.0) - (o6GL + o6HL + o6IL + o6JL + o6KL));
|
||||
|
||||
c6ML++; if (c6ML < 0 || c6ML > d6M) c6ML = 0;
|
||||
c6NL++; if (c6NL < 0 || c6NL > d6N) c6NL = 0;
|
||||
c6OL++; if (c6OL < 0 || c6OL > d6O) c6OL = 0;
|
||||
c6PL++; if (c6PL < 0 || c6PL > d6P) c6PL = 0;
|
||||
c6QL++; if (c6QL < 0 || c6QL > d6Q) c6QL = 0;
|
||||
c6RL++; if (c6RL < 0 || c6RL > d6R) c6RL = 0;
|
||||
|
||||
double o6ML = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)];
|
||||
double o6NL = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)];
|
||||
double o6OL = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)];
|
||||
double o6PL = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)];
|
||||
double o6QL = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)];
|
||||
double o6RL = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)];
|
||||
|
||||
a6DR[c6DR] = ((o6ER*2.0) - (o6KR + o6QR + o6WR + o6ZDR + o6ZJR));
|
||||
a6JR[c6JR] = ((o6KR*2.0) - (o6ER + o6QR + o6WR + o6ZDR + o6ZJR));
|
||||
a6PR[c6PR] = ((o6QR*2.0) - (o6ER + o6KR + o6WR + o6ZDR + o6ZJR));
|
||||
a6VR[c6VR] = ((o6WR*2.0) - (o6ER + o6KR + o6QR + o6ZDR + o6ZJR));
|
||||
a6ZCR[c6ZCR] = ((o6ZDR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZJR));
|
||||
a6ZIR[c6ZIR] = ((o6ZJR*2.0) - (o6ER + o6KR + o6QR + o6WR + o6ZDR));
|
||||
|
||||
c6DR++; if (c6DR < 0 || c6DR > d6D) c6DR = 0;
|
||||
c6JR++; if (c6JR < 0 || c6JR > d6J) c6JR = 0;
|
||||
c6PR++; if (c6PR < 0 || c6PR > d6P) c6PR = 0;
|
||||
c6VR++; if (c6VR < 0 || c6VR > d6V) c6VR = 0;
|
||||
c6ZCR++; if (c6ZCR < 0 || c6ZCR > d6ZC) c6ZCR = 0;
|
||||
c6ZIR++; if (c6ZIR < 0 || c6ZIR > d6ZI) c6ZIR = 0;
|
||||
|
||||
double o6DR = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)];
|
||||
double o6JR = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)];
|
||||
double o6PR = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)];
|
||||
double o6VR = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)];
|
||||
double o6ZCR = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)];
|
||||
double o6ZIR = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)];
|
||||
|
||||
//-------- three
|
||||
|
||||
a6SL[c6SL] = ((o6ML*2.0) - (o6NL + o6OL + o6PL + o6QL + o6RL));
|
||||
a6TL[c6TL] = ((o6NL*2.0) - (o6ML + o6OL + o6PL + o6QL + o6RL));
|
||||
a6UL[c6UL] = ((o6OL*2.0) - (o6ML + o6NL + o6PL + o6QL + o6RL));
|
||||
a6VL[c6VL] = ((o6PL*2.0) - (o6ML + o6NL + o6OL + o6QL + o6RL));
|
||||
a6WL[c6WL] = ((o6QL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6RL));
|
||||
a6XL[c6XL] = ((o6RL*2.0) - (o6ML + o6NL + o6OL + o6PL + o6QL));
|
||||
|
||||
c6SL++; if (c6SL < 0 || c6SL > d6S) c6SL = 0;
|
||||
c6TL++; if (c6TL < 0 || c6TL > d6T) c6TL = 0;
|
||||
c6UL++; if (c6UL < 0 || c6UL > d6U) c6UL = 0;
|
||||
c6VL++; if (c6VL < 0 || c6VL > d6V) c6VL = 0;
|
||||
c6WL++; if (c6WL < 0 || c6WL > d6W) c6WL = 0;
|
||||
c6XL++; if (c6XL < 0 || c6XL > d6X) c6XL = 0;
|
||||
|
||||
double o6SL = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)];
|
||||
double o6TL = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)];
|
||||
double o6UL = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)];
|
||||
double o6VL = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)];
|
||||
double o6WL = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)];
|
||||
double o6XL = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)];
|
||||
|
||||
a6CR[c6CR] = ((o6DR*2.0) - (o6JR + o6PR + o6VR + o6ZCR + o6ZIR));
|
||||
a6IR[c6IR] = ((o6JR*2.0) - (o6DR + o6PR + o6VR + o6ZCR + o6ZIR));
|
||||
a6OR[c6OR] = ((o6PR*2.0) - (o6DR + o6JR + o6VR + o6ZCR + o6ZIR));
|
||||
a6UR[c6UR] = ((o6VR*2.0) - (o6DR + o6JR + o6PR + o6ZCR + o6ZIR));
|
||||
a6ZBR[c6ZBR] = ((o6ZCR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZIR));
|
||||
a6ZHR[c6ZHR] = ((o6ZIR*2.0) - (o6DR + o6JR + o6PR + o6VR + o6ZCR));
|
||||
|
||||
c6CR++; if (c6CR < 0 || c6CR > d6C) c6CR = 0;
|
||||
c6IR++; if (c6IR < 0 || c6IR > d6I) c6IR = 0;
|
||||
c6OR++; if (c6OR < 0 || c6OR > d6O) c6OR = 0;
|
||||
c6UR++; if (c6UR < 0 || c6UR > d6U) c6UR = 0;
|
||||
c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0;
|
||||
c6ZHR++; if (c6ZHR < 0 || c6ZHR > d6ZH) c6ZHR = 0;
|
||||
|
||||
double o6CR = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)];
|
||||
double o6IR = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)];
|
||||
double o6OR = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)];
|
||||
double o6UR = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)];
|
||||
double o6ZBR = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)];
|
||||
double o6ZHR = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)];
|
||||
|
||||
//-------- four
|
||||
|
||||
a6YL[c6YL] = ((o6SL*2.0) - (o6TL + o6UL + o6VL + o6WL + o6XL));
|
||||
a6ZAL[c6ZAL] = ((o6TL*2.0) - (o6SL + o6UL + o6VL + o6WL + o6XL));
|
||||
a6ZBL[c6ZBL] = ((o6UL*2.0) - (o6SL + o6TL + o6VL + o6WL + o6XL));
|
||||
a6ZCL[c6ZCL] = ((o6VL*2.0) - (o6SL + o6TL + o6UL + o6WL + o6XL));
|
||||
a6ZDL[c6ZDL] = ((o6WL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6XL));
|
||||
a6ZEL[c6ZEL] = ((o6XL*2.0) - (o6SL + o6TL + o6UL + o6VL + o6WL));
|
||||
|
||||
c6YL++; if (c6YL < 0 || c6YL > d6Y) c6YL = 0;
|
||||
c6ZAL++; if (c6ZAL < 0 || c6ZAL > d6ZA) c6ZAL = 0;
|
||||
c6ZBL++; if (c6ZBL < 0 || c6ZBL > d6ZB) c6ZBL = 0;
|
||||
c6ZCL++; if (c6ZCL < 0 || c6ZCL > d6ZC) c6ZCL = 0;
|
||||
c6ZDL++; if (c6ZDL < 0 || c6ZDL > d6ZD) c6ZDL = 0;
|
||||
c6ZEL++; if (c6ZEL < 0 || c6ZEL > d6ZE) c6ZEL = 0;
|
||||
|
||||
double o6YL = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)];
|
||||
double o6ZAL = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)];
|
||||
double o6ZBL = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)];
|
||||
double o6ZCL = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)];
|
||||
double o6ZDL = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)];
|
||||
double o6ZEL = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)];
|
||||
|
||||
a6BR[c6BR] = ((o6CR*2.0) - (o6IR + o6OR + o6UR + o6ZBR + o6ZHR));
|
||||
a6HR[c6HR] = ((o6IR*2.0) - (o6CR + o6OR + o6UR + o6ZBR + o6ZHR));
|
||||
a6NR[c6NR] = ((o6OR*2.0) - (o6CR + o6IR + o6UR + o6ZBR + o6ZHR));
|
||||
a6TR[c6TR] = ((o6UR*2.0) - (o6CR + o6IR + o6OR + o6ZBR + o6ZHR));
|
||||
a6ZAR[c6ZAR] = ((o6ZBR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZHR));
|
||||
a6ZGR[c6ZGR] = ((o6ZHR*2.0) - (o6CR + o6IR + o6OR + o6UR + o6ZBR));
|
||||
|
||||
c6BR++; if (c6BR < 0 || c6BR > d6B) c6BR = 0;
|
||||
c6HR++; if (c6HR < 0 || c6HR > d6H) c6HR = 0;
|
||||
c6NR++; if (c6NR < 0 || c6NR > d6N) c6NR = 0;
|
||||
c6TR++; if (c6TR < 0 || c6TR > d6T) c6TR = 0;
|
||||
c6ZBR++; if (c6ZBR < 0 || c6ZBR > d6ZB) c6ZBR = 0;
|
||||
c6ZGR++; if (c6ZGR < 0 || c6ZGR > d6ZG) c6ZGR = 0;
|
||||
|
||||
double o6BR = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)];
|
||||
double o6HR = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)];
|
||||
double o6NR = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)];
|
||||
double o6TR = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)];
|
||||
double o6ZAR = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)];
|
||||
double o6ZGR = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)];
|
||||
|
||||
//-------- five
|
||||
|
||||
a6ZFL[c6ZFL] = ((o6YL*2.0) - (o6ZAL + o6ZBL + o6ZCL + o6ZDL + o6ZEL));
|
||||
a6ZGL[c6ZGL] = ((o6ZAL*2.0) - (o6YL + o6ZBL + o6ZCL + o6ZDL + o6ZEL));
|
||||
a6ZHL[c6ZHL] = ((o6ZBL*2.0) - (o6YL + o6ZAL + o6ZCL + o6ZDL + o6ZEL));
|
||||
a6ZIL[c6ZIL] = ((o6ZCL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZDL + o6ZEL));
|
||||
a6ZJL[c6ZJL] = ((o6ZDL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZEL));
|
||||
a6ZKL[c6ZKL] = ((o6ZEL*2.0) - (o6YL + o6ZAL + o6ZBL + o6ZCL + o6ZDL));
|
||||
|
||||
c6ZFL++; if (c6ZFL < 0 || c6ZFL > d6ZF) c6ZFL = 0;
|
||||
c6ZGL++; if (c6ZGL < 0 || c6ZGL > d6ZG) c6ZGL = 0;
|
||||
c6ZHL++; if (c6ZHL < 0 || c6ZHL > d6ZH) c6ZHL = 0;
|
||||
c6ZIL++; if (c6ZIL < 0 || c6ZIL > d6ZI) c6ZIL = 0;
|
||||
c6ZJL++; if (c6ZJL < 0 || c6ZJL > d6ZJ) c6ZJL = 0;
|
||||
c6ZKL++; if (c6ZKL < 0 || c6ZKL > d6ZK) c6ZKL = 0;
|
||||
|
||||
double o6ZFL = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)];
|
||||
double o6ZGL = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)];
|
||||
double o6ZHL = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)];
|
||||
double o6ZIL = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)];
|
||||
double o6ZJL = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)];
|
||||
double o6ZKL = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)];
|
||||
|
||||
a6AR[c6AR] = ((o6BR*2.0) - (o6HR + o6NR + o6TR + o6ZAR + o6ZGR));
|
||||
a6GR[c6GR] = ((o6HR*2.0) - (o6BR + o6NR + o6TR + o6ZAR + o6ZGR));
|
||||
a6MR[c6MR] = ((o6NR*2.0) - (o6BR + o6HR + o6TR + o6ZAR + o6ZGR));
|
||||
a6SR[c6SR] = ((o6TR*2.0) - (o6BR + o6HR + o6NR + o6ZAR + o6ZGR));
|
||||
a6YR[c6YR] = ((o6ZAR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZGR));
|
||||
a6ZFR[c6ZFR] = ((o6ZGR*2.0) - (o6BR + o6HR + o6NR + o6TR + o6ZAR));
|
||||
|
||||
c6AR++; if (c6AR < 0 || c6AR > d6A) c6AR = 0;
|
||||
c6GR++; if (c6GR < 0 || c6GR > d6G) c6GR = 0;
|
||||
c6MR++; if (c6MR < 0 || c6MR > d6M) c6MR = 0;
|
||||
c6SR++; if (c6SR < 0 || c6SR > d6S) c6SR = 0;
|
||||
c6YR++; if (c6YR < 0 || c6YR > d6Y) c6YR = 0;
|
||||
c6ZFR++; if (c6ZFR < 0 || c6ZFR > d6ZF) c6ZFR = 0;
|
||||
|
||||
double o6AR = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)];
|
||||
double o6GR = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)];
|
||||
double o6MR = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)];
|
||||
double o6SR = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)];
|
||||
double o6YR = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)];
|
||||
double o6ZFR = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)];
|
||||
|
||||
//-------- six
|
||||
|
||||
f6AL = ((o6AR*2.0) - (o6GR + o6MR + o6SR + o6YR + o6ZFR));
|
||||
f6BL = ((o6GR*2.0) - (o6AR + o6MR + o6SR + o6YR + o6ZFR));
|
||||
f6CL = ((o6MR*2.0) - (o6AR + o6GR + o6SR + o6YR + o6ZFR));
|
||||
f6DL = ((o6SR*2.0) - (o6AR + o6GR + o6MR + o6YR + o6ZFR));
|
||||
f6EL = ((o6YR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6ZFR));
|
||||
f6FL = ((o6ZFR*2.0) - (o6AR + o6GR + o6MR + o6SR + o6YR));
|
||||
|
||||
f6FR = ((o6ZFL*2.0) - (o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL));
|
||||
f6LR = ((o6ZGL*2.0) - (o6ZFL + o6ZHL + o6ZIL + o6ZJL + o6ZKL));
|
||||
f6RR = ((o6ZHL*2.0) - (o6ZFL + o6ZGL + o6ZIL + o6ZJL + o6ZKL));
|
||||
f6XR = ((o6ZIL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZJL + o6ZKL));
|
||||
f6ZER = ((o6ZJL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZKL));
|
||||
f6ZKR = ((o6ZKL*2.0) - (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL));
|
||||
|
||||
inputSampleL = (o6ZFL + o6ZGL + o6ZHL + o6ZIL + o6ZJL + o6ZKL)*0.001953125;
|
||||
inputSampleR = (o6AR + o6GR + o6MR + o6SR + o6YR + o6ZFR)*0.001953125;
|
||||
|
||||
f6AL = (f6AL+f6AL+f6AL+fabs(avg6L))*0.25; avg6L = f6AL;
|
||||
f6FR = (f6FR+f6FR+f6FR+fabs(avg6R))*0.25; avg6R = f6FR;
|
||||
//manipulating deep reverb tail for realism
|
||||
|
||||
inputSampleL += (earlyReflectionL * earlyLoudness);
|
||||
inputSampleR += (earlyReflectionR * earlyLoudness);
|
||||
|
||||
bez[bez_CL] = bez[bez_BL];
|
||||
bez[bez_BL] = bez[bez_AL];
|
||||
bez[bez_AL] = inputSampleL;
|
||||
bez[bez_SampL] = 0.0;
|
||||
|
||||
bez[bez_CR] = bez[bez_BR];
|
||||
bez[bez_BR] = bez[bez_AR];
|
||||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
double X = bez[bez_cycle]*bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
|
||||
|
||||
//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/kCathedral5/kCathedral5.exp
Executable file
1
plugins/MacAU/kCathedral5/kCathedral5.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_kCathedral5Entry
|
||||
270
plugins/MacAU/kCathedral5/kCathedral5.h
Executable file
270
plugins/MacAU/kCathedral5/kCathedral5.h
Executable file
|
|
@ -0,0 +1,270 @@
|
|||
/*
|
||||
* File: kCathedral5.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/8/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 "kCathedral5Version.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __kCathedral5_h__
|
||||
#define __kCathedral5_h__
|
||||
|
||||
|
||||
#pragma mark ____kCathedral5 Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.5;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.24;
|
||||
static const float kDefaultValue_ParamD = 0.5;
|
||||
static const float kDefaultValue_ParamE = 0.5;
|
||||
static const float kDefaultValue_ParamF = 0.5;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Regen");
|
||||
static CFStringRef kParameterBName = CFSTR("Derez");
|
||||
static CFStringRef kParameterCName = CFSTR("Filter");
|
||||
static CFStringRef kParameterDName = CFSTR("EarlyRf");
|
||||
static CFStringRef kParameterEName = CFSTR("Positin");
|
||||
static CFStringRef kParameterFName = CFSTR("Dry/Wet");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
kParam_E =4,
|
||||
kParam_F =5,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=6
|
||||
};
|
||||
|
||||
const int d3A = 1683; const int d3B = 2395; const int d3C = 2432;
|
||||
const int d3D = 1552; const int d3E = 1735; const int d3F = 2392;
|
||||
const int d3G = 1364; const int d3H = 1468; const int d3I = 1961;
|
||||
#define THREEBYTHREE true
|
||||
const int d6A = 2392; const int d6B = 710; const int d6C = 35; const int d6D = 396; const int d6E = 2395; const int d6F = 81; const int d6G = 20; const int d6H = 2432; const int d6I = 1031; const int d6J = 529; const int d6K = 921; const int d6L = 116; const int d6M = 1961; const int d6N = 747; const int d6O = 160; const int d6P = 231; const int d6Q = 820; const int d6R = 493; const int d6S = 188; const int d6T = 412; const int d6U = 1364; const int d6V = 43; const int d6W = 206; const int d6X = 855; const int d6Y = 216; const int d6ZA = 1735; const int d6ZB = 53; const int d6ZC = 1468; const int d6ZD = 1272; const int d6ZE = 1683; const int d6ZF = 1287; const int d6ZG = 8; const int d6ZH = 14; const int d6ZI = 1552; const int d6ZJ = 88; const int d6ZK = 914; //6 to 259 ms, 2094 seat arena
|
||||
#define SIXBYSIX true //2094-GIBCDG-VACX6 kCathedral5
|
||||
const int early[] = {8, 14, 20, 35, 43, 53, 81, 88, 116, 160, 188, 206, 216, 231, 396, 412, 493, 529, 710, 747, 820, 855, 914, 921, 1031, 1272, 1287, 1364, 1468, 1552, 1683, 1735, 1961, 2392, 2395, 2432};
|
||||
|
||||
#pragma mark ____kCathedral5
|
||||
class kCathedral5 : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
kCathedral5(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~kCathedral5 () { 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 kkCathedral5Version; }
|
||||
|
||||
private:
|
||||
double a3AL[d3A+5];
|
||||
double a3BL[d3B+5];
|
||||
double a3CL[d3C+5];
|
||||
double a3DL[d3D+5];
|
||||
double a3EL[d3E+5];
|
||||
double a3FL[d3F+5];
|
||||
double a3GL[d3G+5];
|
||||
double a3HL[d3H+5];
|
||||
double a3IL[d3I+5];
|
||||
double a3AR[d3A+5];
|
||||
double a3BR[d3B+5];
|
||||
double a3CR[d3C+5];
|
||||
double a3DR[d3D+5];
|
||||
double a3ER[d3E+5];
|
||||
double a3FR[d3F+5];
|
||||
double a3GR[d3G+5];
|
||||
double a3HR[d3H+5];
|
||||
double a3IR[d3I+5];
|
||||
int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER;
|
||||
int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR;
|
||||
|
||||
double a6AL[d6A+5];
|
||||
double a6BL[d6B+5];
|
||||
double a6CL[d6C+5];
|
||||
double a6DL[d6D+5];
|
||||
double a6EL[d6E+5];
|
||||
double a6FL[d6F+5];
|
||||
double a6GL[d6G+5];
|
||||
double a6HL[d6H+5];
|
||||
double a6IL[d6I+5];
|
||||
double a6JL[d6J+5];
|
||||
double a6KL[d6K+5];
|
||||
double a6LL[d6L+5];
|
||||
double a6ML[d6M+5];
|
||||
double a6NL[d6N+5];
|
||||
double a6OL[d6O+5];
|
||||
double a6PL[d6P+5];
|
||||
double a6QL[d6Q+5];
|
||||
double a6RL[d6R+5];
|
||||
double a6SL[d6S+5];
|
||||
double a6TL[d6T+5];
|
||||
double a6UL[d6U+5];
|
||||
double a6VL[d6V+5];
|
||||
double a6WL[d6W+5];
|
||||
double a6XL[d6X+5];
|
||||
double a6YL[d6Y+5];
|
||||
double a6ZAL[d6ZA+5];
|
||||
double a6ZBL[d6ZB+5];
|
||||
double a6ZCL[d6ZC+5];
|
||||
double a6ZDL[d6ZD+5];
|
||||
double a6ZEL[d6ZE+5];
|
||||
double a6ZFL[d6ZF+5];
|
||||
double a6ZGL[d6ZG+5];
|
||||
double a6ZHL[d6ZH+5];
|
||||
double a6ZIL[d6ZI+5];
|
||||
double a6ZJL[d6ZJ+5];
|
||||
double a6ZKL[d6ZK+5];
|
||||
double a6AR[d6A+5];
|
||||
double a6BR[d6B+5];
|
||||
double a6CR[d6C+5];
|
||||
double a6DR[d6D+5];
|
||||
double a6ER[d6E+5];
|
||||
double a6FR[d6F+5];
|
||||
double a6GR[d6G+5];
|
||||
double a6HR[d6H+5];
|
||||
double a6IR[d6I+5];
|
||||
double a6JR[d6J+5];
|
||||
double a6KR[d6K+5];
|
||||
double a6LR[d6L+5];
|
||||
double a6MR[d6M+5];
|
||||
double a6NR[d6N+5];
|
||||
double a6OR[d6O+5];
|
||||
double a6PR[d6P+5];
|
||||
double a6QR[d6Q+5];
|
||||
double a6RR[d6R+5];
|
||||
double a6SR[d6S+5];
|
||||
double a6TR[d6T+5];
|
||||
double a6UR[d6U+5];
|
||||
double a6VR[d6V+5];
|
||||
double a6WR[d6W+5];
|
||||
double a6XR[d6X+5];
|
||||
double a6YR[d6Y+5];
|
||||
double a6ZAR[d6ZA+5];
|
||||
double a6ZBR[d6ZB+5];
|
||||
double a6ZCR[d6ZC+5];
|
||||
double a6ZDR[d6ZD+5];
|
||||
double a6ZER[d6ZE+5];
|
||||
double a6ZFR[d6ZF+5];
|
||||
double a6ZGR[d6ZG+5];
|
||||
double a6ZHR[d6ZH+5];
|
||||
double a6ZIR[d6ZI+5];
|
||||
double a6ZJR[d6ZJ+5];
|
||||
double a6ZKR[d6ZK+5];
|
||||
int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL;
|
||||
int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL;
|
||||
int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL;
|
||||
int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL;
|
||||
int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR;
|
||||
int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR;
|
||||
int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR;
|
||||
int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR;
|
||||
double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL;
|
||||
double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR;
|
||||
double avg6L,avg6R;
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_AR,
|
||||
bez_BL,
|
||||
bez_BR,
|
||||
bez_CL,
|
||||
bez_CR,
|
||||
bez_InL,
|
||||
bez_InR,
|
||||
bez_UnInL,
|
||||
bez_UnInR,
|
||||
bez_SampL,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bez[bez_total];
|
||||
|
||||
double bezF[bez_total];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/kCathedral5/kCathedral5.r
Executable file
61
plugins/MacAU/kCathedral5/kCathedral5.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: kCathedral5.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/8/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 "kCathedral5Version.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_kCathedral5 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kCathedral5~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_kCathedral5
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE kCathedral5_COMP_SUBTYPE
|
||||
#define COMP_MANUF kCathedral5_COMP_MANF
|
||||
|
||||
#define VERSION kkCathedral5Version
|
||||
#define NAME "Airwindows: kCathedral5"
|
||||
#define DESCRIPTION "kCathedral5 AU"
|
||||
#define ENTRY_POINT "kCathedral5Entry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacAU/kCathedral5/kCathedral5.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacAU/kCathedral5/kCathedral5.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
142
plugins/MacAU/kCathedral5/kCathedral5.xcodeproj/christopherjohnson.pbxuser
Executable file
142
plugins/MacAU/kCathedral5/kCathedral5.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,142 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* kCathedral5 */;
|
||||
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 = 776379073;
|
||||
PBXWorkspaceStateSaveDate = 776379073;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B25A7592E4699680072EE34 /* PBXTextBookmark */ = 8B25A7592E4699680072EE34 /* PBXTextBookmark */;
|
||||
8B25A76C2E469AEA0072EE34 /* PBXTextBookmark */ = 8B25A76C2E469AEA0072EE34 /* PBXTextBookmark */;
|
||||
8BCCAEB72E4652F100227B45 /* PBXTextBookmark */ = 8BCCAEB72E4652F100227B45 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B25A7592E4699680072EE34 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* kCathedral5.cpp */;
|
||||
name = "kCathedral5.cpp: 779";
|
||||
rLen = 146;
|
||||
rLoc = 36582;
|
||||
rType = 0;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B25A76C2E469AEA0072EE34 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* kCathedral5.cpp */;
|
||||
name = "kCathedral5.cpp: 779";
|
||||
rLen = 146;
|
||||
rLoc = 36582;
|
||||
rType = 0;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8BA05A660720730100365D66 /* kCathedral5.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {714, 14364}}";
|
||||
sepNavSelRange = "{36582, 146}";
|
||||
sepNavVisRange = "{0, 0}";
|
||||
sepNavWindowFrame = "{{8, 93}, {852, 762}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* kCathedral5Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{1368, 1614}";
|
||||
sepNavWindowFrame = "{{15, 105}, {708, 768}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* kCathedral5.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {7230, 4086}}";
|
||||
sepNavSelRange = "{2979, 0}";
|
||||
sepNavVisRange = "{2728, 1068}";
|
||||
sepNavWindowFrame = "{{38, 84}, {708, 768}}";
|
||||
};
|
||||
};
|
||||
8BCCAEB72E4652F100227B45 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* kCathedral5Version.h */;
|
||||
name = "kCathedral5Version.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 132;
|
||||
vrLoc = 2789;
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* kCathedral5 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1484
plugins/MacAU/kCathedral5/kCathedral5.xcodeproj/christopherjohnson.perspectivev3
Executable file
1484
plugins/MacAU/kCathedral5/kCathedral5.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/kCathedral5/kCathedral5.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/kCathedral5/kCathedral5.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 /* kCathedral5.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* kCathedral5.r */; };
|
||||
8BA05A6B0720730100365D66 /* kCathedral5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* kCathedral5.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* kCathedral5Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* kCathedral5Version.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 /* kCathedral5.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* kCathedral5.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 /* kCathedral5.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = kCathedral5.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* kCathedral5.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = kCathedral5.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* kCathedral5.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = kCathedral5.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* kCathedral5Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kCathedral5Version.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 /* kCathedral5.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kCathedral5.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* kCathedral5.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kCathedral5.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 /* kCathedral5 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = kCathedral5;
|
||||
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 /* kCathedral5.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* kCathedral5.h */,
|
||||
8BA05A660720730100365D66 /* kCathedral5.cpp */,
|
||||
8BA05A670720730100365D66 /* kCathedral5.exp */,
|
||||
8BA05A680720730100365D66 /* kCathedral5.r */,
|
||||
8BA05A690720730100365D66 /* kCathedral5Version.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 /* kCathedral5Version.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 /* kCathedral5.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 /* kCathedral5 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "kCathedral5" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = kCathedral5;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = kCathedral5;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* kCathedral5.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 "kCathedral5" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* kCathedral5 */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* kCathedral5 */,
|
||||
);
|
||||
};
|
||||
/* 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 /* kCathedral5.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* kCathedral5.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 = kCathedral5.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 = kCathedral5;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = kCathedral5.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 = kCathedral5;
|
||||
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 "kCathedral5" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "kCathedral5" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/kCathedral5/kCathedral5Version.h
Executable file
58
plugins/MacAU/kCathedral5/kCathedral5Version.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: kCathedral5Version.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/8/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 __kCathedral5Version_h__
|
||||
#define __kCathedral5Version_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kkCathedral5Version 0xFFFFFFFF
|
||||
#else
|
||||
#define kkCathedral5Version 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define kCathedral5_COMP_MANF 'Dthr'
|
||||
#define kCathedral5_COMP_SUBTYPE 'kct5'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
16
plugins/MacAU/kCathedral5/version.plist
Executable file
16
plugins/MacAU/kCathedral5/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>
|
||||
|
|
@ -302,9 +302,24 @@ OSStatus kGuitarHall2::ProcessBufferLists(AudioUnitRenderActionFlags & ioAction
|
|||
|
||||
double fdb6ck = (0.0009765625+0.0009765625+0.001953125)*0.3333333;
|
||||
double reg6n = (1.0-pow(1.0-GetParameter( kParam_A ),3.0))*fdb6ck;
|
||||
double derez = GetParameter( kParam_B )/overallscale;
|
||||
derez = 1.0 / ((int)(1.0/derez));
|
||||
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
|
||||
|
||||
double derez = GetParameter( kParam_B )*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derez > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derez = 1.0-(derez-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derez = fmin(fmax(derez/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derez);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derez = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derez*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derez*0.5,1.0/(derez*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
double freq = GetParameter( kParam_C )+0.02;
|
||||
double earlyLoudness = GetParameter( kParam_D );
|
||||
int start = (int)(GetParameter( kParam_E ) * 27.0);
|
||||
|
|
@ -332,10 +347,13 @@ OSStatus kGuitarHall2::ProcessBufferLists(AudioUnitRenderActionFlags & ioAction
|
|||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
bez[bez_cycle] = 0.0;
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = bez[bez_SampL];
|
||||
inputSampleR = bez[bez_SampR];
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
a3AL[c3AL] = inputSampleL;// + (f3AL * reg3n);
|
||||
a3BL[c3BL] = inputSampleL;// + (f3BL * reg3n);
|
||||
|
|
@ -408,7 +426,7 @@ OSStatus kGuitarHall2::ProcessBufferLists(AudioUnitRenderActionFlags & ioAction
|
|||
double earlyReflectionR = inputSampleR;
|
||||
|
||||
if (freq < 1.0) {
|
||||
double di = fabs(freq*(1.0+(inputSampleL))); if (di > 1.0) di = 1.0;
|
||||
double di = fabs(freq*(1.0+(inputSampleL*0.125))); if (di > 1.0) di = 1.0;
|
||||
double slew = ((inputSampleL - pear[prevSampL1]) + pear[prevSlewL1])*di*0.5;
|
||||
pear[prevSampL1] = inputSampleL = (di * inputSampleL) + ((1.0-di) * (pear[prevSampL1] + pear[prevSlewL1]));
|
||||
pear[prevSlewL1] = slew;
|
||||
|
|
@ -421,7 +439,7 @@ OSStatus kGuitarHall2::ProcessBufferLists(AudioUnitRenderActionFlags & ioAction
|
|||
pear[prevSampL3] = inputSampleL = (di * inputSampleL) + ((1.0-di) * (pear[prevSampL3] + pear[prevSlewL3]));
|
||||
pear[prevSlewL3] = slew;
|
||||
|
||||
di = fabs(freq*(1.0+(inputSampleR))); if (di > 1.0) di = 1.0;
|
||||
di = fabs(freq*(1.0+(inputSampleR*0.125))); if (di > 1.0) di = 1.0;
|
||||
slew = ((inputSampleR - pear[prevSampR1]) + pear[prevSlewR1])*di*0.5;
|
||||
pear[prevSampR1] = inputSampleR = (di * inputSampleR) + ((1.0-di) * (pear[prevSampR1] + pear[prevSlewR1]));
|
||||
pear[prevSlewR1] = slew;
|
||||
|
|
@ -733,14 +751,15 @@ OSStatus kGuitarHall2::ProcessBufferLists(AudioUnitRenderActionFlags & ioAction
|
|||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
|
||||
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
|
||||
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
|
||||
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*-0.125;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*-0.125;
|
||||
inputSampleL = CBAL;
|
||||
inputSampleR = CBAR;
|
||||
double X = bez[bez_cycle]*bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.0625;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.0625;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
|
||||
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
|
||||
|
|
|
|||
|
|
@ -55,10 +55,10 @@
|
|||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.5;
|
||||
static const float kDefaultValue_ParamB = 1.0;
|
||||
static const float kDefaultValue_ParamB = 0.5 ;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.5;
|
||||
static const float kDefaultValue_ParamE = 0.0;
|
||||
static const float kDefaultValue_ParamE = 0.5;
|
||||
static const float kDefaultValue_ParamF = 0.5;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Regen");
|
||||
|
|
@ -79,14 +79,13 @@ enum {
|
|||
kNumberOfParameters=6
|
||||
};
|
||||
|
||||
const int d3A = 1015; const int d3B = 1288; const int d3C = 1396;
|
||||
const int d3D = 784; const int d3E = 1188; const int d3F = 1258;
|
||||
const int d3G = 575; const int d3H = 771; const int d3I = 1257;
|
||||
const int d3A = 874; const int d3B = 1168; const int d3C = 1315;
|
||||
const int d3D = 590; const int d3E = 1060; const int d3F = 1162;
|
||||
const int d3G = 545; const int d3H = 574; const int d3I = 1146;
|
||||
#define THREEBYTHREE true
|
||||
const int d6A = 121; const int d6B = 1396; const int d6C = 784; const int d6D = 184; const int d6E = 132; const int d6F = 434; const int d6G = 91; const int d6H = 144; const int d6I = 155; const int d6J = 771; const int d6K = 122; const int d6L = 1288; const int d6M = 191; const int d6N = 224; const int d6O = 108; const int d6P = 35; const int d6Q = 1257; const int d6R = 575; const int d6S = 504; const int d6T = 264; const int d6U = 198; const int d6V = 14; const int d6W = 246; const int d6X = 81; const int d6Y = 17; const int d6ZA = 71; const int d6ZB = 1015; const int d6ZC = 1258; const int d6ZD = 24; const int d6ZE = 7; const int d6ZF = 255; const int d6ZG = 72; const int d6ZH = 68; const int d6ZI = 117; const int d6ZJ = 1188; const int d6ZK = 339; //6 to 156 ms, 784 seat theater
|
||||
#define SIXBYSIX true //784-EFCCFE-JLBY6 kGuitarHall2
|
||||
|
||||
const int early[] = {7, 14, 17, 24, 35, 68, 71, 72, 81, 91, 108, 117, 121, 122, 132, 144, 155, 184, 191, 198, 224, 246, 255, 264, 339, 434, 504, 575, 771, 784, 1015, 1188, 1257, 1258, 1288, 1396};
|
||||
const int d6A = 1315; const int d6B = 32; const int d6C = 459; const int d6D = 97; const int d6E = 358; const int d6F = 65; const int d6G = 47; const int d6H = 67; const int d6I = 1146; const int d6J = 312; const int d6K = 296; const int d6L = 17; const int d6M = 35; const int d6N = 1162; const int d6O = 1060; const int d6P = 355; const int d6Q = 56; const int d6R = 250; const int d6S = 161; const int d6T = 8; const int d6U = 45; const int d6V = 545; const int d6W = 543; const int d6X = 203; const int d6Y = 590; const int d6ZA = 24; const int d6ZB = 121; const int d6ZC = 35; const int d6ZD = 52; const int d6ZE = 874; const int d6ZF = 15; const int d6ZG = 574; const int d6ZH = 343; const int d6ZI = 24; const int d6ZJ = 102; const int d6ZK = 1168; //2 to 140 ms, 612 seat theater
|
||||
#define SIXBYSIX true //612-GGCCGF-JLBX6 kGuitarHall2
|
||||
const int early[] = {8, 15, 17, 24, 24, 32, 35, 35, 45, 47, 52, 56, 65, 67, 97, 102, 121, 161, 203, 250, 296, 312, 343, 355, 358, 459, 543, 545, 574, 590, 874, 1060, 1146, 1162, 1168, 1315};
|
||||
|
||||
#pragma mark ____kGuitarHall2
|
||||
class kGuitarHall2 : public AUEffectBase
|
||||
|
|
@ -250,6 +249,10 @@ public:
|
|||
bez_UnInR,
|
||||
bez_SampL,
|
||||
bez_SampR,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgInSampR,
|
||||
bez_AvgOutSampL,
|
||||
bez_AvgOutSampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
|
|
|
|||
|
|
@ -51,54 +51,44 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 774828353;
|
||||
PBXWorkspaceStateSaveDate = 774828353;
|
||||
PBXPerProjectTemplateStateSaveDate = 776377542;
|
||||
PBXWorkspaceStateSaveDate = 776377542;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B163A262E2EF13000A38672 /* PBXTextBookmark */ = 8B163A262E2EF13000A38672 /* PBXTextBookmark */;
|
||||
8B163A3F2E2EF24800A38672 /* PBXTextBookmark */ = 8B163A3F2E2EF24800A38672 /* PBXTextBookmark */;
|
||||
8B163A402E2EF24800A38672 /* PBXTextBookmark */ = 8B163A402E2EF24800A38672 /* PBXTextBookmark */;
|
||||
8B2A76292E3958AB00B2CCFF /* PBXTextBookmark */ = 8B2A76292E3958AB00B2CCFF /* PBXTextBookmark */;
|
||||
8B2BC27D2E4694FC00B0D53A /* PBXTextBookmark */ = 8B2BC27D2E4694FC00B0D53A /* PBXTextBookmark */;
|
||||
8BCCB0272E4667D000227B45 /* PBXTextBookmark */ = 8BCCB0272E4667D000227B45 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B163A262E2EF13000A38672 /* PBXTextBookmark */ = {
|
||||
8B2A76292E3958AB00B2CCFF /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* kGuitarHall2.h */;
|
||||
name = "kGuitarHall2.h: 90";
|
||||
rLen = 0;
|
||||
rLoc = 4872;
|
||||
rLoc = 4859;
|
||||
rType = 0;
|
||||
vrLen = 197;
|
||||
vrLoc = 4675;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B163A3F2E2EF24800A38672 /* PBXTextBookmark */ = {
|
||||
8B2BC27D2E4694FC00B0D53A /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* kGuitarHall2.cpp */;
|
||||
name = "kGuitarHall2.cpp: 340";
|
||||
name = "kGuitarHall2.cpp: 358";
|
||||
rLen = 0;
|
||||
rLoc = 16157;
|
||||
rLoc = 16986;
|
||||
rType = 0;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B163A402E2EF24800A38672 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* kGuitarHall2.h */;
|
||||
name = "kGuitarHall2.h: 90";
|
||||
rLen = 0;
|
||||
rLoc = 4872;
|
||||
rType = 0;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
vrLen = 15;
|
||||
vrLoc = 32;
|
||||
};
|
||||
8BA05A660720730100365D66 /* kGuitarHall2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1177, 13788}}";
|
||||
sepNavSelRange = "{15305, 0}";
|
||||
sepNavVisRange = "{14526, 1548}";
|
||||
sepNavWindowFrame = "{{12, 43}, {1224, 810}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {534, 14292}}";
|
||||
sepNavSelRange = "{16986, 0}";
|
||||
sepNavVisRange = "{32, 15}";
|
||||
sepNavWindowFrame = "{{753, 54}, {885, 824}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* kGuitarHall2Version.h */ = {
|
||||
|
|
@ -118,12 +108,22 @@
|
|||
};
|
||||
8BC6025B073B072D006C4272 /* kGuitarHall2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {7167, 4806}}";
|
||||
sepNavSelRange = "{4872, 0}";
|
||||
sepNavVisRange = "{0, 0}";
|
||||
sepNavWindowFrame = "{{26, 54}, {782, 824}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {7113, 4284}}";
|
||||
sepNavSelRange = "{4859, 0}";
|
||||
sepNavVisRange = "{2987, 2078}";
|
||||
sepNavWindowFrame = "{{43, 54}, {782, 824}}";
|
||||
};
|
||||
};
|
||||
8BCCB0272E4667D000227B45 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* kGuitarHall2.cpp */;
|
||||
name = "kGuitarHall2.cpp: 358";
|
||||
rLen = 0;
|
||||
rLoc = 16986;
|
||||
rType = 0;
|
||||
vrLen = 18;
|
||||
vrLoc = 29;
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@
|
|||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>4</integer>
|
||||
<integer>3</integer>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
|
|
@ -324,7 +324,7 @@
|
|||
<real>185</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>11 490 615 290 0 0 1440 878 </string>
|
||||
<string>809 476 615 290 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -340,7 +340,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8B8FEEC62E1343E5000B64B3</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>kGuitarHall2.h</string>
|
||||
<string>kGuitarHall2.cpp</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
|
@ -348,15 +348,15 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8B8FEEC72E1343E5000B64B3</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>kGuitarHall2.h</string>
|
||||
<string>kGuitarHall2.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8B163A402E2EF24800A38672</string>
|
||||
<string>8B2BC27D2E4694FC00B0D53A</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B163A3F2E2EF24800A38672</string>
|
||||
<string>8B163A262E2EF13000A38672</string>
|
||||
<string>8B2A76292E3958AB00B2CCFF</string>
|
||||
<string>8BCCB0272E4667D000227B45</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -370,18 +370,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {408, 25}}</string>
|
||||
<string>{{0, 0}, {408, 42}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>11 490 615 290 0 0 1440 878 </string>
|
||||
<string>809 476 615 290 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>25pt</string>
|
||||
<string>42pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>219pt</string>
|
||||
<string>202pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -395,9 +395,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {408, 192}}</string>
|
||||
<string>{{10, 27}, {408, 175}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>11 490 615 290 0 0 1440 878 </string>
|
||||
<string>809 476 615 290 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -451,7 +451,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {408, 159}}</string>
|
||||
<string>{{10, 27}, {408, 211}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -479,11 +479,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8B163A412E2EF24800A38672</string>
|
||||
<string>8B2BC2732E4694D600B0D53A</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8B163A422E2EF24800A38672</string>
|
||||
<string>8B2BC2742E4694D600B0D53A</string>
|
||||
<string>8B8FEEC62E1343E5000B64B3</string>
|
||||
<string>8B163A432E2EF24800A38672</string>
|
||||
<string>8B2BC2752E4694D600B0D53A</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -656,7 +656,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>774828616.74115705</real>
|
||||
<real>776377596.38047504</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -673,10 +673,11 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>8B2BC2762E4694D600B0D53A</string>
|
||||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/kGuitarHall2/kGuitarHall2.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>11 490 615 290 0 0 1440 878 </string>
|
||||
<string>809 476 615 290 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -241,11 +241,6 @@ void ChimeyDeluxe::ChimeyDeluxeKernel::Reset()
|
|||
|
||||
muComp = 1.0;
|
||||
muSpd = 100.0;
|
||||
|
||||
lastSample = 0.0;
|
||||
wasPosClip = false;
|
||||
wasNegClip = false;
|
||||
for (int x = 0; x < 16; x++) intermediate[x] = 0.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
|
@ -300,8 +295,8 @@ void ChimeyDeluxe::ChimeyDeluxeKernel::Process( const Float32 *inSourceP,
|
|||
angG[10] = GetParameter( kParam_J )+0.5;
|
||||
if (pad > angG[10]) pad = angG[10];
|
||||
if (drive < angG[10]) drive = angG[10];
|
||||
angG[11] = 1.0;
|
||||
angG[12] = 1.0;
|
||||
angG[11] = (angG[10]+1.0)*0.5;
|
||||
angG[12] = (angG[11]+1.0)*0.5;
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double threshold = 1.0-(drive*0.23);
|
||||
double adjSpd = ((drive*120.0)+50.0)*overallscale;
|
||||
|
|
@ -338,7 +333,6 @@ void ChimeyDeluxe::ChimeyDeluxeKernel::Process( const Float32 *inSourceP,
|
|||
inputSample *= (muComp*muComp);
|
||||
muSpd = fmax(fmin(((muSpd*(muSpd-1.0))+(fabs(inputSample*adjSpd)))/muSpd,adjSpd*2.0),adjSpd);
|
||||
}
|
||||
|
||||
inputSample = sin(fmin(fmax(inputSample*pad,-M_PI_2),M_PI_2));
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
|
|
|
|||
|
|
@ -151,18 +151,13 @@ public:
|
|||
virtual void Reset();
|
||||
|
||||
private:
|
||||
double angS[18][16];
|
||||
double angA[18][16];
|
||||
double angG[16];
|
||||
double angS[18][15];
|
||||
double angA[18][15];
|
||||
double angG[15];
|
||||
|
||||
double muComp;
|
||||
double muSpd;
|
||||
|
||||
double lastSample;
|
||||
double intermediate[16];
|
||||
bool wasPosClip;
|
||||
bool wasNegClip;
|
||||
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -49,14 +49,14 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 774987717;
|
||||
PBXWorkspaceStateSaveDate = 774987717;
|
||||
PBXPerProjectTemplateStateSaveDate = 776427414;
|
||||
PBXWorkspaceStateSaveDate = 776427414;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B33D58F2DF3AB1D0044A4FF /* PlistBookmark */ = 8B33D58F2DF3AB1D0044A4FF /* PlistBookmark */;
|
||||
8B42CBD92E315A03001C0B57 /* PBXTextBookmark */ = 8B42CBD92E315A03001C0B57 /* PBXTextBookmark */;
|
||||
8BB30DEF2E315FE100663A45 /* PBXTextBookmark */ = 8BB30DEF2E315FE100663A45 /* PBXTextBookmark */;
|
||||
8BB30DF42E315FE100663A45 /* PBXTextBookmark */ = 8BB30DF42E315FE100663A45 /* PBXTextBookmark */;
|
||||
8BB158F92E4759DF00D27777 /* PBXTextBookmark */ = 8BB158F92E4759DF00D27777 /* PBXTextBookmark */;
|
||||
8BB158FA2E4759DF00D27777 /* PBXTextBookmark */ = 8BB158FA2E4759DF00D27777 /* PBXTextBookmark */;
|
||||
8BFD341B2E058DBA00CA61BB /* PBXTextBookmark */ = 8BFD341B2E058DBA00CA61BB /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
|
|
@ -80,17 +80,17 @@
|
|||
fRef = 8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */;
|
||||
name = "ChimeyDeluxe.h: 166";
|
||||
rLen = 0;
|
||||
rLoc = 6270;
|
||||
rLoc = 6181;
|
||||
rType = 0;
|
||||
vrLen = 148;
|
||||
vrLoc = 3;
|
||||
};
|
||||
8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {498, 6516}}";
|
||||
sepNavSelRange = "{13609, 0}";
|
||||
sepNavVisRange = "{13592, 100}";
|
||||
sepNavWindowFrame = "{{5, 74}, {967, 804}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {920, 6696}}";
|
||||
sepNavSelRange = "{13457, 64}";
|
||||
sepNavVisRange = "{12723, 1520}";
|
||||
sepNavWindowFrame = "{{755, 74}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ChimeyDeluxeVersion.h */ = {
|
||||
|
|
@ -101,32 +101,32 @@
|
|||
sepNavWindowFrame = "{{38, 48}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BB30DEF2E315FE100663A45 /* PBXTextBookmark */ = {
|
||||
8BB158F92E4759DF00D27777 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 305";
|
||||
rLen = 0;
|
||||
rLoc = 13609;
|
||||
rLoc = 13521;
|
||||
rType = 0;
|
||||
vrLen = 100;
|
||||
vrLoc = 13592;
|
||||
vrLen = 45;
|
||||
vrLoc = 13609;
|
||||
};
|
||||
8BB30DF42E315FE100663A45 /* PBXTextBookmark */ = {
|
||||
8BB158FA2E4759DF00D27777 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 305";
|
||||
fRef = 8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */;
|
||||
name = "ChimeyDeluxe.h: 161";
|
||||
rLen = 0;
|
||||
rLoc = 13609;
|
||||
rLoc = 6181;
|
||||
rType = 0;
|
||||
vrLen = 100;
|
||||
vrLoc = 13592;
|
||||
vrLen = 103;
|
||||
vrLoc = 147;
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 2772}}";
|
||||
sepNavSelRange = "{3310, 0}";
|
||||
sepNavVisRange = "{2759, 1223}";
|
||||
sepNavWindowFrame = "{{7, 74}, {967, 804}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1029, 3006}}";
|
||||
sepNavSelRange = "{6181, 0}";
|
||||
sepNavVisRange = "{147, 103}";
|
||||
sepNavWindowFrame = "{{783, 74}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@
|
|||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
|
|
@ -326,7 +326,7 @@
|
|||
<real>288</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>5 510 737 363 0 0 1440 878 </string>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -342,7 +342,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>ChimeyDeluxe.cpp</string>
|
||||
<string>ChimeyDeluxe.h</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
|
@ -350,17 +350,17 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>ChimeyDeluxe.cpp</string>
|
||||
<string>ChimeyDeluxe.h</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BB30DF42E315FE100663A45</string>
|
||||
<string>8BB158FA2E4759DF00D27777</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B33D58F2DF3AB1D0044A4FF</string>
|
||||
<string>8BFD341B2E058DBA00CA61BB</string>
|
||||
<string>8BB158F92E4759DF00D27777</string>
|
||||
<string>8B42CBD92E315A03001C0B57</string>
|
||||
<string>8BB30DEF2E315FE100663A45</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -374,18 +374,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {427, 80}}</string>
|
||||
<string>{{0, 0}, {427, 47}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>5 510 737 363 0 0 1440 878 </string>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>80pt</string>
|
||||
<string>47pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>237pt</string>
|
||||
<string>270pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -399,9 +399,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {427, 210}}</string>
|
||||
<string>{{10, 27}, {427, 243}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>5 510 737 363 0 0 1440 878 </string>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -483,11 +483,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BB30DF12E315FE100663A45</string>
|
||||
<string>8BB158FB2E4759DF00D27777</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BB30DF22E315FE100663A45</string>
|
||||
<string>8BB158FC2E4759DF00D27777</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8BB30DF32E315FE100663A45</string>
|
||||
<string>8BB158FD2E4759DF00D27777</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -660,7 +660,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>774987745.83407199</real>
|
||||
<real>776427999.45691097</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -680,7 +680,7 @@
|
|||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ChimeyDeluxe/ChimeyDeluxe.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>5 510 737 363 0 0 1440 878 </string>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Binary file not shown.
278
plugins/MacSignedAU/DeBez/DeBez.cpp
Executable file
278
plugins/MacSignedAU/DeBez/DeBez.cpp
Executable file
|
|
@ -0,0 +1,278 @@
|
|||
/*
|
||||
* File: DeBez.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/4/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
DeBez.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "DeBez.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
AUDIOCOMPONENT_ENTRY(AUBaseFactory, DeBez)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::DeBez
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
DeBez::DeBez(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_A:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamA;
|
||||
break;
|
||||
case kParam_B:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamB;
|
||||
break;
|
||||
case kParam_C:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamC;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// DeBez::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult DeBez::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____DeBezEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::DeBezKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void DeBez::DeBezKernel::Reset()
|
||||
{
|
||||
for (int x = 0; x < bez_total; x++) bezF[x] = 0.0;
|
||||
bezF[bez_cycle] = 1.0;
|
||||
|
||||
rezA = 0.5; rezB = 0.5;
|
||||
bitA = 0.5; bitB = 0.5;
|
||||
wetA = 1.0; wetB = 1.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// DeBez::DeBezKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void DeBez::DeBezKernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
||||
rezA = rezB; rezB = GetParameter( kParam_A )*2.0;
|
||||
bitA = bitB; bitB = GetParameter( kParam_B )*2.0;
|
||||
wetA = wetB; wetB = GetParameter( kParam_C )*2.0;
|
||||
|
||||
bool steppedFreq = true; // Revised Bezier Undersampling
|
||||
if (rezB > 1.0) { // has full rez at center, stepped
|
||||
steppedFreq = false; // to left, continuous to right
|
||||
rezB = 1.0-(rezB-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
rezB = fmin(fmax(pow(rezB,3.0),0.0005),1.0);
|
||||
int bezFreqFraction = (int)(1.0/rezB);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
if (steppedFreq) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
rezB = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(rezB*bezFreqTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
bezFreqTrim = 1.0-pow(rezB*0.5,1.0/(rezB*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
double drySampleL = inputSampleL;
|
||||
double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
double rez = (rezA*temp)+(rezB*(1.0-temp));
|
||||
double bit = ((bitA*temp)+(bitB*(1.0-temp)))-1.0;
|
||||
double wet = ((wetA*temp)+(wetB*(1.0-temp)))-1.0;
|
||||
double dry = 1.0 - wet;
|
||||
if (wet > 1.0) wet = 1.0;
|
||||
if (wet < -1.0) wet = -1.0;
|
||||
if (dry > 1.0) dry = 1.0;
|
||||
if (dry < 0.0) dry = 0.0;
|
||||
//this bitcrush can be subtracted.
|
||||
|
||||
bezF[bez_cycle] += rez;
|
||||
bezF[bez_SampL] += (inputSampleL * rez);
|
||||
if (bezF[bez_cycle] > 1.0) {
|
||||
if (steppedFreq) bezF[bez_cycle] = 0.0;
|
||||
else bezF[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bezF[bez_SampL]+bezF[bez_AvgInSampL])*0.5;
|
||||
bezF[bez_AvgInSampL] = bezF[bez_SampL];
|
||||
|
||||
bool crushGate = (bit < 0.0);
|
||||
bit = 1.0-fabs(bit);
|
||||
bit = fmin(fmax(bit*16.0,0.5),16.0);
|
||||
double bitFactor = pow(2.0,bit);
|
||||
inputSampleL *= bitFactor;
|
||||
inputSampleL = floor(inputSampleL+(crushGate?0.5/bitFactor:0.0));
|
||||
inputSampleL /= bitFactor;
|
||||
//derez inside debez
|
||||
bezF[bez_CL] = bezF[bez_BL];
|
||||
bezF[bez_BL] = bezF[bez_AL];
|
||||
bezF[bez_AL] = inputSampleL;
|
||||
bezF[bez_SampL] = 0.0;
|
||||
}
|
||||
double X = bezF[bez_cycle]*bezFreqTrim;
|
||||
double CBLfreq = (bezF[bez_CL]*(1.0-X))+(bezF[bez_BL]*X);
|
||||
double BALfreq = (bezF[bez_BL]*(1.0-X))+(bezF[bez_AL]*X);
|
||||
double CBALfreq = (bezF[bez_BL]+(CBLfreq*(1.0-X))+(BALfreq*X))*0.125;
|
||||
inputSampleL = CBALfreq+bezF[bez_AvgOutSampL]; bezF[bez_AvgOutSampL] = CBALfreq;
|
||||
|
||||
inputSampleL = (wet*inputSampleL)+(dry*drySampleL);
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
}
|
||||
|
||||
2
plugins/MacSignedAU/DeBez/DeBez.exp
Executable file
2
plugins/MacSignedAU/DeBez/DeBez.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_DeBezEntry
|
||||
_DeBezFactory
|
||||
162
plugins/MacSignedAU/DeBez/DeBez.h
Executable file
162
plugins/MacSignedAU/DeBez/DeBez.h
Executable file
|
|
@ -0,0 +1,162 @@
|
|||
/*
|
||||
* File: DeBez.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/4/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 "DeBezVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __DeBez_h__
|
||||
#define __DeBez_h__
|
||||
|
||||
|
||||
#pragma mark ____DeBez Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.5;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 1.0;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("DeBez");
|
||||
static CFStringRef kParameterBName = CFSTR("DeRez");
|
||||
static CFStringRef kParameterCName = CFSTR("Inv/Wet");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=3
|
||||
};
|
||||
|
||||
#pragma mark ____DeBez
|
||||
class DeBez : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
DeBez(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~DeBez () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new DeBezKernel(this); }
|
||||
|
||||
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 kDeBezVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class DeBezKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
DeBezKernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_AvgInSampL,
|
||||
bez_AvgOutSampL,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezF[bez_total];
|
||||
|
||||
double rezA;
|
||||
double rezB;
|
||||
double bitA;
|
||||
double bitB;
|
||||
double wetA;
|
||||
double wetB;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacSignedAU/DeBez/DeBez.r
Executable file
61
plugins/MacSignedAU/DeBez/DeBez.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: DeBez.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/4/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 "DeBezVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_DeBez 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DeBez~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_DeBez
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE DeBez_COMP_SUBTYPE
|
||||
#define COMP_MANUF DeBez_COMP_MANF
|
||||
|
||||
#define VERSION kDeBezVersion
|
||||
#define NAME "Airwindows: DeBez"
|
||||
#define DESCRIPTION "DeBez AU"
|
||||
#define ENTRY_POINT "DeBezEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
137
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/christopherjohnson.pbxuser
Executable file
137
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,137 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* DeBez */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
292,
|
||||
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,
|
||||
252,
|
||||
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 = 776113960;
|
||||
PBXWorkspaceStateSaveDate = 776113960;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BBC82252E428A780090B3FA /* PlistBookmark */ = 8BBC82252E428A780090B3FA /* PlistBookmark */;
|
||||
8BBC82772E4296530090B3FA /* PBXTextBookmark */ = 8BBC82772E4296530090B3FA /* PBXTextBookmark */;
|
||||
8BBC82782E4296530090B3FA /* PBXTextBookmark */ = 8BBC82782E4296530090B3FA /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8BA05A660720730100365D66 /* DeBez.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {930, 5040}}";
|
||||
sepNavSelRange = "{9396, 0}";
|
||||
sepNavVisRange = "{9116, 532}";
|
||||
sepNavWindowFrame = "{{732, 85}, {708, 768}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* DeBezVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1188}}";
|
||||
sepNavSelRange = "{2877, 0}";
|
||||
sepNavVisRange = "{2663, 277}";
|
||||
sepNavWindowFrame = "{{656, 401}, {666, 353}}";
|
||||
};
|
||||
};
|
||||
8BBC82252E428A780090B3FA /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/DeBez/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
};
|
||||
8BBC82772E4296530090B3FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* DeBez.cpp */;
|
||||
name = "DeBez.cpp: 213";
|
||||
rLen = 0;
|
||||
rLoc = 9396;
|
||||
rType = 0;
|
||||
vrLen = 506;
|
||||
vrLoc = 9188;
|
||||
};
|
||||
8BBC82782E4296530090B3FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* DeBez.cpp */;
|
||||
name = "DeBez.cpp: 212";
|
||||
rLen = 0;
|
||||
rLoc = 9396;
|
||||
rType = 0;
|
||||
vrLen = 532;
|
||||
vrLoc = 9116;
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* DeBez.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 2880}}";
|
||||
sepNavSelRange = "{5187, 308}";
|
||||
sepNavVisRange = "{2529, 748}";
|
||||
sepNavWindowFrame = "{{732, 102}, {708, 768}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* DeBez */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1507
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/christopherjohnson.perspectivev3
Executable file
1507
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
965
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/project.pbxproj
Executable file
965
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,965 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8B8ABB532E43CE8E0011912F /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABACB2E43CE8E0011912F /* CAExtAudioFile.h */; };
|
||||
8B8ABB542E43CE8E0011912F /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABACC2E43CE8E0011912F /* CACFMachPort.h */; };
|
||||
8B8ABB552E43CE8E0011912F /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABACD2E43CE8E0011912F /* CABool.h */; };
|
||||
8B8ABB562E43CE8E0011912F /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABACE2E43CE8E0011912F /* CAComponent.cpp */; };
|
||||
8B8ABB572E43CE8E0011912F /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABACF2E43CE8E0011912F /* CADebugger.h */; };
|
||||
8B8ABB582E43CE8E0011912F /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAD02E43CE8E0011912F /* CACFNumber.cpp */; };
|
||||
8B8ABB592E43CE8E0011912F /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD12E43CE8E0011912F /* CAGuard.h */; };
|
||||
8B8ABB5A2E43CE8E0011912F /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD22E43CE8E0011912F /* CAAtomic.h */; };
|
||||
8B8ABB5B2E43CE8E0011912F /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD32E43CE8E0011912F /* CAStreamBasicDescription.h */; };
|
||||
8B8ABB5C2E43CE8E0011912F /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD42E43CE8E0011912F /* CACFObject.h */; };
|
||||
8B8ABB5D2E43CE8E0011912F /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD52E43CE8E0011912F /* CAStreamRangedDescription.h */; };
|
||||
8B8ABB5E2E43CE8E0011912F /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD62E43CE8E0011912F /* CATokenMap.h */; };
|
||||
8B8ABB5F2E43CE8E0011912F /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD72E43CE8E0011912F /* CAComponent.h */; };
|
||||
8B8ABB602E43CE8E0011912F /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD82E43CE8E0011912F /* CAAudioBufferList.h */; };
|
||||
8B8ABB612E43CE8E0011912F /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAD92E43CE8E0011912F /* CAAudioUnit.h */; };
|
||||
8B8ABB622E43CE8E0011912F /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABADA2E43CE8E0011912F /* CAAUParameter.h */; };
|
||||
8B8ABB632E43CE8E0011912F /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABADB2E43CE8E0011912F /* CAException.h */; };
|
||||
8B8ABB642E43CE8E0011912F /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABADC2E43CE8E0011912F /* CAAUProcessor.cpp */; };
|
||||
8B8ABB652E43CE8E0011912F /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABADD2E43CE8E0011912F /* CAAUProcessor.h */; };
|
||||
8B8ABB662E43CE8E0011912F /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABADE2E43CE8E0011912F /* CAProcess.h */; };
|
||||
8B8ABB672E43CE8E0011912F /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABADF2E43CE8E0011912F /* CACFDictionary.h */; };
|
||||
8B8ABB682E43CE8E0011912F /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAE02E43CE8E0011912F /* CAPThread.h */; };
|
||||
8B8ABB692E43CE8E0011912F /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAE12E43CE8E0011912F /* CAAUParameter.cpp */; };
|
||||
8B8ABB6A2E43CE8E0011912F /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAE22E43CE8E0011912F /* CAAudioTimeStamp.h */; };
|
||||
8B8ABB6B2E43CE8E0011912F /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAE32E43CE8E0011912F /* CAFilePathUtils.cpp */; };
|
||||
8B8ABB6C2E43CE8E0011912F /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAE42E43CE8E0011912F /* CAAudioValueRange.h */; };
|
||||
8B8ABB6D2E43CE8E0011912F /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAE52E43CE8E0011912F /* CAVectorUnitTypes.h */; };
|
||||
8B8ABB6E2E43CE8E0011912F /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAE62E43CE8E0011912F /* CAAudioChannelLayoutObject.cpp */; };
|
||||
8B8ABB6F2E43CE8E0011912F /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAE72E43CE8E0011912F /* CAGuard.cpp */; };
|
||||
8B8ABB702E43CE8E0011912F /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAE82E43CE8E0011912F /* CACFNumber.h */; };
|
||||
8B8ABB712E43CE8E0011912F /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAE92E43CE8E0011912F /* CACFDistributedNotification.cpp */; };
|
||||
8B8ABB722E43CE8E0011912F /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAEA2E43CE8E0011912F /* CACFString.h */; };
|
||||
8B8ABB732E43CE8E0011912F /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAEB2E43CE8E0011912F /* CAAUMIDIMapManager.cpp */; };
|
||||
8B8ABB742E43CE8E0011912F /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAEC2E43CE8E0011912F /* CAComponentDescription.cpp */; };
|
||||
8B8ABB752E43CE8E0011912F /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAED2E43CE8E0011912F /* CAHostTimeBase.h */; };
|
||||
8B8ABB762E43CE8E0011912F /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAEE2E43CE8E0011912F /* CADebugMacros.cpp */; };
|
||||
8B8ABB772E43CE8E0011912F /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAEF2E43CE8E0011912F /* CAAudioFileFormats.h */; };
|
||||
8B8ABB782E43CE8E0011912F /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAF02E43CE8E0011912F /* CAAUMIDIMapManager.h */; };
|
||||
8B8ABB792E43CE8E0011912F /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAF12E43CE8E0011912F /* CACFDictionary.cpp */; };
|
||||
8B8ABB7A2E43CE8E0011912F /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAF22E43CE8E0011912F /* CAMutex.h */; };
|
||||
8B8ABB7B2E43CE8E0011912F /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAF32E43CE8E0011912F /* CACFString.cpp */; };
|
||||
8B8ABB7C2E43CE8E0011912F /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAF42E43CE8E0011912F /* CASettingsStorage.h */; };
|
||||
8B8ABB7D2E43CE8E0011912F /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAF52E43CE8E0011912F /* CADebugPrintf.h */; };
|
||||
8B8ABB7E2E43CE8E0011912F /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAF62E43CE8E0011912F /* CAXException.cpp */; };
|
||||
8B8ABB7F2E43CE8E0011912F /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAF72E43CE8E0011912F /* CAAUMIDIMap.h */; };
|
||||
8B8ABB802E43CE8E0011912F /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAF82E43CE8E0011912F /* AUParamInfo.h */; };
|
||||
8B8ABB812E43CE8E0011912F /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAF92E43CE8E0011912F /* CABitOperations.h */; };
|
||||
8B8ABB822E43CE8E0011912F /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAFA2E43CE8E0011912F /* CACFPreferences.cpp */; };
|
||||
8B8ABB832E43CE8E0011912F /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAFB2E43CE8E0011912F /* CABundleLocker.h */; };
|
||||
8B8ABB842E43CE8E0011912F /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAFC2E43CE8E0011912F /* CAPropertyAddress.h */; };
|
||||
8B8ABB852E43CE8E0011912F /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAFD2E43CE8E0011912F /* CAXException.h */; };
|
||||
8B8ABB862E43CE8E0011912F /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABAFE2E43CE8E0011912F /* CAAudioChannelLayout.cpp */; };
|
||||
8B8ABB872E43CE8E0011912F /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABAFF2E43CE8E0011912F /* CAThreadSafeList.h */; };
|
||||
8B8ABB882E43CE8E0011912F /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB002E43CE8E0011912F /* CAAudioUnitOutputCapturer.h */; };
|
||||
8B8ABB892E43CE8E0011912F /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB012E43CE8E0011912F /* AUParamInfo.cpp */; };
|
||||
8B8ABB8A2E43CE8E0011912F /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB022E43CE8E0011912F /* CASharedLibrary.cpp */; };
|
||||
8B8ABB8B2E43CE8E0011912F /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB032E43CE8E0011912F /* CAAUMIDIMap.cpp */; };
|
||||
8B8ABB8C2E43CE8E0011912F /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB042E43CE8E0011912F /* CALogMacros.h */; };
|
||||
8B8ABB8D2E43CE8E0011912F /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB052E43CE8E0011912F /* CACFMessagePort.cpp */; };
|
||||
8B8ABB8E2E43CE8E0011912F /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB062E43CE8E0011912F /* CARingBuffer.h */; };
|
||||
8B8ABB8F2E43CE8E0011912F /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB072E43CE8E0011912F /* AUOutputBL.cpp */; };
|
||||
8B8ABB902E43CE8E0011912F /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB082E43CE8E0011912F /* CABufferList.h */; };
|
||||
8B8ABB912E43CE8E0011912F /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB092E43CE8E0011912F /* CASharedLibrary.h */; };
|
||||
8B8ABB922E43CE8E0011912F /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB0A2E43CE8E0011912F /* CACFData.h */; };
|
||||
8B8ABB932E43CE8E0011912F /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB0B2E43CE8E0011912F /* CAStreamRangedDescription.cpp */; };
|
||||
8B8ABB942E43CE8E0011912F /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB0C2E43CE8E0011912F /* CAPThread.cpp */; };
|
||||
8B8ABB952E43CE8E0011912F /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB0D2E43CE8E0011912F /* CAAutoDisposer.h */; };
|
||||
8B8ABB962E43CE8E0011912F /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB0E2E43CE8E0011912F /* CACFPreferences.h */; };
|
||||
8B8ABB972E43CE8E0011912F /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB0F2E43CE8E0011912F /* CAVectorUnit.cpp */; };
|
||||
8B8ABB982E43CE8E0011912F /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB102E43CE8E0011912F /* CAComponentDescription.h */; };
|
||||
8B8ABB992E43CE8E0011912F /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB112E43CE8E0011912F /* CADebugMacros.h */; };
|
||||
8B8ABB9A2E43CE8E0011912F /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB122E43CE8E0011912F /* AUOutputBL.h */; };
|
||||
8B8ABB9B2E43CE8E0011912F /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB132E43CE8E0011912F /* CADebugPrintf.cpp */; };
|
||||
8B8ABB9C2E43CE8E0011912F /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB142E43CE8E0011912F /* CARingBuffer.cpp */; };
|
||||
8B8ABB9D2E43CE8E0011912F /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB152E43CE8E0011912F /* CACFPlugIn.h */; };
|
||||
8B8ABB9E2E43CE8E0011912F /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB162E43CE8E0011912F /* CASettingsStorage.cpp */; };
|
||||
8B8ABB9F2E43CE8E0011912F /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB172E43CE8E0011912F /* CAMixMap.h */; };
|
||||
8B8ABBA02E43CE8E0011912F /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB182E43CE8E0011912F /* CACFDistributedNotification.h */; };
|
||||
8B8ABBA12E43CE8E0011912F /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB192E43CE8E0011912F /* CAFilePathUtils.h */; };
|
||||
8B8ABBA22E43CE8E0011912F /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB1A2E43CE8E0011912F /* CATink.h */; };
|
||||
8B8ABBA32E43CE8E0011912F /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB1B2E43CE8E0011912F /* CAStreamBasicDescription.cpp */; };
|
||||
8B8ABBA42E43CE8E0011912F /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB1C2E43CE8E0011912F /* CAAudioChannelLayout.h */; };
|
||||
8B8ABBA52E43CE8E0011912F /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB1D2E43CE8E0011912F /* CAProcess.cpp */; };
|
||||
8B8ABBA62E43CE8E0011912F /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB1E2E43CE8E0011912F /* CAHostTimeBase.cpp */; };
|
||||
8B8ABBA72E43CE8E0011912F /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB1F2E43CE8E0011912F /* CAPersistence.cpp */; };
|
||||
8B8ABBA82E43CE8E0011912F /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB202E43CE8E0011912F /* CAAudioBufferList.cpp */; };
|
||||
8B8ABBA92E43CE8E0011912F /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB212E43CE8E0011912F /* CAAudioTimeStamp.cpp */; };
|
||||
8B8ABBAA2E43CE8E0011912F /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB222E43CE8E0011912F /* CAVectorUnit.h */; };
|
||||
8B8ABBAB2E43CE8E0011912F /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB232E43CE8E0011912F /* CAByteOrder.h */; };
|
||||
8B8ABBAC2E43CE8E0011912F /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB242E43CE8E0011912F /* CACFArray.h */; };
|
||||
8B8ABBAD2E43CE8E0011912F /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB252E43CE8E0011912F /* CAAtomicStack.h */; };
|
||||
8B8ABBAE2E43CE8E0011912F /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB262E43CE8E0011912F /* CAReferenceCounted.h */; };
|
||||
8B8ABBAF2E43CE8E0011912F /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB272E43CE8E0011912F /* CACFMachPort.cpp */; };
|
||||
8B8ABBB02E43CE8E0011912F /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB282E43CE8E0011912F /* CABufferList.cpp */; };
|
||||
8B8ABBB12E43CE8E0011912F /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB292E43CE8E0011912F /* CAMutex.cpp */; };
|
||||
8B8ABBB22E43CE8E0011912F /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB2A2E43CE8E0011912F /* CADebugger.cpp */; };
|
||||
8B8ABBB32E43CE8E0011912F /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB2B2E43CE8E0011912F /* CABundleLocker.cpp */; };
|
||||
8B8ABBB42E43CE8E0011912F /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB2C2E43CE8E0011912F /* CAAudioFileFormats.cpp */; };
|
||||
8B8ABBB52E43CE8E0011912F /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB2D2E43CE8E0011912F /* CAMath.h */; };
|
||||
8B8ABBB62E43CE8E0011912F /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB2E2E43CE8E0011912F /* CACFArray.cpp */; };
|
||||
8B8ABBB72E43CE8E0011912F /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB2F2E43CE8E0011912F /* CACFMessagePort.h */; };
|
||||
8B8ABBB82E43CE8E0011912F /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB302E43CE8E0011912F /* CAAudioValueRange.cpp */; };
|
||||
8B8ABBB92E43CE8E0011912F /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB312E43CE8E0011912F /* CAAudioUnit.cpp */; };
|
||||
8B8ABBBA2E43CE8E0011912F /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB352E43CE8E0011912F /* AUViewLocalizedStringKeys.h */; };
|
||||
8B8ABBBB2E43CE8E0011912F /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB372E43CE8E0011912F /* ComponentBase.cpp */; };
|
||||
8B8ABBBC2E43CE8E0011912F /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB382E43CE8E0011912F /* AUScopeElement.cpp */; };
|
||||
8B8ABBBD2E43CE8E0011912F /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB392E43CE8E0011912F /* ComponentBase.h */; };
|
||||
8B8ABBBE2E43CE8E0011912F /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB3A2E43CE8E0011912F /* AUBase.cpp */; };
|
||||
8B8ABBBF2E43CE8E0011912F /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB3B2E43CE8E0011912F /* AUInputElement.h */; };
|
||||
8B8ABBC02E43CE8E0011912F /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB3C2E43CE8E0011912F /* AUBase.h */; };
|
||||
8B8ABBC12E43CE8E0011912F /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB3D2E43CE8E0011912F /* AUPlugInDispatch.h */; };
|
||||
8B8ABBC22E43CE8E0011912F /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB3E2E43CE8E0011912F /* AUDispatch.h */; };
|
||||
8B8ABBC32E43CE8E0011912F /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB3F2E43CE8E0011912F /* AUOutputElement.cpp */; };
|
||||
8B8ABBC52E43CE8E0011912F /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB412E43CE8E0011912F /* AUPlugInDispatch.cpp */; };
|
||||
8B8ABBC62E43CE8E0011912F /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB422E43CE8E0011912F /* AUOutputElement.h */; };
|
||||
8B8ABBC72E43CE8E0011912F /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB432E43CE8E0011912F /* AUDispatch.cpp */; };
|
||||
8B8ABBC82E43CE8E0011912F /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB442E43CE8E0011912F /* AUScopeElement.h */; };
|
||||
8B8ABBC92E43CE8E0011912F /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB452E43CE8E0011912F /* AUInputElement.cpp */; };
|
||||
8B8ABBCA2E43CE8E0011912F /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB472E43CE8E0011912F /* AUEffectBase.cpp */; };
|
||||
8B8ABBCB2E43CE8E0011912F /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB482E43CE8E0011912F /* AUEffectBase.h */; };
|
||||
8B8ABBCC2E43CE8E0011912F /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB4A2E43CE8E0011912F /* AUTimestampGenerator.h */; };
|
||||
8B8ABBCD2E43CE8E0011912F /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB4B2E43CE8E0011912F /* AUBaseHelper.cpp */; };
|
||||
8B8ABBCE2E43CE8E0011912F /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB4C2E43CE8E0011912F /* AUSilentTimeout.h */; };
|
||||
8B8ABBCF2E43CE8E0011912F /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB4D2E43CE8E0011912F /* AUInputFormatConverter.h */; };
|
||||
8B8ABBD02E43CE8E0011912F /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB4E2E43CE8E0011912F /* AUTimestampGenerator.cpp */; };
|
||||
8B8ABBD12E43CE8E0011912F /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8ABB4F2E43CE8E0011912F /* AUBuffer.cpp */; };
|
||||
8B8ABBD22E43CE8E0011912F /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB502E43CE8E0011912F /* AUMIDIDefs.h */; };
|
||||
8B8ABBD32E43CE8E0011912F /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB512E43CE8E0011912F /* AUBuffer.h */; };
|
||||
8B8ABBD42E43CE8E0011912F /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8ABB522E43CE8E0011912F /* AUBaseHelper.h */; };
|
||||
8BA05A6B0720730100365D66 /* DeBez.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* DeBez.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* DeBezVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* DeBezVersion.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 /* DeBez.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* DeBez.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>"; };
|
||||
8B8ABACB2E43CE8E0011912F /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
|
||||
8B8ABACC2E43CE8E0011912F /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
|
||||
8B8ABACD2E43CE8E0011912F /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
|
||||
8B8ABACE2E43CE8E0011912F /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
|
||||
8B8ABACF2E43CE8E0011912F /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
|
||||
8B8ABAD02E43CE8E0011912F /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAD12E43CE8E0011912F /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
|
||||
8B8ABAD22E43CE8E0011912F /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
|
||||
8B8ABAD32E43CE8E0011912F /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8B8ABAD42E43CE8E0011912F /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
|
||||
8B8ABAD52E43CE8E0011912F /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
|
||||
8B8ABAD62E43CE8E0011912F /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
|
||||
8B8ABAD72E43CE8E0011912F /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
|
||||
8B8ABAD82E43CE8E0011912F /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
|
||||
8B8ABAD92E43CE8E0011912F /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
|
||||
8B8ABADA2E43CE8E0011912F /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8B8ABADB2E43CE8E0011912F /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
|
||||
8B8ABADC2E43CE8E0011912F /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
|
||||
8B8ABADD2E43CE8E0011912F /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
|
||||
8B8ABADE2E43CE8E0011912F /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
|
||||
8B8ABADF2E43CE8E0011912F /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
|
||||
8B8ABAE02E43CE8E0011912F /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
|
||||
8B8ABAE12E43CE8E0011912F /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAE22E43CE8E0011912F /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
|
||||
8B8ABAE32E43CE8E0011912F /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAE42E43CE8E0011912F /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
|
||||
8B8ABAE52E43CE8E0011912F /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B8ABAE62E43CE8E0011912F /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAE72E43CE8E0011912F /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAE82E43CE8E0011912F /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
|
||||
8B8ABAE92E43CE8E0011912F /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAEA2E43CE8E0011912F /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
|
||||
8B8ABAEB2E43CE8E0011912F /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAEC2E43CE8E0011912F /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAED2E43CE8E0011912F /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
|
||||
8B8ABAEE2E43CE8E0011912F /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAEF2E43CE8E0011912F /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
|
||||
8B8ABAF02E43CE8E0011912F /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
|
||||
8B8ABAF12E43CE8E0011912F /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAF22E43CE8E0011912F /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8B8ABAF32E43CE8E0011912F /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAF42E43CE8E0011912F /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
|
||||
8B8ABAF52E43CE8E0011912F /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
|
||||
8B8ABAF62E43CE8E0011912F /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAF72E43CE8E0011912F /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
|
||||
8B8ABAF82E43CE8E0011912F /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
|
||||
8B8ABAF92E43CE8E0011912F /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
|
||||
8B8ABAFA2E43CE8E0011912F /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAFB2E43CE8E0011912F /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
|
||||
8B8ABAFC2E43CE8E0011912F /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
|
||||
8B8ABAFD2E43CE8E0011912F /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
|
||||
8B8ABAFE2E43CE8E0011912F /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8B8ABAFF2E43CE8E0011912F /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
8B8ABB002E43CE8E0011912F /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
|
||||
8B8ABB012E43CE8E0011912F /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB022E43CE8E0011912F /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB032E43CE8E0011912F /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB042E43CE8E0011912F /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
|
||||
8B8ABB052E43CE8E0011912F /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB062E43CE8E0011912F /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
|
||||
8B8ABB072E43CE8E0011912F /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB082E43CE8E0011912F /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
|
||||
8B8ABB092E43CE8E0011912F /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
|
||||
8B8ABB0A2E43CE8E0011912F /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
|
||||
8B8ABB0B2E43CE8E0011912F /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB0C2E43CE8E0011912F /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB0D2E43CE8E0011912F /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
|
||||
8B8ABB0E2E43CE8E0011912F /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
|
||||
8B8ABB0F2E43CE8E0011912F /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB102E43CE8E0011912F /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
|
||||
8B8ABB112E43CE8E0011912F /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
|
||||
8B8ABB122E43CE8E0011912F /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
|
||||
8B8ABB132E43CE8E0011912F /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB142E43CE8E0011912F /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB152E43CE8E0011912F /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
|
||||
8B8ABB162E43CE8E0011912F /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB172E43CE8E0011912F /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
|
||||
8B8ABB182E43CE8E0011912F /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
|
||||
8B8ABB192E43CE8E0011912F /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
|
||||
8B8ABB1A2E43CE8E0011912F /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
|
||||
8B8ABB1B2E43CE8E0011912F /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB1C2E43CE8E0011912F /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8B8ABB1D2E43CE8E0011912F /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB1E2E43CE8E0011912F /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB1F2E43CE8E0011912F /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB202E43CE8E0011912F /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB212E43CE8E0011912F /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB222E43CE8E0011912F /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
8B8ABB232E43CE8E0011912F /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
|
||||
8B8ABB242E43CE8E0011912F /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
|
||||
8B8ABB252E43CE8E0011912F /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
|
||||
8B8ABB262E43CE8E0011912F /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
|
||||
8B8ABB272E43CE8E0011912F /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB282E43CE8E0011912F /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB292E43CE8E0011912F /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB2A2E43CE8E0011912F /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB2B2E43CE8E0011912F /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB2C2E43CE8E0011912F /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB2D2E43CE8E0011912F /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
|
||||
8B8ABB2E2E43CE8E0011912F /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB2F2E43CE8E0011912F /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
|
||||
8B8ABB302E43CE8E0011912F /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB312E43CE8E0011912F /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB352E43CE8E0011912F /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
8B8ABB372E43CE8E0011912F /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB382E43CE8E0011912F /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB392E43CE8E0011912F /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8B8ABB3A2E43CE8E0011912F /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB3B2E43CE8E0011912F /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8B8ABB3C2E43CE8E0011912F /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8B8ABB3D2E43CE8E0011912F /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
|
||||
8B8ABB3E2E43CE8E0011912F /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8B8ABB3F2E43CE8E0011912F /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB402E43CE8E0011912F /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8B8ABB412E43CE8E0011912F /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB422E43CE8E0011912F /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8B8ABB432E43CE8E0011912F /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB442E43CE8E0011912F /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8B8ABB452E43CE8E0011912F /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB472E43CE8E0011912F /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB482E43CE8E0011912F /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8B8ABB4A2E43CE8E0011912F /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8B8ABB4B2E43CE8E0011912F /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB4C2E43CE8E0011912F /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8B8ABB4D2E43CE8E0011912F /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8B8ABB4E2E43CE8E0011912F /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB4F2E43CE8E0011912F /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B8ABB502E43CE8E0011912F /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
|
||||
8B8ABB512E43CE8E0011912F /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8B8ABB522E43CE8E0011912F /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
|
||||
8B8ABBD52E43CFA20011912F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8BA05A660720730100365D66 /* DeBez.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DeBez.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* DeBez.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = DeBez.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* DeBez.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = DeBez.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* DeBezVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DeBezVersion.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 /* DeBez.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DeBez.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* DeBez.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DeBez.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 /* DeBez */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = DeBez;
|
||||
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 = (
|
||||
8B8ABAC92E43CE8E0011912F /* CA_SDK */,
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* DeBez.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8ABAC92E43CE8E0011912F /* CA_SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8ABACA2E43CE8E0011912F /* PublicUtility */,
|
||||
8B8ABB322E43CE8E0011912F /* AudioUnits */,
|
||||
);
|
||||
name = CA_SDK;
|
||||
path = ../../../../CA_SDK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8ABACA2E43CE8E0011912F /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8ABACB2E43CE8E0011912F /* CAExtAudioFile.h */,
|
||||
8B8ABACC2E43CE8E0011912F /* CACFMachPort.h */,
|
||||
8B8ABACD2E43CE8E0011912F /* CABool.h */,
|
||||
8B8ABACE2E43CE8E0011912F /* CAComponent.cpp */,
|
||||
8B8ABACF2E43CE8E0011912F /* CADebugger.h */,
|
||||
8B8ABAD02E43CE8E0011912F /* CACFNumber.cpp */,
|
||||
8B8ABAD12E43CE8E0011912F /* CAGuard.h */,
|
||||
8B8ABAD22E43CE8E0011912F /* CAAtomic.h */,
|
||||
8B8ABAD32E43CE8E0011912F /* CAStreamBasicDescription.h */,
|
||||
8B8ABAD42E43CE8E0011912F /* CACFObject.h */,
|
||||
8B8ABAD52E43CE8E0011912F /* CAStreamRangedDescription.h */,
|
||||
8B8ABAD62E43CE8E0011912F /* CATokenMap.h */,
|
||||
8B8ABAD72E43CE8E0011912F /* CAComponent.h */,
|
||||
8B8ABAD82E43CE8E0011912F /* CAAudioBufferList.h */,
|
||||
8B8ABAD92E43CE8E0011912F /* CAAudioUnit.h */,
|
||||
8B8ABADA2E43CE8E0011912F /* CAAUParameter.h */,
|
||||
8B8ABADB2E43CE8E0011912F /* CAException.h */,
|
||||
8B8ABADC2E43CE8E0011912F /* CAAUProcessor.cpp */,
|
||||
8B8ABADD2E43CE8E0011912F /* CAAUProcessor.h */,
|
||||
8B8ABADE2E43CE8E0011912F /* CAProcess.h */,
|
||||
8B8ABADF2E43CE8E0011912F /* CACFDictionary.h */,
|
||||
8B8ABAE02E43CE8E0011912F /* CAPThread.h */,
|
||||
8B8ABAE12E43CE8E0011912F /* CAAUParameter.cpp */,
|
||||
8B8ABAE22E43CE8E0011912F /* CAAudioTimeStamp.h */,
|
||||
8B8ABAE32E43CE8E0011912F /* CAFilePathUtils.cpp */,
|
||||
8B8ABAE42E43CE8E0011912F /* CAAudioValueRange.h */,
|
||||
8B8ABAE52E43CE8E0011912F /* CAVectorUnitTypes.h */,
|
||||
8B8ABAE62E43CE8E0011912F /* CAAudioChannelLayoutObject.cpp */,
|
||||
8B8ABAE72E43CE8E0011912F /* CAGuard.cpp */,
|
||||
8B8ABAE82E43CE8E0011912F /* CACFNumber.h */,
|
||||
8B8ABAE92E43CE8E0011912F /* CACFDistributedNotification.cpp */,
|
||||
8B8ABAEA2E43CE8E0011912F /* CACFString.h */,
|
||||
8B8ABAEB2E43CE8E0011912F /* CAAUMIDIMapManager.cpp */,
|
||||
8B8ABAEC2E43CE8E0011912F /* CAComponentDescription.cpp */,
|
||||
8B8ABAED2E43CE8E0011912F /* CAHostTimeBase.h */,
|
||||
8B8ABAEE2E43CE8E0011912F /* CADebugMacros.cpp */,
|
||||
8B8ABAEF2E43CE8E0011912F /* CAAudioFileFormats.h */,
|
||||
8B8ABAF02E43CE8E0011912F /* CAAUMIDIMapManager.h */,
|
||||
8B8ABAF12E43CE8E0011912F /* CACFDictionary.cpp */,
|
||||
8B8ABAF22E43CE8E0011912F /* CAMutex.h */,
|
||||
8B8ABAF32E43CE8E0011912F /* CACFString.cpp */,
|
||||
8B8ABAF42E43CE8E0011912F /* CASettingsStorage.h */,
|
||||
8B8ABAF52E43CE8E0011912F /* CADebugPrintf.h */,
|
||||
8B8ABAF62E43CE8E0011912F /* CAXException.cpp */,
|
||||
8B8ABAF72E43CE8E0011912F /* CAAUMIDIMap.h */,
|
||||
8B8ABAF82E43CE8E0011912F /* AUParamInfo.h */,
|
||||
8B8ABAF92E43CE8E0011912F /* CABitOperations.h */,
|
||||
8B8ABAFA2E43CE8E0011912F /* CACFPreferences.cpp */,
|
||||
8B8ABAFB2E43CE8E0011912F /* CABundleLocker.h */,
|
||||
8B8ABAFC2E43CE8E0011912F /* CAPropertyAddress.h */,
|
||||
8B8ABAFD2E43CE8E0011912F /* CAXException.h */,
|
||||
8B8ABAFE2E43CE8E0011912F /* CAAudioChannelLayout.cpp */,
|
||||
8B8ABAFF2E43CE8E0011912F /* CAThreadSafeList.h */,
|
||||
8B8ABB002E43CE8E0011912F /* CAAudioUnitOutputCapturer.h */,
|
||||
8B8ABB012E43CE8E0011912F /* AUParamInfo.cpp */,
|
||||
8B8ABB022E43CE8E0011912F /* CASharedLibrary.cpp */,
|
||||
8B8ABB032E43CE8E0011912F /* CAAUMIDIMap.cpp */,
|
||||
8B8ABB042E43CE8E0011912F /* CALogMacros.h */,
|
||||
8B8ABB052E43CE8E0011912F /* CACFMessagePort.cpp */,
|
||||
8B8ABB062E43CE8E0011912F /* CARingBuffer.h */,
|
||||
8B8ABB072E43CE8E0011912F /* AUOutputBL.cpp */,
|
||||
8B8ABB082E43CE8E0011912F /* CABufferList.h */,
|
||||
8B8ABB092E43CE8E0011912F /* CASharedLibrary.h */,
|
||||
8B8ABB0A2E43CE8E0011912F /* CACFData.h */,
|
||||
8B8ABB0B2E43CE8E0011912F /* CAStreamRangedDescription.cpp */,
|
||||
8B8ABB0C2E43CE8E0011912F /* CAPThread.cpp */,
|
||||
8B8ABB0D2E43CE8E0011912F /* CAAutoDisposer.h */,
|
||||
8B8ABB0E2E43CE8E0011912F /* CACFPreferences.h */,
|
||||
8B8ABB0F2E43CE8E0011912F /* CAVectorUnit.cpp */,
|
||||
8B8ABB102E43CE8E0011912F /* CAComponentDescription.h */,
|
||||
8B8ABB112E43CE8E0011912F /* CADebugMacros.h */,
|
||||
8B8ABB122E43CE8E0011912F /* AUOutputBL.h */,
|
||||
8B8ABB132E43CE8E0011912F /* CADebugPrintf.cpp */,
|
||||
8B8ABB142E43CE8E0011912F /* CARingBuffer.cpp */,
|
||||
8B8ABB152E43CE8E0011912F /* CACFPlugIn.h */,
|
||||
8B8ABB162E43CE8E0011912F /* CASettingsStorage.cpp */,
|
||||
8B8ABB172E43CE8E0011912F /* CAMixMap.h */,
|
||||
8B8ABB182E43CE8E0011912F /* CACFDistributedNotification.h */,
|
||||
8B8ABB192E43CE8E0011912F /* CAFilePathUtils.h */,
|
||||
8B8ABB1A2E43CE8E0011912F /* CATink.h */,
|
||||
8B8ABB1B2E43CE8E0011912F /* CAStreamBasicDescription.cpp */,
|
||||
8B8ABB1C2E43CE8E0011912F /* CAAudioChannelLayout.h */,
|
||||
8B8ABB1D2E43CE8E0011912F /* CAProcess.cpp */,
|
||||
8B8ABB1E2E43CE8E0011912F /* CAHostTimeBase.cpp */,
|
||||
8B8ABB1F2E43CE8E0011912F /* CAPersistence.cpp */,
|
||||
8B8ABB202E43CE8E0011912F /* CAAudioBufferList.cpp */,
|
||||
8B8ABB212E43CE8E0011912F /* CAAudioTimeStamp.cpp */,
|
||||
8B8ABB222E43CE8E0011912F /* CAVectorUnit.h */,
|
||||
8B8ABB232E43CE8E0011912F /* CAByteOrder.h */,
|
||||
8B8ABB242E43CE8E0011912F /* CACFArray.h */,
|
||||
8B8ABB252E43CE8E0011912F /* CAAtomicStack.h */,
|
||||
8B8ABB262E43CE8E0011912F /* CAReferenceCounted.h */,
|
||||
8B8ABB272E43CE8E0011912F /* CACFMachPort.cpp */,
|
||||
8B8ABB282E43CE8E0011912F /* CABufferList.cpp */,
|
||||
8B8ABB292E43CE8E0011912F /* CAMutex.cpp */,
|
||||
8B8ABB2A2E43CE8E0011912F /* CADebugger.cpp */,
|
||||
8B8ABB2B2E43CE8E0011912F /* CABundleLocker.cpp */,
|
||||
8B8ABB2C2E43CE8E0011912F /* CAAudioFileFormats.cpp */,
|
||||
8B8ABB2D2E43CE8E0011912F /* CAMath.h */,
|
||||
8B8ABB2E2E43CE8E0011912F /* CACFArray.cpp */,
|
||||
8B8ABB2F2E43CE8E0011912F /* CACFMessagePort.h */,
|
||||
8B8ABB302E43CE8E0011912F /* CAAudioValueRange.cpp */,
|
||||
8B8ABB312E43CE8E0011912F /* CAAudioUnit.cpp */,
|
||||
);
|
||||
path = PublicUtility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8ABB322E43CE8E0011912F /* AudioUnits */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8ABB332E43CE8E0011912F /* AUPublic */,
|
||||
);
|
||||
path = AudioUnits;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8ABB332E43CE8E0011912F /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8ABB342E43CE8E0011912F /* AUViewBase */,
|
||||
8B8ABB362E43CE8E0011912F /* AUBase */,
|
||||
8B8ABB462E43CE8E0011912F /* OtherBases */,
|
||||
8B8ABB492E43CE8E0011912F /* Utility */,
|
||||
);
|
||||
path = AUPublic;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8ABB342E43CE8E0011912F /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8ABB352E43CE8E0011912F /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8ABB362E43CE8E0011912F /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8ABB372E43CE8E0011912F /* ComponentBase.cpp */,
|
||||
8B8ABB382E43CE8E0011912F /* AUScopeElement.cpp */,
|
||||
8B8ABB392E43CE8E0011912F /* ComponentBase.h */,
|
||||
8B8ABB3A2E43CE8E0011912F /* AUBase.cpp */,
|
||||
8B8ABB3B2E43CE8E0011912F /* AUInputElement.h */,
|
||||
8B8ABB3C2E43CE8E0011912F /* AUBase.h */,
|
||||
8B8ABB3D2E43CE8E0011912F /* AUPlugInDispatch.h */,
|
||||
8B8ABB3E2E43CE8E0011912F /* AUDispatch.h */,
|
||||
8B8ABB3F2E43CE8E0011912F /* AUOutputElement.cpp */,
|
||||
8B8ABB402E43CE8E0011912F /* AUResources.r */,
|
||||
8B8ABB412E43CE8E0011912F /* AUPlugInDispatch.cpp */,
|
||||
8B8ABB422E43CE8E0011912F /* AUOutputElement.h */,
|
||||
8B8ABB432E43CE8E0011912F /* AUDispatch.cpp */,
|
||||
8B8ABB442E43CE8E0011912F /* AUScopeElement.h */,
|
||||
8B8ABB452E43CE8E0011912F /* AUInputElement.cpp */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8ABB462E43CE8E0011912F /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8ABB472E43CE8E0011912F /* AUEffectBase.cpp */,
|
||||
8B8ABB482E43CE8E0011912F /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8ABB492E43CE8E0011912F /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8ABB4A2E43CE8E0011912F /* AUTimestampGenerator.h */,
|
||||
8B8ABB4B2E43CE8E0011912F /* AUBaseHelper.cpp */,
|
||||
8B8ABB4C2E43CE8E0011912F /* AUSilentTimeout.h */,
|
||||
8B8ABB4D2E43CE8E0011912F /* AUInputFormatConverter.h */,
|
||||
8B8ABB4E2E43CE8E0011912F /* AUTimestampGenerator.cpp */,
|
||||
8B8ABB4F2E43CE8E0011912F /* AUBuffer.cpp */,
|
||||
8B8ABB502E43CE8E0011912F /* AUMIDIDefs.h */,
|
||||
8B8ABB512E43CE8E0011912F /* AUBuffer.h */,
|
||||
8B8ABB522E43CE8E0011912F /* AUBaseHelper.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* DeBez.h */,
|
||||
8BA05A660720730100365D66 /* DeBez.cpp */,
|
||||
8BA05A670720730100365D66 /* DeBez.exp */,
|
||||
8BA05A680720730100365D66 /* DeBez.r */,
|
||||
8BA05A690720730100365D66 /* DeBezVersion.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B8ABB832E43CE8E0011912F /* CABundleLocker.h in Headers */,
|
||||
8B8ABBA42E43CE8E0011912F /* CAAudioChannelLayout.h in Headers */,
|
||||
8B8ABB9A2E43CE8E0011912F /* AUOutputBL.h in Headers */,
|
||||
8B8ABB752E43CE8E0011912F /* CAHostTimeBase.h in Headers */,
|
||||
8B8ABBBD2E43CE8E0011912F /* ComponentBase.h in Headers */,
|
||||
8B8ABBAD2E43CE8E0011912F /* CAAtomicStack.h in Headers */,
|
||||
8B8ABB6A2E43CE8E0011912F /* CAAudioTimeStamp.h in Headers */,
|
||||
8B8ABB872E43CE8E0011912F /* CAThreadSafeList.h in Headers */,
|
||||
8B8ABB622E43CE8E0011912F /* CAAUParameter.h in Headers */,
|
||||
8B8ABBD42E43CE8E0011912F /* AUBaseHelper.h in Headers */,
|
||||
8B8ABBCC2E43CE8E0011912F /* AUTimestampGenerator.h in Headers */,
|
||||
8B8ABB7D2E43CE8E0011912F /* CADebugPrintf.h in Headers */,
|
||||
8B8ABBB72E43CE8E0011912F /* CACFMessagePort.h in Headers */,
|
||||
8B8ABB652E43CE8E0011912F /* CAAUProcessor.h in Headers */,
|
||||
8B8ABB612E43CE8E0011912F /* CAAudioUnit.h in Headers */,
|
||||
8B8ABBBA2E43CE8E0011912F /* AUViewLocalizedStringKeys.h in Headers */,
|
||||
8B8ABBA02E43CE8E0011912F /* CACFDistributedNotification.h in Headers */,
|
||||
8B8ABB5F2E43CE8E0011912F /* CAComponent.h in Headers */,
|
||||
8B8ABB6D2E43CE8E0011912F /* CAVectorUnitTypes.h in Headers */,
|
||||
8BA05A6E0720730100365D66 /* DeBezVersion.h in Headers */,
|
||||
8B8ABBA12E43CE8E0011912F /* CAFilePathUtils.h in Headers */,
|
||||
8B8ABB632E43CE8E0011912F /* CAException.h in Headers */,
|
||||
8B8ABB5A2E43CE8E0011912F /* CAAtomic.h in Headers */,
|
||||
8B8ABB592E43CE8E0011912F /* CAGuard.h in Headers */,
|
||||
8B8ABBBF2E43CE8E0011912F /* AUInputElement.h in Headers */,
|
||||
8B8ABB962E43CE8E0011912F /* CACFPreferences.h in Headers */,
|
||||
8B8ABBAB2E43CE8E0011912F /* CAByteOrder.h in Headers */,
|
||||
8B8ABB8E2E43CE8E0011912F /* CARingBuffer.h in Headers */,
|
||||
8B8ABB552E43CE8E0011912F /* CABool.h in Headers */,
|
||||
8B8ABB7A2E43CE8E0011912F /* CAMutex.h in Headers */,
|
||||
8B8ABBC02E43CE8E0011912F /* AUBase.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* DeBez.h in Headers */,
|
||||
8B8ABB722E43CE8E0011912F /* CACFString.h in Headers */,
|
||||
8B8ABB912E43CE8E0011912F /* CASharedLibrary.h in Headers */,
|
||||
8B8ABB5E2E43CE8E0011912F /* CATokenMap.h in Headers */,
|
||||
8B8ABB532E43CE8E0011912F /* CAExtAudioFile.h in Headers */,
|
||||
8B8ABB682E43CE8E0011912F /* CAPThread.h in Headers */,
|
||||
8B8ABB842E43CE8E0011912F /* CAPropertyAddress.h in Headers */,
|
||||
8B8ABBAE2E43CE8E0011912F /* CAReferenceCounted.h in Headers */,
|
||||
8B8ABBD32E43CE8E0011912F /* AUBuffer.h in Headers */,
|
||||
8B8ABBB52E43CE8E0011912F /* CAMath.h in Headers */,
|
||||
8B8ABB952E43CE8E0011912F /* CAAutoDisposer.h in Headers */,
|
||||
8B8ABB5C2E43CE8E0011912F /* CACFObject.h in Headers */,
|
||||
8B8ABB7C2E43CE8E0011912F /* CASettingsStorage.h in Headers */,
|
||||
8B8ABB852E43CE8E0011912F /* CAXException.h in Headers */,
|
||||
8B8ABBA22E43CE8E0011912F /* CATink.h in Headers */,
|
||||
8B8ABBCF2E43CE8E0011912F /* AUInputFormatConverter.h in Headers */,
|
||||
8B8ABBAA2E43CE8E0011912F /* CAVectorUnit.h in Headers */,
|
||||
8B8ABB662E43CE8E0011912F /* CAProcess.h in Headers */,
|
||||
8B8ABB6C2E43CE8E0011912F /* CAAudioValueRange.h in Headers */,
|
||||
8B8ABB812E43CE8E0011912F /* CABitOperations.h in Headers */,
|
||||
8B8ABB772E43CE8E0011912F /* CAAudioFileFormats.h in Headers */,
|
||||
8B8ABB702E43CE8E0011912F /* CACFNumber.h in Headers */,
|
||||
8B8ABB882E43CE8E0011912F /* CAAudioUnitOutputCapturer.h in Headers */,
|
||||
8B8ABB992E43CE8E0011912F /* CADebugMacros.h in Headers */,
|
||||
8B8ABBD22E43CE8E0011912F /* AUMIDIDefs.h in Headers */,
|
||||
8B8ABB922E43CE8E0011912F /* CACFData.h in Headers */,
|
||||
8B8ABB5B2E43CE8E0011912F /* CAStreamBasicDescription.h in Headers */,
|
||||
8B8ABBC12E43CE8E0011912F /* AUPlugInDispatch.h in Headers */,
|
||||
8B8ABB5D2E43CE8E0011912F /* CAStreamRangedDescription.h in Headers */,
|
||||
8B8ABB9D2E43CE8E0011912F /* CACFPlugIn.h in Headers */,
|
||||
8B8ABB602E43CE8E0011912F /* CAAudioBufferList.h in Headers */,
|
||||
8B8ABB782E43CE8E0011912F /* CAAUMIDIMapManager.h in Headers */,
|
||||
8B8ABBCB2E43CE8E0011912F /* AUEffectBase.h in Headers */,
|
||||
8B8ABB672E43CE8E0011912F /* CACFDictionary.h in Headers */,
|
||||
8B8ABBC82E43CE8E0011912F /* AUScopeElement.h in Headers */,
|
||||
8B8ABB982E43CE8E0011912F /* CAComponentDescription.h in Headers */,
|
||||
8B8ABBCE2E43CE8E0011912F /* AUSilentTimeout.h in Headers */,
|
||||
8B8ABB902E43CE8E0011912F /* CABufferList.h in Headers */,
|
||||
8B8ABBC22E43CE8E0011912F /* AUDispatch.h in Headers */,
|
||||
8B8ABBC62E43CE8E0011912F /* AUOutputElement.h in Headers */,
|
||||
8B8ABB8C2E43CE8E0011912F /* CALogMacros.h in Headers */,
|
||||
8B8ABB802E43CE8E0011912F /* AUParamInfo.h in Headers */,
|
||||
8B8ABB9F2E43CE8E0011912F /* CAMixMap.h in Headers */,
|
||||
8B8ABBAC2E43CE8E0011912F /* CACFArray.h in Headers */,
|
||||
8B8ABB542E43CE8E0011912F /* CACFMachPort.h in Headers */,
|
||||
8B8ABB7F2E43CE8E0011912F /* CAAUMIDIMap.h in Headers */,
|
||||
8B8ABB572E43CE8E0011912F /* CADebugger.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* DeBez */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "DeBez" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = DeBez;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = DeBez;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* DeBez.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 "DeBez" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
de,
|
||||
fr,
|
||||
ja,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* DeBez */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* DeBez */,
|
||||
);
|
||||
};
|
||||
/* 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 = (
|
||||
8B8ABB8F2E43CE8E0011912F /* AUOutputBL.cpp in Sources */,
|
||||
8B8ABBB42E43CE8E0011912F /* CAAudioFileFormats.cpp in Sources */,
|
||||
8B8ABBA62E43CE8E0011912F /* CAHostTimeBase.cpp in Sources */,
|
||||
8B8ABB7E2E43CE8E0011912F /* CAXException.cpp in Sources */,
|
||||
8B8ABBA82E43CE8E0011912F /* CAAudioBufferList.cpp in Sources */,
|
||||
8B8ABB6B2E43CE8E0011912F /* CAFilePathUtils.cpp in Sources */,
|
||||
8B8ABB692E43CE8E0011912F /* CAAUParameter.cpp in Sources */,
|
||||
8B8ABB8B2E43CE8E0011912F /* CAAUMIDIMap.cpp in Sources */,
|
||||
8B8ABBB82E43CE8E0011912F /* CAAudioValueRange.cpp in Sources */,
|
||||
8B8ABBC72E43CE8E0011912F /* AUDispatch.cpp in Sources */,
|
||||
8B8ABB822E43CE8E0011912F /* CACFPreferences.cpp in Sources */,
|
||||
8B8ABBC52E43CE8E0011912F /* AUPlugInDispatch.cpp in Sources */,
|
||||
8B8ABB642E43CE8E0011912F /* CAAUProcessor.cpp in Sources */,
|
||||
8B8ABB792E43CE8E0011912F /* CACFDictionary.cpp in Sources */,
|
||||
8B8ABBCD2E43CE8E0011912F /* AUBaseHelper.cpp in Sources */,
|
||||
8B8ABBB22E43CE8E0011912F /* CADebugger.cpp in Sources */,
|
||||
8B8ABB862E43CE8E0011912F /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8B8ABB892E43CE8E0011912F /* AUParamInfo.cpp in Sources */,
|
||||
8B8ABBA72E43CE8E0011912F /* CAPersistence.cpp in Sources */,
|
||||
8B8ABB9B2E43CE8E0011912F /* CADebugPrintf.cpp in Sources */,
|
||||
8B8ABBD02E43CE8E0011912F /* AUTimestampGenerator.cpp in Sources */,
|
||||
8B8ABBA32E43CE8E0011912F /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8B8ABB732E43CE8E0011912F /* CAAUMIDIMapManager.cpp in Sources */,
|
||||
8B8ABB9E2E43CE8E0011912F /* CASettingsStorage.cpp in Sources */,
|
||||
8B8ABBC32E43CE8E0011912F /* AUOutputElement.cpp in Sources */,
|
||||
8B8ABB6F2E43CE8E0011912F /* CAGuard.cpp in Sources */,
|
||||
8BA05A6B0720730100365D66 /* DeBez.cpp in Sources */,
|
||||
8B8ABBB12E43CE8E0011912F /* CAMutex.cpp in Sources */,
|
||||
8B8ABBCA2E43CE8E0011912F /* AUEffectBase.cpp in Sources */,
|
||||
8B8ABBAF2E43CE8E0011912F /* CACFMachPort.cpp in Sources */,
|
||||
8B8ABBBE2E43CE8E0011912F /* AUBase.cpp in Sources */,
|
||||
8B8ABB8A2E43CE8E0011912F /* CASharedLibrary.cpp in Sources */,
|
||||
8B8ABB712E43CE8E0011912F /* CACFDistributedNotification.cpp in Sources */,
|
||||
8B8ABB742E43CE8E0011912F /* CAComponentDescription.cpp in Sources */,
|
||||
8B8ABB7B2E43CE8E0011912F /* CACFString.cpp in Sources */,
|
||||
8B8ABBBB2E43CE8E0011912F /* ComponentBase.cpp in Sources */,
|
||||
8B8ABB9C2E43CE8E0011912F /* CARingBuffer.cpp in Sources */,
|
||||
8B8ABBBC2E43CE8E0011912F /* AUScopeElement.cpp in Sources */,
|
||||
8B8ABBB92E43CE8E0011912F /* CAAudioUnit.cpp in Sources */,
|
||||
8B8ABBB62E43CE8E0011912F /* CACFArray.cpp in Sources */,
|
||||
8B8ABBB32E43CE8E0011912F /* CABundleLocker.cpp in Sources */,
|
||||
8B8ABBA52E43CE8E0011912F /* CAProcess.cpp in Sources */,
|
||||
8B8ABB932E43CE8E0011912F /* CAStreamRangedDescription.cpp in Sources */,
|
||||
8B8ABB942E43CE8E0011912F /* CAPThread.cpp in Sources */,
|
||||
8B8ABB562E43CE8E0011912F /* CAComponent.cpp in Sources */,
|
||||
8B8ABB6E2E43CE8E0011912F /* CAAudioChannelLayoutObject.cpp in Sources */,
|
||||
8B8ABBA92E43CE8E0011912F /* CAAudioTimeStamp.cpp in Sources */,
|
||||
8B8ABBB02E43CE8E0011912F /* CABufferList.cpp in Sources */,
|
||||
8B8ABB8D2E43CE8E0011912F /* CACFMessagePort.cpp in Sources */,
|
||||
8B8ABB972E43CE8E0011912F /* CAVectorUnit.cpp in Sources */,
|
||||
8B8ABBC92E43CE8E0011912F /* AUInputElement.cpp in Sources */,
|
||||
8B8ABBD12E43CE8E0011912F /* AUBuffer.cpp in Sources */,
|
||||
8B8ABB762E43CE8E0011912F /* CADebugMacros.cpp in Sources */,
|
||||
8B8ABB582E43CE8E0011912F /* CACFNumber.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8B8ABBD52E43CFA20011912F /* 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 = DeBez.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 = DeBez;
|
||||
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 = DeBez.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 = DeBez;
|
||||
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 "DeBez" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "DeBez" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
7
plugins/MacSignedAU/DeBez/DeBez.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
plugins/MacSignedAU/DeBez/DeBez.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 = "DeBez.component"
|
||||
BlueprintName = "DeBez"
|
||||
ReferencedContainer = "container:DeBez.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 = "DeBez.component"
|
||||
BlueprintName = "DeBez"
|
||||
ReferencedContainer = "container:DeBez.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>DeBez.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/DeBez/DeBezVersion.h
Executable file
58
plugins/MacSignedAU/DeBez/DeBezVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: DeBezVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 8/4/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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 __DeBezVersion_h__
|
||||
#define __DeBezVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kDeBezVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kDeBezVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define DeBez_COMP_MANF 'Dthr'
|
||||
#define DeBez_COMP_SUBTYPE 'debz'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
47
plugins/MacSignedAU/DeBez/Info.plist
Executable file
47
plugins/MacSignedAU/DeBez/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>debz</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>DthX</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
plugins/MacSignedAU/DeBez/en.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacSignedAU/DeBez/en.lproj/InfoPlist.strings
Executable file
Binary file not shown.
16
plugins/MacSignedAU/DeBez/version.plist
Executable file
16
plugins/MacSignedAU/DeBez/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.
47
plugins/MacSignedAU/TakeCare/Info.plist
Executable file
47
plugins/MacSignedAU/TakeCare/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>tcar</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>
|
||||
5
plugins/MacSignedAU/TakeCare/StarterAU_Prefix.pch
Executable file
5
plugins/MacSignedAU/TakeCare/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>
|
||||
545
plugins/MacSignedAU/TakeCare/TakeCare.cpp
Executable file
545
plugins/MacSignedAU/TakeCare/TakeCare.cpp
Executable file
|
|
@ -0,0 +1,545 @@
|
|||
/*
|
||||
* File: TakeCare.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 7/29/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
TakeCare.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "TakeCare.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
AUDIOCOMPONENT_ENTRY(AUBaseFactory, TakeCare)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::TakeCare
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
TakeCare::TakeCare(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
SetParameter(kParam_E, kDefaultValue_ParamE );
|
||||
SetParameter(kParam_F, kDefaultValue_ParamF );
|
||||
SetParameter(kParam_G, kDefaultValue_ParamG );
|
||||
SetParameter(kParam_H, kDefaultValue_ParamH );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_A:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamA;
|
||||
break;
|
||||
case kParam_B:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamB;
|
||||
break;
|
||||
case kParam_C:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamC;
|
||||
break;
|
||||
case kParam_D:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamD;
|
||||
break;
|
||||
case kParam_E:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamE;
|
||||
break;
|
||||
case kParam_F:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamF;
|
||||
break;
|
||||
case kParam_G:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamG;
|
||||
break;
|
||||
case kParam_H:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamH;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::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 TakeCare::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// TakeCare::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____TakeCareEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::TakeCareKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult TakeCare::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for(int x = 0; x < 32767+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;}
|
||||
for(int x = 0; x < 32767+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;}
|
||||
c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1;
|
||||
c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1;
|
||||
f3AL = f3BL = f3CL = 0.0;
|
||||
f3CR = f3FR = f3IR = 0.0;
|
||||
avg3L = avg3R = 0.0;
|
||||
|
||||
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
|
||||
bez[bez_cycle] = 1.0;
|
||||
|
||||
rotate = 0.0;
|
||||
oldfpd = 0.4294967295;
|
||||
|
||||
buf = 8192;
|
||||
vibDepth = 0.0;
|
||||
outA = 1.0;
|
||||
outB = 1.0;
|
||||
wetA = 1.0;
|
||||
wetB = 1.0;
|
||||
derezA = 0.5;
|
||||
derezB = 0.5;
|
||||
|
||||
lastSampleL = 0.0;
|
||||
wasPosClipL = false;
|
||||
wasNegClipL = false;
|
||||
lastSampleR = 0.0;
|
||||
wasPosClipR = false;
|
||||
wasNegClipR = false;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// TakeCare::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus TakeCare::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 overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
|
||||
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
|
||||
double vibSpeed = pow(GetParameter( kParam_A ),5.0) * 0.1;
|
||||
double vibRandom = pow(GetParameter( kParam_B ),3.0) * 0.99;
|
||||
double targetDepth = pow(GetParameter( kParam_C ),2.0) * 0.5;
|
||||
double reg3n = GetParameter( kParam_D )*0.0625;
|
||||
|
||||
derezA = derezB; derezB = GetParameter( kParam_E )*2.0;
|
||||
bool stepped = true; // Revised Bezier Undersampling
|
||||
if (derezB > 1.0) { // has full rez at center, stepped
|
||||
stepped = false; // to left, continuous to right
|
||||
derezB = 1.0-(derezB-1.0);
|
||||
} //if it's set up like that it's the revised algorithm
|
||||
derezB = fmin(fmax(derezB/overallscale,0.0005),1.0);
|
||||
int bezFraction = (int)(1.0/derezB);
|
||||
double bezTrim = (double)bezFraction/(bezFraction+1.0);
|
||||
if (stepped) { //this hard-locks derez to exact subdivisions of 1.0
|
||||
derezB = 1.0 / bezFraction;
|
||||
bezTrim = 1.0-(derezB*bezTrim);
|
||||
} else { //this makes it match the 1.0 case using stepped
|
||||
derezB /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
|
||||
bezTrim = 1.0-pow(derezB*0.5,1.0/(derezB*0.5));
|
||||
} //the revision more accurately connects the bezier curves
|
||||
|
||||
int targetBuf = (pow(GetParameter( kParam_F ),3.0)*32510.0)+256;
|
||||
outA = outB; outB = GetParameter( kParam_G );
|
||||
wetA = wetB; wetB = 1.0-pow(1.0-GetParameter( kParam_H ),2.0);
|
||||
|
||||
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 temp = (double)nSampleFrames/inFramesToProcess;
|
||||
double derez = (derezA*temp)+(derezB*(1.0-temp));
|
||||
double out = (outA*temp)+(outB*(1.0-temp));
|
||||
double wet = (wetA*temp)+(wetB*(1.0-temp));
|
||||
|
||||
bez[bez_cycle] += derez;
|
||||
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
|
||||
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
|
||||
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
|
||||
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
|
||||
if (stepped) bez[bez_cycle] = 0.0;
|
||||
else bez[bez_cycle] -= 1.0;
|
||||
|
||||
inputSampleL = (bez[bez_SampL]+bez[bez_AvgInSampL])*0.5;
|
||||
bez[bez_AvgInSampL] = bez[bez_SampL];
|
||||
inputSampleR = (bez[bez_SampR]+bez[bez_AvgInSampR])*0.5;
|
||||
bez[bez_AvgInSampR] = bez[bez_SampR];
|
||||
|
||||
rotate += (oldfpd*vibSpeed);
|
||||
if (rotate > (M_PI*2.0)) {
|
||||
rotate -= (M_PI*2.0);
|
||||
oldfpd = (1.0-vibRandom) + ((fpdL*0.000000000618)*vibRandom);
|
||||
}
|
||||
vibDepth = (vibDepth*0.99)+(targetDepth*0.01);
|
||||
if (buf < targetBuf) buf++;
|
||||
if (buf > targetBuf) buf--;
|
||||
|
||||
double mA = (sin(rotate)+1.0)*vibDepth*buf;
|
||||
double mB = (sin(rotate+(M_PI/9.0))+1.0)*vibDepth*buf;
|
||||
double mC = (sin(rotate+((M_PI/9.0)*2.0))+1.0)*vibDepth*buf;
|
||||
double mD = (sin(rotate+((M_PI/9.0)*3.0))+1.0)*vibDepth*buf;
|
||||
double mE = (sin(rotate+((M_PI/9.0)*4.0))+1.0)*vibDepth*buf;
|
||||
double mF = (sin(rotate+((M_PI/9.0)*5.0))+1.0)*vibDepth*buf;
|
||||
double mG = (sin(rotate+((M_PI/9.0)*6.0))+1.0)*vibDepth*buf;
|
||||
double mH = (sin(rotate+((M_PI/9.0)*7.0))+1.0)*vibDepth*buf;
|
||||
double mI = (sin(rotate+((M_PI/9.0)*8.0))+1.0)*vibDepth*buf;
|
||||
|
||||
inputSampleL = sin(fmin(fmax(inputSampleL*0.5,-M_PI_2),M_PI_2));
|
||||
inputSampleR = sin(fmin(fmax(inputSampleR*0.5,-M_PI_2),M_PI_2));
|
||||
|
||||
a3AL[c3AL] = inputSampleL + fmin(fmax(f3AL*reg3n,-M_PI),M_PI);
|
||||
a3BL[c3BL] = inputSampleL + fmin(fmax(f3BL*reg3n,-M_PI),M_PI);
|
||||
a3CL[c3CL] = inputSampleL + fmin(fmax(f3CL*reg3n,-M_PI),M_PI);
|
||||
|
||||
a3CR[c3CR] = inputSampleR + fmin(fmax(f3CR*reg3n,-M_PI),M_PI);
|
||||
a3FR[c3FR] = inputSampleR + fmin(fmax(f3FR*reg3n,-M_PI),M_PI);
|
||||
a3IR[c3IR] = inputSampleR + fmin(fmax(f3IR*reg3n,-M_PI),M_PI);
|
||||
|
||||
c3AL++; if (c3AL < 0 || c3AL > buf) c3AL = 0;
|
||||
c3BL++; if (c3BL < 0 || c3BL > buf) c3BL = 0;
|
||||
c3CL++; if (c3CL < 0 || c3CL > buf) c3CL = 0;
|
||||
c3CR++; if (c3CR < 0 || c3CR > buf) c3CR = 0;
|
||||
c3FR++; if (c3FR < 0 || c3FR > buf) c3FR = 0;
|
||||
c3IR++; if (c3IR < 0 || c3IR > buf) c3IR = 0;
|
||||
|
||||
double o3AL = a3AL[(int)(c3AL+mA-((c3AL+mA>buf)?buf+1:0))] *(1.0-(mA-floor(mA)));
|
||||
o3AL += (a3AL[(int)(c3AL+mA+1-((c3AL+mA+1>buf)?buf+1:0))] *((mA-floor(mA))));
|
||||
double o3BL = a3BL[(int)(c3BL+mB-((c3BL+mB>buf)?buf+1:0))] *(1.0-(mB-floor(mB)));
|
||||
o3BL += (a3BL[(int)(c3BL+mB+1-((c3BL+mB+1>buf)?buf+1:0))] *((mB-floor(mB))));
|
||||
double o3CL = a3CL[(int)(c3CL+mC-((c3CL+mC>buf)?buf+1:0))] *(1.0-(mC-floor(mC)));
|
||||
o3CL += (a3CL[(int)(c3CL+mC+1-((c3CL+mC+1>buf)?buf+1:0))] *((mC-floor(mC))));
|
||||
double o3CR = a3CR[(int)(c3CR+mC-((c3CR+mC>buf)?buf+1:0))] *(1.0-(mC-floor(mC)));
|
||||
o3CR += (a3CR[(int)(c3CR+mC+1-((c3CR+mC+1>buf)?buf+1:0))] *((mC-floor(mC))));
|
||||
double o3FR = a3FR[(int)(c3FR+mF-((c3FR+mF>buf)?buf+1:0))] *(1.0-(mF-floor(mF)));
|
||||
o3FR += (a3FR[(int)(c3FR+mF+1-((c3FR+mF+1>buf)?buf+1:0))] *((mF-floor(mF))));
|
||||
double o3IR = a3IR[(int)(c3IR+mI-((c3IR+mI>buf)?buf+1:0))] *(1.0-(mI-floor(mI)));
|
||||
o3IR += (a3IR[(int)(c3IR+mI+1-((c3IR+mI+1>buf)?buf+1:0))] *((mI-floor(mI))));
|
||||
|
||||
a3DL[c3DL] = (((o3BL + o3CL) * -2.0) + o3AL);
|
||||
a3EL[c3EL] = (((o3AL + o3CL) * -2.0) + o3BL);
|
||||
a3FL[c3FL] = (((o3AL + o3BL) * -2.0) + o3CL);
|
||||
a3BR[c3BR] = (((o3FR + o3IR) * -2.0) + o3CR);
|
||||
a3ER[c3ER] = (((o3CR + o3IR) * -2.0) + o3FR);
|
||||
a3HR[c3HR] = (((o3CR + o3FR) * -2.0) + o3IR);
|
||||
|
||||
c3DL++; if (c3DL < 0 || c3DL > buf) c3DL = 0;
|
||||
c3EL++; if (c3EL < 0 || c3EL > buf) c3EL = 0;
|
||||
c3FL++; if (c3FL < 0 || c3FL > buf) c3FL = 0;
|
||||
c3BR++; if (c3BR < 0 || c3BR > buf) c3BR = 0;
|
||||
c3ER++; if (c3ER < 0 || c3ER > buf) c3ER = 0;
|
||||
c3HR++; if (c3HR < 0 || c3HR > buf) c3HR = 0;
|
||||
|
||||
double o3DL = a3DL[(int)(c3DL+mD-((c3DL+mD>buf)?buf+1:0))] *(1.0-(mD-floor(mD)));
|
||||
o3DL += (a3DL[(int)(c3DL+mD+1-((c3DL+mD+1>buf)?buf+1:0))] *((mD-floor(mD))));
|
||||
double o3EL = a3EL[(int)(c3EL+mE-((c3EL+mE>buf)?buf+1:0))] *(1.0-(mE-floor(mE)));
|
||||
o3EL += (a3EL[(int)(c3EL+mE+1-((c3EL+mE+1>buf)?buf+1:0))] *((mE-floor(mE))));
|
||||
double o3FL = a3FL[(int)(c3FL+mF-((c3FL+mF>buf)?buf+1:0))] *(1.0-(mF-floor(mF)));
|
||||
o3FL += (a3FL[(int)(c3FL+mF+1-((c3FL+mF+1>buf)?buf+1:0))] *((mF-floor(mF))));
|
||||
double o3BR = a3BR[(int)(c3BR+mB-((c3BR+mB>buf)?buf+1:0))] *(1.0-(mB-floor(mB)));
|
||||
o3BR += (a3BR[(int)(c3BR+mB+1-((c3BR+mB+1>buf)?buf+1:0))] *((mB-floor(mB))));
|
||||
double o3ER = a3ER[(int)(c3ER+mE-((c3ER+mE>buf)?buf+1:0))] *(1.0-(mE-floor(mE)));
|
||||
o3ER += (a3ER[(int)(c3ER+mE+1-((c3ER+mE+1>buf)?buf+1:0))] *((mE-floor(mE))));
|
||||
double o3HR = a3HR[(int)(c3HR+mH-((c3HR+mH>buf)?buf+1:0))] *(1.0-(mH-floor(mH)));
|
||||
o3HR += (a3HR[(int)(c3HR+mH+1-((c3HR+mH+1>buf)?buf+1:0))] *((mH-floor(mH))));
|
||||
|
||||
a3GL[c3GL] = (((o3EL + o3FL) * -2.0) + o3DL);
|
||||
a3HL[c3HL] = (((o3DL + o3FL) * -2.0) + o3EL);
|
||||
a3IL[c3IL] = (((o3DL + o3EL) * -2.0) + o3FL);
|
||||
a3AR[c3AR] = (((o3ER + o3HR) * -2.0) + o3BR);
|
||||
a3DR[c3DR] = (((o3BR + o3HR) * -2.0) + o3ER);
|
||||
a3GR[c3GR] = (((o3BR + o3ER) * -2.0) + o3HR);
|
||||
|
||||
|
||||
c3GL++; if (c3GL < 0 || c3GL > buf) c3GL = 0;
|
||||
c3HL++; if (c3HL < 0 || c3HL > buf) c3HL = 0;
|
||||
c3IL++; if (c3IL < 0 || c3IL > buf) c3IL = 0;
|
||||
c3AR++; if (c3AR < 0 || c3AR > buf) c3AR = 0;
|
||||
c3DR++; if (c3DR < 0 || c3DR > buf) c3DR = 0;
|
||||
c3GR++; if (c3GR < 0 || c3GR > buf) c3GR = 0;
|
||||
|
||||
double o3GL = a3GL[(int)(c3GL+mG-((c3GL+mG>buf)?buf+1:0))] *(1.0-(mG-floor(mG)));
|
||||
o3GL += (a3GL[(int)(c3GL+mG+1-((c3GL+mG+1>buf)?buf+1:0))] *((mG-floor(mG))));
|
||||
double o3HL = a3HL[(int)(c3HL+mH-((c3HL+mH>buf)?buf+1:0))] *(1.0-(mH-floor(mH)));
|
||||
o3HL += (a3HL[(int)(c3HL+mH+1-((c3HL+mH+1>buf)?buf+1:0))] *((mH-floor(mH))));
|
||||
double o3IL = a3IL[(int)(c3IL+mI-((c3IL+mI>buf)?buf+1:0))] *(1.0-(mI-floor(mI)));
|
||||
o3IL += (a3IL[(int)(c3IL+mI+1-((c3IL+mI+1>buf)?buf+1:0))] *((mI-floor(mI))));
|
||||
double o3AR = a3AR[(int)(c3AR+mA-((c3AR+mA>buf)?buf+1:0))] *(1.0-(mA-floor(mA)));
|
||||
o3AR += (a3AR[(int)(c3AR+mA+1-((c3AR+mA+1>buf)?buf+1:0))] *((mA-floor(mA))));
|
||||
double o3DR = a3DR[(int)(c3DR+mD-((c3DR+mD>buf)?buf+1:0))] *(1.0-(mD-floor(mD)));
|
||||
o3DR += (a3DR[(int)(c3DR+mD+1-((c3DR+mD+1>buf)?buf+1:0))] *((mD-floor(mD))));
|
||||
double o3GR = a3GR[(int)(c3GR+mG-((c3GR+mG>buf)?buf+1:0))] *(1.0-(mG-floor(mG)));
|
||||
o3GR += (a3GR[(int)(c3GR+mG+1-((c3GR+mG+1>buf)?buf+1:0))] *((mG-floor(mG))));
|
||||
|
||||
f3AL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
f3BL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
f3CL = (((o3GR + o3HR) * -2.0) + o3IR);
|
||||
|
||||
f3CR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
f3FR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
f3IR = (((o3AL + o3DL) * -2.0) + o3GL);
|
||||
|
||||
double inputSampleL = (o3GL + o3HL + o3IL)*0.03125;
|
||||
double inputSampleR = (o3AR + o3DR + o3GR)*0.03125;
|
||||
|
||||
f3AL = (f3AL+f3AL+f3AL+fabs(avg3L))*0.25; avg3L = f3AL;
|
||||
f3CR = (f3CR+f3CR+f3CR+fabs(avg3R))*0.25; avg3R = f3CR;
|
||||
//manipulating deep reverb tail for realism
|
||||
|
||||
//begin ClipOnly stereo as a little, compressed chunk that can be dropped into undersampled code
|
||||
inputSampleL = fmin(fmax(inputSampleL,-4.0),4.0);
|
||||
if (wasPosClipL == true) { //current will be over
|
||||
if (inputSampleL<lastSampleL) lastSampleL=0.79+(inputSampleL*0.2);
|
||||
else lastSampleL = 0.2+(lastSampleL*0.79);
|
||||
} wasPosClipL = false;
|
||||
if (inputSampleL>0.99) {wasPosClipL=true;inputSampleL=0.79+(lastSampleL*0.2);}
|
||||
if (wasNegClipL == true) { //current will be -over
|
||||
if (inputSampleL > lastSampleL) lastSampleL=-0.79+(inputSampleL*0.2);
|
||||
else lastSampleL=-0.2+(lastSampleL*0.79);
|
||||
} wasNegClipL = false;
|
||||
if (inputSampleL<-0.99) {wasNegClipL=true;inputSampleL=-0.79+(lastSampleL*0.2);}
|
||||
lastSampleL = inputSampleL;
|
||||
inputSampleR = fmin(fmax(inputSampleR,-4.0),4.0);
|
||||
if (wasPosClipR == true) { //current will be over
|
||||
if (inputSampleR<lastSampleR) lastSampleR=0.79+(inputSampleR*0.2);
|
||||
else lastSampleR = 0.2+(lastSampleR*0.79);
|
||||
} wasPosClipR = false;
|
||||
if (inputSampleR>0.99) {wasPosClipR=true;inputSampleR=0.79+(lastSampleR*0.2);}
|
||||
if (wasNegClipR == true) { //current will be -over
|
||||
if (inputSampleR > lastSampleR) lastSampleR=-0.79+(inputSampleR*0.2);
|
||||
else lastSampleR=-0.2+(lastSampleR*0.79);
|
||||
} wasNegClipR = false;
|
||||
if (inputSampleR<-0.99) {wasNegClipR=true;inputSampleR=-0.79+(lastSampleR*0.2);}
|
||||
lastSampleR = inputSampleR;
|
||||
//end ClipOnly stereo as a little, compressed chunk that can be dropped into undersampled code
|
||||
|
||||
inputSampleL = asin(inputSampleL*0.7);
|
||||
inputSampleR = asin(inputSampleR*0.7);
|
||||
|
||||
bez[bez_CL] = bez[bez_BL];
|
||||
bez[bez_BL] = bez[bez_AL];
|
||||
bez[bez_AL] = inputSampleL;
|
||||
bez[bez_SampL] = 0.0;
|
||||
|
||||
bez[bez_CR] = bez[bez_BR];
|
||||
bez[bez_BR] = bez[bez_AR];
|
||||
bez[bez_AR] = inputSampleR;
|
||||
bez[bez_SampR] = 0.0;
|
||||
}
|
||||
|
||||
double X = bez[bez_cycle] * bezTrim;
|
||||
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
|
||||
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
|
||||
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
|
||||
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
|
||||
double CBAL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*-0.25;
|
||||
double CBAR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*-0.25;
|
||||
inputSampleL = CBAL+bez[bez_AvgOutSampL]; bez[bez_AvgOutSampL] = CBAL;
|
||||
inputSampleR = CBAR+bez[bez_AvgOutSampR]; bez[bez_AvgOutSampR] = CBAR;
|
||||
|
||||
if (out != 1.0) {
|
||||
inputSampleL *= out;
|
||||
inputSampleR *= out;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue