This commit is contained in:
Christopher Johnson 2025-03-16 15:17:19 -04:00
parent 1454b579c8
commit c20b43dd12
84 changed files with 19840 additions and 1 deletions

View file

@ -47,7 +47,7 @@ Tape: ToTape8, ToTape7, ToTape6, FromTape, Tape, IronOxideClassic2, IronOxide5,
Tone Color: BussColors4, Channel9, Apicolypse, Neverland, Elation, Calibre, Cider, Crystal, Precious, Luxor, Channel8, Channel7, Channel6, Channel5, Channel4 Tone Color: BussColors4, Channel9, Apicolypse, Neverland, Elation, Calibre, Cider, Crystal, Precious, Luxor, Channel8, Channel7, Channel6, Channel5, Channel4
Utility: CansAW, Cans, Monitoring3, Monitoring2, Monitoring, BitShiftPan, BitShiftGain, PurestGain, PurestFade, EveryTrim, HermeTrim, SlewOnly, SubsOnly, PeaksOnly, Golem, DCVoltage, LRConvolve2, LRConvolve, EdIsDim, MidSide, uLawEncode, uLawDecode, RightoMono, LeftoMono, Balanced, Flipity, MoNoam, VoiceTrick, ContentHideD Utility: DubPlate, CansAW, Cans, Monitoring3, Monitoring2, Monitoring, BitShiftPan, BitShiftGain, PurestGain, PurestFade, EveryTrim, HermeTrim, SlewOnly, SubsOnly, PeaksOnly, Golem, DCVoltage, LRConvolve2, LRConvolve, EdIsDim, MidSide, uLawEncode, uLawDecode, RightoMono, LeftoMono, Balanced, Flipity, MoNoam, VoiceTrick, ContentHideD
XYZ Filters: ZBandpass2, ZHighpass2, ZLowpass2, ZNotch2, ZRegion2, ZBandpass, ZHighpass, ZLowpass, ZNotch, ZRegion, YBandpass, YNotBandpass, YHighpass, YNotHighpass, YLowpass, YNotLowpass, YNotch, YNotNotch, XBandpass. XHighpass, XLowpass, XNotch, XRegion XYZ Filters: ZBandpass2, ZHighpass2, ZLowpass2, ZNotch2, ZRegion2, ZBandpass, ZHighpass, ZLowpass, ZNotch, ZRegion, YBandpass, YNotBandpass, YHighpass, YNotHighpass, YLowpass, YNotLowpass, YNotch, YNotNotch, XBandpass. XHighpass, XLowpass, XNotch, XRegion
@ -1991,6 +1991,30 @@ It starts with Dubly3, and once I've got ToTape8 done, you'll have everything To
Next, a ToTape8, but in weeks rather than another couple years. And then… more work on ConsoleX :) Next, a ToTape8, but in weeks rather than another couple years. And then… more work on ConsoleX :)
############ DubPlate is like a busy mastering house for electronic music.
It's possible you need this to make your music sound its best. I've used this literal plugin to put out a record! Just now, on something that I'd tried to get right for years!
It's also possible this is a retro-themed blast from the past with no use in a modern world of downloadable hyperaudio and that you'll immediately know it's trash not to be taken seriously.
Let's explain. A dub plate is like a vinyl record except it's cut from acetate, which wears out quicker. These are traditionally known as 'masters' and electroplated to make vinyl-stamping machinery, but you can also play them on a record player directly. The UK electronic music scene went through a phase where dubplates were extremely popular, with mastering houses booked solid and people waiting in lines to get their dubplates made from their DAT tapes. The experience of going to clubs and listening and dancing to this music was a golden age all its own, separate from the golden age of rock or metal or prog, etc. And there's a distinct dubplate sound that can be exploited, one that's wildly different from what you typically get out of DAWs or stuff like lofi hip-hop, even though people like to bring in lofi elements to resist the 'DAW sound'.
What's this dubplate sound made of? There's an unexpected reason beyond just the lacquer material. Airwindows DubPlate makes NO effort to mimic surface noise, or groove wear, or any of that. Instead, it acts like a mastering chain that's so bulletproof it can resist any terrible audio thrown at it. There's three ways it does this and gets the dubplate sound (it was dialed in using Airwindows Meter to track what's actually happening sonically)
First, you can't just throw any synthetic noise at a vinyl record and have it play. You can even break a lathe if you throw too much high frequency energy at it. So, DubPlate uses the 'glue' control in Mastering… except it uses an intensity Mastering can't even reach, and it uses two of them each set differently, just to get to what was coming off the dubplate example I had as a real life reference.
Second, the side channel is highpassed very aggressively! Dub plate houses had to handle anything that came in the door no matter how insane it was, and there was no time to fiddle with a troublesome DAT tape. If the guy had thrown in a full volume 808 kick distorted and out of phase, well, the mastering house had to turn it into a dubplate that played, and so the side channel doesn't let any bass in. (There's a special technique that might warrant more exploration, which I included to help things stay punchy even when filtering that aggressively).
Lastly, even the mid channel isn't safe! Making competitive dub plates, you couldn't let people swamp their audio with subsonic rumble no matter what they made their synths do. The gear of the time was already capable of getting you into trouble and burying everything in useless energy-sapping sub-bass, and musicians could be expected to get this wrong as easily as they could get it right. (Monitoring contains a zero cross section and a reference 40dB line that can show you whether your bass is unproductive in a live setting.) Plus, simply running into the analog amps and lathes of the day, the mastering chain, could drastically alter the subs. And so, Dubplate goes after extreme digital lows as well, reining things in until you could cut the output of the plugin to a lacquer and be pretty safe from trouble no matter what audio you put in. This one also uses the technique for having the force of the bass stick around while being reined in.
And that's the secret. If you have a fantastic playback system, killer subs, and years of mixing experience, then maybe you can get creative and come out with something that will be awesome, and then tweak it with Mastering and Meter, and you get to explore the farthest realms of audio creativity without setting a foot wrong.
If on the other hand your reach exceeds your grasp, you can put together creative exciting stuff that also happens to be real obnoxious on multiple levels. You're distorting too much, and you didn't notice that you went over-bright, and a bunch of things in your bass are freaking out, and it's too complicated and to make it safe takes away the heart of your creative decisions.
So, go into DubPlate… pad your stuff down with PurestGain if you have to, the output might peak louder even if it is pulling the subs back… and let the uncaring mastering chain strip down your sound into the gutsy heart of its intention. If it's hyperpop you wanted, maybe you check out right there. But if you're looking for size and depth and power and the sound of the dubplate era calls to you… maybe this brings your music the rest of the way there.
Hope you like it! I put out a record (Dragons Dub Plate Edition) specifically because I had music literally from that era made using those methods, and the plugin instantly turned it into the experience it was always meant to be. That record's at the usual bandcamp price but DubPlate is open source and free! See if it helps you out :)
############ DubSub is a fully featured bass doctor. ############ DubSub is a fully featured bass doctor.
Be careful what you wish for. I like making plugins with very few controls, but when you have to use ALL the controls… Be careful what you wish for. I like making plugins with very few controls, but when you have to use ALL the controls…

View file

@ -31,6 +31,7 @@ add_airwindows_plugin(Baxandall)
add_airwindows_plugin(Baxandall2) add_airwindows_plugin(Baxandall2)
add_airwindows_plugin(Beam) add_airwindows_plugin(Beam)
add_airwindows_plugin(BezEQ) add_airwindows_plugin(BezEQ)
add_airwindows_plugin(BeziComp)
add_airwindows_plugin(BigAmp) add_airwindows_plugin(BigAmp)
add_airwindows_plugin(Biquad) add_airwindows_plugin(Biquad)
add_airwindows_plugin(Biquad2) add_airwindows_plugin(Biquad2)
@ -161,6 +162,7 @@ add_airwindows_plugin(DubCenter)
add_airwindows_plugin(Dubly) add_airwindows_plugin(Dubly)
add_airwindows_plugin(Dubly2) add_airwindows_plugin(Dubly2)
add_airwindows_plugin(Dubly3) add_airwindows_plugin(Dubly3)
add_airwindows_plugin(DubPlate)
add_airwindows_plugin(DubSub) add_airwindows_plugin(DubSub)
add_airwindows_plugin(DubSub2) add_airwindows_plugin(DubSub2)
add_airwindows_plugin(DustBunny) add_airwindows_plugin(DustBunny)
@ -258,6 +260,7 @@ add_airwindows_plugin(Luxor)
add_airwindows_plugin(MackEQ) add_airwindows_plugin(MackEQ)
add_airwindows_plugin(Mackity) add_airwindows_plugin(Mackity)
add_airwindows_plugin(Mastering) add_airwindows_plugin(Mastering)
add_airwindows_plugin(Mastering2)
add_airwindows_plugin(MatrixVerb) add_airwindows_plugin(MatrixVerb)
add_airwindows_plugin(Melt) add_airwindows_plugin(Melt)
add_airwindows_plugin(MidAmp) add_airwindows_plugin(MidAmp)
@ -351,6 +354,7 @@ add_airwindows_plugin(Slew3)
add_airwindows_plugin(SlewOnly) add_airwindows_plugin(SlewOnly)
add_airwindows_plugin(SlewSonic) add_airwindows_plugin(SlewSonic)
add_airwindows_plugin(Smooth) add_airwindows_plugin(Smooth)
add_airwindows_plugin(SoftClock)
add_airwindows_plugin(SoftGate) add_airwindows_plugin(SoftGate)
add_airwindows_plugin(SpatializeDither) add_airwindows_plugin(SpatializeDither)
add_airwindows_plugin(Spiral) add_airwindows_plugin(Spiral)

View file

@ -0,0 +1,91 @@
/* ========================================
* DubPlate - DubPlate.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#include "DubPlate.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new DubPlate(audioMaster);}
DubPlate::DubPlate(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
iirA = 0.0;
iirB = 0.0;
iirC = 0.0;
iirD = 0.0;
fpFlip = true;
lastSinewAL = 0.0;
lastSinewAR = 0.0;
lastSinewBL = 0.0;
lastSinewBR = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
DubPlate::~DubPlate() {}
VstInt32 DubPlate::getVendorVersion () {return 1000;}
void DubPlate::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void DubPlate::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!
VstInt32 DubPlate::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 DubPlate::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
return 0;
}
void DubPlate::setParameter(VstInt32 index, float value) {
}
float DubPlate::getParameter(VstInt32 index) {
return 0.0; //we only need to update the relevant name, this is simple to manage
}
void DubPlate::getParameterName(VstInt32 index, char *text) {
}
void DubPlate::getParameterDisplay(VstInt32 index, char *text) {
}
void DubPlate::getParameterLabel(VstInt32 index, char *text) {
}
VstInt32 DubPlate::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool DubPlate::getEffectName(char* name) {
vst_strncpy(name, "DubPlate", kVstMaxProductStrLen); return true;
}
VstPlugCategory DubPlate::getPlugCategory() {return kPlugCategEffect;}
bool DubPlate::getProductString(char* text) {
vst_strncpy (text, "airwindows DubPlate", kVstMaxProductStrLen); return true;
}
bool DubPlate::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,69 @@
/* ========================================
* DubPlate - DubPlate.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#define __DubPlate_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kNumParameters = 0
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'dplt'; //Change this to what the AU identity is!
class DubPlate :
public AudioEffectX
{
public:
DubPlate(audioMasterCallback audioMaster);
~DubPlate();
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;
double iirA;
double iirB; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one
double iirC; //we introduce the second pole at the same frequency, to become a pseudo-Capacitor behavior
double iirD; //then there's a Mid highpass.
bool fpFlip;
double lastSinewAL;
double lastSinewAR;
double lastSinewBL;
double lastSinewBR;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,196 @@
/* ========================================
* DubPlate - DubPlate.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#include "DubPlate.h"
#endif
void DubPlate::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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 DubPlate::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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++;
}
}

View file

@ -0,0 +1,282 @@
/*
* File: DubPlate.cpp
*
* Version: 1.0
*
* Created: 2/25/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.
*
*/
/*=============================================================================
DubPlate.cpp
=============================================================================*/
#include "DubPlate.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(DubPlate)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::DubPlate
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DubPlate::DubPlate(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::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 DubPlate::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// DubPlate::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____DubPlateEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::DubPlateKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
iirA = 0.0;
iirB = 0.0;
iirC = 0.0;
iirD = 0.0;
fpFlip = true;
lastSinewAL = 0.0;
lastSinewAR = 0.0;
lastSinewBL = 0.0;
lastSinewBR = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus DubPlate::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 rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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;
}

View file

@ -0,0 +1 @@
_DubPlateEntry

122
plugins/MacAU/DubPlate/DubPlate.h Executable file
View file

@ -0,0 +1,122 @@
/*
* File: DubPlate.h
*
* Version: 1.0
*
* Created: 2/25/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 "DubPlateVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __DubPlate_h__
#define __DubPlate_h__
#pragma mark ____DubPlate Parameters
// parameters
enum {
kNumberOfParameters=0
};
#pragma mark ____DubPlate
class DubPlate : public AUEffectBase
{
public:
DubPlate(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~DubPlate () { 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 kDubPlateVersion; }
private:
double iirA;
double iirB; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one
double iirC; //we introduce the second pole at the same frequency, to become a pseudo-Capacitor behavior
double iirD; //then there's a Mid highpass.
bool fpFlip;
double lastSinewAL;
double lastSinewAR;
double lastSinewBL;
double lastSinewBR;
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: DubPlate.r
*
* Version: 1.0
*
* Created: 2/25/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 "DubPlateVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_DubPlate 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DubPlate~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_DubPlate
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE DubPlate_COMP_SUBTYPE
#define COMP_MANUF DubPlate_COMP_MANF
#define VERSION kDubPlateVersion
#define NAME "Airwindows: DubPlate"
#define DESCRIPTION "DubPlate AU"
#define ENTRY_POINT "DubPlateEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* DubPlate */;
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 = 763472080;
PBXWorkspaceStateSaveDate = 763472080;
};
perUserProjectItems = {
8B776D112D809E17003A7177 /* PBXTextBookmark */ = 8B776D112D809E17003A7177 /* PBXTextBookmark */;
8B776E112D81B28A003A7177 /* PBXTextBookmark */ = 8B776E112D81B28A003A7177 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B776D112D809E17003A7177 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* DubPlate.cpp */;
name = "DubPlate.cpp: 262";
rLen = 0;
rLoc = 10756;
rType = 0;
vrLen = 50;
vrLoc = 11421;
};
8B776E112D81B28A003A7177 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* DubPlate.cpp */;
name = "DubPlate.cpp: 260";
rLen = 0;
rLoc = 10756;
rType = 0;
vrLen = 35;
vrLoc = 11414;
};
8BA05A660720730100365D66 /* DubPlate.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {831, 5346}}";
sepNavSelRange = "{10756, 0}";
sepNavVisRange = "{11414, 35}";
sepNavWindowFrame = "{{518, 59}, {917, 818}}";
};
};
8BA05A690720730100365D66 /* DubPlateVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2899, 0}";
sepNavVisRange = "{966, 1996}";
sepNavWindowFrame = "{{683, 51}, {1029, 814}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* DubPlate.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 2196}}";
sepNavSelRange = "{4859, 0}";
sepNavVisRange = "{0, 2599}";
sepNavWindowFrame = "{{658, 64}, {1029, 814}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* DubPlate */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View 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 /* DubPlate.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* DubPlate.r */; };
8BA05A6B0720730100365D66 /* DubPlate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* DubPlate.cpp */; };
8BA05A6E0720730100365D66 /* DubPlateVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* DubPlateVersion.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 /* DubPlate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* DubPlate.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 /* DubPlate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DubPlate.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* DubPlate.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = DubPlate.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* DubPlate.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = DubPlate.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* DubPlateVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DubPlateVersion.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 /* DubPlate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DubPlate.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* DubPlate.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DubPlate.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 /* DubPlate */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = DubPlate;
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 /* DubPlate.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* DubPlate.h */,
8BA05A660720730100365D66 /* DubPlate.cpp */,
8BA05A670720730100365D66 /* DubPlate.exp */,
8BA05A680720730100365D66 /* DubPlate.r */,
8BA05A690720730100365D66 /* DubPlateVersion.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 /* DubPlateVersion.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 /* DubPlate.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 /* DubPlate */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "DubPlate" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = DubPlate;
productInstallPath = "$(HOME)/Library/Bundles";
productName = DubPlate;
productReference = 8D01CCD20486CAD60068D4B7 /* DubPlate.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 "DubPlate" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* DubPlate */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* DubPlate */,
);
};
/* 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 /* DubPlate.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* DubPlate.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 = DubPlate.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 = DubPlate;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = DubPlate.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 = DubPlate;
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 "DubPlate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "DubPlate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA248089833B7007656EC /* Debug */,
3E4BA249089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

@ -0,0 +1,58 @@
/*
* File: DubPlateVersion.h
*
* Version: 1.0
*
* Created: 2/25/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 __DubPlateVersion_h__
#define __DubPlateVersion_h__
#ifdef DEBUG
#define kDubPlateVersion 0xFFFFFFFF
#else
#define kDubPlateVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define DubPlate_COMP_MANF 'Dthr'
#define DubPlate_COMP_SUBTYPE 'dplt'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

Binary file not shown.

View 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>

View file

@ -0,0 +1,5 @@
//
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
//
#include <CoreServices/CoreServices.h>

View 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>

View file

@ -0,0 +1,282 @@
/*
* File: DubPlate.cpp
*
* Version: 1.0
*
* Created: 2/25/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.
*
*/
/*=============================================================================
DubPlate.cpp
=============================================================================*/
#include "DubPlate.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, DubPlate)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::DubPlate
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DubPlate::DubPlate(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::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 DubPlate::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// DubPlate::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____DubPlateEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::DubPlateKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult DubPlate::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
iirA = 0.0;
iirB = 0.0;
iirC = 0.0;
iirD = 0.0;
fpFlip = true;
lastSinewAL = 0.0;
lastSinewAR = 0.0;
lastSinewBL = 0.0;
lastSinewBR = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// DubPlate::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus DubPlate::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 rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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;
}

View file

@ -0,0 +1,2 @@
_DubPlateEntry
_DubPlateFactory

View file

@ -0,0 +1,122 @@
/*
* File: DubPlate.h
*
* Version: 1.0
*
* Created: 2/25/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 "DubPlateVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __DubPlate_h__
#define __DubPlate_h__
#pragma mark ____DubPlate Parameters
// parameters
enum {
kNumberOfParameters=0
};
#pragma mark ____DubPlate
class DubPlate : public AUEffectBase
{
public:
DubPlate(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~DubPlate () { 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 kDubPlateVersion; }
private:
double iirA;
double iirB; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one
double iirC; //we introduce the second pole at the same frequency, to become a pseudo-Capacitor behavior
double iirD; //then there's a Mid highpass.
bool fpFlip;
double lastSinewAL;
double lastSinewAR;
double lastSinewBL;
double lastSinewBR;
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: DubPlate.r
*
* Version: 1.0
*
* Created: 2/25/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 "DubPlateVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_DubPlate 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DubPlate~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_DubPlate
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE DubPlate_COMP_SUBTYPE
#define COMP_MANUF DubPlate_COMP_MANF
#define VERSION kDubPlateVersion
#define NAME "Airwindows: DubPlate"
#define DESCRIPTION "DubPlate AU"
#define ENTRY_POINT "DubPlateEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* DubPlate */;
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 = 763472080;
PBXWorkspaceStateSaveDate = 763472080;
};
perUserProjectItems = {
8B776D112D809E17003A7177 /* PBXTextBookmark */ = 8B776D112D809E17003A7177 /* PBXTextBookmark */;
8B776E112D81B28A003A7177 /* PBXTextBookmark */ = 8B776E112D81B28A003A7177 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B776D112D809E17003A7177 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* DubPlate.cpp */;
name = "DubPlate.cpp: 262";
rLen = 0;
rLoc = 10756;
rType = 0;
vrLen = 50;
vrLoc = 11421;
};
8B776E112D81B28A003A7177 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* DubPlate.cpp */;
name = "DubPlate.cpp: 260";
rLen = 0;
rLoc = 10756;
rType = 0;
vrLen = 35;
vrLoc = 11414;
};
8BA05A660720730100365D66 /* DubPlate.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {831, 5346}}";
sepNavSelRange = "{10756, 0}";
sepNavVisRange = "{11414, 35}";
sepNavWindowFrame = "{{518, 59}, {917, 818}}";
};
};
8BA05A690720730100365D66 /* DubPlateVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2899, 0}";
sepNavVisRange = "{966, 1996}";
sepNavWindowFrame = "{{683, 51}, {1029, 814}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* DubPlate.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 2196}}";
sepNavSelRange = "{4859, 0}";
sepNavVisRange = "{0, 2599}";
sepNavWindowFrame = "{{658, 64}, {1029, 814}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* DubPlate */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,965 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
8BA05A6B0720730100365D66 /* DubPlate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* DubPlate.cpp */; };
8BA05A6E0720730100365D66 /* DubPlateVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* DubPlateVersion.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 */; };
8BA93DA62D84E15200F236A3 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D1E2D84E15200F236A3 /* CAExtAudioFile.h */; };
8BA93DA72D84E15200F236A3 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D1F2D84E15200F236A3 /* CACFMachPort.h */; };
8BA93DA82D84E15200F236A3 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D202D84E15200F236A3 /* CABool.h */; };
8BA93DA92D84E15200F236A3 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D212D84E15200F236A3 /* CAComponent.cpp */; };
8BA93DAA2D84E15200F236A3 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D222D84E15200F236A3 /* CADebugger.h */; };
8BA93DAB2D84E15200F236A3 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D232D84E15200F236A3 /* CACFNumber.cpp */; };
8BA93DAC2D84E15200F236A3 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D242D84E15200F236A3 /* CAGuard.h */; };
8BA93DAD2D84E15200F236A3 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D252D84E15200F236A3 /* CAAtomic.h */; };
8BA93DAE2D84E15200F236A3 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D262D84E15200F236A3 /* CAStreamBasicDescription.h */; };
8BA93DAF2D84E15200F236A3 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D272D84E15200F236A3 /* CACFObject.h */; };
8BA93DB02D84E15200F236A3 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D282D84E15200F236A3 /* CAStreamRangedDescription.h */; };
8BA93DB12D84E15200F236A3 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D292D84E15200F236A3 /* CATokenMap.h */; };
8BA93DB22D84E15200F236A3 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D2A2D84E15200F236A3 /* CAComponent.h */; };
8BA93DB32D84E15200F236A3 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D2B2D84E15200F236A3 /* CAAudioBufferList.h */; };
8BA93DB42D84E15200F236A3 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D2C2D84E15200F236A3 /* CAAudioUnit.h */; };
8BA93DB52D84E15200F236A3 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D2D2D84E15200F236A3 /* CAAUParameter.h */; };
8BA93DB62D84E15200F236A3 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D2E2D84E15200F236A3 /* CAException.h */; };
8BA93DB72D84E15200F236A3 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D2F2D84E15200F236A3 /* CAAUProcessor.cpp */; };
8BA93DB82D84E15200F236A3 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D302D84E15200F236A3 /* CAAUProcessor.h */; };
8BA93DB92D84E15200F236A3 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D312D84E15200F236A3 /* CAProcess.h */; };
8BA93DBA2D84E15200F236A3 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D322D84E15200F236A3 /* CACFDictionary.h */; };
8BA93DBB2D84E15200F236A3 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D332D84E15200F236A3 /* CAPThread.h */; };
8BA93DBC2D84E15200F236A3 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D342D84E15200F236A3 /* CAAUParameter.cpp */; };
8BA93DBD2D84E15200F236A3 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D352D84E15200F236A3 /* CAAudioTimeStamp.h */; };
8BA93DBE2D84E15200F236A3 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D362D84E15200F236A3 /* CAFilePathUtils.cpp */; };
8BA93DBF2D84E15200F236A3 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D372D84E15200F236A3 /* CAAudioValueRange.h */; };
8BA93DC02D84E15200F236A3 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D382D84E15200F236A3 /* CAVectorUnitTypes.h */; };
8BA93DC12D84E15200F236A3 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D392D84E15200F236A3 /* CAAudioChannelLayoutObject.cpp */; };
8BA93DC22D84E15200F236A3 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D3A2D84E15200F236A3 /* CAGuard.cpp */; };
8BA93DC32D84E15200F236A3 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D3B2D84E15200F236A3 /* CACFNumber.h */; };
8BA93DC42D84E15200F236A3 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D3C2D84E15200F236A3 /* CACFDistributedNotification.cpp */; };
8BA93DC52D84E15200F236A3 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D3D2D84E15200F236A3 /* CACFString.h */; };
8BA93DC62D84E15200F236A3 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D3E2D84E15200F236A3 /* CAAUMIDIMapManager.cpp */; };
8BA93DC72D84E15200F236A3 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D3F2D84E15200F236A3 /* CAComponentDescription.cpp */; };
8BA93DC82D84E15200F236A3 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D402D84E15200F236A3 /* CAHostTimeBase.h */; };
8BA93DC92D84E15200F236A3 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D412D84E15200F236A3 /* CADebugMacros.cpp */; };
8BA93DCA2D84E15200F236A3 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D422D84E15200F236A3 /* CAAudioFileFormats.h */; };
8BA93DCB2D84E15200F236A3 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D432D84E15200F236A3 /* CAAUMIDIMapManager.h */; };
8BA93DCC2D84E15200F236A3 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D442D84E15200F236A3 /* CACFDictionary.cpp */; };
8BA93DCD2D84E15200F236A3 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D452D84E15200F236A3 /* CAMutex.h */; };
8BA93DCE2D84E15200F236A3 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D462D84E15200F236A3 /* CACFString.cpp */; };
8BA93DCF2D84E15200F236A3 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D472D84E15200F236A3 /* CASettingsStorage.h */; };
8BA93DD02D84E15200F236A3 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D482D84E15200F236A3 /* CADebugPrintf.h */; };
8BA93DD12D84E15200F236A3 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D492D84E15200F236A3 /* CAXException.cpp */; };
8BA93DD22D84E15200F236A3 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D4A2D84E15200F236A3 /* CAAUMIDIMap.h */; };
8BA93DD32D84E15200F236A3 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D4B2D84E15200F236A3 /* AUParamInfo.h */; };
8BA93DD42D84E15200F236A3 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D4C2D84E15200F236A3 /* CABitOperations.h */; };
8BA93DD52D84E15200F236A3 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D4D2D84E15200F236A3 /* CACFPreferences.cpp */; };
8BA93DD62D84E15200F236A3 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D4E2D84E15200F236A3 /* CABundleLocker.h */; };
8BA93DD72D84E15200F236A3 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D4F2D84E15200F236A3 /* CAPropertyAddress.h */; };
8BA93DD82D84E15200F236A3 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D502D84E15200F236A3 /* CAXException.h */; };
8BA93DD92D84E15200F236A3 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D512D84E15200F236A3 /* CAAudioChannelLayout.cpp */; };
8BA93DDA2D84E15200F236A3 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D522D84E15200F236A3 /* CAThreadSafeList.h */; };
8BA93DDB2D84E15200F236A3 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D532D84E15200F236A3 /* CAAudioUnitOutputCapturer.h */; };
8BA93DDC2D84E15200F236A3 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D542D84E15200F236A3 /* AUParamInfo.cpp */; };
8BA93DDD2D84E15200F236A3 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D552D84E15200F236A3 /* CASharedLibrary.cpp */; };
8BA93DDE2D84E15200F236A3 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D562D84E15200F236A3 /* CAAUMIDIMap.cpp */; };
8BA93DDF2D84E15200F236A3 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D572D84E15200F236A3 /* CALogMacros.h */; };
8BA93DE02D84E15200F236A3 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D582D84E15200F236A3 /* CACFMessagePort.cpp */; };
8BA93DE12D84E15200F236A3 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D592D84E15200F236A3 /* CARingBuffer.h */; };
8BA93DE22D84E15200F236A3 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D5A2D84E15200F236A3 /* AUOutputBL.cpp */; };
8BA93DE32D84E15200F236A3 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D5B2D84E15200F236A3 /* CABufferList.h */; };
8BA93DE42D84E15200F236A3 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D5C2D84E15200F236A3 /* CASharedLibrary.h */; };
8BA93DE52D84E15200F236A3 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D5D2D84E15200F236A3 /* CACFData.h */; };
8BA93DE62D84E15200F236A3 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D5E2D84E15200F236A3 /* CAStreamRangedDescription.cpp */; };
8BA93DE72D84E15200F236A3 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D5F2D84E15200F236A3 /* CAPThread.cpp */; };
8BA93DE82D84E15200F236A3 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D602D84E15200F236A3 /* CAAutoDisposer.h */; };
8BA93DE92D84E15200F236A3 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D612D84E15200F236A3 /* CACFPreferences.h */; };
8BA93DEA2D84E15200F236A3 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D622D84E15200F236A3 /* CAVectorUnit.cpp */; };
8BA93DEB2D84E15200F236A3 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D632D84E15200F236A3 /* CAComponentDescription.h */; };
8BA93DEC2D84E15200F236A3 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D642D84E15200F236A3 /* CADebugMacros.h */; };
8BA93DED2D84E15200F236A3 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D652D84E15200F236A3 /* AUOutputBL.h */; };
8BA93DEE2D84E15200F236A3 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D662D84E15200F236A3 /* CADebugPrintf.cpp */; };
8BA93DEF2D84E15200F236A3 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D672D84E15200F236A3 /* CARingBuffer.cpp */; };
8BA93DF02D84E15200F236A3 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D682D84E15200F236A3 /* CACFPlugIn.h */; };
8BA93DF12D84E15200F236A3 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D692D84E15200F236A3 /* CASettingsStorage.cpp */; };
8BA93DF22D84E15200F236A3 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D6A2D84E15200F236A3 /* CAMixMap.h */; };
8BA93DF32D84E15200F236A3 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D6B2D84E15200F236A3 /* CACFDistributedNotification.h */; };
8BA93DF42D84E15200F236A3 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D6C2D84E15200F236A3 /* CAFilePathUtils.h */; };
8BA93DF52D84E15200F236A3 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D6D2D84E15200F236A3 /* CATink.h */; };
8BA93DF62D84E15200F236A3 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D6E2D84E15200F236A3 /* CAStreamBasicDescription.cpp */; };
8BA93DF72D84E15200F236A3 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D6F2D84E15200F236A3 /* CAAudioChannelLayout.h */; };
8BA93DF82D84E15200F236A3 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D702D84E15200F236A3 /* CAProcess.cpp */; };
8BA93DF92D84E15200F236A3 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D712D84E15200F236A3 /* CAHostTimeBase.cpp */; };
8BA93DFA2D84E15200F236A3 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D722D84E15200F236A3 /* CAPersistence.cpp */; };
8BA93DFB2D84E15200F236A3 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D732D84E15200F236A3 /* CAAudioBufferList.cpp */; };
8BA93DFC2D84E15200F236A3 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D742D84E15200F236A3 /* CAAudioTimeStamp.cpp */; };
8BA93DFD2D84E15200F236A3 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D752D84E15200F236A3 /* CAVectorUnit.h */; };
8BA93DFE2D84E15200F236A3 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D762D84E15200F236A3 /* CAByteOrder.h */; };
8BA93DFF2D84E15200F236A3 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D772D84E15200F236A3 /* CACFArray.h */; };
8BA93E002D84E15200F236A3 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D782D84E15200F236A3 /* CAAtomicStack.h */; };
8BA93E012D84E15200F236A3 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D792D84E15200F236A3 /* CAReferenceCounted.h */; };
8BA93E022D84E15200F236A3 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D7A2D84E15200F236A3 /* CACFMachPort.cpp */; };
8BA93E032D84E15200F236A3 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D7B2D84E15200F236A3 /* CABufferList.cpp */; };
8BA93E042D84E15200F236A3 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D7C2D84E15200F236A3 /* CAMutex.cpp */; };
8BA93E052D84E15200F236A3 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D7D2D84E15200F236A3 /* CADebugger.cpp */; };
8BA93E062D84E15200F236A3 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D7E2D84E15200F236A3 /* CABundleLocker.cpp */; };
8BA93E072D84E15200F236A3 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D7F2D84E15200F236A3 /* CAAudioFileFormats.cpp */; };
8BA93E082D84E15200F236A3 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D802D84E15200F236A3 /* CAMath.h */; };
8BA93E092D84E15200F236A3 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D812D84E15200F236A3 /* CACFArray.cpp */; };
8BA93E0A2D84E15200F236A3 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D822D84E15200F236A3 /* CACFMessagePort.h */; };
8BA93E0B2D84E15200F236A3 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D832D84E15200F236A3 /* CAAudioValueRange.cpp */; };
8BA93E0C2D84E15200F236A3 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D842D84E15200F236A3 /* CAAudioUnit.cpp */; };
8BA93E0D2D84E15200F236A3 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D882D84E15200F236A3 /* AUViewLocalizedStringKeys.h */; };
8BA93E0E2D84E15200F236A3 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D8A2D84E15200F236A3 /* ComponentBase.cpp */; };
8BA93E0F2D84E15200F236A3 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D8B2D84E15200F236A3 /* AUScopeElement.cpp */; };
8BA93E102D84E15200F236A3 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D8C2D84E15200F236A3 /* ComponentBase.h */; };
8BA93E112D84E15200F236A3 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D8D2D84E15200F236A3 /* AUBase.cpp */; };
8BA93E122D84E15200F236A3 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D8E2D84E15200F236A3 /* AUInputElement.h */; };
8BA93E132D84E15200F236A3 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D8F2D84E15200F236A3 /* AUBase.h */; };
8BA93E142D84E15200F236A3 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D902D84E15200F236A3 /* AUPlugInDispatch.h */; };
8BA93E152D84E15200F236A3 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D912D84E15200F236A3 /* AUDispatch.h */; };
8BA93E162D84E15200F236A3 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D922D84E15200F236A3 /* AUOutputElement.cpp */; };
8BA93E182D84E15200F236A3 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D942D84E15200F236A3 /* AUPlugInDispatch.cpp */; };
8BA93E192D84E15200F236A3 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D952D84E15200F236A3 /* AUOutputElement.h */; };
8BA93E1A2D84E15200F236A3 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D962D84E15200F236A3 /* AUDispatch.cpp */; };
8BA93E1B2D84E15200F236A3 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D972D84E15200F236A3 /* AUScopeElement.h */; };
8BA93E1C2D84E15200F236A3 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D982D84E15200F236A3 /* AUInputElement.cpp */; };
8BA93E1D2D84E15200F236A3 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D9A2D84E15200F236A3 /* AUEffectBase.cpp */; };
8BA93E1E2D84E15200F236A3 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D9B2D84E15200F236A3 /* AUEffectBase.h */; };
8BA93E1F2D84E15200F236A3 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D9D2D84E15200F236A3 /* AUTimestampGenerator.h */; };
8BA93E202D84E15200F236A3 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93D9E2D84E15200F236A3 /* AUBaseHelper.cpp */; };
8BA93E212D84E15200F236A3 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93D9F2D84E15200F236A3 /* AUSilentTimeout.h */; };
8BA93E222D84E15200F236A3 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93DA02D84E15200F236A3 /* AUInputFormatConverter.h */; };
8BA93E232D84E15200F236A3 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93DA12D84E15200F236A3 /* AUTimestampGenerator.cpp */; };
8BA93E242D84E15200F236A3 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93DA22D84E15200F236A3 /* AUBuffer.cpp */; };
8BA93E252D84E15200F236A3 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93DA32D84E15200F236A3 /* AUMIDIDefs.h */; };
8BA93E262D84E15200F236A3 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93DA42D84E15200F236A3 /* AUBuffer.h */; };
8BA93E272D84E15200F236A3 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93DA52D84E15200F236A3 /* AUBaseHelper.h */; };
8BC6025C073B072D006C4272 /* DubPlate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* DubPlate.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>"; };
8BA05A660720730100365D66 /* DubPlate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DubPlate.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* DubPlate.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = DubPlate.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* DubPlate.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = DubPlate.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* DubPlateVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DubPlateVersion.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>"; };
8BA93D1E2D84E15200F236A3 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8BA93D1F2D84E15200F236A3 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8BA93D202D84E15200F236A3 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8BA93D212D84E15200F236A3 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8BA93D222D84E15200F236A3 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8BA93D232D84E15200F236A3 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8BA93D242D84E15200F236A3 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8BA93D252D84E15200F236A3 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8BA93D262D84E15200F236A3 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8BA93D272D84E15200F236A3 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8BA93D282D84E15200F236A3 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8BA93D292D84E15200F236A3 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8BA93D2A2D84E15200F236A3 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8BA93D2B2D84E15200F236A3 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8BA93D2C2D84E15200F236A3 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8BA93D2D2D84E15200F236A3 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8BA93D2E2D84E15200F236A3 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8BA93D2F2D84E15200F236A3 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8BA93D302D84E15200F236A3 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8BA93D312D84E15200F236A3 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8BA93D322D84E15200F236A3 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8BA93D332D84E15200F236A3 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8BA93D342D84E15200F236A3 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8BA93D352D84E15200F236A3 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8BA93D362D84E15200F236A3 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8BA93D372D84E15200F236A3 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8BA93D382D84E15200F236A3 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8BA93D392D84E15200F236A3 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8BA93D3A2D84E15200F236A3 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8BA93D3B2D84E15200F236A3 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8BA93D3C2D84E15200F236A3 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8BA93D3D2D84E15200F236A3 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8BA93D3E2D84E15200F236A3 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8BA93D3F2D84E15200F236A3 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8BA93D402D84E15200F236A3 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8BA93D412D84E15200F236A3 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8BA93D422D84E15200F236A3 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8BA93D432D84E15200F236A3 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8BA93D442D84E15200F236A3 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8BA93D452D84E15200F236A3 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8BA93D462D84E15200F236A3 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8BA93D472D84E15200F236A3 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8BA93D482D84E15200F236A3 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8BA93D492D84E15200F236A3 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8BA93D4A2D84E15200F236A3 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8BA93D4B2D84E15200F236A3 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8BA93D4C2D84E15200F236A3 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8BA93D4D2D84E15200F236A3 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8BA93D4E2D84E15200F236A3 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8BA93D4F2D84E15200F236A3 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8BA93D502D84E15200F236A3 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8BA93D512D84E15200F236A3 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8BA93D522D84E15200F236A3 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8BA93D532D84E15200F236A3 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8BA93D542D84E15200F236A3 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8BA93D552D84E15200F236A3 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8BA93D562D84E15200F236A3 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8BA93D572D84E15200F236A3 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8BA93D582D84E15200F236A3 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8BA93D592D84E15200F236A3 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8BA93D5A2D84E15200F236A3 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8BA93D5B2D84E15200F236A3 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8BA93D5C2D84E15200F236A3 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8BA93D5D2D84E15200F236A3 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8BA93D5E2D84E15200F236A3 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8BA93D5F2D84E15200F236A3 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8BA93D602D84E15200F236A3 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8BA93D612D84E15200F236A3 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8BA93D622D84E15200F236A3 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8BA93D632D84E15200F236A3 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8BA93D642D84E15200F236A3 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8BA93D652D84E15200F236A3 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8BA93D662D84E15200F236A3 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8BA93D672D84E15200F236A3 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8BA93D682D84E15200F236A3 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8BA93D692D84E15200F236A3 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8BA93D6A2D84E15200F236A3 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8BA93D6B2D84E15200F236A3 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8BA93D6C2D84E15200F236A3 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8BA93D6D2D84E15200F236A3 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8BA93D6E2D84E15200F236A3 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8BA93D6F2D84E15200F236A3 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8BA93D702D84E15200F236A3 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8BA93D712D84E15200F236A3 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8BA93D722D84E15200F236A3 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8BA93D732D84E15200F236A3 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8BA93D742D84E15200F236A3 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8BA93D752D84E15200F236A3 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8BA93D762D84E15200F236A3 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8BA93D772D84E15200F236A3 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8BA93D782D84E15200F236A3 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8BA93D792D84E15200F236A3 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8BA93D7A2D84E15200F236A3 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8BA93D7B2D84E15200F236A3 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8BA93D7C2D84E15200F236A3 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8BA93D7D2D84E15200F236A3 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8BA93D7E2D84E15200F236A3 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8BA93D7F2D84E15200F236A3 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8BA93D802D84E15200F236A3 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8BA93D812D84E15200F236A3 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8BA93D822D84E15200F236A3 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8BA93D832D84E15200F236A3 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8BA93D842D84E15200F236A3 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8BA93D882D84E15200F236A3 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8BA93D8A2D84E15200F236A3 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8BA93D8B2D84E15200F236A3 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8BA93D8C2D84E15200F236A3 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8BA93D8D2D84E15200F236A3 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8BA93D8E2D84E15200F236A3 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8BA93D8F2D84E15200F236A3 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8BA93D902D84E15200F236A3 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8BA93D912D84E15200F236A3 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8BA93D922D84E15200F236A3 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8BA93D932D84E15200F236A3 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8BA93D942D84E15200F236A3 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8BA93D952D84E15200F236A3 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8BA93D962D84E15200F236A3 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8BA93D972D84E15200F236A3 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8BA93D982D84E15200F236A3 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8BA93D9A2D84E15200F236A3 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8BA93D9B2D84E15200F236A3 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8BA93D9D2D84E15200F236A3 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8BA93D9E2D84E15200F236A3 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8BA93D9F2D84E15200F236A3 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8BA93DA02D84E15200F236A3 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8BA93DA12D84E15200F236A3 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8BA93DA22D84E15200F236A3 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8BA93DA32D84E15200F236A3 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8BA93DA42D84E15200F236A3 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8BA93DA52D84E15200F236A3 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8BA93E282D84E29200F236A3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8BC6025B073B072D006C4272 /* DubPlate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DubPlate.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* DubPlate.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DubPlate.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 /* DubPlate */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = DubPlate;
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 = (
8BA93D1C2D84E15200F236A3 /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* DubPlate.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* DubPlate.h */,
8BA05A660720730100365D66 /* DubPlate.cpp */,
8BA05A670720730100365D66 /* DubPlate.exp */,
8BA05A680720730100365D66 /* DubPlate.r */,
8BA05A690720730100365D66 /* DubPlateVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
8BA93D1C2D84E15200F236A3 /* CA_SDK */ = {
isa = PBXGroup;
children = (
8BA93D1D2D84E15200F236A3 /* PublicUtility */,
8BA93D852D84E15200F236A3 /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8BA93D1D2D84E15200F236A3 /* PublicUtility */ = {
isa = PBXGroup;
children = (
8BA93D1E2D84E15200F236A3 /* CAExtAudioFile.h */,
8BA93D1F2D84E15200F236A3 /* CACFMachPort.h */,
8BA93D202D84E15200F236A3 /* CABool.h */,
8BA93D212D84E15200F236A3 /* CAComponent.cpp */,
8BA93D222D84E15200F236A3 /* CADebugger.h */,
8BA93D232D84E15200F236A3 /* CACFNumber.cpp */,
8BA93D242D84E15200F236A3 /* CAGuard.h */,
8BA93D252D84E15200F236A3 /* CAAtomic.h */,
8BA93D262D84E15200F236A3 /* CAStreamBasicDescription.h */,
8BA93D272D84E15200F236A3 /* CACFObject.h */,
8BA93D282D84E15200F236A3 /* CAStreamRangedDescription.h */,
8BA93D292D84E15200F236A3 /* CATokenMap.h */,
8BA93D2A2D84E15200F236A3 /* CAComponent.h */,
8BA93D2B2D84E15200F236A3 /* CAAudioBufferList.h */,
8BA93D2C2D84E15200F236A3 /* CAAudioUnit.h */,
8BA93D2D2D84E15200F236A3 /* CAAUParameter.h */,
8BA93D2E2D84E15200F236A3 /* CAException.h */,
8BA93D2F2D84E15200F236A3 /* CAAUProcessor.cpp */,
8BA93D302D84E15200F236A3 /* CAAUProcessor.h */,
8BA93D312D84E15200F236A3 /* CAProcess.h */,
8BA93D322D84E15200F236A3 /* CACFDictionary.h */,
8BA93D332D84E15200F236A3 /* CAPThread.h */,
8BA93D342D84E15200F236A3 /* CAAUParameter.cpp */,
8BA93D352D84E15200F236A3 /* CAAudioTimeStamp.h */,
8BA93D362D84E15200F236A3 /* CAFilePathUtils.cpp */,
8BA93D372D84E15200F236A3 /* CAAudioValueRange.h */,
8BA93D382D84E15200F236A3 /* CAVectorUnitTypes.h */,
8BA93D392D84E15200F236A3 /* CAAudioChannelLayoutObject.cpp */,
8BA93D3A2D84E15200F236A3 /* CAGuard.cpp */,
8BA93D3B2D84E15200F236A3 /* CACFNumber.h */,
8BA93D3C2D84E15200F236A3 /* CACFDistributedNotification.cpp */,
8BA93D3D2D84E15200F236A3 /* CACFString.h */,
8BA93D3E2D84E15200F236A3 /* CAAUMIDIMapManager.cpp */,
8BA93D3F2D84E15200F236A3 /* CAComponentDescription.cpp */,
8BA93D402D84E15200F236A3 /* CAHostTimeBase.h */,
8BA93D412D84E15200F236A3 /* CADebugMacros.cpp */,
8BA93D422D84E15200F236A3 /* CAAudioFileFormats.h */,
8BA93D432D84E15200F236A3 /* CAAUMIDIMapManager.h */,
8BA93D442D84E15200F236A3 /* CACFDictionary.cpp */,
8BA93D452D84E15200F236A3 /* CAMutex.h */,
8BA93D462D84E15200F236A3 /* CACFString.cpp */,
8BA93D472D84E15200F236A3 /* CASettingsStorage.h */,
8BA93D482D84E15200F236A3 /* CADebugPrintf.h */,
8BA93D492D84E15200F236A3 /* CAXException.cpp */,
8BA93D4A2D84E15200F236A3 /* CAAUMIDIMap.h */,
8BA93D4B2D84E15200F236A3 /* AUParamInfo.h */,
8BA93D4C2D84E15200F236A3 /* CABitOperations.h */,
8BA93D4D2D84E15200F236A3 /* CACFPreferences.cpp */,
8BA93D4E2D84E15200F236A3 /* CABundleLocker.h */,
8BA93D4F2D84E15200F236A3 /* CAPropertyAddress.h */,
8BA93D502D84E15200F236A3 /* CAXException.h */,
8BA93D512D84E15200F236A3 /* CAAudioChannelLayout.cpp */,
8BA93D522D84E15200F236A3 /* CAThreadSafeList.h */,
8BA93D532D84E15200F236A3 /* CAAudioUnitOutputCapturer.h */,
8BA93D542D84E15200F236A3 /* AUParamInfo.cpp */,
8BA93D552D84E15200F236A3 /* CASharedLibrary.cpp */,
8BA93D562D84E15200F236A3 /* CAAUMIDIMap.cpp */,
8BA93D572D84E15200F236A3 /* CALogMacros.h */,
8BA93D582D84E15200F236A3 /* CACFMessagePort.cpp */,
8BA93D592D84E15200F236A3 /* CARingBuffer.h */,
8BA93D5A2D84E15200F236A3 /* AUOutputBL.cpp */,
8BA93D5B2D84E15200F236A3 /* CABufferList.h */,
8BA93D5C2D84E15200F236A3 /* CASharedLibrary.h */,
8BA93D5D2D84E15200F236A3 /* CACFData.h */,
8BA93D5E2D84E15200F236A3 /* CAStreamRangedDescription.cpp */,
8BA93D5F2D84E15200F236A3 /* CAPThread.cpp */,
8BA93D602D84E15200F236A3 /* CAAutoDisposer.h */,
8BA93D612D84E15200F236A3 /* CACFPreferences.h */,
8BA93D622D84E15200F236A3 /* CAVectorUnit.cpp */,
8BA93D632D84E15200F236A3 /* CAComponentDescription.h */,
8BA93D642D84E15200F236A3 /* CADebugMacros.h */,
8BA93D652D84E15200F236A3 /* AUOutputBL.h */,
8BA93D662D84E15200F236A3 /* CADebugPrintf.cpp */,
8BA93D672D84E15200F236A3 /* CARingBuffer.cpp */,
8BA93D682D84E15200F236A3 /* CACFPlugIn.h */,
8BA93D692D84E15200F236A3 /* CASettingsStorage.cpp */,
8BA93D6A2D84E15200F236A3 /* CAMixMap.h */,
8BA93D6B2D84E15200F236A3 /* CACFDistributedNotification.h */,
8BA93D6C2D84E15200F236A3 /* CAFilePathUtils.h */,
8BA93D6D2D84E15200F236A3 /* CATink.h */,
8BA93D6E2D84E15200F236A3 /* CAStreamBasicDescription.cpp */,
8BA93D6F2D84E15200F236A3 /* CAAudioChannelLayout.h */,
8BA93D702D84E15200F236A3 /* CAProcess.cpp */,
8BA93D712D84E15200F236A3 /* CAHostTimeBase.cpp */,
8BA93D722D84E15200F236A3 /* CAPersistence.cpp */,
8BA93D732D84E15200F236A3 /* CAAudioBufferList.cpp */,
8BA93D742D84E15200F236A3 /* CAAudioTimeStamp.cpp */,
8BA93D752D84E15200F236A3 /* CAVectorUnit.h */,
8BA93D762D84E15200F236A3 /* CAByteOrder.h */,
8BA93D772D84E15200F236A3 /* CACFArray.h */,
8BA93D782D84E15200F236A3 /* CAAtomicStack.h */,
8BA93D792D84E15200F236A3 /* CAReferenceCounted.h */,
8BA93D7A2D84E15200F236A3 /* CACFMachPort.cpp */,
8BA93D7B2D84E15200F236A3 /* CABufferList.cpp */,
8BA93D7C2D84E15200F236A3 /* CAMutex.cpp */,
8BA93D7D2D84E15200F236A3 /* CADebugger.cpp */,
8BA93D7E2D84E15200F236A3 /* CABundleLocker.cpp */,
8BA93D7F2D84E15200F236A3 /* CAAudioFileFormats.cpp */,
8BA93D802D84E15200F236A3 /* CAMath.h */,
8BA93D812D84E15200F236A3 /* CACFArray.cpp */,
8BA93D822D84E15200F236A3 /* CACFMessagePort.h */,
8BA93D832D84E15200F236A3 /* CAAudioValueRange.cpp */,
8BA93D842D84E15200F236A3 /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8BA93D852D84E15200F236A3 /* AudioUnits */ = {
isa = PBXGroup;
children = (
8BA93D862D84E15200F236A3 /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8BA93D862D84E15200F236A3 /* AUPublic */ = {
isa = PBXGroup;
children = (
8BA93D872D84E15200F236A3 /* AUViewBase */,
8BA93D892D84E15200F236A3 /* AUBase */,
8BA93D992D84E15200F236A3 /* OtherBases */,
8BA93D9C2D84E15200F236A3 /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8BA93D872D84E15200F236A3 /* AUViewBase */ = {
isa = PBXGroup;
children = (
8BA93D882D84E15200F236A3 /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8BA93D892D84E15200F236A3 /* AUBase */ = {
isa = PBXGroup;
children = (
8BA93D8A2D84E15200F236A3 /* ComponentBase.cpp */,
8BA93D8B2D84E15200F236A3 /* AUScopeElement.cpp */,
8BA93D8C2D84E15200F236A3 /* ComponentBase.h */,
8BA93D8D2D84E15200F236A3 /* AUBase.cpp */,
8BA93D8E2D84E15200F236A3 /* AUInputElement.h */,
8BA93D8F2D84E15200F236A3 /* AUBase.h */,
8BA93D902D84E15200F236A3 /* AUPlugInDispatch.h */,
8BA93D912D84E15200F236A3 /* AUDispatch.h */,
8BA93D922D84E15200F236A3 /* AUOutputElement.cpp */,
8BA93D932D84E15200F236A3 /* AUResources.r */,
8BA93D942D84E15200F236A3 /* AUPlugInDispatch.cpp */,
8BA93D952D84E15200F236A3 /* AUOutputElement.h */,
8BA93D962D84E15200F236A3 /* AUDispatch.cpp */,
8BA93D972D84E15200F236A3 /* AUScopeElement.h */,
8BA93D982D84E15200F236A3 /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8BA93D992D84E15200F236A3 /* OtherBases */ = {
isa = PBXGroup;
children = (
8BA93D9A2D84E15200F236A3 /* AUEffectBase.cpp */,
8BA93D9B2D84E15200F236A3 /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8BA93D9C2D84E15200F236A3 /* Utility */ = {
isa = PBXGroup;
children = (
8BA93D9D2D84E15200F236A3 /* AUTimestampGenerator.h */,
8BA93D9E2D84E15200F236A3 /* AUBaseHelper.cpp */,
8BA93D9F2D84E15200F236A3 /* AUSilentTimeout.h */,
8BA93DA02D84E15200F236A3 /* AUInputFormatConverter.h */,
8BA93DA12D84E15200F236A3 /* AUTimestampGenerator.cpp */,
8BA93DA22D84E15200F236A3 /* AUBuffer.cpp */,
8BA93DA32D84E15200F236A3 /* AUMIDIDefs.h */,
8BA93DA42D84E15200F236A3 /* AUBuffer.h */,
8BA93DA52D84E15200F236A3 /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8BA93DD62D84E15200F236A3 /* CABundleLocker.h in Headers */,
8BA93DF72D84E15200F236A3 /* CAAudioChannelLayout.h in Headers */,
8BA93DED2D84E15200F236A3 /* AUOutputBL.h in Headers */,
8BA93DC82D84E15200F236A3 /* CAHostTimeBase.h in Headers */,
8BA93E102D84E15200F236A3 /* ComponentBase.h in Headers */,
8BA93E002D84E15200F236A3 /* CAAtomicStack.h in Headers */,
8BA93DBD2D84E15200F236A3 /* CAAudioTimeStamp.h in Headers */,
8BA93DDA2D84E15200F236A3 /* CAThreadSafeList.h in Headers */,
8BA93DB52D84E15200F236A3 /* CAAUParameter.h in Headers */,
8BA93E272D84E15200F236A3 /* AUBaseHelper.h in Headers */,
8BA93E1F2D84E15200F236A3 /* AUTimestampGenerator.h in Headers */,
8BA93DD02D84E15200F236A3 /* CADebugPrintf.h in Headers */,
8BA93E0A2D84E15200F236A3 /* CACFMessagePort.h in Headers */,
8BA93DB82D84E15200F236A3 /* CAAUProcessor.h in Headers */,
8BA93DB42D84E15200F236A3 /* CAAudioUnit.h in Headers */,
8BA93E0D2D84E15200F236A3 /* AUViewLocalizedStringKeys.h in Headers */,
8BA93DF32D84E15200F236A3 /* CACFDistributedNotification.h in Headers */,
8BA93DB22D84E15200F236A3 /* CAComponent.h in Headers */,
8BA93DC02D84E15200F236A3 /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* DubPlateVersion.h in Headers */,
8BA93DF42D84E15200F236A3 /* CAFilePathUtils.h in Headers */,
8BA93DB62D84E15200F236A3 /* CAException.h in Headers */,
8BA93DAD2D84E15200F236A3 /* CAAtomic.h in Headers */,
8BA93DAC2D84E15200F236A3 /* CAGuard.h in Headers */,
8BA93E122D84E15200F236A3 /* AUInputElement.h in Headers */,
8BA93DE92D84E15200F236A3 /* CACFPreferences.h in Headers */,
8BA93DFE2D84E15200F236A3 /* CAByteOrder.h in Headers */,
8BA93DE12D84E15200F236A3 /* CARingBuffer.h in Headers */,
8BA93DA82D84E15200F236A3 /* CABool.h in Headers */,
8BA93DCD2D84E15200F236A3 /* CAMutex.h in Headers */,
8BA93E132D84E15200F236A3 /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* DubPlate.h in Headers */,
8BA93DC52D84E15200F236A3 /* CACFString.h in Headers */,
8BA93DE42D84E15200F236A3 /* CASharedLibrary.h in Headers */,
8BA93DB12D84E15200F236A3 /* CATokenMap.h in Headers */,
8BA93DA62D84E15200F236A3 /* CAExtAudioFile.h in Headers */,
8BA93DBB2D84E15200F236A3 /* CAPThread.h in Headers */,
8BA93DD72D84E15200F236A3 /* CAPropertyAddress.h in Headers */,
8BA93E012D84E15200F236A3 /* CAReferenceCounted.h in Headers */,
8BA93E262D84E15200F236A3 /* AUBuffer.h in Headers */,
8BA93E082D84E15200F236A3 /* CAMath.h in Headers */,
8BA93DE82D84E15200F236A3 /* CAAutoDisposer.h in Headers */,
8BA93DAF2D84E15200F236A3 /* CACFObject.h in Headers */,
8BA93DCF2D84E15200F236A3 /* CASettingsStorage.h in Headers */,
8BA93DD82D84E15200F236A3 /* CAXException.h in Headers */,
8BA93DF52D84E15200F236A3 /* CATink.h in Headers */,
8BA93E222D84E15200F236A3 /* AUInputFormatConverter.h in Headers */,
8BA93DFD2D84E15200F236A3 /* CAVectorUnit.h in Headers */,
8BA93DB92D84E15200F236A3 /* CAProcess.h in Headers */,
8BA93DBF2D84E15200F236A3 /* CAAudioValueRange.h in Headers */,
8BA93DD42D84E15200F236A3 /* CABitOperations.h in Headers */,
8BA93DCA2D84E15200F236A3 /* CAAudioFileFormats.h in Headers */,
8BA93DC32D84E15200F236A3 /* CACFNumber.h in Headers */,
8BA93DDB2D84E15200F236A3 /* CAAudioUnitOutputCapturer.h in Headers */,
8BA93DEC2D84E15200F236A3 /* CADebugMacros.h in Headers */,
8BA93E252D84E15200F236A3 /* AUMIDIDefs.h in Headers */,
8BA93DE52D84E15200F236A3 /* CACFData.h in Headers */,
8BA93DAE2D84E15200F236A3 /* CAStreamBasicDescription.h in Headers */,
8BA93E142D84E15200F236A3 /* AUPlugInDispatch.h in Headers */,
8BA93DB02D84E15200F236A3 /* CAStreamRangedDescription.h in Headers */,
8BA93DF02D84E15200F236A3 /* CACFPlugIn.h in Headers */,
8BA93DB32D84E15200F236A3 /* CAAudioBufferList.h in Headers */,
8BA93DCB2D84E15200F236A3 /* CAAUMIDIMapManager.h in Headers */,
8BA93E1E2D84E15200F236A3 /* AUEffectBase.h in Headers */,
8BA93DBA2D84E15200F236A3 /* CACFDictionary.h in Headers */,
8BA93E1B2D84E15200F236A3 /* AUScopeElement.h in Headers */,
8BA93DEB2D84E15200F236A3 /* CAComponentDescription.h in Headers */,
8BA93E212D84E15200F236A3 /* AUSilentTimeout.h in Headers */,
8BA93DE32D84E15200F236A3 /* CABufferList.h in Headers */,
8BA93E152D84E15200F236A3 /* AUDispatch.h in Headers */,
8BA93E192D84E15200F236A3 /* AUOutputElement.h in Headers */,
8BA93DDF2D84E15200F236A3 /* CALogMacros.h in Headers */,
8BA93DD32D84E15200F236A3 /* AUParamInfo.h in Headers */,
8BA93DF22D84E15200F236A3 /* CAMixMap.h in Headers */,
8BA93DFF2D84E15200F236A3 /* CACFArray.h in Headers */,
8BA93DA72D84E15200F236A3 /* CACFMachPort.h in Headers */,
8BA93DD22D84E15200F236A3 /* CAAUMIDIMap.h in Headers */,
8BA93DAA2D84E15200F236A3 /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* DubPlate */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "DubPlate" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = DubPlate;
productInstallPath = "$(HOME)/Library/Bundles";
productName = DubPlate;
productReference = 8D01CCD20486CAD60068D4B7 /* DubPlate.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 "DubPlate" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
Base,
en,
fr,
de,
ja,
);
mainGroup = 089C166AFE841209C02AAC07 /* DubPlate */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* DubPlate */,
);
};
/* 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 = (
8BA93DE22D84E15200F236A3 /* AUOutputBL.cpp in Sources */,
8BA93E072D84E15200F236A3 /* CAAudioFileFormats.cpp in Sources */,
8BA93DF92D84E15200F236A3 /* CAHostTimeBase.cpp in Sources */,
8BA93DD12D84E15200F236A3 /* CAXException.cpp in Sources */,
8BA93DFB2D84E15200F236A3 /* CAAudioBufferList.cpp in Sources */,
8BA93DBE2D84E15200F236A3 /* CAFilePathUtils.cpp in Sources */,
8BA93DBC2D84E15200F236A3 /* CAAUParameter.cpp in Sources */,
8BA93DDE2D84E15200F236A3 /* CAAUMIDIMap.cpp in Sources */,
8BA93E0B2D84E15200F236A3 /* CAAudioValueRange.cpp in Sources */,
8BA93E1A2D84E15200F236A3 /* AUDispatch.cpp in Sources */,
8BA93DD52D84E15200F236A3 /* CACFPreferences.cpp in Sources */,
8BA93E182D84E15200F236A3 /* AUPlugInDispatch.cpp in Sources */,
8BA93DB72D84E15200F236A3 /* CAAUProcessor.cpp in Sources */,
8BA93DCC2D84E15200F236A3 /* CACFDictionary.cpp in Sources */,
8BA93E202D84E15200F236A3 /* AUBaseHelper.cpp in Sources */,
8BA93E052D84E15200F236A3 /* CADebugger.cpp in Sources */,
8BA93DD92D84E15200F236A3 /* CAAudioChannelLayout.cpp in Sources */,
8BA93DDC2D84E15200F236A3 /* AUParamInfo.cpp in Sources */,
8BA93DFA2D84E15200F236A3 /* CAPersistence.cpp in Sources */,
8BA93DEE2D84E15200F236A3 /* CADebugPrintf.cpp in Sources */,
8BA93E232D84E15200F236A3 /* AUTimestampGenerator.cpp in Sources */,
8BA93DF62D84E15200F236A3 /* CAStreamBasicDescription.cpp in Sources */,
8BA93DC62D84E15200F236A3 /* CAAUMIDIMapManager.cpp in Sources */,
8BA93DF12D84E15200F236A3 /* CASettingsStorage.cpp in Sources */,
8BA93E162D84E15200F236A3 /* AUOutputElement.cpp in Sources */,
8BA93DC22D84E15200F236A3 /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* DubPlate.cpp in Sources */,
8BA93E042D84E15200F236A3 /* CAMutex.cpp in Sources */,
8BA93E1D2D84E15200F236A3 /* AUEffectBase.cpp in Sources */,
8BA93E022D84E15200F236A3 /* CACFMachPort.cpp in Sources */,
8BA93E112D84E15200F236A3 /* AUBase.cpp in Sources */,
8BA93DDD2D84E15200F236A3 /* CASharedLibrary.cpp in Sources */,
8BA93DC42D84E15200F236A3 /* CACFDistributedNotification.cpp in Sources */,
8BA93DC72D84E15200F236A3 /* CAComponentDescription.cpp in Sources */,
8BA93DCE2D84E15200F236A3 /* CACFString.cpp in Sources */,
8BA93E0E2D84E15200F236A3 /* ComponentBase.cpp in Sources */,
8BA93DEF2D84E15200F236A3 /* CARingBuffer.cpp in Sources */,
8BA93E0F2D84E15200F236A3 /* AUScopeElement.cpp in Sources */,
8BA93E0C2D84E15200F236A3 /* CAAudioUnit.cpp in Sources */,
8BA93E092D84E15200F236A3 /* CACFArray.cpp in Sources */,
8BA93E062D84E15200F236A3 /* CABundleLocker.cpp in Sources */,
8BA93DF82D84E15200F236A3 /* CAProcess.cpp in Sources */,
8BA93DE62D84E15200F236A3 /* CAStreamRangedDescription.cpp in Sources */,
8BA93DE72D84E15200F236A3 /* CAPThread.cpp in Sources */,
8BA93DA92D84E15200F236A3 /* CAComponent.cpp in Sources */,
8BA93DC12D84E15200F236A3 /* CAAudioChannelLayoutObject.cpp in Sources */,
8BA93DFC2D84E15200F236A3 /* CAAudioTimeStamp.cpp in Sources */,
8BA93E032D84E15200F236A3 /* CABufferList.cpp in Sources */,
8BA93DE02D84E15200F236A3 /* CACFMessagePort.cpp in Sources */,
8BA93DEA2D84E15200F236A3 /* CAVectorUnit.cpp in Sources */,
8BA93E1C2D84E15200F236A3 /* AUInputElement.cpp in Sources */,
8BA93E242D84E15200F236A3 /* AUBuffer.cpp in Sources */,
8BA93DC92D84E15200F236A3 /* CADebugMacros.cpp in Sources */,
8BA93DAB2D84E15200F236A3 /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8BA93E282D84E29200F236A3 /* 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 = DubPlate.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 = DubPlate;
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 = DubPlate.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 = DubPlate;
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 "DubPlate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "DubPlate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA248089833B7007656EC /* Debug */,
3E4BA249089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View file

@ -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>

View file

@ -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 = "DubPlate.component"
BlueprintName = "DubPlate"
ReferencedContainer = "container:DubPlate.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 = "DubPlate.component"
BlueprintName = "DubPlate"
ReferencedContainer = "container:DubPlate.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -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>DubPlate.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>

View file

@ -0,0 +1,58 @@
/*
* File: DubPlateVersion.h
*
* Version: 1.0
*
* Created: 2/25/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 __DubPlateVersion_h__
#define __DubPlateVersion_h__
#ifdef DEBUG
#define kDubPlateVersion 0xFFFFFFFF
#else
#define kDubPlateVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define DubPlate_COMP_MANF 'Dthr'
#define DubPlate_COMP_SUBTYPE 'dplt'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View 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>dplt</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>

View file

@ -0,0 +1,5 @@
//
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
//
#include <CoreServices/CoreServices.h>

Binary file not shown.

View 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>

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* DubPlate */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
324,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 763472098;
PBXWorkspaceStateSaveDate = 763472098;
};
perUserProjectItems = {
8B776E0B2D81B27F003A7177 /* XCBuildMessageTextBookmark */ = 8B776E0B2D81B27F003A7177 /* XCBuildMessageTextBookmark */;
8B776E0C2D81B27F003A7177 /* PBXTextBookmark */ = 8B776E0C2D81B27F003A7177 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* DubPlate.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {948, 1692}}";
sepNavSelRange = "{2101, 0}";
sepNavVisRange = "{2098, 78}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* DubPlate.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1110, 1260}}";
sepNavSelRange = "{2743, 0}";
sepNavVisRange = "{621, 2184}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{9653, 2414}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* DubPlateProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {939, 3780}}";
sepNavSelRange = "{3809, 0}";
sepNavVisRange = "{3489, 1071}";
sepNavWindowFrame = "{{31, 42}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8B776E0B2D81B27F003A7177 /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "Unused variable 'chunkData'";
fRef = 2407DEB6089929BA00EB68BF /* DubPlate.cpp */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 1;
rLoc = 56;
rType = 1;
};
8B776E0C2D81B27F003A7177 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* DubPlate.cpp */;
name = "DubPlate.cpp: 57";
rLen = 0;
rLoc = 2101;
rType = 0;
vrLen = 78;
vrLoc = 2098;
};
8D01CCC60486CAD60068D4B7 /* DubPlate */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,462 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
2407DEB9089929BA00EB68BF /* DubPlate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* DubPlate.cpp */; };
245463B90991757100464AD3 /* DubPlate.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* DubPlate.h */; };
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
24D8287009A914000093AEF8 /* DubPlateProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* DubPlateProc.cpp */; };
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
8BA93E3B2D84E32A00F236A3 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93E2F2D84E32A00F236A3 /* vstfxstore.h */; };
8BA93E3C2D84E32A00F236A3 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93E302D84E32A00F236A3 /* aeffect.h */; };
8BA93E3D2D84E32A00F236A3 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93E312D84E32A00F236A3 /* aeffectx.h */; };
8BA93E3E2D84E32A00F236A3 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93E352D84E32A00F236A3 /* audioeffectx.h */; };
8BA93E3F2D84E32A00F236A3 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93E362D84E32A00F236A3 /* audioeffect.cpp */; };
8BA93E402D84E32A00F236A3 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93E372D84E32A00F236A3 /* audioeffectx.cpp */; };
8BA93E412D84E32A00F236A3 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93E382D84E32A00F236A3 /* aeffeditor.h */; };
8BA93E422D84E32A00F236A3 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA93E392D84E32A00F236A3 /* vstplugmain.cpp */; };
8BA93E432D84E32A00F236A3 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA93E3A2D84E32A00F236A3 /* audioeffect.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
2407DE920899296600EB68BF /* DubPlate.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DubPlate.vst; sourceTree = BUILT_PRODUCTS_DIR; };
2407DEB6089929BA00EB68BF /* DubPlate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DubPlate.cpp; path = source/DubPlate.cpp; sourceTree = "<group>"; };
245463B80991757100464AD3 /* DubPlate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DubPlate.h; path = source/DubPlate.h; sourceTree = "<group>"; };
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
24D8286F09A914000093AEF8 /* DubPlateProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DubPlateProc.cpp; path = source/DubPlateProc.cpp; sourceTree = "<group>"; };
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; };
8BA93E2F2D84E32A00F236A3 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
8BA93E302D84E32A00F236A3 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
8BA93E312D84E32A00F236A3 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
8BA93E352D84E32A00F236A3 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
8BA93E362D84E32A00F236A3 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
8BA93E372D84E32A00F236A3 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
8BA93E382D84E32A00F236A3 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
8BA93E392D84E32A00F236A3 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
8BA93E3A2D84E32A00F236A3 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
089C166AFE841209C02AAC07 /* FM-Chopper */ = {
isa = PBXGroup;
children = (
19C28FB4FE9D528D11CA2CBB /* Products */,
089C167CFE841241C02AAC07 /* Resources */,
08FB77ADFE841716C02AAC07 /* Source */,
);
name = "FM-Chopper";
sourceTree = "<group>";
};
089C167CFE841241C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */,
24CFB70307E7A0220081BD57 /* PkgInfo */,
8D01CCD10486CAD60068D4B7 /* Info.plist */,
);
name = Resources;
sourceTree = "<group>";
};
08FB77ADFE841716C02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
8BA93E2C2D84E32A00F236A3 /* vstsdk2.4 */,
2407DEB6089929BA00EB68BF /* DubPlate.cpp */,
24D8286F09A914000093AEF8 /* DubPlateProc.cpp */,
245463B80991757100464AD3 /* DubPlate.h */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
2407DE920899296600EB68BF /* DubPlate.vst */,
);
name = Products;
sourceTree = "<group>";
};
8BA93E2C2D84E32A00F236A3 /* vstsdk2.4 */ = {
isa = PBXGroup;
children = (
8BA93E2D2D84E32A00F236A3 /* pluginterfaces */,
8BA93E322D84E32A00F236A3 /* public.sdk */,
);
name = vstsdk2.4;
path = ../../../../vstsdk2.4;
sourceTree = "<group>";
};
8BA93E2D2D84E32A00F236A3 /* pluginterfaces */ = {
isa = PBXGroup;
children = (
8BA93E2E2D84E32A00F236A3 /* vst2.x */,
);
path = pluginterfaces;
sourceTree = "<group>";
};
8BA93E2E2D84E32A00F236A3 /* vst2.x */ = {
isa = PBXGroup;
children = (
8BA93E2F2D84E32A00F236A3 /* vstfxstore.h */,
8BA93E302D84E32A00F236A3 /* aeffect.h */,
8BA93E312D84E32A00F236A3 /* aeffectx.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
8BA93E322D84E32A00F236A3 /* public.sdk */ = {
isa = PBXGroup;
children = (
8BA93E332D84E32A00F236A3 /* source */,
);
path = public.sdk;
sourceTree = "<group>";
};
8BA93E332D84E32A00F236A3 /* source */ = {
isa = PBXGroup;
children = (
8BA93E342D84E32A00F236A3 /* vst2.x */,
);
path = source;
sourceTree = "<group>";
};
8BA93E342D84E32A00F236A3 /* vst2.x */ = {
isa = PBXGroup;
children = (
8BA93E352D84E32A00F236A3 /* audioeffectx.h */,
8BA93E362D84E32A00F236A3 /* audioeffect.cpp */,
8BA93E372D84E32A00F236A3 /* audioeffectx.cpp */,
8BA93E382D84E32A00F236A3 /* aeffeditor.h */,
8BA93E392D84E32A00F236A3 /* vstplugmain.cpp */,
8BA93E3A2D84E32A00F236A3 /* audioeffect.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8BA93E412D84E32A00F236A3 /* aeffeditor.h in Headers */,
245463B90991757100464AD3 /* DubPlate.h in Headers */,
8BA93E432D84E32A00F236A3 /* audioeffect.h in Headers */,
8BA93E3C2D84E32A00F236A3 /* aeffect.h in Headers */,
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
8BA93E3E2D84E32A00F236A3 /* audioeffectx.h in Headers */,
8BA93E3B2D84E32A00F236A3 /* vstfxstore.h in Headers */,
8BA93E3D2D84E32A00F236A3 /* aeffectx.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* DubPlate */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "DubPlate" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
);
buildRules = (
);
dependencies = (
);
name = DubPlate;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "FM-Chopper";
productReference = 2407DE920899296600EB68BF /* DubPlate.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1420;
};
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "DubPlate" */;
compatibilityVersion = "Xcode 2.4";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
en,
ja,
de,
Base,
fr,
);
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* DubPlate */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D01CCC90486CAD60068D4B7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy PkgInfo";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\"";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA93E402D84E32A00F236A3 /* audioeffectx.cpp in Sources */,
2407DEB9089929BA00EB68BF /* DubPlate.cpp in Sources */,
8BA93E3F2D84E32A00F236A3 /* audioeffect.cpp in Sources */,
8BA93E422D84E32A00F236A3 /* vstplugmain.cpp in Sources */,
24D8287009A914000093AEF8 /* DubPlateProc.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
24BEAAEE08919AE700E695F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
FRAMEWORK_SEARCH_PATHS = "";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_TRIGRAPHS = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_MODEL_TUNING = "";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_UNKNOWN_PRAGMAS = NO;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
INFOPLIST_FILE = ./mac/Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
LIBRARY_SEARCH_PATHS = "";
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.DubPlate;
PRODUCT_NAME = DubPlate;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SECTORDER_FLAGS = "";
STRIP_STYLE = debugging;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Debug;
};
24BEAAEF08919AE700E695F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
FRAMEWORK_SEARCH_PATHS = "";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_ENABLE_TRIGRAPHS = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = "";
GCC_OPTIMIZATION_LEVEL = s;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_UNKNOWN_PRAGMAS = NO;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
INFOPLIST_FILE = ./mac/Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
LIBRARY_SEARCH_PATHS = "";
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.DubPlate;
PRODUCT_NAME = DubPlate;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SECTORDER_FLAGS = "";
SKIP_INSTALL = NO;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = debugging;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Release;
};
24BEAAF208919AE700E695F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_MODEL_TUNING = G5;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "";
INFOPLIST_PREPROCESS = NO;
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
24BEAAF308919AE700E695F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_MODEL_TUNING = G4;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = s;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "";
INFOPLIST_PREPROCESS = NO;
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "DubPlate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAEE08919AE700E695F9 /* Debug */,
24BEAAEF08919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "DubPlate" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAF208919AE700E695F9 /* Debug */,
24BEAAF308919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Sample.xcodeproj">
</FileRef>
</Workspace>

View file

@ -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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,143 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */;
codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
829,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
789,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 345089498;
PBXWorkspaceStateSaveDate = 345089498;
};
perUserProjectItems = {
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */;
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */;
};
sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Gain.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}";
sepNavSelRange = "{247, 0}";
sepNavVisRange = "{0, 1657}";
};
};
245463B80991757100464AD3 /* Gain.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 975}}";
sepNavSelRange = "{1552, 0}";
sepNavVisRange = "{796, 1857}";
sepNavWindowFrame = "{{15, 465}, {750, 558}}";
};
};
24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 488}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 798}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}";
sepNavSelRange = "{10641, 0}";
sepNavVisRange = "{10076, 1095}";
};
};
24D8286F09A914000093AEF8 /* GainProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 482}}";
sepNavSelRange = "{239, 0}";
sepNavVisRange = "{0, 950}";
};
};
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 493}}";
sepNavSelRange = "{249, 0}";
sepNavVisRange = "{0, 249}";
};
};
8D01CCC60486CAD60068D4B7 /* Gain */ = {
activeExec = 0;
};
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
name = "Gain.cpp: 10";
rLen = 0;
rLoc = 247;
rType = 0;
vrLen = 1657;
vrLoc = 0;
};
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
name = "Gain.cpp: 10";
rLen = 0;
rLoc = 247;
rType = 0;
vrLen = 1625;
vrLoc = 0;
};
91857D94148EF55400AAA11B /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
91857D95148EF55400AAA11B /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
}

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1420"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "DubPlate"
ReferencedContainer = "container:DubPlate.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "DubPlate"
ReferencedContainer = "container:DubPlate.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -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>DubPlate.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>«PROJECTNAME».xcscheme</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "&#171;PROJECTNAME&#187;.vst"
BlueprintName = "&#171;PROJECTNAME&#187;"
ReferencedContainer = "container:Sample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>DubPlate</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

@ -0,0 +1 @@
BNDL????

View file

@ -0,0 +1,17 @@
#define MAC 1
#define MACX 1
#define USE_NAMESPACE 0
#define TARGET_API_MAC_CARBON 1
#define USENAVSERVICES 1
#define __CF_USE_FRAMEWORK_INCLUDES__
#if __MWERKS__
#define __NOEXTENSIONS__
#endif
#define QUARTZ 1
#include <AvailabilityMacros.h>

View file

@ -0,0 +1,91 @@
/* ========================================
* DubPlate - DubPlate.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#include "DubPlate.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new DubPlate(audioMaster);}
DubPlate::DubPlate(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
iirA = 0.0;
iirB = 0.0;
iirC = 0.0;
iirD = 0.0;
fpFlip = true;
lastSinewAL = 0.0;
lastSinewAR = 0.0;
lastSinewBL = 0.0;
lastSinewBR = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
DubPlate::~DubPlate() {}
VstInt32 DubPlate::getVendorVersion () {return 1000;}
void DubPlate::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void DubPlate::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!
VstInt32 DubPlate::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 DubPlate::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
return 0;
}
void DubPlate::setParameter(VstInt32 index, float value) {
}
float DubPlate::getParameter(VstInt32 index) {
return 0.0; //we only need to update the relevant name, this is simple to manage
}
void DubPlate::getParameterName(VstInt32 index, char *text) {
}
void DubPlate::getParameterDisplay(VstInt32 index, char *text) {
}
void DubPlate::getParameterLabel(VstInt32 index, char *text) {
}
VstInt32 DubPlate::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool DubPlate::getEffectName(char* name) {
vst_strncpy(name, "DubPlate", kVstMaxProductStrLen); return true;
}
VstPlugCategory DubPlate::getPlugCategory() {return kPlugCategEffect;}
bool DubPlate::getProductString(char* text) {
vst_strncpy (text, "airwindows DubPlate", kVstMaxProductStrLen); return true;
}
bool DubPlate::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,69 @@
/* ========================================
* DubPlate - DubPlate.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#define __DubPlate_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kNumParameters = 0
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'dplt'; //Change this to what the AU identity is!
class DubPlate :
public AudioEffectX
{
public:
DubPlate(audioMasterCallback audioMaster);
~DubPlate();
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;
double iirA;
double iirB; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one
double iirC; //we introduce the second pole at the same frequency, to become a pseudo-Capacitor behavior
double iirD; //then there's a Mid highpass.
bool fpFlip;
double lastSinewAL;
double lastSinewAR;
double lastSinewBL;
double lastSinewBR;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,196 @@
/* ========================================
* DubPlate - DubPlate.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#include "DubPlate.h"
#endif
void DubPlate::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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 DubPlate::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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++;
}
}

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* DubPlate */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
324,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 763472098;
PBXWorkspaceStateSaveDate = 763472098;
};
perUserProjectItems = {
8B776E0B2D81B27F003A7177 /* XCBuildMessageTextBookmark */ = 8B776E0B2D81B27F003A7177 /* XCBuildMessageTextBookmark */;
8B776E0C2D81B27F003A7177 /* PBXTextBookmark */ = 8B776E0C2D81B27F003A7177 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* DubPlate.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {948, 1692}}";
sepNavSelRange = "{2101, 0}";
sepNavVisRange = "{2098, 78}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* DubPlate.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1110, 1260}}";
sepNavSelRange = "{2743, 0}";
sepNavVisRange = "{621, 2184}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{9653, 2414}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* DubPlateProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {939, 3780}}";
sepNavSelRange = "{3809, 0}";
sepNavVisRange = "{3489, 1071}";
sepNavWindowFrame = "{{31, 42}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8B776E0B2D81B27F003A7177 /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "Unused variable 'chunkData'";
fRef = 2407DEB6089929BA00EB68BF /* DubPlate.cpp */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 1;
rLoc = 56;
rType = 1;
};
8B776E0C2D81B27F003A7177 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* DubPlate.cpp */;
name = "DubPlate.cpp: 57";
rLen = 0;
rLoc = 2101;
rType = 0;
vrLen = 78;
vrLoc = 2098;
};
8D01CCC60486CAD60068D4B7 /* DubPlate */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Sample.xcodeproj">
</FileRef>
</Workspace>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,143 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */;
codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
829,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
789,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 345089498;
PBXWorkspaceStateSaveDate = 345089498;
};
perUserProjectItems = {
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */;
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */;
};
sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Gain.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}";
sepNavSelRange = "{247, 0}";
sepNavVisRange = "{0, 1657}";
};
};
245463B80991757100464AD3 /* Gain.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 975}}";
sepNavSelRange = "{1552, 0}";
sepNavVisRange = "{796, 1857}";
sepNavWindowFrame = "{{15, 465}, {750, 558}}";
};
};
24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 488}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 798}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}";
sepNavSelRange = "{10641, 0}";
sepNavVisRange = "{10076, 1095}";
};
};
24D8286F09A914000093AEF8 /* GainProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 482}}";
sepNavSelRange = "{239, 0}";
sepNavVisRange = "{0, 950}";
};
};
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 493}}";
sepNavSelRange = "{249, 0}";
sepNavVisRange = "{0, 249}";
};
};
8D01CCC60486CAD60068D4B7 /* Gain */ = {
activeExec = 0;
};
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
name = "Gain.cpp: 10";
rLen = 0;
rLoc = 247;
rType = 0;
vrLen = 1657;
vrLoc = 0;
};
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
name = "Gain.cpp: 10";
rLen = 0;
rLoc = 247;
rType = 0;
vrLen = 1625;
vrLoc = 0;
};
91857D94148EF55400AAA11B /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
91857D95148EF55400AAA11B /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
}

View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "Gain"
ReferencedContainer = "container:Gain.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "Gain"
ReferencedContainer = "container:Gain.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "Gain"
ReferencedContainer = "container:Gain.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Gain.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>8</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>«PROJECTNAME».xcscheme</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "&#171;PROJECTNAME&#187;.vst"
BlueprintName = "&#171;PROJECTNAME&#187;"
ReferencedContainer = "container:Sample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>DubPlate</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.DubPlate</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

@ -0,0 +1 @@
BNDL????

View file

@ -0,0 +1,17 @@
#define MAC 1
#define MACX 1
#define USE_NAMESPACE 0
#define TARGET_API_MAC_CARBON 1
#define USENAVSERVICES 1
#define __CF_USE_FRAMEWORK_INCLUDES__
#if __MWERKS__
#define __NOEXTENSIONS__
#endif
#define QUARTZ 1
#include <AvailabilityMacros.h>

View file

@ -0,0 +1,91 @@
/* ========================================
* DubPlate - DubPlate.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#include "DubPlate.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new DubPlate(audioMaster);}
DubPlate::DubPlate(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
iirA = 0.0;
iirB = 0.0;
iirC = 0.0;
iirD = 0.0;
fpFlip = true;
lastSinewAL = 0.0;
lastSinewAR = 0.0;
lastSinewBL = 0.0;
lastSinewBR = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
DubPlate::~DubPlate() {}
VstInt32 DubPlate::getVendorVersion () {return 1000;}
void DubPlate::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void DubPlate::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!
VstInt32 DubPlate::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 DubPlate::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
return 0;
}
void DubPlate::setParameter(VstInt32 index, float value) {
}
float DubPlate::getParameter(VstInt32 index) {
return 0.0; //we only need to update the relevant name, this is simple to manage
}
void DubPlate::getParameterName(VstInt32 index, char *text) {
}
void DubPlate::getParameterDisplay(VstInt32 index, char *text) {
}
void DubPlate::getParameterLabel(VstInt32 index, char *text) {
}
VstInt32 DubPlate::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool DubPlate::getEffectName(char* name) {
vst_strncpy(name, "DubPlate", kVstMaxProductStrLen); return true;
}
VstPlugCategory DubPlate::getPlugCategory() {return kPlugCategEffect;}
bool DubPlate::getProductString(char* text) {
vst_strncpy (text, "airwindows DubPlate", kVstMaxProductStrLen); return true;
}
bool DubPlate::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,69 @@
/* ========================================
* DubPlate - DubPlate.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#define __DubPlate_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kNumParameters = 0
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'dplt'; //Change this to what the AU identity is!
class DubPlate :
public AudioEffectX
{
public:
DubPlate(audioMasterCallback audioMaster);
~DubPlate();
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;
double iirA;
double iirB; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one
double iirC; //we introduce the second pole at the same frequency, to become a pseudo-Capacitor behavior
double iirD; //then there's a Mid highpass.
bool fpFlip;
double lastSinewAL;
double lastSinewAR;
double lastSinewBL;
double lastSinewBR;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,196 @@
/* ========================================
* DubPlate - DubPlate.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#include "DubPlate.h"
#endif
void DubPlate::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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 DubPlate::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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++;
}
}

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,91 @@
/* ========================================
* DubPlate - DubPlate.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#include "DubPlate.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new DubPlate(audioMaster);}
DubPlate::DubPlate(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
iirA = 0.0;
iirB = 0.0;
iirC = 0.0;
iirD = 0.0;
fpFlip = true;
lastSinewAL = 0.0;
lastSinewAR = 0.0;
lastSinewBL = 0.0;
lastSinewBR = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
DubPlate::~DubPlate() {}
VstInt32 DubPlate::getVendorVersion () {return 1000;}
void DubPlate::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void DubPlate::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!
VstInt32 DubPlate::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 DubPlate::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
return 0;
}
void DubPlate::setParameter(VstInt32 index, float value) {
}
float DubPlate::getParameter(VstInt32 index) {
return 0.0; //we only need to update the relevant name, this is simple to manage
}
void DubPlate::getParameterName(VstInt32 index, char *text) {
}
void DubPlate::getParameterDisplay(VstInt32 index, char *text) {
}
void DubPlate::getParameterLabel(VstInt32 index, char *text) {
}
VstInt32 DubPlate::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool DubPlate::getEffectName(char* name) {
vst_strncpy(name, "DubPlate", kVstMaxProductStrLen); return true;
}
VstPlugCategory DubPlate::getPlugCategory() {return kPlugCategEffect;}
bool DubPlate::getProductString(char* text) {
vst_strncpy (text, "airwindows DubPlate", kVstMaxProductStrLen); return true;
}
bool DubPlate::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,69 @@
/* ========================================
* DubPlate - DubPlate.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#define __DubPlate_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kNumParameters = 0
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'dplt'; //Change this to what the AU identity is!
class DubPlate :
public AudioEffectX
{
public:
DubPlate(audioMasterCallback audioMaster);
~DubPlate();
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;
double iirA;
double iirB; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one
double iirC; //we introduce the second pole at the same frequency, to become a pseudo-Capacitor behavior
double iirD; //then there's a Mid highpass.
bool fpFlip;
double lastSinewAL;
double lastSinewAR;
double lastSinewBL;
double lastSinewBR;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,196 @@
/* ========================================
* DubPlate - DubPlate.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __DubPlate_H
#include "DubPlate.h"
#endif
void DubPlate::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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 DubPlate::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double rangescale = 0.1 / overallscale;
double iirSide = 0.287496 * rangescale;
double iirMid = 0.20123 * rangescale;
double threshSinewA = 0.15 / overallscale;
double threshSinewB = 0.127 / overallscale;
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 mid = inputSampleL + inputSampleR;
double side = inputSampleL - inputSampleR;
//assign mid and side.Between these sections, you can do mid/side processing
double temp = side;
double correction;
if (fpFlip) {
iirA = (iirA * (1.0 - iirSide)) + (temp * iirSide); temp -= iirA; correction = iirA;
} else {
iirB = (iirB * (1.0 - iirSide)) + (temp * iirSide); temp -= iirB; correction = iirB;
}
iirC = (iirC * (1.0 - iirSide)) + (temp * iirSide); temp -= iirC; correction += (iirC * 0.162);
side -= sin(correction);
fpFlip = !fpFlip;
iirD = (iirD * (1.0 - iirMid)) + (mid * iirMid);
mid -= sin(iirD);
//gonna cut those lows a hair
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
//unassign mid and side
temp = inputSampleL;
double sinew = threshSinewA * cos(lastSinewAL*lastSinewAL);
if (inputSampleL - lastSinewAL > sinew) temp = lastSinewAL + sinew;
if (-(inputSampleL - lastSinewAL) > sinew) temp = lastSinewAL - sinew;
lastSinewAL = temp;
inputSampleL = (inputSampleL * 0.5)+(lastSinewAL * 0.5);
sinew = threshSinewB * cos(lastSinewBL*lastSinewBL);
if (inputSampleL - lastSinewBL > sinew) temp = lastSinewBL + sinew;
if (-(inputSampleL - lastSinewBL) > sinew) temp = lastSinewBL - sinew;
lastSinewBL = temp;
inputSampleL = (inputSampleL * 0.414)+(lastSinewBL * 0.586);
temp = inputSampleR;
sinew = threshSinewA * cos(lastSinewAR*lastSinewAR);
if (inputSampleR - lastSinewAR > sinew) temp = lastSinewAR + sinew;
if (-(inputSampleR - lastSinewAR) > sinew) temp = lastSinewAR - sinew;
lastSinewAR = temp;
inputSampleR = (inputSampleR * 0.5)+(lastSinewAR * 0.5);
sinew = threshSinewB * cos(lastSinewBR*lastSinewBR);
if (inputSampleR - lastSinewBR > sinew) temp = lastSinewBR + sinew;
if (-(inputSampleR - lastSinewBR) > sinew) temp = lastSinewBR - sinew;
lastSinewBR = temp;
inputSampleR = (inputSampleR * 0.414)+(lastSinewBR * 0.586);
//run Sinew to stop excess slews, two layers to make it more audible
//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++;
}
}

View file

@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VSTProject", "VSTProject.vcxproj", "{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.ActiveCfg = Debug|x64
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.Build.0 = Debug|x64
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.ActiveCfg = Debug|Win32
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.Build.0 = Debug|Win32
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.ActiveCfg = Release|x64
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.Build.0 = Release|x64
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.ActiveCfg = Release|Win32
{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View file

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.cpp" />
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.cpp" />
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\vstplugmain.cpp" />
<ClCompile Include="DubPlate.cpp" />
<ClCompile Include="DubPlateProc.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\aeffeditor.h" />
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.h" />
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h" />
<ClInclude Include="DubPlate.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}</ProjectGuid>
<RootNamespace>VSTProject</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
<ProjectName>DubPlate64</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<FunctionLevelLinking>false</FunctionLevelLinking>
<DebugInformationFormat>None</DebugInformationFormat>
</ClCompile>
<Link>
<ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
<IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<FunctionLevelLinking>false</FunctionLevelLinking>
<DebugInformationFormat>None</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>false</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>None</DebugInformationFormat>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<AdditionalDependencies>libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>false</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>None</DebugInformationFormat>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<AdditionalDependencies>libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\vstplugmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DubPlate.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DubPlateProc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\aeffeditor.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DubPlate.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>

View file

@ -0,0 +1,3 @@
EXPORTS
VSTPluginMain
main=VSTPluginMain

View file

@ -151,6 +151,7 @@ DubCenter is a version of DubSub where the bass reinforcement is purely mono.[co
Dubly is a retro vibe and atmosphere maker.[coll=] Dubly is a retro vibe and atmosphere maker.[coll=]
Dubly2 is a key part of seventies sonics![coll=] Dubly2 is a key part of seventies sonics![coll=]
Dubly3 refines and transforms the Dubly sound.[coll=Recommended,Latest] Dubly3 refines and transforms the Dubly sound.[coll=Recommended,Latest]
DubPlate is like a busy mastering house for electronic music.[coll=Basic,Recommended,Latest]
DubSub is a fully featured bass doctor.[coll=] DubSub is a fully featured bass doctor.[coll=]
DubSub2 is the essence of the Airwindows head bump.[coll=Recommended, Latest] DubSub2 is the essence of the Airwindows head bump.[coll=Recommended, Latest]
DustBunny is unpredictable distorty noise, like dust wedged under your turntable needle.[coll=Latest] DustBunny is unpredictable distorty noise, like dust wedged under your turntable needle.[coll=Latest]