Signed AU XLowpass

This commit is contained in:
Christopher Johnson 2021-05-23 18:06:05 -04:00
parent 1a6634c307
commit 50e813d894
4427 changed files with 1517866 additions and 0 deletions

View file

@ -0,0 +1,61 @@
Making ARM VSTs from retro VST project: This workflow involves buying a bunch of things just to make the process bearable. You have to have an Apple Developer account for $99 a year to be able to code sign things, and I'm using DropDMG for making signed DMGs and SD Notary for sending them to Apple. There are also Terminal methods for doing these things.
To start, copy VST folder over to new location to be worked on.
XCODE: Delete folders in red: vstsdk2.4, the entire External Frameworks and Libraries
Drag in vstsdk2.4 as present on the desktop. The folders inside it are pluginterfaces/vst2.x, and public.sdk/source/vst2.x and not any of the other stuff (such as examples, HTML, other xcode projects etc)
In choose options, don't copy items but Added folders: Create groups. This will cause the added folders to show up in yellow, and work properly.
SCHEME: Autocreate Schemes: Autocreate a scheme and get rid of the one that's there for Gain.
Any Mac. Run section, Info: Build Configuration should be Release
PROJECT:
Info: set MacOS Deployment Target to 11.1
Build Settings (All)
Architectures: Standard Architectures (Apple Silicon, Intel)
Base SDK: macOS
Build Active Architecture Only: Yes
Search Paths, Always Search User Paths: No
TARGETS:
Build Settings (All)
Architectures: Standard Architectures (Apple Silicon, Intel)
Base SDK: macOS
Deployment:
Installation Directory, $(HOME)/Library/Audio/Plug-Ins/VST
Strip Style, Debugging Symbols
macOS Deployment Target, macOS 11.1
Packaging: Product Name, make all versions be the plugin name
Search Paths, Header Search Paths: /Users/christopherjohnson/Desktop/vstsdk2.4/**
User-Defined: GCC_MODEL_TUNING, remove entries
Build Phases: Delete Build Carbon Resources
Build.
in Build Warnings, under Validate Project Settings: Update to recommended (will override manual signing)
Also walk through the localizations, letting XCode take care of those too
Signing & Capabilities: Manual
Team, Christopher Johnson (use your own Developer ID here, not mine)
Signing Certificate, Developer ID Application (it will include your ID as part of this)
Note that this is not correct for any other sort of coding! If you're coding an application, 'Automatic' will do the right thing. It's said that using 'Automatic' even for these Audio Units, and then using Terminal to replace the signing with the 'Developer ID Application' signing. The reason I'm specifying Manual here, is that this can produce a workflow that can use third-party drag and drop utilities and send a correctly signed Audio Unit in a .dmg to Apple's servers.
Again, for normal development 'Automatic' will give you the best results, and it's recommended by Apple even for this case, but the true goal isn't to do it the exact way Apple would do it (with no third party utilities), it's to connect to the exact SYSTEM that Apple's put in place. Think of it like using a third party mastering engineer: all this isn't to be a burden on you, it's strictly about running all the code through Apple's security auditing and if you do that, the user experience is seamless. If you have to tell people to run things in Terminal or work around the system, then you have not truly mastered the system :)
Product Menu: Archive
Click 'Distribute Content'
Export Built Products (return)
to Distribute folder (return)
Once I've done this, I'll have a Distribute folder (on my desktop, which I selected) with HUGE stacks of folders inside it. Deep in subfolders is the signed .component files. What I'll do to get them out is use the Terminal and run DropDMG on the command line. It, too, is able to code sign stuff and I'll ask to do that using a Developer ID Application code signing thingy (it defaults to using this)
cd /Users/christopherjohnson/Desktop/Distribute
find . -name "*.vst" -exec dropdmg --config-name "airwindows" "{}" \;
I can also copy stuff into another folder to make a .dmg with all the contents in it, by dragging the resulting folder onto DropDMG:
find . -name "*.vst" -exec cp -r "{}" /Users/christopherjohnson/Desktop/SignedVSTs \;
But of course this is not enough, so we'll try to do yet another helper program to talk to Apple, this time using the resulting .dmg files we made. SD Notary from Late Night Software is what I'm using. It's basically a wrapper for the (free) Apple program, codesign (plus some other free Apple command line programs to be used)
What we do there is, we run SD Notary with my Developer ID signing identity. AppleID is mine. I make an app-specific password for SD Notary, naming it 'Airwindows Plugins' and copying the actual password into my Keychain, which SD Notary is able to use. I also tell it 'when submitting, create and staple disk image'.

View file

@ -789,6 +789,7 @@
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_TEAM = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = Infinity2.exp;
GCC_OPTIMIZATION_LEVEL = 0;
@ -801,6 +802,7 @@
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = Infinity2;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
STRIP_STYLE = debugging;
WRAPPER_EXTENSION = component;
@ -813,6 +815,7 @@
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_TEAM = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = Infinity2.exp;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
@ -825,6 +828,7 @@
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = Infinity2;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = debugging;

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>xlop</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

@ -0,0 +1,312 @@
/*
* File: XLowpass.cpp
*
* Version: 1.0
*
* Created: 5/1/21
*
* Copyright: Copyright © 2021 Airwindows, All Rights Reserved
*
* 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.
*
*/
/*=============================================================================
XLowpass.cpp
=============================================================================*/
#include "XLowpass.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, XLowpass)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// XLowpass::XLowpass
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XLowpass::XLowpass(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_One, kDefaultValue_ParamOne );
SetParameter(kParam_Two, kDefaultValue_ParamTwo );
SetParameter(kParam_Three, kDefaultValue_ParamThree );
SetParameter(kParam_Four, kDefaultValue_ParamFour );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// XLowpass::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult XLowpass::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// XLowpass::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult XLowpass::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_One:
AUBase::FillInParameterName (outParameterInfo, kParameterOneName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamOne;
break;
case kParam_Two:
AUBase::FillInParameterName (outParameterInfo, kParameterTwoName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamTwo;
break;
case kParam_Three:
AUBase::FillInParameterName (outParameterInfo, kParameterThreeName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamThree;
break;
case kParam_Four:
AUBase::FillInParameterName (outParameterInfo, kParameterFourName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamFour;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// XLowpass::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult XLowpass::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// XLowpass::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult XLowpass::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// XLowpass::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult XLowpass::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____XLowpassEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// XLowpass::XLowpassKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void XLowpass::XLowpassKernel::Reset()
{
for (int x = 0; x < 11; x++) {biquad[x] = 0.0; biquadA[x] = 0.0; biquadB[x] = 0.0; biquadC[x] = 0.0; biquadD[x] = 0.0;}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// XLowpass::XLowpassKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void XLowpass::XLowpassKernel::Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence )
{
UInt32 nSampleFrames = inFramesToProcess;
const Float32 *sourceP = inSourceP;
Float32 *destP = inDestP;
Float64 gain = pow(GetParameter( kParam_One )+0.5,4);
biquadA[0] = (pow(GetParameter( kParam_Two ),2)*20000.0)/GetSampleRate();
if (biquadA[0] < 0.001) biquadA[0] = 0.001;
Float64 compensation = sqrt(biquadA[0])*6.4;
Float64 clipFactor = 1.0+(biquadA[0]*biquadA[0]*GetParameter( kParam_Three )*32.0);
double K = tan(M_PI * biquadA[0]);
double norm = 1.0 / (1.0 + K / 0.7071 + K * K);
biquadA[2] = K * K * norm;
biquadA[3] = 2.0 * biquadA[2];
biquadA[4] = biquadA[2];
biquadA[5] = 2.0 * (K * K - 1.0) * norm;
biquadA[6] = (1.0 - K / 0.7071 + K * K) * norm;
for (int x = 0; x < 7; x++) {biquad[x] = biquadD[x] = biquadC[x] = biquadB[x] = biquadA[x];}
Float64 aWet = 1.0;
Float64 bWet = 1.0;
Float64 cWet = 1.0;
Float64 dWet = GetParameter( kParam_Three )*4.0;
Float64 wet = GetParameter( kParam_Four );
//four-stage wet/dry control using progressive stages that bypass when not engaged
if (dWet < 1.0) {aWet = dWet; bWet = 0.0; cWet = 0.0; dWet = 0.0;}
else if (dWet < 2.0) {bWet = dWet - 1.0; cWet = 0.0; dWet = 0.0;}
else if (dWet < 3.0) {cWet = dWet - 2.0; dWet = 0.0;}
else {dWet -= 3.0;}
//this is one way to make a little set of dry/wet stages that are successively added to the
//output as the control is turned up. Each one independently goes from 0-1 and stays at 1
//beyond that point: this is a way to progressively add a 'black box' sound processing
//which lets you fall through to simpler processing at lower settings.
long double outSample = 0.0;
while (nSampleFrames-- > 0) {
long double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-37) inputSample = fpd * 1.18e-37;
long double drySample = inputSample;
if (gain != 1.0) {
inputSample *= gain;
}
long double nukeLevel = inputSample;
outSample = biquad[2]*inputSample+biquad[3]*biquad[7]+biquad[4]*biquad[8]-biquad[5]*biquad[9]-biquad[6]*biquad[10];
biquad[8] = biquad[7]; biquad[7] = inputSample; biquad[10] = biquad[9];
outSample *= clipFactor;
if (outSample > 1.57079633) outSample = 1.57079633;
if (outSample < -1.57079633) outSample = -1.57079633;
biquad[9] = sin(outSample); //DF1
inputSample = outSample / compensation; nukeLevel = inputSample;
if (aWet > 0.0) {
outSample = biquadA[2]*inputSample+biquadA[3]*biquadA[7]+biquadA[4]*biquadA[8]-biquadA[5]*biquadA[9]-biquadA[6]*biquadA[10];
biquadA[8] = biquadA[7]; biquadA[7] = inputSample; biquadA[10] = biquadA[9];
outSample *= clipFactor;
if (outSample > 1.57079633) outSample = 1.57079633;
if (outSample < -1.57079633) outSample = -1.57079633;
biquadA[9] = sin(outSample); //DF1
inputSample = outSample / compensation; inputSample = (inputSample * aWet) + (nukeLevel * (1.0-aWet));
nukeLevel = inputSample;
}
if (bWet > 0.0) {
outSample = biquadB[2]*inputSample+biquadB[3]*biquadB[7]+biquadB[4]*biquadB[8]-biquadB[5]*biquadB[9]-biquadB[6]*biquadB[10];
biquadB[8] = biquadB[7]; biquadB[7] = inputSample; biquadB[10] = biquadB[9];
outSample *= clipFactor;
if (outSample > 1.57079633) outSample = 1.57079633;
if (outSample < -1.57079633) outSample = -1.57079633;
biquadB[9] = sin(outSample); //DF1
inputSample = outSample / compensation; inputSample = (inputSample * bWet) + (nukeLevel * (1.0-bWet));
nukeLevel = inputSample;
}
if (cWet > 0.0) {
outSample = biquadC[2]*inputSample+biquadC[3]*biquadC[7]+biquadC[4]*biquadC[8]-biquadC[5]*biquadC[9]-biquadC[6]*biquadC[10];
biquadC[8] = biquadC[7]; biquadC[7] = inputSample; biquadC[10] = biquadC[9];
outSample *= clipFactor;
if (outSample > 1.57079633) outSample = 1.57079633;
if (outSample < -1.57079633) outSample = -1.57079633;
biquadC[9] = sin(outSample); //DF1
inputSample = outSample / compensation; inputSample = (inputSample * cWet) + (nukeLevel * (1.0-cWet));
nukeLevel = inputSample;
}
if (dWet > 0.0) {
outSample = biquadD[2]*inputSample+biquadD[3]*biquadD[7]+biquadD[4]*biquadD[8]-biquadD[5]*biquadD[9]-biquadD[6]*biquadD[10];
biquadD[8] = biquadD[7]; biquadD[7] = inputSample; biquadD[10] = biquadD[9];
outSample *= clipFactor;
if (outSample > 1.57079633) outSample = 1.57079633;
if (outSample < -1.57079633) outSample = -1.57079633;
biquadD[9] = sin(outSample); //DF1
inputSample = outSample / compensation; inputSample = (inputSample * dWet) + (nukeLevel * (1.0-dWet));
nukeLevel = inputSample;
}
if (wet < 1.0) {
inputSample = (drySample * (1.0-wet))+(inputSample * wet);
}
//begin 32 bit floating point dither
int expon; frexpf((float)inputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSample;
sourceP += inNumChannels; destP += inNumChannels;
}
}

View file

@ -0,0 +1,2 @@
_XLowpassEntry
_XLowpassFactory

View file

@ -0,0 +1,149 @@
/*
* File: XLowpass.h
*
* Version: 1.0
*
* Created: 5/1/21
*
* Copyright: Copyright © 2021 Airwindows, All Rights Reserved
*
* 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 "XLowpassVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __XLowpass_h__
#define __XLowpass_h__
#pragma mark ____XLowpass Parameters
// parameters
static const float kDefaultValue_ParamOne = 0.5;
static const float kDefaultValue_ParamTwo = 1.0;
static const float kDefaultValue_ParamThree = 0.0;
static const float kDefaultValue_ParamFour = 1.0;
static CFStringRef kParameterOneName = CFSTR("Gain");
static CFStringRef kParameterTwoName = CFSTR("Freq");
static CFStringRef kParameterThreeName = CFSTR("Nuke");
static CFStringRef kParameterFourName = CFSTR("Dry/Wet");
//Alter the name if desired, but using the plugin name is a start
enum {
kParam_One =0,
kParam_Two =1,
kParam_Three =2,
kParam_Four =3,
//Add your parameters here...
kNumberOfParameters=4
};
#pragma mark ____XLowpass
class XLowpass : public AUEffectBase
{
public:
XLowpass(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~XLowpass () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new XLowpassKernel(this); }
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings);
virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo);
virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable );
virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData);
virtual ComponentResult Initialize();
virtual bool SupportsTail () { return true; }
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
/*! @method Version */
virtual ComponentResult Version() { return kXLowpassVersion; }
protected:
class XLowpassKernel : public AUKernelBase // most of the real work happens here
{
public:
XLowpassKernel(AUEffectBase *inAudioUnit )
: AUKernelBase(inAudioUnit)
{
}
// *Required* overides for the process method for this effect
// processes one channel of interleaved samples
virtual void Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence);
virtual void Reset();
private:
long double biquad[11];
long double biquadA[11];
long double biquadB[11];
long double biquadC[11];
long double biquadD[11];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: XLowpass.r
*
* Version: 1.0
*
* Created: 5/1/21
*
* Copyright: Copyright © 2021 Airwindows, All Rights Reserved
*
* 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 "XLowpassVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_XLowpass 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ XLowpass~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_XLowpass
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE XLowpass_COMP_SUBTYPE
#define COMP_MANUF XLowpass_COMP_MANF
#define VERSION kXLowpassVersion
#define NAME "Airwindows: XLowpass"
#define DESCRIPTION "XLowpass AU"
#define ENTRY_POINT "XLowpassEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,148 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* XLowpass */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
292,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
252,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 643493503;
PBXWorkspaceStateSaveDate = 643493503;
};
perUserProjectItems = {
8B24C13C265AEE980001BDE4 /* PBXTextBookmark */ = 8B24C13C265AEE980001BDE4 /* PBXTextBookmark */;
8B24C13D265AEE980001BDE4 /* PBXTextBookmark */ = 8B24C13D265AEE980001BDE4 /* PBXTextBookmark */;
8B7FF39F265726E100EA6425 /* PlistBookmark */ = 8B7FF39F265726E100EA6425 /* PlistBookmark */;
8B7FF3E826572BCB00EA6425 /* PBXTextBookmark */ = 8B7FF3E826572BCB00EA6425 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B24C13C265AEE980001BDE4 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* XLowpass.cpp */;
name = "XLowpass.cpp: 294";
rLen = 0;
rLoc = 13744;
rType = 0;
vrLen = 91;
vrLoc = 11056;
};
8B24C13D265AEE980001BDE4 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* XLowpass.cpp */;
name = "XLowpass.cpp: 294";
rLen = 0;
rLoc = 13744;
rType = 0;
vrLen = 91;
vrLoc = 11056;
};
8B7FF39F265726E100EA6425 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/XLowpass/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B7FF3E826572BCB00EA6425 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* XLowpass.h */;
name = "XLowpass.h: 68";
rLen = 0;
rLoc = 3428;
rType = 0;
vrLen = 413;
vrLoc = 4203;
};
8BA05A660720730100365D66 /* XLowpass.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1119, 5796}}";
sepNavSelRange = "{13744, 0}";
sepNavVisRange = "{11056, 91}";
sepNavWindowFrame = "{{434, 58}, {984, 820}}";
};
};
8BA05A690720730100365D66 /* XLowpassVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2886, 0}";
sepNavVisRange = "{953, 1996}";
sepNavWindowFrame = "{{15, 60}, {1057, 813}}";
};
};
8BC6025B073B072D006C4272 /* XLowpass.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 2682}}";
sepNavSelRange = "{5420, 0}";
sepNavVisRange = "{1887, 1437}";
sepNavWindowFrame = "{{383, 65}, {1057, 813}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* XLowpass */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,957 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
8BA05A6B0720730100365D66 /* XLowpass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* XLowpass.cpp */; };
8BA05A6E0720730100365D66 /* XLowpassVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* XLowpassVersion.h */; };
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
8BC6025C073B072D006C4272 /* XLowpass.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* XLowpass.h */; };
8BCAD1CD265AFEED00FF0F4C /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD145265AFEED00FF0F4C /* CAExtAudioFile.h */; };
8BCAD1CE265AFEED00FF0F4C /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD146265AFEED00FF0F4C /* CACFMachPort.h */; };
8BCAD1CF265AFEED00FF0F4C /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD147265AFEED00FF0F4C /* CABool.h */; };
8BCAD1D0265AFEED00FF0F4C /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD148265AFEED00FF0F4C /* CAComponent.cpp */; };
8BCAD1D1265AFEED00FF0F4C /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD149265AFEED00FF0F4C /* CADebugger.h */; };
8BCAD1D2265AFEED00FF0F4C /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD14A265AFEED00FF0F4C /* CACFNumber.cpp */; };
8BCAD1D3265AFEED00FF0F4C /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD14B265AFEED00FF0F4C /* CAGuard.h */; };
8BCAD1D4265AFEED00FF0F4C /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD14C265AFEED00FF0F4C /* CAAtomic.h */; };
8BCAD1D5265AFEED00FF0F4C /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD14D265AFEED00FF0F4C /* CAStreamBasicDescription.h */; };
8BCAD1D6265AFEED00FF0F4C /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD14E265AFEED00FF0F4C /* CACFObject.h */; };
8BCAD1D7265AFEED00FF0F4C /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD14F265AFEED00FF0F4C /* CAStreamRangedDescription.h */; };
8BCAD1D8265AFEED00FF0F4C /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD150265AFEED00FF0F4C /* CATokenMap.h */; };
8BCAD1D9265AFEED00FF0F4C /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD151265AFEED00FF0F4C /* CAComponent.h */; };
8BCAD1DA265AFEED00FF0F4C /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD152265AFEED00FF0F4C /* CAAudioBufferList.h */; };
8BCAD1DB265AFEED00FF0F4C /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD153265AFEED00FF0F4C /* CAAudioUnit.h */; };
8BCAD1DC265AFEED00FF0F4C /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD154265AFEED00FF0F4C /* CAAUParameter.h */; };
8BCAD1DD265AFEED00FF0F4C /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD155265AFEED00FF0F4C /* CAException.h */; };
8BCAD1DE265AFEED00FF0F4C /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD156265AFEED00FF0F4C /* CAAUProcessor.cpp */; };
8BCAD1DF265AFEED00FF0F4C /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD157265AFEED00FF0F4C /* CAAUProcessor.h */; };
8BCAD1E0265AFEED00FF0F4C /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD158265AFEED00FF0F4C /* CAProcess.h */; };
8BCAD1E1265AFEED00FF0F4C /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD159265AFEED00FF0F4C /* CACFDictionary.h */; };
8BCAD1E2265AFEED00FF0F4C /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD15A265AFEED00FF0F4C /* CAPThread.h */; };
8BCAD1E3265AFEED00FF0F4C /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD15B265AFEED00FF0F4C /* CAAUParameter.cpp */; };
8BCAD1E4265AFEED00FF0F4C /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD15C265AFEED00FF0F4C /* CAAudioTimeStamp.h */; };
8BCAD1E5265AFEED00FF0F4C /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD15D265AFEED00FF0F4C /* CAFilePathUtils.cpp */; };
8BCAD1E6265AFEED00FF0F4C /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD15E265AFEED00FF0F4C /* CAAudioValueRange.h */; };
8BCAD1E7265AFEED00FF0F4C /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD15F265AFEED00FF0F4C /* CAVectorUnitTypes.h */; };
8BCAD1E8265AFEED00FF0F4C /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD160265AFEED00FF0F4C /* CAAudioChannelLayoutObject.cpp */; };
8BCAD1E9265AFEED00FF0F4C /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD161265AFEED00FF0F4C /* CAGuard.cpp */; };
8BCAD1EA265AFEED00FF0F4C /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD162265AFEED00FF0F4C /* CACFNumber.h */; };
8BCAD1EB265AFEED00FF0F4C /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD163265AFEED00FF0F4C /* CACFDistributedNotification.cpp */; };
8BCAD1EC265AFEED00FF0F4C /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD164265AFEED00FF0F4C /* CACFString.h */; };
8BCAD1ED265AFEED00FF0F4C /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD165265AFEED00FF0F4C /* CAAUMIDIMapManager.cpp */; };
8BCAD1EE265AFEED00FF0F4C /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD166265AFEED00FF0F4C /* CAComponentDescription.cpp */; };
8BCAD1EF265AFEED00FF0F4C /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD167265AFEED00FF0F4C /* CAHostTimeBase.h */; };
8BCAD1F0265AFEED00FF0F4C /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD168265AFEED00FF0F4C /* CADebugMacros.cpp */; };
8BCAD1F1265AFEED00FF0F4C /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD169265AFEED00FF0F4C /* CAAudioFileFormats.h */; };
8BCAD1F2265AFEED00FF0F4C /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD16A265AFEED00FF0F4C /* CAAUMIDIMapManager.h */; };
8BCAD1F3265AFEED00FF0F4C /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD16B265AFEED00FF0F4C /* CACFDictionary.cpp */; };
8BCAD1F4265AFEED00FF0F4C /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD16C265AFEED00FF0F4C /* CAMutex.h */; };
8BCAD1F5265AFEED00FF0F4C /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD16D265AFEED00FF0F4C /* CACFString.cpp */; };
8BCAD1F6265AFEED00FF0F4C /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD16E265AFEED00FF0F4C /* CASettingsStorage.h */; };
8BCAD1F7265AFEED00FF0F4C /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD16F265AFEED00FF0F4C /* CADebugPrintf.h */; };
8BCAD1F8265AFEED00FF0F4C /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD170265AFEED00FF0F4C /* CAXException.cpp */; };
8BCAD1F9265AFEED00FF0F4C /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD171265AFEED00FF0F4C /* CAAUMIDIMap.h */; };
8BCAD1FA265AFEED00FF0F4C /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD172265AFEED00FF0F4C /* AUParamInfo.h */; };
8BCAD1FB265AFEED00FF0F4C /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD173265AFEED00FF0F4C /* CABitOperations.h */; };
8BCAD1FC265AFEED00FF0F4C /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD174265AFEED00FF0F4C /* CACFPreferences.cpp */; };
8BCAD1FD265AFEED00FF0F4C /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD175265AFEED00FF0F4C /* CABundleLocker.h */; };
8BCAD1FE265AFEED00FF0F4C /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD176265AFEED00FF0F4C /* CAPropertyAddress.h */; };
8BCAD1FF265AFEED00FF0F4C /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD177265AFEED00FF0F4C /* CAXException.h */; };
8BCAD200265AFEED00FF0F4C /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD178265AFEED00FF0F4C /* CAAudioChannelLayout.cpp */; };
8BCAD201265AFEED00FF0F4C /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD179265AFEED00FF0F4C /* CAThreadSafeList.h */; };
8BCAD202265AFEED00FF0F4C /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD17A265AFEED00FF0F4C /* CAAudioUnitOutputCapturer.h */; };
8BCAD203265AFEED00FF0F4C /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD17B265AFEED00FF0F4C /* AUParamInfo.cpp */; };
8BCAD204265AFEED00FF0F4C /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD17C265AFEED00FF0F4C /* CASharedLibrary.cpp */; };
8BCAD205265AFEED00FF0F4C /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD17D265AFEED00FF0F4C /* CAAUMIDIMap.cpp */; };
8BCAD206265AFEED00FF0F4C /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD17E265AFEED00FF0F4C /* CALogMacros.h */; };
8BCAD207265AFEED00FF0F4C /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD17F265AFEED00FF0F4C /* CACFMessagePort.cpp */; };
8BCAD208265AFEED00FF0F4C /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD180265AFEED00FF0F4C /* CARingBuffer.h */; };
8BCAD209265AFEED00FF0F4C /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD181265AFEED00FF0F4C /* AUOutputBL.cpp */; };
8BCAD20A265AFEED00FF0F4C /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD182265AFEED00FF0F4C /* CABufferList.h */; };
8BCAD20B265AFEED00FF0F4C /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD183265AFEED00FF0F4C /* CASharedLibrary.h */; };
8BCAD20C265AFEED00FF0F4C /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD184265AFEED00FF0F4C /* CACFData.h */; };
8BCAD20D265AFEED00FF0F4C /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD185265AFEED00FF0F4C /* CAStreamRangedDescription.cpp */; };
8BCAD20E265AFEED00FF0F4C /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD186265AFEED00FF0F4C /* CAPThread.cpp */; };
8BCAD20F265AFEED00FF0F4C /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD187265AFEED00FF0F4C /* CAAutoDisposer.h */; };
8BCAD210265AFEED00FF0F4C /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD188265AFEED00FF0F4C /* CACFPreferences.h */; };
8BCAD211265AFEED00FF0F4C /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD189265AFEED00FF0F4C /* CAVectorUnit.cpp */; };
8BCAD212265AFEED00FF0F4C /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD18A265AFEED00FF0F4C /* CAComponentDescription.h */; };
8BCAD213265AFEED00FF0F4C /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD18B265AFEED00FF0F4C /* CADebugMacros.h */; };
8BCAD214265AFEED00FF0F4C /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD18C265AFEED00FF0F4C /* AUOutputBL.h */; };
8BCAD215265AFEED00FF0F4C /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD18D265AFEED00FF0F4C /* CADebugPrintf.cpp */; };
8BCAD216265AFEED00FF0F4C /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD18E265AFEED00FF0F4C /* CARingBuffer.cpp */; };
8BCAD217265AFEED00FF0F4C /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD18F265AFEED00FF0F4C /* CACFPlugIn.h */; };
8BCAD218265AFEED00FF0F4C /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD190265AFEED00FF0F4C /* CASettingsStorage.cpp */; };
8BCAD219265AFEED00FF0F4C /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD191265AFEED00FF0F4C /* CAMixMap.h */; };
8BCAD21A265AFEED00FF0F4C /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD192265AFEED00FF0F4C /* CACFDistributedNotification.h */; };
8BCAD21B265AFEED00FF0F4C /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD193265AFEED00FF0F4C /* CAFilePathUtils.h */; };
8BCAD21C265AFEED00FF0F4C /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD194265AFEED00FF0F4C /* CATink.h */; };
8BCAD21D265AFEED00FF0F4C /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD195265AFEED00FF0F4C /* CAStreamBasicDescription.cpp */; };
8BCAD21E265AFEED00FF0F4C /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD196265AFEED00FF0F4C /* CAAudioChannelLayout.h */; };
8BCAD21F265AFEED00FF0F4C /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD197265AFEED00FF0F4C /* CAProcess.cpp */; };
8BCAD220265AFEED00FF0F4C /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD198265AFEED00FF0F4C /* CAHostTimeBase.cpp */; };
8BCAD221265AFEED00FF0F4C /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD199265AFEED00FF0F4C /* CAPersistence.cpp */; };
8BCAD222265AFEED00FF0F4C /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD19A265AFEED00FF0F4C /* CAAudioBufferList.cpp */; };
8BCAD223265AFEED00FF0F4C /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD19B265AFEED00FF0F4C /* CAAudioTimeStamp.cpp */; };
8BCAD224265AFEED00FF0F4C /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD19C265AFEED00FF0F4C /* CAVectorUnit.h */; };
8BCAD225265AFEED00FF0F4C /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD19D265AFEED00FF0F4C /* CAByteOrder.h */; };
8BCAD226265AFEED00FF0F4C /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD19E265AFEED00FF0F4C /* CACFArray.h */; };
8BCAD227265AFEED00FF0F4C /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD19F265AFEED00FF0F4C /* CAAtomicStack.h */; };
8BCAD228265AFEED00FF0F4C /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1A0265AFEED00FF0F4C /* CAReferenceCounted.h */; };
8BCAD229265AFEED00FF0F4C /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1A1265AFEED00FF0F4C /* CACFMachPort.cpp */; };
8BCAD22A265AFEED00FF0F4C /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1A2265AFEED00FF0F4C /* CABufferList.cpp */; };
8BCAD22B265AFEED00FF0F4C /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1A3265AFEED00FF0F4C /* CAMutex.cpp */; };
8BCAD22C265AFEED00FF0F4C /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1A4265AFEED00FF0F4C /* CADebugger.cpp */; };
8BCAD22D265AFEED00FF0F4C /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1A5265AFEED00FF0F4C /* CABundleLocker.cpp */; };
8BCAD22E265AFEED00FF0F4C /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1A6265AFEED00FF0F4C /* CAAudioFileFormats.cpp */; };
8BCAD22F265AFEED00FF0F4C /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1A7265AFEED00FF0F4C /* CAMath.h */; };
8BCAD230265AFEED00FF0F4C /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1A8265AFEED00FF0F4C /* CACFArray.cpp */; };
8BCAD231265AFEED00FF0F4C /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1A9265AFEED00FF0F4C /* CACFMessagePort.h */; };
8BCAD232265AFEED00FF0F4C /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1AA265AFEED00FF0F4C /* CAAudioValueRange.cpp */; };
8BCAD233265AFEED00FF0F4C /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1AB265AFEED00FF0F4C /* CAAudioUnit.cpp */; };
8BCAD234265AFEED00FF0F4C /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1AF265AFEED00FF0F4C /* AUViewLocalizedStringKeys.h */; };
8BCAD235265AFEED00FF0F4C /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1B1265AFEED00FF0F4C /* ComponentBase.cpp */; };
8BCAD236265AFEED00FF0F4C /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1B2265AFEED00FF0F4C /* AUScopeElement.cpp */; };
8BCAD237265AFEED00FF0F4C /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1B3265AFEED00FF0F4C /* ComponentBase.h */; };
8BCAD238265AFEED00FF0F4C /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1B4265AFEED00FF0F4C /* AUBase.cpp */; };
8BCAD239265AFEED00FF0F4C /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1B5265AFEED00FF0F4C /* AUInputElement.h */; };
8BCAD23A265AFEED00FF0F4C /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1B6265AFEED00FF0F4C /* AUBase.h */; };
8BCAD23B265AFEED00FF0F4C /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1B7265AFEED00FF0F4C /* AUPlugInDispatch.h */; };
8BCAD23C265AFEED00FF0F4C /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1B8265AFEED00FF0F4C /* AUDispatch.h */; };
8BCAD23D265AFEED00FF0F4C /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1B9265AFEED00FF0F4C /* AUOutputElement.cpp */; };
8BCAD23F265AFEED00FF0F4C /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1BB265AFEED00FF0F4C /* AUPlugInDispatch.cpp */; };
8BCAD240265AFEED00FF0F4C /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1BC265AFEED00FF0F4C /* AUOutputElement.h */; };
8BCAD241265AFEED00FF0F4C /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1BD265AFEED00FF0F4C /* AUDispatch.cpp */; };
8BCAD242265AFEED00FF0F4C /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1BE265AFEED00FF0F4C /* AUScopeElement.h */; };
8BCAD243265AFEED00FF0F4C /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1BF265AFEED00FF0F4C /* AUInputElement.cpp */; };
8BCAD244265AFEED00FF0F4C /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1C1265AFEED00FF0F4C /* AUEffectBase.cpp */; };
8BCAD245265AFEED00FF0F4C /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1C2265AFEED00FF0F4C /* AUEffectBase.h */; };
8BCAD246265AFEED00FF0F4C /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1C4265AFEED00FF0F4C /* AUTimestampGenerator.h */; };
8BCAD247265AFEED00FF0F4C /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1C5265AFEED00FF0F4C /* AUBaseHelper.cpp */; };
8BCAD248265AFEED00FF0F4C /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1C6265AFEED00FF0F4C /* AUSilentTimeout.h */; };
8BCAD249265AFEED00FF0F4C /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1C7265AFEED00FF0F4C /* AUInputFormatConverter.h */; };
8BCAD24A265AFEED00FF0F4C /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1C8265AFEED00FF0F4C /* AUTimestampGenerator.cpp */; };
8BCAD24B265AFEED00FF0F4C /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCAD1C9265AFEED00FF0F4C /* AUBuffer.cpp */; };
8BCAD24C265AFEED00FF0F4C /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1CA265AFEED00FF0F4C /* AUMIDIDefs.h */; };
8BCAD24D265AFEED00FF0F4C /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1CB265AFEED00FF0F4C /* AUBuffer.h */; };
8BCAD24E265AFEED00FF0F4C /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCAD1CC265AFEED00FF0F4C /* AUBaseHelper.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>"; };
8B7AB585265B02CC00E9C935 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8BA05A660720730100365D66 /* XLowpass.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = XLowpass.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* XLowpass.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = XLowpass.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* XLowpass.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = XLowpass.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* XLowpassVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XLowpassVersion.h; sourceTree = "<group>"; };
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
8BC6025B073B072D006C4272 /* XLowpass.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XLowpass.h; sourceTree = "<group>"; };
8BCAD145265AFEED00FF0F4C /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8BCAD146265AFEED00FF0F4C /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8BCAD147265AFEED00FF0F4C /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8BCAD148265AFEED00FF0F4C /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8BCAD149265AFEED00FF0F4C /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8BCAD14A265AFEED00FF0F4C /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8BCAD14B265AFEED00FF0F4C /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8BCAD14C265AFEED00FF0F4C /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8BCAD14D265AFEED00FF0F4C /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8BCAD14E265AFEED00FF0F4C /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8BCAD14F265AFEED00FF0F4C /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8BCAD150265AFEED00FF0F4C /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8BCAD151265AFEED00FF0F4C /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8BCAD152265AFEED00FF0F4C /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8BCAD153265AFEED00FF0F4C /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8BCAD154265AFEED00FF0F4C /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8BCAD155265AFEED00FF0F4C /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8BCAD156265AFEED00FF0F4C /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8BCAD157265AFEED00FF0F4C /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8BCAD158265AFEED00FF0F4C /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8BCAD159265AFEED00FF0F4C /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8BCAD15A265AFEED00FF0F4C /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8BCAD15B265AFEED00FF0F4C /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8BCAD15C265AFEED00FF0F4C /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8BCAD15D265AFEED00FF0F4C /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8BCAD15E265AFEED00FF0F4C /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8BCAD15F265AFEED00FF0F4C /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8BCAD160265AFEED00FF0F4C /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8BCAD161265AFEED00FF0F4C /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8BCAD162265AFEED00FF0F4C /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8BCAD163265AFEED00FF0F4C /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8BCAD164265AFEED00FF0F4C /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8BCAD165265AFEED00FF0F4C /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8BCAD166265AFEED00FF0F4C /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8BCAD167265AFEED00FF0F4C /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8BCAD168265AFEED00FF0F4C /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8BCAD169265AFEED00FF0F4C /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8BCAD16A265AFEED00FF0F4C /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8BCAD16B265AFEED00FF0F4C /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8BCAD16C265AFEED00FF0F4C /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8BCAD16D265AFEED00FF0F4C /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8BCAD16E265AFEED00FF0F4C /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8BCAD16F265AFEED00FF0F4C /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8BCAD170265AFEED00FF0F4C /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8BCAD171265AFEED00FF0F4C /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8BCAD172265AFEED00FF0F4C /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8BCAD173265AFEED00FF0F4C /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8BCAD174265AFEED00FF0F4C /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8BCAD175265AFEED00FF0F4C /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8BCAD176265AFEED00FF0F4C /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8BCAD177265AFEED00FF0F4C /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8BCAD178265AFEED00FF0F4C /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8BCAD179265AFEED00FF0F4C /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8BCAD17A265AFEED00FF0F4C /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8BCAD17B265AFEED00FF0F4C /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8BCAD17C265AFEED00FF0F4C /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8BCAD17D265AFEED00FF0F4C /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8BCAD17E265AFEED00FF0F4C /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8BCAD17F265AFEED00FF0F4C /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8BCAD180265AFEED00FF0F4C /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8BCAD181265AFEED00FF0F4C /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8BCAD182265AFEED00FF0F4C /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8BCAD183265AFEED00FF0F4C /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8BCAD184265AFEED00FF0F4C /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8BCAD185265AFEED00FF0F4C /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8BCAD186265AFEED00FF0F4C /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8BCAD187265AFEED00FF0F4C /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8BCAD188265AFEED00FF0F4C /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8BCAD189265AFEED00FF0F4C /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8BCAD18A265AFEED00FF0F4C /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8BCAD18B265AFEED00FF0F4C /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8BCAD18C265AFEED00FF0F4C /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8BCAD18D265AFEED00FF0F4C /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8BCAD18E265AFEED00FF0F4C /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8BCAD18F265AFEED00FF0F4C /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8BCAD190265AFEED00FF0F4C /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8BCAD191265AFEED00FF0F4C /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8BCAD192265AFEED00FF0F4C /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8BCAD193265AFEED00FF0F4C /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8BCAD194265AFEED00FF0F4C /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8BCAD195265AFEED00FF0F4C /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8BCAD196265AFEED00FF0F4C /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8BCAD197265AFEED00FF0F4C /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8BCAD198265AFEED00FF0F4C /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8BCAD199265AFEED00FF0F4C /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8BCAD19A265AFEED00FF0F4C /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8BCAD19B265AFEED00FF0F4C /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8BCAD19C265AFEED00FF0F4C /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8BCAD19D265AFEED00FF0F4C /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8BCAD19E265AFEED00FF0F4C /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8BCAD19F265AFEED00FF0F4C /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8BCAD1A0265AFEED00FF0F4C /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8BCAD1A1265AFEED00FF0F4C /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8BCAD1A2265AFEED00FF0F4C /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8BCAD1A3265AFEED00FF0F4C /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8BCAD1A4265AFEED00FF0F4C /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8BCAD1A5265AFEED00FF0F4C /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8BCAD1A6265AFEED00FF0F4C /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8BCAD1A7265AFEED00FF0F4C /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8BCAD1A8265AFEED00FF0F4C /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8BCAD1A9265AFEED00FF0F4C /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8BCAD1AA265AFEED00FF0F4C /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8BCAD1AB265AFEED00FF0F4C /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8BCAD1AF265AFEED00FF0F4C /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8BCAD1B1265AFEED00FF0F4C /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8BCAD1B2265AFEED00FF0F4C /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8BCAD1B3265AFEED00FF0F4C /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8BCAD1B4265AFEED00FF0F4C /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8BCAD1B5265AFEED00FF0F4C /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8BCAD1B6265AFEED00FF0F4C /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8BCAD1B7265AFEED00FF0F4C /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8BCAD1B8265AFEED00FF0F4C /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8BCAD1B9265AFEED00FF0F4C /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8BCAD1BA265AFEED00FF0F4C /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8BCAD1BB265AFEED00FF0F4C /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8BCAD1BC265AFEED00FF0F4C /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8BCAD1BD265AFEED00FF0F4C /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8BCAD1BE265AFEED00FF0F4C /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8BCAD1BF265AFEED00FF0F4C /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8BCAD1C1265AFEED00FF0F4C /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8BCAD1C2265AFEED00FF0F4C /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8BCAD1C4265AFEED00FF0F4C /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8BCAD1C5265AFEED00FF0F4C /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8BCAD1C6265AFEED00FF0F4C /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8BCAD1C7265AFEED00FF0F4C /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8BCAD1C8265AFEED00FF0F4C /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8BCAD1C9265AFEED00FF0F4C /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8BCAD1CA265AFEED00FF0F4C /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8BCAD1CB265AFEED00FF0F4C /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8BCAD1CC265AFEED00FF0F4C /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* XLowpass.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XLowpass.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 /* XLowpass */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = XLowpass;
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 = (
8BCAD143265AFEED00FF0F4C /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* XLowpass.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* XLowpass.h */,
8BA05A660720730100365D66 /* XLowpass.cpp */,
8BA05A670720730100365D66 /* XLowpass.exp */,
8BA05A680720730100365D66 /* XLowpass.r */,
8BA05A690720730100365D66 /* XLowpassVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
8BCAD143265AFEED00FF0F4C /* CA_SDK */ = {
isa = PBXGroup;
children = (
8BCAD144265AFEED00FF0F4C /* PublicUtility */,
8BCAD1AC265AFEED00FF0F4C /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8BCAD144265AFEED00FF0F4C /* PublicUtility */ = {
isa = PBXGroup;
children = (
8BCAD145265AFEED00FF0F4C /* CAExtAudioFile.h */,
8BCAD146265AFEED00FF0F4C /* CACFMachPort.h */,
8BCAD147265AFEED00FF0F4C /* CABool.h */,
8BCAD148265AFEED00FF0F4C /* CAComponent.cpp */,
8BCAD149265AFEED00FF0F4C /* CADebugger.h */,
8BCAD14A265AFEED00FF0F4C /* CACFNumber.cpp */,
8BCAD14B265AFEED00FF0F4C /* CAGuard.h */,
8BCAD14C265AFEED00FF0F4C /* CAAtomic.h */,
8BCAD14D265AFEED00FF0F4C /* CAStreamBasicDescription.h */,
8BCAD14E265AFEED00FF0F4C /* CACFObject.h */,
8BCAD14F265AFEED00FF0F4C /* CAStreamRangedDescription.h */,
8BCAD150265AFEED00FF0F4C /* CATokenMap.h */,
8BCAD151265AFEED00FF0F4C /* CAComponent.h */,
8BCAD152265AFEED00FF0F4C /* CAAudioBufferList.h */,
8BCAD153265AFEED00FF0F4C /* CAAudioUnit.h */,
8BCAD154265AFEED00FF0F4C /* CAAUParameter.h */,
8BCAD155265AFEED00FF0F4C /* CAException.h */,
8BCAD156265AFEED00FF0F4C /* CAAUProcessor.cpp */,
8BCAD157265AFEED00FF0F4C /* CAAUProcessor.h */,
8BCAD158265AFEED00FF0F4C /* CAProcess.h */,
8BCAD159265AFEED00FF0F4C /* CACFDictionary.h */,
8BCAD15A265AFEED00FF0F4C /* CAPThread.h */,
8BCAD15B265AFEED00FF0F4C /* CAAUParameter.cpp */,
8BCAD15C265AFEED00FF0F4C /* CAAudioTimeStamp.h */,
8BCAD15D265AFEED00FF0F4C /* CAFilePathUtils.cpp */,
8BCAD15E265AFEED00FF0F4C /* CAAudioValueRange.h */,
8BCAD15F265AFEED00FF0F4C /* CAVectorUnitTypes.h */,
8BCAD160265AFEED00FF0F4C /* CAAudioChannelLayoutObject.cpp */,
8BCAD161265AFEED00FF0F4C /* CAGuard.cpp */,
8BCAD162265AFEED00FF0F4C /* CACFNumber.h */,
8BCAD163265AFEED00FF0F4C /* CACFDistributedNotification.cpp */,
8BCAD164265AFEED00FF0F4C /* CACFString.h */,
8BCAD165265AFEED00FF0F4C /* CAAUMIDIMapManager.cpp */,
8BCAD166265AFEED00FF0F4C /* CAComponentDescription.cpp */,
8BCAD167265AFEED00FF0F4C /* CAHostTimeBase.h */,
8BCAD168265AFEED00FF0F4C /* CADebugMacros.cpp */,
8BCAD169265AFEED00FF0F4C /* CAAudioFileFormats.h */,
8BCAD16A265AFEED00FF0F4C /* CAAUMIDIMapManager.h */,
8BCAD16B265AFEED00FF0F4C /* CACFDictionary.cpp */,
8BCAD16C265AFEED00FF0F4C /* CAMutex.h */,
8BCAD16D265AFEED00FF0F4C /* CACFString.cpp */,
8BCAD16E265AFEED00FF0F4C /* CASettingsStorage.h */,
8BCAD16F265AFEED00FF0F4C /* CADebugPrintf.h */,
8BCAD170265AFEED00FF0F4C /* CAXException.cpp */,
8BCAD171265AFEED00FF0F4C /* CAAUMIDIMap.h */,
8BCAD172265AFEED00FF0F4C /* AUParamInfo.h */,
8BCAD173265AFEED00FF0F4C /* CABitOperations.h */,
8BCAD174265AFEED00FF0F4C /* CACFPreferences.cpp */,
8BCAD175265AFEED00FF0F4C /* CABundleLocker.h */,
8BCAD176265AFEED00FF0F4C /* CAPropertyAddress.h */,
8BCAD177265AFEED00FF0F4C /* CAXException.h */,
8BCAD178265AFEED00FF0F4C /* CAAudioChannelLayout.cpp */,
8BCAD179265AFEED00FF0F4C /* CAThreadSafeList.h */,
8BCAD17A265AFEED00FF0F4C /* CAAudioUnitOutputCapturer.h */,
8BCAD17B265AFEED00FF0F4C /* AUParamInfo.cpp */,
8BCAD17C265AFEED00FF0F4C /* CASharedLibrary.cpp */,
8BCAD17D265AFEED00FF0F4C /* CAAUMIDIMap.cpp */,
8BCAD17E265AFEED00FF0F4C /* CALogMacros.h */,
8BCAD17F265AFEED00FF0F4C /* CACFMessagePort.cpp */,
8BCAD180265AFEED00FF0F4C /* CARingBuffer.h */,
8BCAD181265AFEED00FF0F4C /* AUOutputBL.cpp */,
8BCAD182265AFEED00FF0F4C /* CABufferList.h */,
8BCAD183265AFEED00FF0F4C /* CASharedLibrary.h */,
8BCAD184265AFEED00FF0F4C /* CACFData.h */,
8BCAD185265AFEED00FF0F4C /* CAStreamRangedDescription.cpp */,
8BCAD186265AFEED00FF0F4C /* CAPThread.cpp */,
8BCAD187265AFEED00FF0F4C /* CAAutoDisposer.h */,
8BCAD188265AFEED00FF0F4C /* CACFPreferences.h */,
8BCAD189265AFEED00FF0F4C /* CAVectorUnit.cpp */,
8BCAD18A265AFEED00FF0F4C /* CAComponentDescription.h */,
8BCAD18B265AFEED00FF0F4C /* CADebugMacros.h */,
8BCAD18C265AFEED00FF0F4C /* AUOutputBL.h */,
8BCAD18D265AFEED00FF0F4C /* CADebugPrintf.cpp */,
8BCAD18E265AFEED00FF0F4C /* CARingBuffer.cpp */,
8BCAD18F265AFEED00FF0F4C /* CACFPlugIn.h */,
8BCAD190265AFEED00FF0F4C /* CASettingsStorage.cpp */,
8BCAD191265AFEED00FF0F4C /* CAMixMap.h */,
8BCAD192265AFEED00FF0F4C /* CACFDistributedNotification.h */,
8BCAD193265AFEED00FF0F4C /* CAFilePathUtils.h */,
8BCAD194265AFEED00FF0F4C /* CATink.h */,
8BCAD195265AFEED00FF0F4C /* CAStreamBasicDescription.cpp */,
8BCAD196265AFEED00FF0F4C /* CAAudioChannelLayout.h */,
8BCAD197265AFEED00FF0F4C /* CAProcess.cpp */,
8BCAD198265AFEED00FF0F4C /* CAHostTimeBase.cpp */,
8BCAD199265AFEED00FF0F4C /* CAPersistence.cpp */,
8BCAD19A265AFEED00FF0F4C /* CAAudioBufferList.cpp */,
8BCAD19B265AFEED00FF0F4C /* CAAudioTimeStamp.cpp */,
8BCAD19C265AFEED00FF0F4C /* CAVectorUnit.h */,
8BCAD19D265AFEED00FF0F4C /* CAByteOrder.h */,
8BCAD19E265AFEED00FF0F4C /* CACFArray.h */,
8BCAD19F265AFEED00FF0F4C /* CAAtomicStack.h */,
8BCAD1A0265AFEED00FF0F4C /* CAReferenceCounted.h */,
8BCAD1A1265AFEED00FF0F4C /* CACFMachPort.cpp */,
8BCAD1A2265AFEED00FF0F4C /* CABufferList.cpp */,
8BCAD1A3265AFEED00FF0F4C /* CAMutex.cpp */,
8BCAD1A4265AFEED00FF0F4C /* CADebugger.cpp */,
8BCAD1A5265AFEED00FF0F4C /* CABundleLocker.cpp */,
8BCAD1A6265AFEED00FF0F4C /* CAAudioFileFormats.cpp */,
8BCAD1A7265AFEED00FF0F4C /* CAMath.h */,
8BCAD1A8265AFEED00FF0F4C /* CACFArray.cpp */,
8BCAD1A9265AFEED00FF0F4C /* CACFMessagePort.h */,
8BCAD1AA265AFEED00FF0F4C /* CAAudioValueRange.cpp */,
8BCAD1AB265AFEED00FF0F4C /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8BCAD1AC265AFEED00FF0F4C /* AudioUnits */ = {
isa = PBXGroup;
children = (
8BCAD1AD265AFEED00FF0F4C /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8BCAD1AD265AFEED00FF0F4C /* AUPublic */ = {
isa = PBXGroup;
children = (
8BCAD1AE265AFEED00FF0F4C /* AUViewBase */,
8BCAD1B0265AFEED00FF0F4C /* AUBase */,
8BCAD1C0265AFEED00FF0F4C /* OtherBases */,
8BCAD1C3265AFEED00FF0F4C /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8BCAD1AE265AFEED00FF0F4C /* AUViewBase */ = {
isa = PBXGroup;
children = (
8BCAD1AF265AFEED00FF0F4C /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8BCAD1B0265AFEED00FF0F4C /* AUBase */ = {
isa = PBXGroup;
children = (
8BCAD1B1265AFEED00FF0F4C /* ComponentBase.cpp */,
8BCAD1B2265AFEED00FF0F4C /* AUScopeElement.cpp */,
8BCAD1B3265AFEED00FF0F4C /* ComponentBase.h */,
8BCAD1B4265AFEED00FF0F4C /* AUBase.cpp */,
8BCAD1B5265AFEED00FF0F4C /* AUInputElement.h */,
8BCAD1B6265AFEED00FF0F4C /* AUBase.h */,
8BCAD1B7265AFEED00FF0F4C /* AUPlugInDispatch.h */,
8BCAD1B8265AFEED00FF0F4C /* AUDispatch.h */,
8BCAD1B9265AFEED00FF0F4C /* AUOutputElement.cpp */,
8BCAD1BA265AFEED00FF0F4C /* AUResources.r */,
8BCAD1BB265AFEED00FF0F4C /* AUPlugInDispatch.cpp */,
8BCAD1BC265AFEED00FF0F4C /* AUOutputElement.h */,
8BCAD1BD265AFEED00FF0F4C /* AUDispatch.cpp */,
8BCAD1BE265AFEED00FF0F4C /* AUScopeElement.h */,
8BCAD1BF265AFEED00FF0F4C /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8BCAD1C0265AFEED00FF0F4C /* OtherBases */ = {
isa = PBXGroup;
children = (
8BCAD1C1265AFEED00FF0F4C /* AUEffectBase.cpp */,
8BCAD1C2265AFEED00FF0F4C /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8BCAD1C3265AFEED00FF0F4C /* Utility */ = {
isa = PBXGroup;
children = (
8BCAD1C4265AFEED00FF0F4C /* AUTimestampGenerator.h */,
8BCAD1C5265AFEED00FF0F4C /* AUBaseHelper.cpp */,
8BCAD1C6265AFEED00FF0F4C /* AUSilentTimeout.h */,
8BCAD1C7265AFEED00FF0F4C /* AUInputFormatConverter.h */,
8BCAD1C8265AFEED00FF0F4C /* AUTimestampGenerator.cpp */,
8BCAD1C9265AFEED00FF0F4C /* AUBuffer.cpp */,
8BCAD1CA265AFEED00FF0F4C /* AUMIDIDefs.h */,
8BCAD1CB265AFEED00FF0F4C /* AUBuffer.h */,
8BCAD1CC265AFEED00FF0F4C /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8BCAD1FD265AFEED00FF0F4C /* CABundleLocker.h in Headers */,
8BCAD21E265AFEED00FF0F4C /* CAAudioChannelLayout.h in Headers */,
8BCAD214265AFEED00FF0F4C /* AUOutputBL.h in Headers */,
8BCAD1EF265AFEED00FF0F4C /* CAHostTimeBase.h in Headers */,
8BCAD237265AFEED00FF0F4C /* ComponentBase.h in Headers */,
8BCAD227265AFEED00FF0F4C /* CAAtomicStack.h in Headers */,
8BCAD1E4265AFEED00FF0F4C /* CAAudioTimeStamp.h in Headers */,
8BCAD201265AFEED00FF0F4C /* CAThreadSafeList.h in Headers */,
8BCAD1DC265AFEED00FF0F4C /* CAAUParameter.h in Headers */,
8BCAD24E265AFEED00FF0F4C /* AUBaseHelper.h in Headers */,
8BCAD246265AFEED00FF0F4C /* AUTimestampGenerator.h in Headers */,
8BCAD1F7265AFEED00FF0F4C /* CADebugPrintf.h in Headers */,
8BCAD231265AFEED00FF0F4C /* CACFMessagePort.h in Headers */,
8BCAD1DF265AFEED00FF0F4C /* CAAUProcessor.h in Headers */,
8BCAD1DB265AFEED00FF0F4C /* CAAudioUnit.h in Headers */,
8BCAD234265AFEED00FF0F4C /* AUViewLocalizedStringKeys.h in Headers */,
8BCAD21A265AFEED00FF0F4C /* CACFDistributedNotification.h in Headers */,
8BCAD1D9265AFEED00FF0F4C /* CAComponent.h in Headers */,
8BCAD1E7265AFEED00FF0F4C /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* XLowpassVersion.h in Headers */,
8BCAD21B265AFEED00FF0F4C /* CAFilePathUtils.h in Headers */,
8BCAD1DD265AFEED00FF0F4C /* CAException.h in Headers */,
8BCAD1D4265AFEED00FF0F4C /* CAAtomic.h in Headers */,
8BCAD1D3265AFEED00FF0F4C /* CAGuard.h in Headers */,
8BCAD239265AFEED00FF0F4C /* AUInputElement.h in Headers */,
8BCAD210265AFEED00FF0F4C /* CACFPreferences.h in Headers */,
8BCAD225265AFEED00FF0F4C /* CAByteOrder.h in Headers */,
8BCAD208265AFEED00FF0F4C /* CARingBuffer.h in Headers */,
8BCAD1CF265AFEED00FF0F4C /* CABool.h in Headers */,
8BCAD1F4265AFEED00FF0F4C /* CAMutex.h in Headers */,
8BCAD23A265AFEED00FF0F4C /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* XLowpass.h in Headers */,
8BCAD1EC265AFEED00FF0F4C /* CACFString.h in Headers */,
8BCAD20B265AFEED00FF0F4C /* CASharedLibrary.h in Headers */,
8BCAD1D8265AFEED00FF0F4C /* CATokenMap.h in Headers */,
8BCAD1CD265AFEED00FF0F4C /* CAExtAudioFile.h in Headers */,
8BCAD1E2265AFEED00FF0F4C /* CAPThread.h in Headers */,
8BCAD1FE265AFEED00FF0F4C /* CAPropertyAddress.h in Headers */,
8BCAD228265AFEED00FF0F4C /* CAReferenceCounted.h in Headers */,
8BCAD24D265AFEED00FF0F4C /* AUBuffer.h in Headers */,
8BCAD22F265AFEED00FF0F4C /* CAMath.h in Headers */,
8BCAD20F265AFEED00FF0F4C /* CAAutoDisposer.h in Headers */,
8BCAD1D6265AFEED00FF0F4C /* CACFObject.h in Headers */,
8BCAD1F6265AFEED00FF0F4C /* CASettingsStorage.h in Headers */,
8BCAD1FF265AFEED00FF0F4C /* CAXException.h in Headers */,
8BCAD21C265AFEED00FF0F4C /* CATink.h in Headers */,
8BCAD249265AFEED00FF0F4C /* AUInputFormatConverter.h in Headers */,
8BCAD224265AFEED00FF0F4C /* CAVectorUnit.h in Headers */,
8BCAD1E0265AFEED00FF0F4C /* CAProcess.h in Headers */,
8BCAD1E6265AFEED00FF0F4C /* CAAudioValueRange.h in Headers */,
8BCAD1FB265AFEED00FF0F4C /* CABitOperations.h in Headers */,
8BCAD1F1265AFEED00FF0F4C /* CAAudioFileFormats.h in Headers */,
8BCAD1EA265AFEED00FF0F4C /* CACFNumber.h in Headers */,
8BCAD202265AFEED00FF0F4C /* CAAudioUnitOutputCapturer.h in Headers */,
8BCAD213265AFEED00FF0F4C /* CADebugMacros.h in Headers */,
8BCAD24C265AFEED00FF0F4C /* AUMIDIDefs.h in Headers */,
8BCAD20C265AFEED00FF0F4C /* CACFData.h in Headers */,
8BCAD1D5265AFEED00FF0F4C /* CAStreamBasicDescription.h in Headers */,
8BCAD23B265AFEED00FF0F4C /* AUPlugInDispatch.h in Headers */,
8BCAD1D7265AFEED00FF0F4C /* CAStreamRangedDescription.h in Headers */,
8BCAD217265AFEED00FF0F4C /* CACFPlugIn.h in Headers */,
8BCAD1DA265AFEED00FF0F4C /* CAAudioBufferList.h in Headers */,
8BCAD1F2265AFEED00FF0F4C /* CAAUMIDIMapManager.h in Headers */,
8BCAD245265AFEED00FF0F4C /* AUEffectBase.h in Headers */,
8BCAD1E1265AFEED00FF0F4C /* CACFDictionary.h in Headers */,
8BCAD242265AFEED00FF0F4C /* AUScopeElement.h in Headers */,
8BCAD212265AFEED00FF0F4C /* CAComponentDescription.h in Headers */,
8BCAD248265AFEED00FF0F4C /* AUSilentTimeout.h in Headers */,
8BCAD20A265AFEED00FF0F4C /* CABufferList.h in Headers */,
8BCAD23C265AFEED00FF0F4C /* AUDispatch.h in Headers */,
8BCAD240265AFEED00FF0F4C /* AUOutputElement.h in Headers */,
8BCAD206265AFEED00FF0F4C /* CALogMacros.h in Headers */,
8BCAD1FA265AFEED00FF0F4C /* AUParamInfo.h in Headers */,
8BCAD219265AFEED00FF0F4C /* CAMixMap.h in Headers */,
8BCAD226265AFEED00FF0F4C /* CACFArray.h in Headers */,
8BCAD1CE265AFEED00FF0F4C /* CACFMachPort.h in Headers */,
8BCAD1F9265AFEED00FF0F4C /* CAAUMIDIMap.h in Headers */,
8BCAD1D1265AFEED00FF0F4C /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* XLowpass */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "XLowpass" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = XLowpass;
productInstallPath = "$(HOME)/Library/Bundles";
productName = XLowpass;
productReference = 8D01CCD20486CAD60068D4B7 /* XLowpass.component */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1240;
};
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "XLowpass" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
Base,
en,
de,
ja,
fr,
);
mainGroup = 089C166AFE841209C02AAC07 /* XLowpass */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* XLowpass */,
);
};
/* 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 = (
8BCAD209265AFEED00FF0F4C /* AUOutputBL.cpp in Sources */,
8BCAD22E265AFEED00FF0F4C /* CAAudioFileFormats.cpp in Sources */,
8BCAD220265AFEED00FF0F4C /* CAHostTimeBase.cpp in Sources */,
8BCAD1F8265AFEED00FF0F4C /* CAXException.cpp in Sources */,
8BCAD222265AFEED00FF0F4C /* CAAudioBufferList.cpp in Sources */,
8BCAD1E5265AFEED00FF0F4C /* CAFilePathUtils.cpp in Sources */,
8BCAD1E3265AFEED00FF0F4C /* CAAUParameter.cpp in Sources */,
8BCAD205265AFEED00FF0F4C /* CAAUMIDIMap.cpp in Sources */,
8BCAD232265AFEED00FF0F4C /* CAAudioValueRange.cpp in Sources */,
8BCAD241265AFEED00FF0F4C /* AUDispatch.cpp in Sources */,
8BCAD1FC265AFEED00FF0F4C /* CACFPreferences.cpp in Sources */,
8BCAD23F265AFEED00FF0F4C /* AUPlugInDispatch.cpp in Sources */,
8BCAD1DE265AFEED00FF0F4C /* CAAUProcessor.cpp in Sources */,
8BCAD1F3265AFEED00FF0F4C /* CACFDictionary.cpp in Sources */,
8BCAD247265AFEED00FF0F4C /* AUBaseHelper.cpp in Sources */,
8BCAD22C265AFEED00FF0F4C /* CADebugger.cpp in Sources */,
8BCAD200265AFEED00FF0F4C /* CAAudioChannelLayout.cpp in Sources */,
8BCAD203265AFEED00FF0F4C /* AUParamInfo.cpp in Sources */,
8BCAD221265AFEED00FF0F4C /* CAPersistence.cpp in Sources */,
8BCAD215265AFEED00FF0F4C /* CADebugPrintf.cpp in Sources */,
8BCAD24A265AFEED00FF0F4C /* AUTimestampGenerator.cpp in Sources */,
8BCAD21D265AFEED00FF0F4C /* CAStreamBasicDescription.cpp in Sources */,
8BCAD1ED265AFEED00FF0F4C /* CAAUMIDIMapManager.cpp in Sources */,
8BCAD218265AFEED00FF0F4C /* CASettingsStorage.cpp in Sources */,
8BCAD23D265AFEED00FF0F4C /* AUOutputElement.cpp in Sources */,
8BCAD1E9265AFEED00FF0F4C /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* XLowpass.cpp in Sources */,
8BCAD22B265AFEED00FF0F4C /* CAMutex.cpp in Sources */,
8BCAD244265AFEED00FF0F4C /* AUEffectBase.cpp in Sources */,
8BCAD229265AFEED00FF0F4C /* CACFMachPort.cpp in Sources */,
8BCAD238265AFEED00FF0F4C /* AUBase.cpp in Sources */,
8BCAD204265AFEED00FF0F4C /* CASharedLibrary.cpp in Sources */,
8BCAD1EB265AFEED00FF0F4C /* CACFDistributedNotification.cpp in Sources */,
8BCAD1EE265AFEED00FF0F4C /* CAComponentDescription.cpp in Sources */,
8BCAD1F5265AFEED00FF0F4C /* CACFString.cpp in Sources */,
8BCAD235265AFEED00FF0F4C /* ComponentBase.cpp in Sources */,
8BCAD216265AFEED00FF0F4C /* CARingBuffer.cpp in Sources */,
8BCAD236265AFEED00FF0F4C /* AUScopeElement.cpp in Sources */,
8BCAD233265AFEED00FF0F4C /* CAAudioUnit.cpp in Sources */,
8BCAD230265AFEED00FF0F4C /* CACFArray.cpp in Sources */,
8BCAD22D265AFEED00FF0F4C /* CABundleLocker.cpp in Sources */,
8BCAD21F265AFEED00FF0F4C /* CAProcess.cpp in Sources */,
8BCAD20D265AFEED00FF0F4C /* CAStreamRangedDescription.cpp in Sources */,
8BCAD20E265AFEED00FF0F4C /* CAPThread.cpp in Sources */,
8BCAD1D0265AFEED00FF0F4C /* CAComponent.cpp in Sources */,
8BCAD1E8265AFEED00FF0F4C /* CAAudioChannelLayoutObject.cpp in Sources */,
8BCAD223265AFEED00FF0F4C /* CAAudioTimeStamp.cpp in Sources */,
8BCAD22A265AFEED00FF0F4C /* CABufferList.cpp in Sources */,
8BCAD207265AFEED00FF0F4C /* CACFMessagePort.cpp in Sources */,
8BCAD211265AFEED00FF0F4C /* CAVectorUnit.cpp in Sources */,
8BCAD243265AFEED00FF0F4C /* AUInputElement.cpp in Sources */,
8BCAD24B265AFEED00FF0F4C /* AUBuffer.cpp in Sources */,
8BCAD1F0265AFEED00FF0F4C /* CADebugMacros.cpp in Sources */,
8BCAD1D2265AFEED00FF0F4C /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B7AB585265B02CC00E9C935 /* 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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_TEAM = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = XLowpass.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 = XLowpass;
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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEVELOPMENT_TEAM = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = XLowpass.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 = XLowpass;
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;
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;
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 "XLowpass" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "XLowpass" */ = {
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 = "1240"
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 = "XLowpass.component"
BlueprintName = "XLowpass"
ReferencedContainer = "container:XLowpass.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 = "XLowpass.component"
BlueprintName = "XLowpass"
ReferencedContainer = "container:XLowpass.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>XLowpass.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: XLowpassVersion.h
*
* Version: 1.0
*
* Created: 5/1/21
*
* Copyright: Copyright © 2021 Airwindows, All Rights Reserved
*
* 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 __XLowpassVersion_h__
#define __XLowpassVersion_h__
#ifdef DEBUG
#define kXLowpassVersion 0xFFFFFFFF
#else
#define kXLowpassVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define XLowpass_COMP_MANF 'Dthr'
#define XLowpass_COMP_SUBTYPE 'xlop'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

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,108 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* ADClip7 */;
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 = 569707583;
PBXWorkspaceStateSaveDate = 569707583;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* ADClip7.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {848, 2158}}";
sepNavSelRange = "{4649, 0}";
sepNavVisRange = "{0, 1732}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* ADClip7.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {866, 1118}}";
sepNavSelRange = "{2743, 0}";
sepNavVisRange = "{507, 2348}";
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 /* ADClip7Proc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {894, 12259}}";
sepNavSelRange = "{31114, 0}";
sepNavVisRange = "{14613, 1745}";
sepNavWindowFrame = "{{361, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* ADClip7 */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,456 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
2407DEB9089929BA00EB68BF /* ADClip7.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* ADClip7.cpp */; };
245463B90991757100464AD3 /* ADClip7.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* ADClip7.h */; };
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
24D8287009A914000093AEF8 /* ADClip7Proc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* ADClip7Proc.cpp */; };
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
8BD66348264DC30800514858 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD6633C264DC30800514858 /* vstfxstore.h */; };
8BD66349264DC30800514858 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD6633D264DC30800514858 /* aeffect.h */; };
8BD6634A264DC30800514858 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD6633E264DC30800514858 /* aeffectx.h */; };
8BD6634B264DC30800514858 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD66342264DC30800514858 /* audioeffectx.h */; };
8BD6634C264DC30800514858 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD66343264DC30800514858 /* audioeffect.cpp */; };
8BD6634D264DC30800514858 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD66344264DC30800514858 /* audioeffectx.cpp */; };
8BD6634E264DC30800514858 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD66345264DC30800514858 /* aeffeditor.h */; };
8BD6634F264DC30800514858 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD66346264DC30800514858 /* vstplugmain.cpp */; };
8BD66350264DC30800514858 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD66347264DC30800514858 /* audioeffect.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
2407DE920899296600EB68BF /* ADClip7.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ADClip7.vst; sourceTree = BUILT_PRODUCTS_DIR; };
2407DEB6089929BA00EB68BF /* ADClip7.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ADClip7.cpp; path = source/ADClip7.cpp; sourceTree = "<group>"; };
245463B80991757100464AD3 /* ADClip7.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ADClip7.h; path = source/ADClip7.h; sourceTree = "<group>"; };
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
24D8286F09A914000093AEF8 /* ADClip7Proc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ADClip7Proc.cpp; path = source/ADClip7Proc.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; };
8BD6633C264DC30800514858 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
8BD6633D264DC30800514858 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
8BD6633E264DC30800514858 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
8BD66342264DC30800514858 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
8BD66343264DC30800514858 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
8BD66344264DC30800514858 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
8BD66345264DC30800514858 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
8BD66346264DC30800514858 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
8BD66347264DC30800514858 /* 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 = (
8BD66339264DC30800514858 /* vstsdk2.4 */,
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 = (
2407DEB6089929BA00EB68BF /* ADClip7.cpp */,
24D8286F09A914000093AEF8 /* ADClip7Proc.cpp */,
245463B80991757100464AD3 /* ADClip7.h */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
2407DE920899296600EB68BF /* ADClip7.vst */,
);
name = Products;
sourceTree = "<group>";
};
8BD66339264DC30800514858 /* vstsdk2.4 */ = {
isa = PBXGroup;
children = (
8BD6633A264DC30800514858 /* pluginterfaces */,
8BD6633F264DC30800514858 /* public.sdk */,
);
name = vstsdk2.4;
path = ../../../../vstsdk2.4;
sourceTree = "<group>";
};
8BD6633A264DC30800514858 /* pluginterfaces */ = {
isa = PBXGroup;
children = (
8BD6633B264DC30800514858 /* vst2.x */,
);
path = pluginterfaces;
sourceTree = "<group>";
};
8BD6633B264DC30800514858 /* vst2.x */ = {
isa = PBXGroup;
children = (
8BD6633C264DC30800514858 /* vstfxstore.h */,
8BD6633D264DC30800514858 /* aeffect.h */,
8BD6633E264DC30800514858 /* aeffectx.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
8BD6633F264DC30800514858 /* public.sdk */ = {
isa = PBXGroup;
children = (
8BD66340264DC30800514858 /* source */,
);
path = public.sdk;
sourceTree = "<group>";
};
8BD66340264DC30800514858 /* source */ = {
isa = PBXGroup;
children = (
8BD66341264DC30800514858 /* vst2.x */,
);
path = source;
sourceTree = "<group>";
};
8BD66341264DC30800514858 /* vst2.x */ = {
isa = PBXGroup;
children = (
8BD66342264DC30800514858 /* audioeffectx.h */,
8BD66343264DC30800514858 /* audioeffect.cpp */,
8BD66344264DC30800514858 /* audioeffectx.cpp */,
8BD66345264DC30800514858 /* aeffeditor.h */,
8BD66346264DC30800514858 /* vstplugmain.cpp */,
8BD66347264DC30800514858 /* audioeffect.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8BD6634E264DC30800514858 /* aeffeditor.h in Headers */,
245463B90991757100464AD3 /* ADClip7.h in Headers */,
8BD66350264DC30800514858 /* audioeffect.h in Headers */,
8BD66349264DC30800514858 /* aeffect.h in Headers */,
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
8BD6634B264DC30800514858 /* audioeffectx.h in Headers */,
8BD66348264DC30800514858 /* vstfxstore.h in Headers */,
8BD6634A264DC30800514858 /* aeffectx.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* ADClip7 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "ADClip7" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
);
buildRules = (
);
dependencies = (
);
name = ADClip7;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "FM-Chopper";
productReference = 2407DE920899296600EB68BF /* ADClip7.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1240;
};
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "ADClip7" */;
compatibilityVersion = "Xcode 2.4";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
de,
ja,
fr,
Base,
en,
);
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* ADClip7 */,
);
};
/* 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 = (
8BD6634D264DC30800514858 /* audioeffectx.cpp in Sources */,
2407DEB9089929BA00EB68BF /* ADClip7.cpp in Sources */,
8BD6634C264DC30800514858 /* audioeffect.cpp in Sources */,
8BD6634F264DC30800514858 /* vstplugmain.cpp in Sources */,
24D8287009A914000093AEF8 /* ADClip7Proc.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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEVELOPMENT_TEAM = 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.ADClip7;
PRODUCT_MODULE_NAME = "";
PRODUCT_NAME = ADClip7;
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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 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.ADClip7;
PRODUCT_MODULE_NAME = "";
PRODUCT_NAME = ADClip7;
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;
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;
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 "ADClip7" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAEE08919AE700E695F9 /* Debug */,
24BEAAEF08919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "ADClip7" */ = {
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 = "1240"
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 = "ADClip7.vst"
BlueprintName = "ADClip7"
ReferencedContainer = "container:ADClip7.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 = "ADClip7.vst"
BlueprintName = "ADClip7"
ReferencedContainer = "container:ADClip7.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>ADClip7.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>ADClip7</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,162 @@
/* ========================================
* ADClip7 - ADClip7.h
* Copyright (c) 2016 airwindows, All rights reserved
* ======================================== */
#ifndef __ADClip7_H
#include "ADClip7.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new ADClip7(audioMaster);}
ADClip7::ADClip7(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.0;
B = 0.5;
C = 0.5;
D = 0.0;
lastSampleL = 0.0;
lastSampleR = 0.0;
for(int count = 0; count < 22199; count++) {bL[count] = 0; bR[count] = 0;}
gcount = 0;
lowsL = 0;
lowsR = 0;
refclipL = 0.99;
refclipR = 0.99;
iirLowsAL = 0.0;
iirLowsAR = 0.0;
iirLowsBL = 0.0;
iirLowsBR = 0.0;
fpNShapeL = 0.0;
fpNShapeR = 0.0;
//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
}
ADClip7::~ADClip7() {}
VstInt32 ADClip7::getVendorVersion () {return 1000;}
void ADClip7::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void ADClip7::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
static float pinParameter(float data)
{
if (data < 0.0f) return 0.0f;
if (data > 1.0f) return 1.0f;
return data;
}
VstInt32 ADClip7::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 ADClip7::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
D = pinParameter(chunkData[3]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void ADClip7::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
case kParamD: D = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float ADClip7::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
case kParamD: return D; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void ADClip7::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Boost", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Soften", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Enhance", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Mode", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void ADClip7::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A*18.0, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
case kParamD: switch((VstInt32)( D * 2.999 )) //0 to almost edge of # of params
{case 0: vst_strncpy (text, "Normal", kVstMaxParamStrLen); break;
case 1: vst_strncpy (text, "Atten", kVstMaxParamStrLen); break;
case 2: vst_strncpy (text, "Clips", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void ADClip7::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "dB", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 ADClip7::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool ADClip7::getEffectName(char* name) {
vst_strncpy(name, "ADClip7", kVstMaxProductStrLen); return true;
}
VstPlugCategory ADClip7::getPlugCategory() {return kPlugCategEffect;}
bool ADClip7::getProductString(char* text) {
vst_strncpy (text, "airwindows ADClip7", kVstMaxProductStrLen); return true;
}
bool ADClip7::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,82 @@
/* ========================================
* ADClip7 - ADClip7.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) 2011 __MyCompanyName__, All rights reserved
* ======================================== */
#ifndef __ADClip7_H
#define __ADClip7_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA = 0,
kParamB = 1,
kParamC = 2,
kParamD = 3,
kNumParameters = 4
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'adcr'; //Change this to what the AU identity is!
class ADClip7 :
public AudioEffectX
{
public:
ADClip7(audioMasterCallback audioMaster);
~ADClip7();
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;
long double fpNShapeL;
long double fpNShapeR;
//default stuff
long double lastSampleL;
long double lastSampleR;
float bL[22200];
float bR[22200];
int gcount;
double lowsL;
double lowsR;
double iirLowsAL;
double iirLowsAR;
double iirLowsBL;
double iirLowsBR;
long double refclipL;
long double refclipR;
float A;
float B;
float C;
float D;
};
#endif

View file

@ -0,0 +1,929 @@
/* ========================================
* ADClip7 - ADClip7.h
* Copyright (c) 2016 airwindows, All rights reserved
* ======================================== */
#ifndef __ADClip7_H
#include "ADClip7.h"
#endif
void ADClip7::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();
long double fpOld = 0.618033988749894848204586; //golden ratio!
long double fpNew = 1.0 - fpOld;
double inputGain = pow(10.0,(A*18.0)/20.0);
double softness = B * fpNew;
double hardness = 1.0 - softness;
double highslift = 0.307 * C;
double adjust = pow(highslift,3) * 0.416;
double subslift = 0.796 * C;
double calibsubs = subslift/53;
double invcalibsubs = 1.0 - calibsubs;
double subs = 0.81 + (calibsubs*2);
long double bridgerectifier;
int mode = (int) floor(D*2.999)+1;
double overshootL;
double overshootR;
double offsetH1 = 1.84;
offsetH1 *= overallscale;
double offsetH2 = offsetH1 * 1.9;
double offsetH3 = offsetH1 * 2.7;
double offsetL1 = 612;
offsetL1 *= overallscale;
double offsetL2 = offsetL1 * 2.0;
int refH1 = (int)floor(offsetH1);
int refH2 = (int)floor(offsetH2);
int refH3 = (int)floor(offsetH3);
int refL1 = (int)floor(offsetL1);
int refL2 = (int)floor(offsetL2);
int temp;
double fractionH1 = offsetH1 - floor(offsetH1);
double fractionH2 = offsetH2 - floor(offsetH2);
double fractionH3 = offsetH3 - floor(offsetH3);
double minusH1 = 1.0 - fractionH1;
double minusH2 = 1.0 - fractionH2;
double minusH3 = 1.0 - fractionH3;
double highsL = 0.0;
double highsR = 0.0;
int count = 0;
long double inputSampleL;
long double inputSampleR;
while (--sampleFrames >= 0)
{
inputSampleL = *in1;
inputSampleR = *in2;
if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
static int noisesource = 0;
//this declares a variable before anything else is compiled. It won't keep assigning
//it to 0 for every sample, it's as if the declaration doesn't exist in this context,
//but it lets me add this denormalization fix in a single place rather than updating
//it in three different locations. The variable isn't thread-safe but this is only
//a random seed and we can share it with whatever.
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleL = applyresidue;
}
if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
static int noisesource = 0;
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleR = applyresidue;
//this denormalization routine produces a white noise at -300 dB which the noise
//shaping will interact with to produce a bipolar output, but the noise is actually
//all positive. That should stop any variables from going denormal, and the routine
//only kicks in if digital black is input. As a final touch, if you save to 24-bit
//the silence will return to being digital black again.
}
if (inputGain != 1.0) {
inputSampleL *= inputGain;
inputSampleR *= inputGain;
}
overshootL = fabs(inputSampleL) - refclipL;
overshootR = fabs(inputSampleR) - refclipR;
if (overshootL < 0.0) overshootL = 0.0;
if (overshootR < 0.0) overshootR = 0.0;
if (gcount < 0 || gcount > 11020) {gcount = 11020;}
count = gcount;
bL[count+11020] = bL[count] = overshootL;
bR[count+11020] = bR[count] = overshootR;
gcount--;
if (highslift > 0.0)
{
//we have a big pile of b[] which is overshoots
temp = count+refH3;
highsL = -(bL[temp] * minusH3); //less as value moves away from .0
highsL -= bL[temp+1]; //we can assume always using this in one way or another?
highsL -= (bL[temp+2] * fractionH3); //greater as value moves away from .0
highsL += (((bL[temp]-bL[temp+1])-(bL[temp+1]-bL[temp+2]))/50); //interpolation hacks 'r us
highsL *= adjust; //add in the kernel elements backwards saves multiplies
//stage 3 is a negative add
highsR = -(bR[temp] * minusH3); //less as value moves away from .0
highsR -= bR[temp+1]; //we can assume always using this in one way or another?
highsR -= (bR[temp+2] * fractionH3); //greater as value moves away from .0
highsR += (((bR[temp]-bR[temp+1])-(bR[temp+1]-bR[temp+2]))/50); //interpolation hacks 'r us
highsR *= adjust; //add in the kernel elements backwards saves multiplies
//stage 3 is a negative add
temp = count+refH2;
highsL += (bL[temp] * minusH2); //less as value moves away from .0
highsL += bL[temp+1]; //we can assume always using this in one way or another?
highsL += (bL[temp+2] * fractionH2); //greater as value moves away from .0
highsL -= (((bL[temp]-bL[temp+1])-(bL[temp+1]-bL[temp+2]))/50); //interpolation hacks 'r us
highsL *= adjust; //add in the kernel elements backwards saves multiplies
//stage 2 is a positive feedback of the overshoot
highsR += (bR[temp] * minusH2); //less as value moves away from .0
highsR += bR[temp+1]; //we can assume always using this in one way or another?
highsR += (bR[temp+2] * fractionH2); //greater as value moves away from .0
highsR -= (((bR[temp]-bR[temp+1])-(bR[temp+1]-bR[temp+2]))/50); //interpolation hacks 'r us
highsR *= adjust; //add in the kernel elements backwards saves multiplies
//stage 2 is a positive feedback of the overshoot
temp = count+refH1;
highsL -= (bL[temp] * minusH1); //less as value moves away from .0
highsL -= bL[temp+1]; //we can assume always using this in one way or another?
highsL -= (bL[temp+2] * fractionH1); //greater as value moves away from .0
highsL += (((bL[temp]-bL[temp+1])-(bL[temp+1]-bL[temp+2]))/50); //interpolation hacks 'r us
highsL *= adjust; //add in the kernel elements backwards saves multiplies
//stage 1 is a negative feedback of the overshoot
highsR -= (bR[temp] * minusH1); //less as value moves away from .0
highsR -= bR[temp+1]; //we can assume always using this in one way or another?
highsR -= (bR[temp+2] * fractionH1); //greater as value moves away from .0
highsR += (((bR[temp]-bR[temp+1])-(bR[temp+1]-bR[temp+2]))/50); //interpolation hacks 'r us
highsR *= adjust; //add in the kernel elements backwards saves multiplies
//stage 1 is a negative feedback of the overshoot
//done with interpolated mostly negative feedback of the overshoot
}
bridgerectifier = sin(fabs(highsL) * hardness);
//this will wrap around and is scaled back by softness
//wrap around is the same principle as Fracture: no top limit to sin()
if (highsL > 0) highsL = bridgerectifier;
else highsL = -bridgerectifier;
bridgerectifier = sin(fabs(highsR) * hardness);
//this will wrap around and is scaled back by softness
//wrap around is the same principle as Fracture: no top limit to sin()
if (highsR > 0) highsR = bridgerectifier;
else highsR = -bridgerectifier;
if (subslift > 0.0)
{
lowsL *= subs;
lowsR *= subs;
//going in we'll reel back some of the swing
temp = count+refL1;
lowsL -= bL[temp+127];
lowsL -= bL[temp+113];
lowsL -= bL[temp+109];
lowsL -= bL[temp+107];
lowsL -= bL[temp+103];
lowsL -= bL[temp+101];
lowsL -= bL[temp+97];
lowsL -= bL[temp+89];
lowsL -= bL[temp+83];
lowsL -= bL[temp+79];
lowsL -= bL[temp+73];
lowsL -= bL[temp+71];
lowsL -= bL[temp+67];
lowsL -= bL[temp+61];
lowsL -= bL[temp+59];
lowsL -= bL[temp+53];
lowsL -= bL[temp+47];
lowsL -= bL[temp+43];
lowsL -= bL[temp+41];
lowsL -= bL[temp+37];
lowsL -= bL[temp+31];
lowsL -= bL[temp+29];
lowsL -= bL[temp+23];
lowsL -= bL[temp+19];
lowsL -= bL[temp+17];
lowsL -= bL[temp+13];
lowsL -= bL[temp+11];
lowsL -= bL[temp+7];
lowsL -= bL[temp+5];
lowsL -= bL[temp+3];
lowsL -= bL[temp+2];
lowsL -= bL[temp+1];
//initial negative lobe
lowsR -= bR[temp+127];
lowsR -= bR[temp+113];
lowsR -= bR[temp+109];
lowsR -= bR[temp+107];
lowsR -= bR[temp+103];
lowsR -= bR[temp+101];
lowsR -= bR[temp+97];
lowsR -= bR[temp+89];
lowsR -= bR[temp+83];
lowsR -= bR[temp+79];
lowsR -= bR[temp+73];
lowsR -= bR[temp+71];
lowsR -= bR[temp+67];
lowsR -= bR[temp+61];
lowsR -= bR[temp+59];
lowsR -= bR[temp+53];
lowsR -= bR[temp+47];
lowsR -= bR[temp+43];
lowsR -= bR[temp+41];
lowsR -= bR[temp+37];
lowsR -= bR[temp+31];
lowsR -= bR[temp+29];
lowsR -= bR[temp+23];
lowsR -= bR[temp+19];
lowsR -= bR[temp+17];
lowsR -= bR[temp+13];
lowsR -= bR[temp+11];
lowsR -= bR[temp+7];
lowsR -= bR[temp+5];
lowsR -= bR[temp+3];
lowsR -= bR[temp+2];
lowsR -= bR[temp+1];
//initial negative lobe
lowsL *= subs;
lowsL *= subs;
lowsR *= subs;
lowsR *= subs;
//twice, to minimize the suckout in low boost situations
temp = count+refL2;
lowsL += bL[temp+127];
lowsL += bL[temp+113];
lowsL += bL[temp+109];
lowsL += bL[temp+107];
lowsL += bL[temp+103];
lowsL += bL[temp+101];
lowsL += bL[temp+97];
lowsL += bL[temp+89];
lowsL += bL[temp+83];
lowsL += bL[temp+79];
lowsL += bL[temp+73];
lowsL += bL[temp+71];
lowsL += bL[temp+67];
lowsL += bL[temp+61];
lowsL += bL[temp+59];
lowsL += bL[temp+53];
lowsL += bL[temp+47];
lowsL += bL[temp+43];
lowsL += bL[temp+41];
lowsL += bL[temp+37];
lowsL += bL[temp+31];
lowsL += bL[temp+29];
lowsL += bL[temp+23];
lowsL += bL[temp+19];
lowsL += bL[temp+17];
lowsL += bL[temp+13];
lowsL += bL[temp+11];
lowsL += bL[temp+7];
lowsL += bL[temp+5];
lowsL += bL[temp+3];
lowsL += bL[temp+2];
lowsL += bL[temp+1];
//followup positive lobe
lowsR += bR[temp+127];
lowsR += bR[temp+113];
lowsR += bR[temp+109];
lowsR += bR[temp+107];
lowsR += bR[temp+103];
lowsR += bR[temp+101];
lowsR += bR[temp+97];
lowsR += bR[temp+89];
lowsR += bR[temp+83];
lowsR += bR[temp+79];
lowsR += bR[temp+73];
lowsR += bR[temp+71];
lowsR += bR[temp+67];
lowsR += bR[temp+61];
lowsR += bR[temp+59];
lowsR += bR[temp+53];
lowsR += bR[temp+47];
lowsR += bR[temp+43];
lowsR += bR[temp+41];
lowsR += bR[temp+37];
lowsR += bR[temp+31];
lowsR += bR[temp+29];
lowsR += bR[temp+23];
lowsR += bR[temp+19];
lowsR += bR[temp+17];
lowsR += bR[temp+13];
lowsR += bR[temp+11];
lowsR += bR[temp+7];
lowsR += bR[temp+5];
lowsR += bR[temp+3];
lowsR += bR[temp+2];
lowsR += bR[temp+1];
//followup positive lobe
lowsL *= subs;
lowsR *= subs;
//now we have the lows content to use
}
bridgerectifier = sin(fabs(lowsL) * softness);
//this will wrap around and is scaled back by hardness: hard = less bass push, more treble
//wrap around is the same principle as Fracture: no top limit to sin()
if (lowsL > 0) lowsL = bridgerectifier;
else lowsL = -bridgerectifier;
bridgerectifier = sin(fabs(lowsR) * softness);
//this will wrap around and is scaled back by hardness: hard = less bass push, more treble
//wrap around is the same principle as Fracture: no top limit to sin()
if (lowsR > 0) lowsR = bridgerectifier;
else lowsR = -bridgerectifier;
iirLowsAL = (iirLowsAL * invcalibsubs) + (lowsL * calibsubs);
lowsL = iirLowsAL;
bridgerectifier = sin(fabs(lowsL));
if (lowsL > 0) lowsL = bridgerectifier;
else lowsL = -bridgerectifier;
iirLowsAR = (iirLowsAR * invcalibsubs) + (lowsR * calibsubs);
lowsR = iirLowsAR;
bridgerectifier = sin(fabs(lowsR));
if (lowsR > 0) lowsR = bridgerectifier;
else lowsR = -bridgerectifier;
iirLowsBL = (iirLowsBL * invcalibsubs) + (lowsL * calibsubs);
lowsL = iirLowsBL;
bridgerectifier = sin(fabs(lowsL)) * 2.0;
if (lowsL > 0) lowsL = bridgerectifier;
else lowsL = -bridgerectifier;
iirLowsBR = (iirLowsBR * invcalibsubs) + (lowsR * calibsubs);
lowsR = iirLowsBR;
bridgerectifier = sin(fabs(lowsR)) * 2.0;
if (lowsR > 0) lowsR = bridgerectifier;
else lowsR = -bridgerectifier;
if (highslift > 0.0) inputSampleL += (highsL * (1.0-fabs(inputSampleL*hardness)));
if (subslift > 0.0) inputSampleL += (lowsL * (1.0-fabs(inputSampleL*softness)));
if (highslift > 0.0) inputSampleR += (highsR * (1.0-fabs(inputSampleR*hardness)));
if (subslift > 0.0) inputSampleR += (lowsR * (1.0-fabs(inputSampleR*softness)));
if (inputSampleL > refclipL && refclipL > 0.9) refclipL -= 0.01;
if (inputSampleL < -refclipL && refclipL > 0.9) refclipL -= 0.01;
if (refclipL < 0.99) refclipL += 0.00001;
//adjust clip level on the fly
if (inputSampleR > refclipR && refclipR > 0.9) refclipR -= 0.01;
if (inputSampleR < -refclipR && refclipR > 0.9) refclipR -= 0.01;
if (refclipR < 0.99) refclipR += 0.00001;
//adjust clip level on the fly
if (lastSampleL >= refclipL)
{
if (inputSampleL < refclipL) lastSampleL = ((refclipL*hardness) + (inputSampleL * softness));
else lastSampleL = refclipL;
}
if (lastSampleR >= refclipR)
{
if (inputSampleR < refclipR) lastSampleR = ((refclipR*hardness) + (inputSampleR * softness));
else lastSampleR = refclipR;
}
if (lastSampleL <= -refclipL)
{
if (inputSampleL > -refclipL) lastSampleL = ((-refclipL*hardness) + (inputSampleL * softness));
else lastSampleL = -refclipL;
}
if (lastSampleR <= -refclipR)
{
if (inputSampleR > -refclipR) lastSampleR = ((-refclipR*hardness) + (inputSampleR * softness));
else lastSampleR = -refclipR;
}
if (inputSampleL > refclipL)
{
if (lastSampleL < refclipL) inputSampleL = ((refclipL*hardness) + (lastSampleL * softness));
else inputSampleL = refclipL;
}
if (inputSampleR > refclipR)
{
if (lastSampleR < refclipR) inputSampleR = ((refclipR*hardness) + (lastSampleR * softness));
else inputSampleR = refclipR;
}
if (inputSampleL < -refclipL)
{
if (lastSampleL > -refclipL) inputSampleL = ((-refclipL*hardness) + (lastSampleL * softness));
else inputSampleL = -refclipL;
}
if (inputSampleR < -refclipR)
{
if (lastSampleR > -refclipR) inputSampleR = ((-refclipR*hardness) + (lastSampleR * softness));
else inputSampleR = -refclipR;
}
lastSampleL = inputSampleL;
lastSampleR = inputSampleR;
switch (mode)
{
case 1: break; //Normal
case 2: inputSampleL /= inputGain; inputSampleR /= inputGain; break; //Gain Match
case 3: inputSampleL = overshootL + highsL + lowsL; inputSampleR = overshootR + highsR + lowsR; break; //Clip Only
}
//this is our output mode switch, showing the effects
if (inputSampleL > refclipL) inputSampleL = refclipL;
if (inputSampleL < -refclipL) inputSampleL = -refclipL;
if (inputSampleR > refclipR) inputSampleR = refclipR;
if (inputSampleR < -refclipR) inputSampleR = -refclipR;
//final iron bar
//stereo 32 bit dither, made small and tidy.
int expon; frexpf((float)inputSampleL, &expon);
long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
frexpf((float)inputSampleR, &expon);
dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
//end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
*in1++;
*in2++;
*out1++;
*out2++;
}
}
void ADClip7::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();
long double fpOld = 0.618033988749894848204586; //golden ratio!
long double fpNew = 1.0 - fpOld;
double inputGain = pow(10.0,(A*18.0)/20.0);
double softness = B * fpNew;
double hardness = 1.0 - softness;
double highslift = 0.307 * C;
double adjust = pow(highslift,3) * 0.416;
double subslift = 0.796 * C;
double calibsubs = subslift/53;
double invcalibsubs = 1.0 - calibsubs;
double subs = 0.81 + (calibsubs*2);
long double bridgerectifier;
int mode = (int) floor(D*2.999)+1;
double overshootL;
double overshootR;
double offsetH1 = 1.84;
offsetH1 *= overallscale;
double offsetH2 = offsetH1 * 1.9;
double offsetH3 = offsetH1 * 2.7;
double offsetL1 = 612;
offsetL1 *= overallscale;
double offsetL2 = offsetL1 * 2.0;
int refH1 = (int)floor(offsetH1);
int refH2 = (int)floor(offsetH2);
int refH3 = (int)floor(offsetH3);
int refL1 = (int)floor(offsetL1);
int refL2 = (int)floor(offsetL2);
int temp;
double fractionH1 = offsetH1 - floor(offsetH1);
double fractionH2 = offsetH2 - floor(offsetH2);
double fractionH3 = offsetH3 - floor(offsetH3);
double minusH1 = 1.0 - fractionH1;
double minusH2 = 1.0 - fractionH2;
double minusH3 = 1.0 - fractionH3;
double highsL = 0.0;
double highsR = 0.0;
int count = 0;
long double inputSampleL;
long double inputSampleR;
while (--sampleFrames >= 0)
{
inputSampleL = *in1;
inputSampleR = *in2;
if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
static int noisesource = 0;
//this declares a variable before anything else is compiled. It won't keep assigning
//it to 0 for every sample, it's as if the declaration doesn't exist in this context,
//but it lets me add this denormalization fix in a single place rather than updating
//it in three different locations. The variable isn't thread-safe but this is only
//a random seed and we can share it with whatever.
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleL = applyresidue;
}
if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
static int noisesource = 0;
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleR = applyresidue;
//this denormalization routine produces a white noise at -300 dB which the noise
//shaping will interact with to produce a bipolar output, but the noise is actually
//all positive. That should stop any variables from going denormal, and the routine
//only kicks in if digital black is input. As a final touch, if you save to 24-bit
//the silence will return to being digital black again.
}
if (inputGain != 1.0) {
inputSampleL *= inputGain;
inputSampleR *= inputGain;
}
overshootL = fabs(inputSampleL) - refclipL;
overshootR = fabs(inputSampleR) - refclipR;
if (overshootL < 0.0) overshootL = 0.0;
if (overshootR < 0.0) overshootR = 0.0;
if (gcount < 0 || gcount > 11020) {gcount = 11020;}
count = gcount;
bL[count+11020] = bL[count] = overshootL;
bR[count+11020] = bR[count] = overshootR;
gcount--;
if (highslift > 0.0)
{
//we have a big pile of b[] which is overshoots
temp = count+refH3;
highsL = -(bL[temp] * minusH3); //less as value moves away from .0
highsL -= bL[temp+1]; //we can assume always using this in one way or another?
highsL -= (bL[temp+2] * fractionH3); //greater as value moves away from .0
highsL += (((bL[temp]-bL[temp+1])-(bL[temp+1]-bL[temp+2]))/50); //interpolation hacks 'r us
highsL *= adjust; //add in the kernel elements backwards saves multiplies
//stage 3 is a negative add
highsR = -(bR[temp] * minusH3); //less as value moves away from .0
highsR -= bR[temp+1]; //we can assume always using this in one way or another?
highsR -= (bR[temp+2] * fractionH3); //greater as value moves away from .0
highsR += (((bR[temp]-bR[temp+1])-(bR[temp+1]-bR[temp+2]))/50); //interpolation hacks 'r us
highsR *= adjust; //add in the kernel elements backwards saves multiplies
//stage 3 is a negative add
temp = count+refH2;
highsL += (bL[temp] * minusH2); //less as value moves away from .0
highsL += bL[temp+1]; //we can assume always using this in one way or another?
highsL += (bL[temp+2] * fractionH2); //greater as value moves away from .0
highsL -= (((bL[temp]-bL[temp+1])-(bL[temp+1]-bL[temp+2]))/50); //interpolation hacks 'r us
highsL *= adjust; //add in the kernel elements backwards saves multiplies
//stage 2 is a positive feedback of the overshoot
highsR += (bR[temp] * minusH2); //less as value moves away from .0
highsR += bR[temp+1]; //we can assume always using this in one way or another?
highsR += (bR[temp+2] * fractionH2); //greater as value moves away from .0
highsR -= (((bR[temp]-bR[temp+1])-(bR[temp+1]-bR[temp+2]))/50); //interpolation hacks 'r us
highsR *= adjust; //add in the kernel elements backwards saves multiplies
//stage 2 is a positive feedback of the overshoot
temp = count+refH1;
highsL -= (bL[temp] * minusH1); //less as value moves away from .0
highsL -= bL[temp+1]; //we can assume always using this in one way or another?
highsL -= (bL[temp+2] * fractionH1); //greater as value moves away from .0
highsL += (((bL[temp]-bL[temp+1])-(bL[temp+1]-bL[temp+2]))/50); //interpolation hacks 'r us
highsL *= adjust; //add in the kernel elements backwards saves multiplies
//stage 1 is a negative feedback of the overshoot
highsR -= (bR[temp] * minusH1); //less as value moves away from .0
highsR -= bR[temp+1]; //we can assume always using this in one way or another?
highsR -= (bR[temp+2] * fractionH1); //greater as value moves away from .0
highsR += (((bR[temp]-bR[temp+1])-(bR[temp+1]-bR[temp+2]))/50); //interpolation hacks 'r us
highsR *= adjust; //add in the kernel elements backwards saves multiplies
//stage 1 is a negative feedback of the overshoot
//done with interpolated mostly negative feedback of the overshoot
}
bridgerectifier = sin(fabs(highsL) * hardness);
//this will wrap around and is scaled back by softness
//wrap around is the same principle as Fracture: no top limit to sin()
if (highsL > 0) highsL = bridgerectifier;
else highsL = -bridgerectifier;
bridgerectifier = sin(fabs(highsR) * hardness);
//this will wrap around and is scaled back by softness
//wrap around is the same principle as Fracture: no top limit to sin()
if (highsR > 0) highsR = bridgerectifier;
else highsR = -bridgerectifier;
if (subslift > 0.0)
{
lowsL *= subs;
lowsR *= subs;
//going in we'll reel back some of the swing
temp = count+refL1;
lowsL -= bL[temp+127];
lowsL -= bL[temp+113];
lowsL -= bL[temp+109];
lowsL -= bL[temp+107];
lowsL -= bL[temp+103];
lowsL -= bL[temp+101];
lowsL -= bL[temp+97];
lowsL -= bL[temp+89];
lowsL -= bL[temp+83];
lowsL -= bL[temp+79];
lowsL -= bL[temp+73];
lowsL -= bL[temp+71];
lowsL -= bL[temp+67];
lowsL -= bL[temp+61];
lowsL -= bL[temp+59];
lowsL -= bL[temp+53];
lowsL -= bL[temp+47];
lowsL -= bL[temp+43];
lowsL -= bL[temp+41];
lowsL -= bL[temp+37];
lowsL -= bL[temp+31];
lowsL -= bL[temp+29];
lowsL -= bL[temp+23];
lowsL -= bL[temp+19];
lowsL -= bL[temp+17];
lowsL -= bL[temp+13];
lowsL -= bL[temp+11];
lowsL -= bL[temp+7];
lowsL -= bL[temp+5];
lowsL -= bL[temp+3];
lowsL -= bL[temp+2];
lowsL -= bL[temp+1];
//initial negative lobe
lowsR -= bR[temp+127];
lowsR -= bR[temp+113];
lowsR -= bR[temp+109];
lowsR -= bR[temp+107];
lowsR -= bR[temp+103];
lowsR -= bR[temp+101];
lowsR -= bR[temp+97];
lowsR -= bR[temp+89];
lowsR -= bR[temp+83];
lowsR -= bR[temp+79];
lowsR -= bR[temp+73];
lowsR -= bR[temp+71];
lowsR -= bR[temp+67];
lowsR -= bR[temp+61];
lowsR -= bR[temp+59];
lowsR -= bR[temp+53];
lowsR -= bR[temp+47];
lowsR -= bR[temp+43];
lowsR -= bR[temp+41];
lowsR -= bR[temp+37];
lowsR -= bR[temp+31];
lowsR -= bR[temp+29];
lowsR -= bR[temp+23];
lowsR -= bR[temp+19];
lowsR -= bR[temp+17];
lowsR -= bR[temp+13];
lowsR -= bR[temp+11];
lowsR -= bR[temp+7];
lowsR -= bR[temp+5];
lowsR -= bR[temp+3];
lowsR -= bR[temp+2];
lowsR -= bR[temp+1];
//initial negative lobe
lowsL *= subs;
lowsL *= subs;
lowsR *= subs;
lowsR *= subs;
//twice, to minimize the suckout in low boost situations
temp = count+refL2;
lowsL += bL[temp+127];
lowsL += bL[temp+113];
lowsL += bL[temp+109];
lowsL += bL[temp+107];
lowsL += bL[temp+103];
lowsL += bL[temp+101];
lowsL += bL[temp+97];
lowsL += bL[temp+89];
lowsL += bL[temp+83];
lowsL += bL[temp+79];
lowsL += bL[temp+73];
lowsL += bL[temp+71];
lowsL += bL[temp+67];
lowsL += bL[temp+61];
lowsL += bL[temp+59];
lowsL += bL[temp+53];
lowsL += bL[temp+47];
lowsL += bL[temp+43];
lowsL += bL[temp+41];
lowsL += bL[temp+37];
lowsL += bL[temp+31];
lowsL += bL[temp+29];
lowsL += bL[temp+23];
lowsL += bL[temp+19];
lowsL += bL[temp+17];
lowsL += bL[temp+13];
lowsL += bL[temp+11];
lowsL += bL[temp+7];
lowsL += bL[temp+5];
lowsL += bL[temp+3];
lowsL += bL[temp+2];
lowsL += bL[temp+1];
//followup positive lobe
lowsR += bR[temp+127];
lowsR += bR[temp+113];
lowsR += bR[temp+109];
lowsR += bR[temp+107];
lowsR += bR[temp+103];
lowsR += bR[temp+101];
lowsR += bR[temp+97];
lowsR += bR[temp+89];
lowsR += bR[temp+83];
lowsR += bR[temp+79];
lowsR += bR[temp+73];
lowsR += bR[temp+71];
lowsR += bR[temp+67];
lowsR += bR[temp+61];
lowsR += bR[temp+59];
lowsR += bR[temp+53];
lowsR += bR[temp+47];
lowsR += bR[temp+43];
lowsR += bR[temp+41];
lowsR += bR[temp+37];
lowsR += bR[temp+31];
lowsR += bR[temp+29];
lowsR += bR[temp+23];
lowsR += bR[temp+19];
lowsR += bR[temp+17];
lowsR += bR[temp+13];
lowsR += bR[temp+11];
lowsR += bR[temp+7];
lowsR += bR[temp+5];
lowsR += bR[temp+3];
lowsR += bR[temp+2];
lowsR += bR[temp+1];
//followup positive lobe
lowsL *= subs;
lowsR *= subs;
//now we have the lows content to use
}
bridgerectifier = sin(fabs(lowsL) * softness);
//this will wrap around and is scaled back by hardness: hard = less bass push, more treble
//wrap around is the same principle as Fracture: no top limit to sin()
if (lowsL > 0) lowsL = bridgerectifier;
else lowsL = -bridgerectifier;
bridgerectifier = sin(fabs(lowsR) * softness);
//this will wrap around and is scaled back by hardness: hard = less bass push, more treble
//wrap around is the same principle as Fracture: no top limit to sin()
if (lowsR > 0) lowsR = bridgerectifier;
else lowsR = -bridgerectifier;
iirLowsAL = (iirLowsAL * invcalibsubs) + (lowsL * calibsubs);
lowsL = iirLowsAL;
bridgerectifier = sin(fabs(lowsL));
if (lowsL > 0) lowsL = bridgerectifier;
else lowsL = -bridgerectifier;
iirLowsAR = (iirLowsAR * invcalibsubs) + (lowsR * calibsubs);
lowsR = iirLowsAR;
bridgerectifier = sin(fabs(lowsR));
if (lowsR > 0) lowsR = bridgerectifier;
else lowsR = -bridgerectifier;
iirLowsBL = (iirLowsBL * invcalibsubs) + (lowsL * calibsubs);
lowsL = iirLowsBL;
bridgerectifier = sin(fabs(lowsL)) * 2.0;
if (lowsL > 0) lowsL = bridgerectifier;
else lowsL = -bridgerectifier;
iirLowsBR = (iirLowsBR * invcalibsubs) + (lowsR * calibsubs);
lowsR = iirLowsBR;
bridgerectifier = sin(fabs(lowsR)) * 2.0;
if (lowsR > 0) lowsR = bridgerectifier;
else lowsR = -bridgerectifier;
if (highslift > 0.0) inputSampleL += (highsL * (1.0-fabs(inputSampleL*hardness)));
if (subslift > 0.0) inputSampleL += (lowsL * (1.0-fabs(inputSampleL*softness)));
if (highslift > 0.0) inputSampleR += (highsR * (1.0-fabs(inputSampleR*hardness)));
if (subslift > 0.0) inputSampleR += (lowsR * (1.0-fabs(inputSampleR*softness)));
if (inputSampleL > refclipL && refclipL > 0.9) refclipL -= 0.01;
if (inputSampleL < -refclipL && refclipL > 0.9) refclipL -= 0.01;
if (refclipL < 0.99) refclipL += 0.00001;
//adjust clip level on the fly
if (inputSampleR > refclipR && refclipR > 0.9) refclipR -= 0.01;
if (inputSampleR < -refclipR && refclipR > 0.9) refclipR -= 0.01;
if (refclipR < 0.99) refclipR += 0.00001;
//adjust clip level on the fly
if (lastSampleL >= refclipL)
{
if (inputSampleL < refclipL) lastSampleL = ((refclipL*hardness) + (inputSampleL * softness));
else lastSampleL = refclipL;
}
if (lastSampleR >= refclipR)
{
if (inputSampleR < refclipR) lastSampleR = ((refclipR*hardness) + (inputSampleR * softness));
else lastSampleR = refclipR;
}
if (lastSampleL <= -refclipL)
{
if (inputSampleL > -refclipL) lastSampleL = ((-refclipL*hardness) + (inputSampleL * softness));
else lastSampleL = -refclipL;
}
if (lastSampleR <= -refclipR)
{
if (inputSampleR > -refclipR) lastSampleR = ((-refclipR*hardness) + (inputSampleR * softness));
else lastSampleR = -refclipR;
}
if (inputSampleL > refclipL)
{
if (lastSampleL < refclipL) inputSampleL = ((refclipL*hardness) + (lastSampleL * softness));
else inputSampleL = refclipL;
}
if (inputSampleR > refclipR)
{
if (lastSampleR < refclipR) inputSampleR = ((refclipR*hardness) + (lastSampleR * softness));
else inputSampleR = refclipR;
}
if (inputSampleL < -refclipL)
{
if (lastSampleL > -refclipL) inputSampleL = ((-refclipL*hardness) + (lastSampleL * softness));
else inputSampleL = -refclipL;
}
if (inputSampleR < -refclipR)
{
if (lastSampleR > -refclipR) inputSampleR = ((-refclipR*hardness) + (lastSampleR * softness));
else inputSampleR = -refclipR;
}
lastSampleL = inputSampleL;
lastSampleR = inputSampleR;
switch (mode)
{
case 1: break; //Normal
case 2: inputSampleL /= inputGain; inputSampleR /= inputGain; break; //Gain Match
case 3: inputSampleL = overshootL + highsL + lowsL; inputSampleR = overshootR + highsR + lowsR; break; //Clip Only
}
//this is our output mode switch, showing the effects
if (inputSampleL > refclipL) inputSampleL = refclipL;
if (inputSampleL < -refclipL) inputSampleL = -refclipL;
if (inputSampleR > refclipR) inputSampleR = refclipR;
if (inputSampleR < -refclipR) inputSampleR = -refclipR;
//final iron bar
//stereo 64 bit dither, made small and tidy.
int expon; frexp((double)inputSampleL, &expon);
long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
dither /= 536870912.0; //needs this to scale to 64 bit zone
inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
frexp((double)inputSampleR, &expon);
dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
dither /= 536870912.0; //needs this to scale to 64 bit zone
inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
//end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
*in1++;
*in2++;
*out1++;
*out2++;
}
}

View file

@ -0,0 +1,143 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* ADT */;
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 = 631580828;
PBXWorkspaceStateSaveDate = 631580828;
};
perUserProjectItems = {
8B2E7A5B25A528A700485B86 /* PBXTextBookmark */ = 8B2E7A5B25A528A700485B86 /* PBXTextBookmark */;
8B79334D21F50CB2006E9731 /* PBXTextBookmark */ = 8B79334D21F50CB2006E9731 /* PBXTextBookmark */;
8BA544DF2221FB88005CB2C3 /* PBXTextBookmark */ = 8BA544DF2221FB88005CB2C3 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* ADT.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {691, 2002}}";
sepNavSelRange = "{4290, 0}";
sepNavVisRange = "{4100, 345}";
sepNavWindowFrame = "{{735, 48}, {705, 830}}";
};
};
245463B80991757100464AD3 /* ADT.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {866, 1040}}";
sepNavSelRange = "{2492, 0}";
sepNavVisRange = "{458, 2203}";
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 /* ADTProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 5112}}";
sepNavSelRange = "{7166, 0}";
sepNavVisRange = "{5603, 556}";
sepNavWindowFrame = "{{129, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8B2E7A5B25A528A700485B86 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ADTProc.cpp */;
name = "ADTProc.cpp: 210";
rLen = 0;
rLoc = 7166;
rType = 0;
vrLen = 556;
vrLoc = 5603;
};
8B79334D21F50CB2006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* ADT.cpp */;
name = "ADT.cpp: 121";
rLen = 0;
rLoc = 4290;
rType = 0;
vrLen = 345;
vrLoc = 4100;
};
8BA544DF2221FB88005CB2C3 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ADTProc.cpp */;
name = "ADTProc.cpp: 212";
rLen = 0;
rLoc = 7166;
rType = 0;
vrLen = 855;
vrLoc = 5269;
};
8D01CCC60486CAD60068D4B7 /* ADT */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,454 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
2407DEB9089929BA00EB68BF /* ADT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* ADT.cpp */; };
245463B90991757100464AD3 /* ADT.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* ADT.h */; };
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
24D8287009A914000093AEF8 /* ADTProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* ADTProc.cpp */; };
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
8BD66369264DC51800514858 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD6635D264DC51800514858 /* vstfxstore.h */; };
8BD6636A264DC51800514858 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD6635E264DC51800514858 /* aeffect.h */; };
8BD6636B264DC51800514858 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD6635F264DC51800514858 /* aeffectx.h */; };
8BD6636C264DC51800514858 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD66363264DC51800514858 /* audioeffectx.h */; };
8BD6636D264DC51800514858 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD66364264DC51800514858 /* audioeffect.cpp */; };
8BD6636E264DC51800514858 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD66365264DC51800514858 /* audioeffectx.cpp */; };
8BD6636F264DC51800514858 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD66366264DC51800514858 /* aeffeditor.h */; };
8BD66370264DC51800514858 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BD66367264DC51800514858 /* vstplugmain.cpp */; };
8BD66371264DC51800514858 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD66368264DC51800514858 /* audioeffect.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
2407DE920899296600EB68BF /* ADT.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ADT.vst; sourceTree = BUILT_PRODUCTS_DIR; };
2407DEB6089929BA00EB68BF /* ADT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ADT.cpp; path = source/ADT.cpp; sourceTree = "<group>"; };
245463B80991757100464AD3 /* ADT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ADT.h; path = source/ADT.h; sourceTree = "<group>"; };
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
24D8286F09A914000093AEF8 /* ADTProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ADTProc.cpp; path = source/ADTProc.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; };
8BD6635D264DC51800514858 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
8BD6635E264DC51800514858 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
8BD6635F264DC51800514858 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
8BD66363264DC51800514858 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
8BD66364264DC51800514858 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
8BD66365264DC51800514858 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
8BD66366264DC51800514858 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
8BD66367264DC51800514858 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
8BD66368264DC51800514858 /* 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 = (
8BD6635A264DC51800514858 /* vstsdk2.4 */,
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 = (
2407DEB6089929BA00EB68BF /* ADT.cpp */,
24D8286F09A914000093AEF8 /* ADTProc.cpp */,
245463B80991757100464AD3 /* ADT.h */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
2407DE920899296600EB68BF /* ADT.vst */,
);
name = Products;
sourceTree = "<group>";
};
8BD6635A264DC51800514858 /* vstsdk2.4 */ = {
isa = PBXGroup;
children = (
8BD6635B264DC51800514858 /* pluginterfaces */,
8BD66360264DC51800514858 /* public.sdk */,
);
name = vstsdk2.4;
path = ../../../../vstsdk2.4;
sourceTree = "<group>";
};
8BD6635B264DC51800514858 /* pluginterfaces */ = {
isa = PBXGroup;
children = (
8BD6635C264DC51800514858 /* vst2.x */,
);
path = pluginterfaces;
sourceTree = "<group>";
};
8BD6635C264DC51800514858 /* vst2.x */ = {
isa = PBXGroup;
children = (
8BD6635D264DC51800514858 /* vstfxstore.h */,
8BD6635E264DC51800514858 /* aeffect.h */,
8BD6635F264DC51800514858 /* aeffectx.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
8BD66360264DC51800514858 /* public.sdk */ = {
isa = PBXGroup;
children = (
8BD66361264DC51800514858 /* source */,
);
path = public.sdk;
sourceTree = "<group>";
};
8BD66361264DC51800514858 /* source */ = {
isa = PBXGroup;
children = (
8BD66362264DC51800514858 /* vst2.x */,
);
path = source;
sourceTree = "<group>";
};
8BD66362264DC51800514858 /* vst2.x */ = {
isa = PBXGroup;
children = (
8BD66363264DC51800514858 /* audioeffectx.h */,
8BD66364264DC51800514858 /* audioeffect.cpp */,
8BD66365264DC51800514858 /* audioeffectx.cpp */,
8BD66366264DC51800514858 /* aeffeditor.h */,
8BD66367264DC51800514858 /* vstplugmain.cpp */,
8BD66368264DC51800514858 /* audioeffect.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8BD6636F264DC51800514858 /* aeffeditor.h in Headers */,
245463B90991757100464AD3 /* ADT.h in Headers */,
8BD66371264DC51800514858 /* audioeffect.h in Headers */,
8BD6636A264DC51800514858 /* aeffect.h in Headers */,
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
8BD6636C264DC51800514858 /* audioeffectx.h in Headers */,
8BD66369264DC51800514858 /* vstfxstore.h in Headers */,
8BD6636B264DC51800514858 /* aeffectx.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* ADT */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "ADT" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
);
buildRules = (
);
dependencies = (
);
name = ADT;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "FM-Chopper";
productReference = 2407DE920899296600EB68BF /* ADT.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1240;
};
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "ADT" */;
compatibilityVersion = "Xcode 2.4";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
Base,
ja,
fr,
en,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* ADT */,
);
};
/* 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 = (
8BD6636E264DC51800514858 /* audioeffectx.cpp in Sources */,
2407DEB9089929BA00EB68BF /* ADT.cpp in Sources */,
8BD6636D264DC51800514858 /* audioeffect.cpp in Sources */,
8BD66370264DC51800514858 /* vstplugmain.cpp in Sources */,
24D8287009A914000093AEF8 /* ADTProc.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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEVELOPMENT_TEAM = 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.ADT;
PRODUCT_NAME = ADT;
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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 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.ADT;
PRODUCT_NAME = ADT;
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;
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;
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 "ADT" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAEE08919AE700E695F9 /* Debug */,
24BEAAEF08919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "ADT" */ = {
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 = "1240"
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 = "ADT.vst"
BlueprintName = "ADT"
ReferencedContainer = "container:ADT.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 = "ADT.vst"
BlueprintName = "ADT"
ReferencedContainer = "container:ADT.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>ADT.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>ADT</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,164 @@
/* ========================================
* ADT - ADT.h
* Copyright (c) 2016 airwindows, All rights reserved
* ======================================== */
#ifndef __ADT_H
#include "ADT.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new ADT(audioMaster);}
ADT::ADT(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5; //0.0 to 2.0 headroom
B = 0.5; //delay time
C = 0.5; //-1.0 to 1.0 inv/out
D = 0.5; //delay time
E = 0.5; //-1.0 to 1.0 inv/out
F = 0.5; //0.0 to 2.0 output level
for(int count = 0; count < 9999; count++) {pL[count] = 0; pR[count] = 0;}
offsetA = 9001;
offsetB = 9001; // :D
gcount = 0;
fpd = 17;
//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
}
ADT::~ADT() {}
VstInt32 ADT::getVendorVersion () {return 1000;}
void ADT::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void ADT::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
static float pinParameter(float data)
{
if (data < 0.0f) return 0.0f;
if (data > 1.0f) return 1.0f;
return data;
}
VstInt32 ADT::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
chunkData[4] = E;
chunkData[5] = F;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 ADT::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
D = pinParameter(chunkData[3]);
E = pinParameter(chunkData[4]);
F = pinParameter(chunkData[5]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void ADT::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
case kParamD: D = value; break;
case kParamE: E = value; break;
case kParamF: F = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float ADT::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
case kParamD: return D; break;
case kParamE: return E; break;
case kParamF: return F; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void ADT::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Headrm", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "A Delay", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "A Level", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "B Delay", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "B Level", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void ADT::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A*2.0, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string ((C*2.0)-1.0, text, kVstMaxParamStrLen); break;
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
case kParamE: float2string ((E*2.0)-1.0, text, kVstMaxParamStrLen); break;
case kParamF: float2string (F*2.0, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void ADT::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 ADT::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool ADT::getEffectName(char* name) {
vst_strncpy(name, "ADT", kVstMaxProductStrLen); return true;
}
VstPlugCategory ADT::getPlugCategory() {return kPlugCategEffect;}
bool ADT::getProductString(char* text) {
vst_strncpy (text, "airwindows ADT", kVstMaxProductStrLen); return true;
}
bool ADT::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,78 @@
/* ========================================
* ADT - ADT.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) 2011 __MyCompanyName__, All rights reserved
* ======================================== */
#ifndef __ADT_H
#define __ADT_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA = 0,
kParamB = 1,
kParamC = 2,
kParamD = 3,
kParamE = 4,
kParamF = 5,
kNumParameters = 6
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'aadt'; //Change this to what the AU identity is!
class ADT :
public AudioEffectX
{
public:
ADT(audioMasterCallback audioMaster);
~ADT();
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 pL[10000];
double pR[10000];
int gcount;
double offsetA;
double offsetB;
uint32_t fpd;
//default stuff
float A;
float B;
float C;
float D;
float E;
float F;
};
#endif

View file

@ -0,0 +1,278 @@
/* ========================================
* ADT - ADT.h
* Copyright (c) 2016 airwindows, All rights reserved
* ======================================== */
#ifndef __ADT_H
#include "ADT.h"
#endif
void ADT::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double gain = A * 1.272;
double targetA = pow(B,4) * 4790.0;
double fractionA;
double minusA;
double intensityA = C-0.5;
//first delay
double targetB = (pow(D,4) * 4790.0);
double fractionB;
double minusB;
double intensityB = E-0.5;
//second delay
double output = F*2.0;
while (--sampleFrames >= 0)
{
long double inputSampleL = *in1;
long double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-37) inputSampleL = fpd * 1.18e-37;
if (fabs(inputSampleR)<1.18e-37) inputSampleR = fpd * 1.18e-37;
if (fabs(offsetA - targetA) > 1000) offsetA = targetA;
offsetA = ((offsetA*999.0)+targetA)/1000.0;
fractionA = offsetA - floor(offsetA);
minusA = 1.0 - fractionA;
if (fabs(offsetB - targetB) > 1000) offsetB = targetB;
offsetB = ((offsetB*999.0)+targetB)/1000.0;
fractionB = offsetB - floor(offsetB);
minusB = 1.0 - fractionB;
//chase delay taps for smooth action
if (gain > 0) {inputSampleL /= gain; inputSampleR /= gain;}
if (inputSampleL > 1.2533141373155) inputSampleL = 1.2533141373155;
if (inputSampleL < -1.2533141373155) inputSampleL = -1.2533141373155;
if (inputSampleR > 1.2533141373155) inputSampleR = 1.2533141373155;
if (inputSampleR < -1.2533141373155) inputSampleR = -1.2533141373155;
inputSampleL = sin(inputSampleL * fabs(inputSampleL)) / ((fabs(inputSampleL) == 0.0) ?1:fabs(inputSampleL));
inputSampleR = sin(inputSampleR * fabs(inputSampleR)) / ((fabs(inputSampleR) == 0.0) ?1:fabs(inputSampleR));
//Spiral: lean out the sound a little when decoded by ConsoleBuss
if (gcount < 1 || gcount > 4800) {gcount = 4800;}
int count = gcount;
double totalL = 0.0;
double totalR = 0.0;
double tempL;
double tempR;
pL[count+4800] = pL[count] = inputSampleL;
pR[count+4800] = pR[count] = inputSampleR;
//double buffer
if (intensityA != 0.0)
{
count = (int)(gcount+floor(offsetA));
tempL = (pL[count] * minusA); //less as value moves away from .0
tempL += pL[count+1]; //we can assume always using this in one way or another?
tempL += (pL[count+2] * fractionA); //greater as value moves away from .0
tempL -= (((pL[count]-pL[count+1])-(pL[count+1]-pL[count+2]))/50); //interpolation hacks 'r us
totalL += (tempL * intensityA);
tempR = (pR[count] * minusA); //less as value moves away from .0
tempR += pR[count+1]; //we can assume always using this in one way or another?
tempR += (pR[count+2] * fractionA); //greater as value moves away from .0
tempR -= (((pR[count]-pR[count+1])-(pR[count+1]-pR[count+2]))/50); //interpolation hacks 'r us
totalR += (tempR * intensityA);
}
if (intensityB != 0.0)
{
count = (int)(gcount+floor(offsetB));
tempL = (pL[count] * minusB); //less as value moves away from .0
tempL += pL[count+1]; //we can assume always using this in one way or another?
tempL += (pL[count+2] * fractionB); //greater as value moves away from .0
tempL -= (((pL[count]-pL[count+1])-(pL[count+1]-pL[count+2]))/50); //interpolation hacks 'r us
totalL += (tempL * intensityB);
tempR = (pR[count] * minusB); //less as value moves away from .0
tempR += pR[count+1]; //we can assume always using this in one way or another?
tempR += (pR[count+2] * fractionB); //greater as value moves away from .0
tempR -= (((pR[count]-pR[count+1])-(pR[count+1]-pR[count+2]))/50); //interpolation hacks 'r us
totalR += (tempR * intensityB);
}
gcount--;
//still scrolling through the samples, remember
inputSampleL += totalL;
inputSampleR += totalR;
if (inputSampleL > 1.0) inputSampleL = 1.0;
if (inputSampleL < -1.0) inputSampleL = -1.0;
if (inputSampleR > 1.0) inputSampleR = 1.0;
if (inputSampleR < -1.0) inputSampleR = -1.0;
//without this, you can get a NaN condition where it spits out DC offset at full blast!
inputSampleL = asin(inputSampleL);
inputSampleR = asin(inputSampleR);
//amplitude aspect
inputSampleL *= gain;
inputSampleR *= gain;
if (output < 1.0) {inputSampleL *= output; inputSampleR *= output;}
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSampleL += static_cast<int32_t>(fpd) * 5.960464655174751e-36L * pow(2,expon+62);
frexpf((float)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSampleR += static_cast<int32_t>(fpd) * 5.960464655174751e-36L * pow(2,expon+62);
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
*in1++;
*in2++;
*out1++;
*out2++;
}
}
void ADT::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double gain = A * 1.272;
double targetA = pow(B,4) * 4790.0;
double fractionA;
double minusA;
double intensityA = C-0.5;
//first delay
double targetB = (pow(D,4) * 4790.0);
double fractionB;
double minusB;
double intensityB = E-0.5;
//second delay
double output = F*2.0;
while (--sampleFrames >= 0)
{
long double inputSampleL = *in1;
long double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-43) inputSampleL = fpd * 1.18e-43;
if (fabs(inputSampleR)<1.18e-43) inputSampleR = fpd * 1.18e-43;
if (fabs(offsetA - targetA) > 1000) offsetA = targetA;
offsetA = ((offsetA*999.0)+targetA)/1000.0;
fractionA = offsetA - floor(offsetA);
minusA = 1.0 - fractionA;
if (fabs(offsetB - targetB) > 1000) offsetB = targetB;
offsetB = ((offsetB*999.0)+targetB)/1000.0;
fractionB = offsetB - floor(offsetB);
minusB = 1.0 - fractionB;
//chase delay taps for smooth action
if (gain > 0) {inputSampleL /= gain; inputSampleR /= gain;}
if (inputSampleL > 1.2533141373155) inputSampleL = 1.2533141373155;
if (inputSampleL < -1.2533141373155) inputSampleL = -1.2533141373155;
if (inputSampleR > 1.2533141373155) inputSampleR = 1.2533141373155;
if (inputSampleR < -1.2533141373155) inputSampleR = -1.2533141373155;
inputSampleL = sin(inputSampleL * fabs(inputSampleL)) / ((fabs(inputSampleL) == 0.0) ?1:fabs(inputSampleL));
inputSampleR = sin(inputSampleR * fabs(inputSampleR)) / ((fabs(inputSampleR) == 0.0) ?1:fabs(inputSampleR));
//Spiral: lean out the sound a little when decoded by ConsoleBuss
if (gcount < 1 || gcount > 4800) {gcount = 4800;}
int count = gcount;
double totalL = 0.0;
double totalR = 0.0;
double tempL;
double tempR;
pL[count+4800] = pL[count] = inputSampleL;
pR[count+4800] = pR[count] = inputSampleR;
//double buffer
if (intensityA != 0.0)
{
count = (int)(gcount+floor(offsetA));
tempL = (pL[count] * minusA); //less as value moves away from .0
tempL += pL[count+1]; //we can assume always using this in one way or another?
tempL += (pL[count+2] * fractionA); //greater as value moves away from .0
tempL -= (((pL[count]-pL[count+1])-(pL[count+1]-pL[count+2]))/50); //interpolation hacks 'r us
totalL += (tempL * intensityA);
tempR = (pR[count] * minusA); //less as value moves away from .0
tempR += pR[count+1]; //we can assume always using this in one way or another?
tempR += (pR[count+2] * fractionA); //greater as value moves away from .0
tempR -= (((pR[count]-pR[count+1])-(pR[count+1]-pR[count+2]))/50); //interpolation hacks 'r us
totalR += (tempR * intensityA);
}
if (intensityB != 0.0)
{
count = (int)(gcount+floor(offsetB));
tempL = (pL[count] * minusB); //less as value moves away from .0
tempL += pL[count+1]; //we can assume always using this in one way or another?
tempL += (pL[count+2] * fractionB); //greater as value moves away from .0
tempL -= (((pL[count]-pL[count+1])-(pL[count+1]-pL[count+2]))/50); //interpolation hacks 'r us
totalL += (tempL * intensityB);
tempR = (pR[count] * minusB); //less as value moves away from .0
tempR += pR[count+1]; //we can assume always using this in one way or another?
tempR += (pR[count+2] * fractionB); //greater as value moves away from .0
tempR -= (((pR[count]-pR[count+1])-(pR[count+1]-pR[count+2]))/50); //interpolation hacks 'r us
totalR += (tempR * intensityB);
}
gcount--;
//still scrolling through the samples, remember
inputSampleL += totalL;
inputSampleR += totalR;
if (inputSampleL > 1.0) inputSampleL = 1.0;
if (inputSampleL < -1.0) inputSampleL = -1.0;
if (inputSampleR > 1.0) inputSampleR = 1.0;
if (inputSampleR < -1.0) inputSampleR = -1.0;
//without this, you can get a NaN condition where it spits out DC offset at full blast!
inputSampleL = asin(inputSampleL);
inputSampleR = asin(inputSampleR);
//amplitude aspect
inputSampleL *= gain;
inputSampleR *= gain;
if (output < 1.0) {inputSampleL *= output; inputSampleR *= output;}
//begin 64 bit stereo floating point dither
int expon; frexp((double)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSampleL += static_cast<int32_t>(fpd) * 1.110223024625156e-44L * pow(2,expon+62);
frexp((double)inputSampleR, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSampleR += static_cast<int32_t>(fpd) * 1.110223024625156e-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,132 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* AQuickVoiceClip */;
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 = 569707744;
PBXWorkspaceStateSaveDate = 569707744;
};
perUserProjectItems = {
8B79338421F50CE8006E9731 /* PBXTextBookmark */ = 8B79338421F50CE8006E9731 /* PBXTextBookmark */;
8B9D774E1F7FA54A007AB60F /* PBXTextBookmark */ = 8B9D774E1F7FA54A007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* AQuickVoiceClip.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {848, 2184}}";
sepNavSelRange = "{1460, 0}";
sepNavVisRange = "{751, 1879}";
sepNavWindowFrame = "{{484, 39}, {895, 831}}";
};
};
245463B80991757100464AD3 /* AQuickVoiceClip.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {554, 1690}}";
sepNavSelRange = "{3742, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{514, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{9653, 2414}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* AQuickVoiceClipProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {628, 11635}}";
sepNavSelRange = "{4853, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{362, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8B79338421F50CE8006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* AQuickVoiceClip.h */;
name = "AQuickVoiceClip.h: 117";
rLen = 0;
rLoc = 3742;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
8B9D774E1F7FA54A007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* AQuickVoiceClip.h */;
name = "AQuickVoiceClip.h: 117";
rLen = 0;
rLoc = 3742;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
8D01CCC60486CAD60068D4B7 /* AQuickVoiceClip */ = {
activeExec = 0;
};
}

View file

@ -0,0 +1,454 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
2407DEB9089929BA00EB68BF /* AQuickVoiceClip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* AQuickVoiceClip.cpp */; };
245463B90991757100464AD3 /* AQuickVoiceClip.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* AQuickVoiceClip.h */; };
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
24D8287009A914000093AEF8 /* AQuickVoiceClipProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* AQuickVoiceClipProc.cpp */; };
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
8B015CF1265188C400CADB12 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B015CE5265188C400CADB12 /* vstfxstore.h */; };
8B015CF2265188C400CADB12 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B015CE6265188C400CADB12 /* aeffect.h */; };
8B015CF3265188C400CADB12 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B015CE7265188C400CADB12 /* aeffectx.h */; };
8B015CF4265188C400CADB12 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B015CEB265188C400CADB12 /* audioeffectx.h */; };
8B015CF5265188C400CADB12 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B015CEC265188C400CADB12 /* audioeffect.cpp */; };
8B015CF6265188C400CADB12 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B015CED265188C400CADB12 /* audioeffectx.cpp */; };
8B015CF7265188C400CADB12 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B015CEE265188C400CADB12 /* aeffeditor.h */; };
8B015CF8265188C400CADB12 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B015CEF265188C400CADB12 /* vstplugmain.cpp */; };
8B015CF9265188C400CADB12 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B015CF0265188C400CADB12 /* audioeffect.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
2407DE920899296600EB68BF /* AQuickVoiceClip.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AQuickVoiceClip.vst; sourceTree = BUILT_PRODUCTS_DIR; };
2407DEB6089929BA00EB68BF /* AQuickVoiceClip.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = AQuickVoiceClip.cpp; path = source/AQuickVoiceClip.cpp; sourceTree = "<group>"; };
245463B80991757100464AD3 /* AQuickVoiceClip.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AQuickVoiceClip.h; path = source/AQuickVoiceClip.h; sourceTree = "<group>"; };
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
24D8286F09A914000093AEF8 /* AQuickVoiceClipProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AQuickVoiceClipProc.cpp; path = source/AQuickVoiceClipProc.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; };
8B015CE5265188C400CADB12 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
8B015CE6265188C400CADB12 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
8B015CE7265188C400CADB12 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
8B015CEB265188C400CADB12 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
8B015CEC265188C400CADB12 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
8B015CED265188C400CADB12 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
8B015CEE265188C400CADB12 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
8B015CEF265188C400CADB12 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
8B015CF0265188C400CADB12 /* 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 = (
8B015CE2265188C400CADB12 /* vstsdk2.4 */,
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 = (
2407DEB6089929BA00EB68BF /* AQuickVoiceClip.cpp */,
24D8286F09A914000093AEF8 /* AQuickVoiceClipProc.cpp */,
245463B80991757100464AD3 /* AQuickVoiceClip.h */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
2407DE920899296600EB68BF /* AQuickVoiceClip.vst */,
);
name = Products;
sourceTree = "<group>";
};
8B015CE2265188C400CADB12 /* vstsdk2.4 */ = {
isa = PBXGroup;
children = (
8B015CE3265188C400CADB12 /* pluginterfaces */,
8B015CE8265188C400CADB12 /* public.sdk */,
);
name = vstsdk2.4;
path = ../../../../vstsdk2.4;
sourceTree = "<group>";
};
8B015CE3265188C400CADB12 /* pluginterfaces */ = {
isa = PBXGroup;
children = (
8B015CE4265188C400CADB12 /* vst2.x */,
);
path = pluginterfaces;
sourceTree = "<group>";
};
8B015CE4265188C400CADB12 /* vst2.x */ = {
isa = PBXGroup;
children = (
8B015CE5265188C400CADB12 /* vstfxstore.h */,
8B015CE6265188C400CADB12 /* aeffect.h */,
8B015CE7265188C400CADB12 /* aeffectx.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
8B015CE8265188C400CADB12 /* public.sdk */ = {
isa = PBXGroup;
children = (
8B015CE9265188C400CADB12 /* source */,
);
path = public.sdk;
sourceTree = "<group>";
};
8B015CE9265188C400CADB12 /* source */ = {
isa = PBXGroup;
children = (
8B015CEA265188C400CADB12 /* vst2.x */,
);
path = source;
sourceTree = "<group>";
};
8B015CEA265188C400CADB12 /* vst2.x */ = {
isa = PBXGroup;
children = (
8B015CEB265188C400CADB12 /* audioeffectx.h */,
8B015CEC265188C400CADB12 /* audioeffect.cpp */,
8B015CED265188C400CADB12 /* audioeffectx.cpp */,
8B015CEE265188C400CADB12 /* aeffeditor.h */,
8B015CEF265188C400CADB12 /* vstplugmain.cpp */,
8B015CF0265188C400CADB12 /* audioeffect.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B015CF7265188C400CADB12 /* aeffeditor.h in Headers */,
245463B90991757100464AD3 /* AQuickVoiceClip.h in Headers */,
8B015CF9265188C400CADB12 /* audioeffect.h in Headers */,
8B015CF2265188C400CADB12 /* aeffect.h in Headers */,
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
8B015CF4265188C400CADB12 /* audioeffectx.h in Headers */,
8B015CF1265188C400CADB12 /* vstfxstore.h in Headers */,
8B015CF3265188C400CADB12 /* aeffectx.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* AQuickVoiceClip */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "AQuickVoiceClip" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
);
buildRules = (
);
dependencies = (
);
name = AQuickVoiceClip;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "FM-Chopper";
productReference = 2407DE920899296600EB68BF /* AQuickVoiceClip.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1240;
};
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "AQuickVoiceClip" */;
compatibilityVersion = "Xcode 2.4";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
de,
ja,
en,
Base,
fr,
);
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* AQuickVoiceClip */,
);
};
/* 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 = (
8B015CF6265188C400CADB12 /* audioeffectx.cpp in Sources */,
2407DEB9089929BA00EB68BF /* AQuickVoiceClip.cpp in Sources */,
8B015CF5265188C400CADB12 /* audioeffect.cpp in Sources */,
8B015CF8265188C400CADB12 /* vstplugmain.cpp in Sources */,
24D8287009A914000093AEF8 /* AQuickVoiceClipProc.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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEVELOPMENT_TEAM = 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.AQuickVoiceClip;
PRODUCT_NAME = AQuickVoiceClip;
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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 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.AQuickVoiceClip;
PRODUCT_NAME = AQuickVoiceClip;
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;
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;
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 "AQuickVoiceClip" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAEE08919AE700E695F9 /* Debug */,
24BEAAEF08919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "AQuickVoiceClip" */ = {
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 = "1240"
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 = "AQuickVoiceClip.vst"
BlueprintName = "AQuickVoiceClip"
ReferencedContainer = "container:AQuickVoiceClip.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 = "AQuickVoiceClip.vst"
BlueprintName = "AQuickVoiceClip"
ReferencedContainer = "container:AQuickVoiceClip.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>AQuickVoiceClip.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>AQuickVoiceClip</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,163 @@
/* ========================================
* AQuickVoiceClip - AQuickVoiceClip.h
* Copyright (c) 2016 airwindows, All rights reserved
* ======================================== */
#ifndef __AQuickVoiceClip_H
#include "AQuickVoiceClip.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new AQuickVoiceClip(audioMaster);}
AQuickVoiceClip::AQuickVoiceClip(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.42;
LataLast6Sample = LataLast5Sample = LataLast4Sample = 0.0;
LataLast3Sample = LataLast2Sample = LataLast1Sample = 0.0;
LataHalfwaySample = LataHalfDrySample = LataHalfDiffSample = 0.0;
LataDrySample = LataDiffSample = LataPrevDiffSample = 0.0;
RataLast6Sample = RataLast5Sample = RataLast4Sample = 0.0;
RataLast3Sample = RataLast2Sample = RataLast1Sample = 0.0;
RataHalfwaySample = RataHalfDrySample = RataHalfDiffSample = 0.0;
RataDrySample = RataDiffSample = RataPrevDiffSample = 0.0;
LlastSample = 0.0;
LlastOutSample = 0.0;
LlastOut2Sample = 0.0;
LlastOut3Sample = 0.0;
LlpDepth = 0.0;
Lovershoot = 0.0;
Loverall = 0;
LiirSampleA = 0.0;
LiirSampleB = 0.0;
LiirSampleC = 0.0;
LiirSampleD = 0.0;
RlastSample = 0.0;
RlastOutSample = 0.0;
RlastOut2Sample = 0.0;
RlastOut3Sample = 0.0;
RlpDepth = 0.0;
Rovershoot = 0.0;
Roverall = 0;
RiirSampleA = 0.0;
RiirSampleB = 0.0;
RiirSampleC = 0.0;
RiirSampleD = 0.0;
flip = true;
ataK1 = -0.646; //first FIR shaping of interpolated sample, brightens
ataK2 = 0.311; //second FIR shaping of interpolated sample, thickens
ataK6 = -0.093; //third FIR shaping of interpolated sample, brings air
ataK7 = 0.057; //fourth FIR shaping of interpolated sample, thickens
ataK8 = -0.023; //fifth FIR shaping of interpolated sample, brings air
ataK3 = 0.114; //add raw to interpolated dry, toughens
ataK4 = 0.886; //remainder of interpolated dry, adds up to 1.0
ataK5 = 0.431; //subtract this much prev. diff sample, brightens. 0.431 becomes flat
fpNShapeL = 0.0;
fpNShapeR = 0.0;
//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
}
AQuickVoiceClip::~AQuickVoiceClip() {}
VstInt32 AQuickVoiceClip::getVendorVersion () {return 1000;}
void AQuickVoiceClip::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void AQuickVoiceClip::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
static float pinParameter(float data)
{
if (data < 0.0f) return 0.0f;
if (data > 1.0f) return 1.0f;
return data;
}
VstInt32 AQuickVoiceClip::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 AQuickVoiceClip::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void AQuickVoiceClip::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float AQuickVoiceClip::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void AQuickVoiceClip::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Highpass", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void AQuickVoiceClip::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string ((pow(A,3)*2070)+30, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void AQuickVoiceClip::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "hz", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 AQuickVoiceClip::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool AQuickVoiceClip::getEffectName(char* name) {
vst_strncpy(name, "AQuickVoiceClip", kVstMaxProductStrLen); return true;
}
VstPlugCategory AQuickVoiceClip::getPlugCategory() {return kPlugCategEffect;}
bool AQuickVoiceClip::getProductString(char* text) {
vst_strncpy (text, "airwindows AQuickVoiceClip", kVstMaxProductStrLen); return true;
}
bool AQuickVoiceClip::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,125 @@
/* ========================================
* AQuickVoiceClip - AQuickVoiceClip.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) 2011 __MyCompanyName__, All rights reserved
* ======================================== */
#ifndef __AQuickVoiceClip_H
#define __AQuickVoiceClip_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA = 0,
kNumParameters = 1
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'aqvc'; //Change this to what the AU identity is!
class AQuickVoiceClip :
public AudioEffectX
{
public:
AQuickVoiceClip(audioMasterCallback audioMaster);
~AQuickVoiceClip();
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 LataLast6Sample;
double LataLast5Sample;
double LataLast4Sample;
double LataLast3Sample;
double LataLast2Sample;
double LataLast1Sample;
double LataHalfwaySample;
double LataHalfDrySample;
double LataHalfDiffSample;
double LataLastDiffSample;
double LataDrySample;
double LataDiffSample;
double LataPrevDiffSample;
double RataLast6Sample;
double RataLast5Sample;
double RataLast4Sample;
double RataLast3Sample;
double RataLast2Sample;
double RataLast1Sample;
double RataHalfwaySample;
double RataHalfDrySample;
double RataHalfDiffSample;
double RataLastDiffSample;
double RataDrySample;
double RataDiffSample;
double RataPrevDiffSample;
double ataK1;
double ataK2;
double ataK3;
double ataK4;
double ataK5;
double ataK6;
double ataK7;
double ataK8; //end antialiasing variables
double LlastSample;
double LlastOutSample;
double LlastOut2Sample;
double LlastOut3Sample;
double LlpDepth;
double Lovershoot;
double Loverall;
double LiirSampleA;
double LiirSampleB;
double LiirSampleC;
double LiirSampleD;
double RlastSample;
double RlastOutSample;
double RlastOut2Sample;
double RlastOut3Sample;
double RlpDepth;
double Rovershoot;
double Roverall;
double RiirSampleA;
double RiirSampleB;
double RiirSampleC;
double RiirSampleD;
bool flip;
long double fpNShapeL;
long double fpNShapeR;
//default stuff
float A;
};
#endif

View file

@ -0,0 +1,874 @@
/* ========================================
* AQuickVoiceClip - AQuickVoiceClip.h
* Copyright (c) 2016 airwindows, All rights reserved
* ======================================== */
#ifndef __AQuickVoiceClip_H
#include "AQuickVoiceClip.h"
#endif
void AQuickVoiceClip::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 softness = 0.484416;
double hardness = 1.0 - softness;
double iirAmount = ((pow(A,3)*2070)+30)/8000.0;
iirAmount /= overallscale;
double altAmount = (1.0 - iirAmount);
double cancelnew = 0.0682276;
double cancelold = 1.0 - cancelnew;
double lpSpeed = 0.0009;
double cliplevel = 0.98;
double refclip = 0.5; //preset to cut out gain quite a lot. 91%? no touchy unless clip
double LmaxRecent;
bool LclipOnset;
double LpassThrough;
double LoutputSample;
double LdrySample;
double RmaxRecent;
bool RclipOnset;
double RpassThrough;
double RoutputSample;
double RdrySample;
long double inputSampleL;
long double inputSampleR;
while (--sampleFrames >= 0)
{
inputSampleL = *in1;
inputSampleR = *in2;
if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
static int noisesource = 0;
//this declares a variable before anything else is compiled. It won't keep assigning
//it to 0 for every sample, it's as if the declaration doesn't exist in this context,
//but it lets me add this denormalization fix in a single place rather than updating
//it in three different locations. The variable isn't thread-safe but this is only
//a random seed and we can share it with whatever.
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleL = applyresidue;
}
if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
static int noisesource = 0;
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleR = applyresidue;
//this denormalization routine produces a white noise at -300 dB which the noise
//shaping will interact with to produce a bipolar output, but the noise is actually
//all positive. That should stop any variables from going denormal, and the routine
//only kicks in if digital black is input. As a final touch, if you save to 24-bit
//the silence will return to being digital black again.
}
LpassThrough = LataDrySample = inputSampleL;
RpassThrough = RataDrySample = inputSampleR;
LataHalfDrySample = LataHalfwaySample = (inputSampleL + LataLast1Sample + (LataLast2Sample*ataK1) + (LataLast3Sample*ataK2) + (LataLast4Sample*ataK6) + (LataLast5Sample*ataK7) + (LataLast6Sample*ataK8)) / 2.0;
LataLast6Sample = LataLast5Sample; LataLast5Sample = LataLast4Sample; LataLast4Sample = LataLast3Sample; LataLast3Sample = LataLast2Sample; LataLast2Sample = LataLast1Sample; LataLast1Sample = inputSampleL;
//setting up oversampled special antialiasing
RataHalfDrySample = RataHalfwaySample = (inputSampleR + RataLast1Sample + (RataLast2Sample*ataK1) + (RataLast3Sample*ataK2) + (RataLast4Sample*ataK6) + (RataLast5Sample*ataK7) + (RataLast6Sample*ataK8)) / 2.0;
RataLast6Sample = RataLast5Sample; RataLast5Sample = RataLast4Sample; RataLast4Sample = RataLast3Sample; RataLast3Sample = RataLast2Sample; RataLast2Sample = RataLast1Sample; RataLast1Sample = inputSampleR;
//setting up oversampled special antialiasing
LclipOnset = false;
RclipOnset = false;
LmaxRecent = fabs( LataLast6Sample );
if (fabs( LataLast5Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast5Sample );
if (fabs( LataLast4Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast4Sample );
if (fabs( LataLast3Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast3Sample );
if (fabs( LataLast2Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast2Sample );
if (fabs( LataLast1Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast1Sample );
if (fabs( inputSampleL ) > LmaxRecent ) LmaxRecent = fabs( inputSampleL );
//this gives us something that won't cut out in zero crossings, to interpolate with
RmaxRecent = fabs( RataLast6Sample );
if (fabs( RataLast5Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast5Sample );
if (fabs( RataLast4Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast4Sample );
if (fabs( RataLast3Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast3Sample );
if (fabs( RataLast2Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast2Sample );
if (fabs( RataLast1Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast1Sample );
if (fabs( inputSampleR ) > RmaxRecent ) RmaxRecent = fabs( inputSampleR );
//this gives us something that won't cut out in zero crossings, to interpolate with
LmaxRecent *= 2.0;
RmaxRecent *= 2.0;
//by refclip this is 1.0 and fully into the antialiasing
if (LmaxRecent > 1.0) LmaxRecent = 1.0;
if (RmaxRecent > 1.0) RmaxRecent = 1.0;
//and it tops out at 1. Higher means more antialiasing, lower blends into passThrough without antialiasing
LataHalfwaySample -= Loverall;
RataHalfwaySample -= Roverall;
//subtract dist-cancel from input after getting raw input, before doing anything
LdrySample = LataHalfwaySample;
RdrySample = RataHalfwaySample;
//begin L channel for the clipper
if (LlastSample >= refclip)
{
LlpDepth += 0.1;
if (LataHalfwaySample < refclip)
{
LlastSample = ((refclip*hardness) + (LataHalfwaySample * softness));
}
else LlastSample = refclip;
}
if (LlastSample <= -refclip)
{
LlpDepth += 0.1;
if (LataHalfwaySample > -refclip)
{
LlastSample = ((-refclip*hardness) + (LataHalfwaySample * softness));
}
else LlastSample = -refclip;
}
if (LataHalfwaySample > refclip)
{
LlpDepth += 0.1;
if (LlastSample < refclip)
{
LataHalfwaySample = ((refclip*hardness) + (LlastSample * softness));
}
else LataHalfwaySample = refclip;
}
if (LataHalfwaySample < -refclip)
{
LlpDepth += 0.1;
if (LlastSample > -refclip)
{
LataHalfwaySample = ((-refclip*hardness) + (LlastSample * softness));
}
else LataHalfwaySample = -refclip;
}
///end L channel for the clipper
//begin R channel for the clipper
if (RlastSample >= refclip)
{
RlpDepth += 0.1;
if (RataHalfwaySample < refclip)
{
RlastSample = ((refclip*hardness) + (RataHalfwaySample * softness));
}
else RlastSample = refclip;
}
if (RlastSample <= -refclip)
{
RlpDepth += 0.1;
if (RataHalfwaySample > -refclip)
{
RlastSample = ((-refclip*hardness) + (RataHalfwaySample * softness));
}
else RlastSample = -refclip;
}
if (RataHalfwaySample > refclip)
{
RlpDepth += 0.1;
if (RlastSample < refclip)
{
RataHalfwaySample = ((refclip*hardness) + (RlastSample * softness));
}
else RataHalfwaySample = refclip;
}
if (RataHalfwaySample < -refclip)
{
RlpDepth += 0.1;
if (RlastSample > -refclip)
{
RataHalfwaySample = ((-refclip*hardness) + (RlastSample * softness));
}
else RataHalfwaySample = -refclip;
}
///end R channel for the clipper
LoutputSample = LlastSample;
RoutputSample = RlastSample;
LlastSample = LataHalfwaySample;
RlastSample = RataHalfwaySample;
LataHalfwaySample = LoutputSample;
RataHalfwaySample = RoutputSample;
//swap around in a circle for one final ADClip,
//this time not tracking overshoot anymore
//end interpolated sample
//begin raw sample- inputSample and ataDrySample handled separately here
inputSampleL -= Loverall;
inputSampleR -= Roverall;
//subtract dist-cancel from input after getting raw input, before doing anything
LdrySample = inputSampleL;
RdrySample = inputSampleR;
//begin second L clip
if (LlastSample >= refclip)
{
LlpDepth += 0.1;
if (inputSampleL < refclip)
{
LlastSample = ((refclip*hardness) + (inputSampleL * softness));
}
else LlastSample = refclip;
}
if (LlastSample <= -refclip)
{
LlpDepth += 0.1;
if (inputSampleL > -refclip)
{
LlastSample = ((-refclip*hardness) + (inputSampleL * softness));
}
else LlastSample = -refclip;
}
if (inputSampleL > refclip)
{
LlpDepth += 0.1;
if (LlastSample < refclip)
{
inputSampleL = ((refclip*hardness) + (LlastSample * softness));
}
else inputSampleL = refclip;
}
if (inputSampleL < -refclip)
{
LlpDepth += 0.1;
if (LlastSample > -refclip)
{
inputSampleL = ((-refclip*hardness) + (LlastSample * softness));
}
else inputSampleL = -refclip;
}
//end second L clip
//begin second R clip
if (RlastSample >= refclip)
{
RlpDepth += 0.1;
if (inputSampleR < refclip)
{
RlastSample = ((refclip*hardness) + (inputSampleR * softness));
}
else RlastSample = refclip;
}
if (RlastSample <= -refclip)
{
RlpDepth += 0.1;
if (inputSampleR > -refclip)
{
RlastSample = ((-refclip*hardness) + (inputSampleR * softness));
}
else RlastSample = -refclip;
}
if (inputSampleR > refclip)
{
RlpDepth += 0.1;
if (RlastSample < refclip)
{
inputSampleR = ((refclip*hardness) + (RlastSample * softness));
}
else inputSampleR = refclip;
}
if (inputSampleR < -refclip)
{
RlpDepth += 0.1;
if (RlastSample > -refclip)
{
inputSampleR = ((-refclip*hardness) + (RlastSample * softness));
}
else inputSampleR = -refclip;
}
//end second R clip
LoutputSample = LlastSample;
RoutputSample = RlastSample;
LlastSample = inputSampleL;
RlastSample = inputSampleR;
inputSampleL = LoutputSample;
inputSampleR = RoutputSample;
LataHalfDrySample = (LataDrySample*ataK3)+(LataHalfDrySample*ataK4);
LataHalfDiffSample = (LataHalfwaySample - LataHalfDrySample)/2.0;
LataLastDiffSample = LataDiffSample*ataK5;
LataDiffSample = (inputSampleL - LataDrySample)/2.0;
LataDiffSample += LataHalfDiffSample;
LataDiffSample -= LataLastDiffSample;
inputSampleL = LataDrySample;
inputSampleL += LataDiffSample;
RataHalfDrySample = (RataDrySample*ataK3)+(RataHalfDrySample*ataK4);
RataHalfDiffSample = (RataHalfwaySample - RataHalfDrySample)/2.0;
RataLastDiffSample = RataDiffSample*ataK5;
RataDiffSample = (inputSampleR - RataDrySample)/2.0;
RataDiffSample += RataHalfDiffSample;
RataDiffSample -= RataLastDiffSample;
inputSampleR = RataDrySample;
inputSampleR += RataDiffSample;
Loverall = (Loverall * cancelold) + (LataDiffSample * cancelnew);
Roverall = (Roverall * cancelold) + (RataDiffSample * cancelnew);
//apply all the diffs to a lowpassed IIR
if (flip)
{
LiirSampleA = (LiirSampleA * altAmount) + (inputSampleL * iirAmount);
inputSampleL -= LiirSampleA;
LiirSampleC = (LiirSampleC * altAmount) + (LpassThrough * iirAmount);
LpassThrough -= LiirSampleC;
RiirSampleA = (RiirSampleA * altAmount) + (inputSampleR * iirAmount);
inputSampleR -= RiirSampleA;
RiirSampleC = (RiirSampleC * altAmount) + (RpassThrough * iirAmount);
RpassThrough -= RiirSampleC;
}
else
{
LiirSampleB = (LiirSampleB * altAmount) + (inputSampleL * iirAmount);
inputSampleL -= LiirSampleB;
LiirSampleD = (LiirSampleD * altAmount) + (LpassThrough * iirAmount);
LpassThrough -= LiirSampleD;
RiirSampleB = (RiirSampleB * altAmount) + (inputSampleR * iirAmount);
inputSampleR -= RiirSampleB;
RiirSampleD = (RiirSampleD * altAmount) + (RpassThrough * iirAmount);
RpassThrough -= RiirSampleD;
}
flip = !flip;
//highpass section
LlastOut3Sample = LlastOut2Sample;
LlastOut2Sample = LlastOutSample;
LlastOutSample = inputSampleL;
RlastOut3Sample = RlastOut2Sample;
RlastOut2Sample = RlastOutSample;
RlastOutSample = inputSampleR;
LlpDepth -= lpSpeed;
RlpDepth -= lpSpeed;
if (LlpDepth > 0.0)
{
if (LlpDepth > 1.0) LlpDepth = 1.0;
inputSampleL *= (1.0-LlpDepth);
inputSampleL += (((LlastOutSample + LlastOut2Sample + LlastOut3Sample) / 3.6)*LlpDepth);
}
if (RlpDepth > 0.0)
{
if (RlpDepth > 1.0) RlpDepth = 1.0;
inputSampleR *= (1.0-RlpDepth);
inputSampleR += (((RlastOutSample + RlastOut2Sample + RlastOut3Sample) / 3.6)*RlpDepth);
}
if (LlpDepth < 0.0) LlpDepth = 0.0;
if (RlpDepth < 0.0) RlpDepth = 0.0;
//stereo 32 bit dither, made small and tidy.
int expon; frexpf((float)inputSampleL, &expon);
long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
frexpf((float)inputSampleR, &expon);
dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
//end 32 bit dither
inputSampleL *= (1.0-LmaxRecent);
inputSampleR *= (1.0-RmaxRecent);
inputSampleL += (LpassThrough * LmaxRecent);
inputSampleR += (RpassThrough * RmaxRecent);
//there's our raw signal, without antialiasing. Brings up low level stuff and softens more when hot
if (inputSampleL > cliplevel) inputSampleL = cliplevel;
if (inputSampleL < -cliplevel) inputSampleL = -cliplevel;
if (inputSampleR > cliplevel) inputSampleR = cliplevel;
if (inputSampleR < -cliplevel) inputSampleR = -cliplevel;
//final iron bar
*out1 = inputSampleL;
*out2 = inputSampleR;
*in1++;
*in2++;
*out1++;
*out2++;
}
}
void AQuickVoiceClip::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 softness = 0.484416;
double hardness = 1.0 - softness;
double iirAmount = ((pow(A,3)*2070)+30)/8000.0;
iirAmount /= overallscale;
double altAmount = (1.0 - iirAmount);
double cancelnew = 0.0682276;
double cancelold = 1.0 - cancelnew;
double lpSpeed = 0.0009;
double cliplevel = 0.98;
double refclip = 0.5; //preset to cut out gain quite a lot. 91%? no touchy unless clip
double LmaxRecent;
bool LclipOnset;
double LpassThrough;
double LoutputSample;
double LdrySample;
double RmaxRecent;
bool RclipOnset;
double RpassThrough;
double RoutputSample;
double RdrySample;
long double inputSampleL;
long double inputSampleR;
while (--sampleFrames >= 0)
{
inputSampleL = *in1;
inputSampleR = *in2;
if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
static int noisesource = 0;
//this declares a variable before anything else is compiled. It won't keep assigning
//it to 0 for every sample, it's as if the declaration doesn't exist in this context,
//but it lets me add this denormalization fix in a single place rather than updating
//it in three different locations. The variable isn't thread-safe but this is only
//a random seed and we can share it with whatever.
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleL = applyresidue;
}
if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
static int noisesource = 0;
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleR = applyresidue;
//this denormalization routine produces a white noise at -300 dB which the noise
//shaping will interact with to produce a bipolar output, but the noise is actually
//all positive. That should stop any variables from going denormal, and the routine
//only kicks in if digital black is input. As a final touch, if you save to 24-bit
//the silence will return to being digital black again.
}
LpassThrough = LataDrySample = inputSampleL;
RpassThrough = RataDrySample = inputSampleR;
LataHalfDrySample = LataHalfwaySample = (inputSampleL + LataLast1Sample + (LataLast2Sample*ataK1) + (LataLast3Sample*ataK2) + (LataLast4Sample*ataK6) + (LataLast5Sample*ataK7) + (LataLast6Sample*ataK8)) / 2.0;
LataLast6Sample = LataLast5Sample; LataLast5Sample = LataLast4Sample; LataLast4Sample = LataLast3Sample; LataLast3Sample = LataLast2Sample; LataLast2Sample = LataLast1Sample; LataLast1Sample = inputSampleL;
//setting up oversampled special antialiasing
RataHalfDrySample = RataHalfwaySample = (inputSampleR + RataLast1Sample + (RataLast2Sample*ataK1) + (RataLast3Sample*ataK2) + (RataLast4Sample*ataK6) + (RataLast5Sample*ataK7) + (RataLast6Sample*ataK8)) / 2.0;
RataLast6Sample = RataLast5Sample; RataLast5Sample = RataLast4Sample; RataLast4Sample = RataLast3Sample; RataLast3Sample = RataLast2Sample; RataLast2Sample = RataLast1Sample; RataLast1Sample = inputSampleR;
//setting up oversampled special antialiasing
LclipOnset = false;
RclipOnset = false;
LmaxRecent = fabs( LataLast6Sample );
if (fabs( LataLast5Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast5Sample );
if (fabs( LataLast4Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast4Sample );
if (fabs( LataLast3Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast3Sample );
if (fabs( LataLast2Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast2Sample );
if (fabs( LataLast1Sample ) > LmaxRecent ) LmaxRecent = fabs( LataLast1Sample );
if (fabs( inputSampleL ) > LmaxRecent ) LmaxRecent = fabs( inputSampleL );
//this gives us something that won't cut out in zero crossings, to interpolate with
RmaxRecent = fabs( RataLast6Sample );
if (fabs( RataLast5Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast5Sample );
if (fabs( RataLast4Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast4Sample );
if (fabs( RataLast3Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast3Sample );
if (fabs( RataLast2Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast2Sample );
if (fabs( RataLast1Sample ) > RmaxRecent ) RmaxRecent = fabs( RataLast1Sample );
if (fabs( inputSampleR ) > RmaxRecent ) RmaxRecent = fabs( inputSampleR );
//this gives us something that won't cut out in zero crossings, to interpolate with
LmaxRecent *= 2.0;
RmaxRecent *= 2.0;
//by refclip this is 1.0 and fully into the antialiasing
if (LmaxRecent > 1.0) LmaxRecent = 1.0;
if (RmaxRecent > 1.0) RmaxRecent = 1.0;
//and it tops out at 1. Higher means more antialiasing, lower blends into passThrough without antialiasing
LataHalfwaySample -= Loverall;
RataHalfwaySample -= Roverall;
//subtract dist-cancel from input after getting raw input, before doing anything
LdrySample = LataHalfwaySample;
RdrySample = RataHalfwaySample;
//begin L channel for the clipper
if (LlastSample >= refclip)
{
LlpDepth += 0.1;
if (LataHalfwaySample < refclip)
{
LlastSample = ((refclip*hardness) + (LataHalfwaySample * softness));
}
else LlastSample = refclip;
}
if (LlastSample <= -refclip)
{
LlpDepth += 0.1;
if (LataHalfwaySample > -refclip)
{
LlastSample = ((-refclip*hardness) + (LataHalfwaySample * softness));
}
else LlastSample = -refclip;
}
if (LataHalfwaySample > refclip)
{
LlpDepth += 0.1;
if (LlastSample < refclip)
{
LataHalfwaySample = ((refclip*hardness) + (LlastSample * softness));
}
else LataHalfwaySample = refclip;
}
if (LataHalfwaySample < -refclip)
{
LlpDepth += 0.1;
if (LlastSample > -refclip)
{
LataHalfwaySample = ((-refclip*hardness) + (LlastSample * softness));
}
else LataHalfwaySample = -refclip;
}
///end L channel for the clipper
//begin R channel for the clipper
if (RlastSample >= refclip)
{
RlpDepth += 0.1;
if (RataHalfwaySample < refclip)
{
RlastSample = ((refclip*hardness) + (RataHalfwaySample * softness));
}
else RlastSample = refclip;
}
if (RlastSample <= -refclip)
{
RlpDepth += 0.1;
if (RataHalfwaySample > -refclip)
{
RlastSample = ((-refclip*hardness) + (RataHalfwaySample * softness));
}
else RlastSample = -refclip;
}
if (RataHalfwaySample > refclip)
{
RlpDepth += 0.1;
if (RlastSample < refclip)
{
RataHalfwaySample = ((refclip*hardness) + (RlastSample * softness));
}
else RataHalfwaySample = refclip;
}
if (RataHalfwaySample < -refclip)
{
RlpDepth += 0.1;
if (RlastSample > -refclip)
{
RataHalfwaySample = ((-refclip*hardness) + (RlastSample * softness));
}
else RataHalfwaySample = -refclip;
}
///end R channel for the clipper
LoutputSample = LlastSample;
RoutputSample = RlastSample;
LlastSample = LataHalfwaySample;
RlastSample = RataHalfwaySample;
LataHalfwaySample = LoutputSample;
RataHalfwaySample = RoutputSample;
//swap around in a circle for one final ADClip,
//this time not tracking overshoot anymore
//end interpolated sample
//begin raw sample- inputSample and ataDrySample handled separately here
inputSampleL -= Loverall;
inputSampleR -= Roverall;
//subtract dist-cancel from input after getting raw input, before doing anything
LdrySample = inputSampleL;
RdrySample = inputSampleR;
//begin second L clip
if (LlastSample >= refclip)
{
LlpDepth += 0.1;
if (inputSampleL < refclip)
{
LlastSample = ((refclip*hardness) + (inputSampleL * softness));
}
else LlastSample = refclip;
}
if (LlastSample <= -refclip)
{
LlpDepth += 0.1;
if (inputSampleL > -refclip)
{
LlastSample = ((-refclip*hardness) + (inputSampleL * softness));
}
else LlastSample = -refclip;
}
if (inputSampleL > refclip)
{
LlpDepth += 0.1;
if (LlastSample < refclip)
{
inputSampleL = ((refclip*hardness) + (LlastSample * softness));
}
else inputSampleL = refclip;
}
if (inputSampleL < -refclip)
{
LlpDepth += 0.1;
if (LlastSample > -refclip)
{
inputSampleL = ((-refclip*hardness) + (LlastSample * softness));
}
else inputSampleL = -refclip;
}
//end second L clip
//begin second R clip
if (RlastSample >= refclip)
{
RlpDepth += 0.1;
if (inputSampleR < refclip)
{
RlastSample = ((refclip*hardness) + (inputSampleR * softness));
}
else RlastSample = refclip;
}
if (RlastSample <= -refclip)
{
RlpDepth += 0.1;
if (inputSampleR > -refclip)
{
RlastSample = ((-refclip*hardness) + (inputSampleR * softness));
}
else RlastSample = -refclip;
}
if (inputSampleR > refclip)
{
RlpDepth += 0.1;
if (RlastSample < refclip)
{
inputSampleR = ((refclip*hardness) + (RlastSample * softness));
}
else inputSampleR = refclip;
}
if (inputSampleR < -refclip)
{
RlpDepth += 0.1;
if (RlastSample > -refclip)
{
inputSampleR = ((-refclip*hardness) + (RlastSample * softness));
}
else inputSampleR = -refclip;
}
//end second R clip
LoutputSample = LlastSample;
RoutputSample = RlastSample;
LlastSample = inputSampleL;
RlastSample = inputSampleR;
inputSampleL = LoutputSample;
inputSampleR = RoutputSample;
LataHalfDrySample = (LataDrySample*ataK3)+(LataHalfDrySample*ataK4);
LataHalfDiffSample = (LataHalfwaySample - LataHalfDrySample)/2.0;
LataLastDiffSample = LataDiffSample*ataK5;
LataDiffSample = (inputSampleL - LataDrySample)/2.0;
LataDiffSample += LataHalfDiffSample;
LataDiffSample -= LataLastDiffSample;
inputSampleL = LataDrySample;
inputSampleL += LataDiffSample;
RataHalfDrySample = (RataDrySample*ataK3)+(RataHalfDrySample*ataK4);
RataHalfDiffSample = (RataHalfwaySample - RataHalfDrySample)/2.0;
RataLastDiffSample = RataDiffSample*ataK5;
RataDiffSample = (inputSampleR - RataDrySample)/2.0;
RataDiffSample += RataHalfDiffSample;
RataDiffSample -= RataLastDiffSample;
inputSampleR = RataDrySample;
inputSampleR += RataDiffSample;
Loverall = (Loverall * cancelold) + (LataDiffSample * cancelnew);
Roverall = (Roverall * cancelold) + (RataDiffSample * cancelnew);
//apply all the diffs to a lowpassed IIR
if (flip)
{
LiirSampleA = (LiirSampleA * altAmount) + (inputSampleL * iirAmount);
inputSampleL -= LiirSampleA;
LiirSampleC = (LiirSampleC * altAmount) + (LpassThrough * iirAmount);
LpassThrough -= LiirSampleC;
RiirSampleA = (RiirSampleA * altAmount) + (inputSampleR * iirAmount);
inputSampleR -= RiirSampleA;
RiirSampleC = (RiirSampleC * altAmount) + (RpassThrough * iirAmount);
RpassThrough -= RiirSampleC;
}
else
{
LiirSampleB = (LiirSampleB * altAmount) + (inputSampleL * iirAmount);
inputSampleL -= LiirSampleB;
LiirSampleD = (LiirSampleD * altAmount) + (LpassThrough * iirAmount);
LpassThrough -= LiirSampleD;
RiirSampleB = (RiirSampleB * altAmount) + (inputSampleR * iirAmount);
inputSampleR -= RiirSampleB;
RiirSampleD = (RiirSampleD * altAmount) + (RpassThrough * iirAmount);
RpassThrough -= RiirSampleD;
}
flip = !flip;
//highpass section
LlastOut3Sample = LlastOut2Sample;
LlastOut2Sample = LlastOutSample;
LlastOutSample = inputSampleL;
RlastOut3Sample = RlastOut2Sample;
RlastOut2Sample = RlastOutSample;
RlastOutSample = inputSampleR;
LlpDepth -= lpSpeed;
RlpDepth -= lpSpeed;
if (LlpDepth > 0.0)
{
if (LlpDepth > 1.0) LlpDepth = 1.0;
inputSampleL *= (1.0-LlpDepth);
inputSampleL += (((LlastOutSample + LlastOut2Sample + LlastOut3Sample) / 3.6)*LlpDepth);
}
if (RlpDepth > 0.0)
{
if (RlpDepth > 1.0) RlpDepth = 1.0;
inputSampleR *= (1.0-RlpDepth);
inputSampleR += (((RlastOutSample + RlastOut2Sample + RlastOut3Sample) / 3.6)*RlpDepth);
}
if (LlpDepth < 0.0) LlpDepth = 0.0;
if (RlpDepth < 0.0) RlpDepth = 0.0;
//stereo 64 bit dither, made small and tidy.
int expon; frexp((double)inputSampleL, &expon);
long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
dither /= 536870912.0; //needs this to scale to 64 bit zone
inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
frexp((double)inputSampleR, &expon);
dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
dither /= 536870912.0; //needs this to scale to 64 bit zone
inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
//end 64 bit dither
inputSampleL *= (1.0-LmaxRecent);
inputSampleR *= (1.0-RmaxRecent);
inputSampleL += (LpassThrough * LmaxRecent);
inputSampleR += (RpassThrough * RmaxRecent);
//there's our raw signal, without antialiasing. Brings up low level stuff and softens more when hot
if (inputSampleL > cliplevel) inputSampleL = cliplevel;
if (inputSampleL < -cliplevel) inputSampleL = -cliplevel;
if (inputSampleR > cliplevel) inputSampleR = cliplevel;
if (inputSampleR < -cliplevel) inputSampleR = -cliplevel;
//final iron bar
*out1 = inputSampleL;
*out2 = inputSampleR;
*in1++;
*in2++;
*out1++;
*out2++;
}
}

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Acceleration */;
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 = 569706438;
PBXWorkspaceStateSaveDate = 569706438;
};
perUserProjectItems = {
8B7932FD21F507DF006E9731 /* XCBuildMessageTextBookmark */ = 8B7932FD21F507DF006E9731 /* XCBuildMessageTextBookmark */;
8B79330721F50B3A006E9731 /* PBXTextBookmark */ = 8B79330721F50B3A006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Acceleration.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {848, 1820}}";
sepNavSelRange = "{681, 92}";
sepNavVisRange = "{0, 2007}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Acceleration.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {866, 1118}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{661, 2147}";
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 /* AccelerationProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {621, 3822}}";
sepNavSelRange = "{9506, 0}";
sepNavVisRange = "{4212, 165}";
sepNavWindowFrame = "{{25, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8B7932FD21F507DF006E9731 /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "'Float32' was not declared in this scope";
fRef = 24D8286F09A914000093AEF8 /* AccelerationProc.cpp */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 1;
rLoc = 135;
rType = 1;
};
8B79330721F50B3A006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* AccelerationProc.cpp */;
name = "AccelerationProc.cpp: 298";
rLen = 0;
rLoc = 9506;
rType = 0;
vrLen = 165;
vrLoc = 4212;
};
8D01CCC60486CAD60068D4B7 /* Acceleration */ = {
activeExec = 0;
};
}

View file

@ -0,0 +1,454 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
2407DEB9089929BA00EB68BF /* Acceleration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* Acceleration.cpp */; };
245463B90991757100464AD3 /* Acceleration.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* Acceleration.h */; };
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
24D8287009A914000093AEF8 /* AccelerationProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* AccelerationProc.cpp */; };
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
8BFB42F6264D50E1001577C8 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BFB42EA264D50E1001577C8 /* vstfxstore.h */; };
8BFB42F7264D50E1001577C8 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BFB42EB264D50E1001577C8 /* aeffect.h */; };
8BFB42F8264D50E1001577C8 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BFB42EC264D50E1001577C8 /* aeffectx.h */; };
8BFB42F9264D50E1001577C8 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BFB42F0264D50E1001577C8 /* audioeffectx.h */; };
8BFB42FA264D50E1001577C8 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BFB42F1264D50E1001577C8 /* audioeffect.cpp */; };
8BFB42FB264D50E1001577C8 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BFB42F2264D50E1001577C8 /* audioeffectx.cpp */; };
8BFB42FC264D50E1001577C8 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BFB42F3264D50E1001577C8 /* aeffeditor.h */; };
8BFB42FD264D50E1001577C8 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BFB42F4264D50E1001577C8 /* vstplugmain.cpp */; };
8BFB42FE264D50E1001577C8 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BFB42F5264D50E1001577C8 /* audioeffect.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
2407DE920899296600EB68BF /* Acceleration.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Acceleration.vst; sourceTree = BUILT_PRODUCTS_DIR; };
2407DEB6089929BA00EB68BF /* Acceleration.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Acceleration.cpp; path = source/Acceleration.cpp; sourceTree = "<group>"; };
245463B80991757100464AD3 /* Acceleration.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Acceleration.h; path = source/Acceleration.h; sourceTree = "<group>"; };
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
24D8286F09A914000093AEF8 /* AccelerationProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AccelerationProc.cpp; path = source/AccelerationProc.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; };
8BFB42EA264D50E1001577C8 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
8BFB42EB264D50E1001577C8 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
8BFB42EC264D50E1001577C8 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
8BFB42F0264D50E1001577C8 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
8BFB42F1264D50E1001577C8 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
8BFB42F2264D50E1001577C8 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
8BFB42F3264D50E1001577C8 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
8BFB42F4264D50E1001577C8 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
8BFB42F5264D50E1001577C8 /* 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 = (
8BFB42E7264D50E1001577C8 /* vstsdk2.4 */,
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 = (
2407DEB6089929BA00EB68BF /* Acceleration.cpp */,
24D8286F09A914000093AEF8 /* AccelerationProc.cpp */,
245463B80991757100464AD3 /* Acceleration.h */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
2407DE920899296600EB68BF /* Acceleration.vst */,
);
name = Products;
sourceTree = "<group>";
};
8BFB42E7264D50E1001577C8 /* vstsdk2.4 */ = {
isa = PBXGroup;
children = (
8BFB42E8264D50E1001577C8 /* pluginterfaces */,
8BFB42ED264D50E1001577C8 /* public.sdk */,
);
name = vstsdk2.4;
path = ../../../../vstsdk2.4;
sourceTree = "<group>";
};
8BFB42E8264D50E1001577C8 /* pluginterfaces */ = {
isa = PBXGroup;
children = (
8BFB42E9264D50E1001577C8 /* vst2.x */,
);
path = pluginterfaces;
sourceTree = "<group>";
};
8BFB42E9264D50E1001577C8 /* vst2.x */ = {
isa = PBXGroup;
children = (
8BFB42EA264D50E1001577C8 /* vstfxstore.h */,
8BFB42EB264D50E1001577C8 /* aeffect.h */,
8BFB42EC264D50E1001577C8 /* aeffectx.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
8BFB42ED264D50E1001577C8 /* public.sdk */ = {
isa = PBXGroup;
children = (
8BFB42EE264D50E1001577C8 /* source */,
);
path = public.sdk;
sourceTree = "<group>";
};
8BFB42EE264D50E1001577C8 /* source */ = {
isa = PBXGroup;
children = (
8BFB42EF264D50E1001577C8 /* vst2.x */,
);
path = source;
sourceTree = "<group>";
};
8BFB42EF264D50E1001577C8 /* vst2.x */ = {
isa = PBXGroup;
children = (
8BFB42F0264D50E1001577C8 /* audioeffectx.h */,
8BFB42F1264D50E1001577C8 /* audioeffect.cpp */,
8BFB42F2264D50E1001577C8 /* audioeffectx.cpp */,
8BFB42F3264D50E1001577C8 /* aeffeditor.h */,
8BFB42F4264D50E1001577C8 /* vstplugmain.cpp */,
8BFB42F5264D50E1001577C8 /* audioeffect.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8BFB42FC264D50E1001577C8 /* aeffeditor.h in Headers */,
245463B90991757100464AD3 /* Acceleration.h in Headers */,
8BFB42FE264D50E1001577C8 /* audioeffect.h in Headers */,
8BFB42F7264D50E1001577C8 /* aeffect.h in Headers */,
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
8BFB42F9264D50E1001577C8 /* audioeffectx.h in Headers */,
8BFB42F6264D50E1001577C8 /* vstfxstore.h in Headers */,
8BFB42F8264D50E1001577C8 /* aeffectx.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* Acceleration */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Acceleration" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
);
buildRules = (
);
dependencies = (
);
name = Acceleration;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "FM-Chopper";
productReference = 2407DE920899296600EB68BF /* Acceleration.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1240;
};
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Acceleration" */;
compatibilityVersion = "Xcode 2.4";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
Base,
fr,
ja,
en,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Acceleration */,
);
};
/* 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 = (
8BFB42FB264D50E1001577C8 /* audioeffectx.cpp in Sources */,
2407DEB9089929BA00EB68BF /* Acceleration.cpp in Sources */,
8BFB42FA264D50E1001577C8 /* audioeffect.cpp in Sources */,
8BFB42FD264D50E1001577C8 /* vstplugmain.cpp in Sources */,
24D8287009A914000093AEF8 /* AccelerationProc.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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEVELOPMENT_TEAM = 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.Acceleration;
PRODUCT_NAME = Acceleration;
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 = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 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.Acceleration;
PRODUCT_NAME = Acceleration;
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;
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;
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 "Acceleration" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAEE08919AE700E695F9 /* Debug */,
24BEAAEF08919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Acceleration" */ = {
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>

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>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</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 = "1240"
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 = "Acceleration.vst"
BlueprintName = "Acceleration"
ReferencedContainer = "container:Acceleration.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 = "Acceleration.vst"
BlueprintName = "Acceleration"
ReferencedContainer = "container:Acceleration.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>Acceleration.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>Acceleration</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,136 @@
/* ========================================
* Acceleration - Acceleration.h
* Copyright (c) 2016 airwindows, All rights reserved
* ======================================== */
#ifndef __Acceleration_H
#include "Acceleration.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Acceleration(audioMaster);}
Acceleration::Acceleration(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.32;
B = 1.0;
ataLastOutL = 0.0;
s1L = s2L = s3L = 0.0;
o1L = o2L = o3L = 0.0;
m1L = m2L = desL = 0.0;
ataLastOutR = 0.0;
s1R = s2R = s3R = 0.0;
o1R = o2R = o3R = 0.0;
m1R = m2R = desR = 0.0;
fpNShapeL = 0.0;
fpNShapeR = 0.0;
//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
}
Acceleration::~Acceleration() {}
VstInt32 Acceleration::getVendorVersion () {return 1000;}
void Acceleration::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Acceleration::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
static float pinParameter(float data)
{
if (data < 0.0f) return 0.0f;
if (data > 1.0f) return 1.0f;
return data;
}
VstInt32 Acceleration::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 Acceleration::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void Acceleration::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float Acceleration::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void Acceleration::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Limit", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Acceleration::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void Acceleration::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 Acceleration::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Acceleration::getEffectName(char* name) {
vst_strncpy(name, "Acceleration", kVstMaxProductStrLen); return true;
}
VstPlugCategory Acceleration::getPlugCategory() {return kPlugCategEffect;}
bool Acceleration::getProductString(char* text) {
vst_strncpy (text, "airwindows Acceleration", kVstMaxProductStrLen); return true;
}
bool Acceleration::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,85 @@
/* ========================================
* Acceleration - Acceleration.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) 2011 __MyCompanyName__, All rights reserved
* ======================================== */
#ifndef __Acceleration_H
#define __Acceleration_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA = 0,
kParamB = 1,
kNumParameters = 2
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'acel'; //Change this to what the AU identity is!
class Acceleration :
public AudioEffectX
{
public:
Acceleration(audioMasterCallback audioMaster);
~Acceleration();
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;
long double fpNShapeL;
long double fpNShapeR;
//default stuff
double ataLastOutL;
double s1L;
double s2L;
double s3L;
double o1L;
double o2L;
double o3L;
double m1L;
double m2L;
double desL;
double ataLastOutR;
double s1R;
double s2R;
double s3R;
double o1R;
double o2R;
double o3R;
double m1R;
double m2R;
double desR;
float A;
float B;
};
#endif

View file

@ -0,0 +1,298 @@
/* ========================================
* Acceleration - Acceleration.h
* Copyright (c) 2016 airwindows, All rights reserved
* ======================================== */
#ifndef __Acceleration_H
#include "Acceleration.h"
#endif
void Acceleration::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 intensity = pow(A,3)*(32/overallscale);
double wet = B;
double dry = 1.0 - wet;
double senseL;
double smoothL;
double senseR;
double smoothR;
double accumulatorSample;
double drySampleL;
double drySampleR;
long double inputSampleL;
long double inputSampleR;
while (--sampleFrames >= 0)
{
inputSampleL = *in1;
inputSampleR = *in2;
if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
static int noisesource = 0;
//this declares a variable before anything else is compiled. It won't keep assigning
//it to 0 for every sample, it's as if the declaration doesn't exist in this context,
//but it lets me add this denormalization fix in a single place rather than updating
//it in three different locations. The variable isn't thread-safe but this is only
//a random seed and we can share it with whatever.
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleL = applyresidue;
}
if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
static int noisesource = 0;
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleR = applyresidue;
//this denormalization routine produces a white noise at -300 dB which the noise
//shaping will interact with to produce a bipolar output, but the noise is actually
//all positive. That should stop any variables from going denormal, and the routine
//only kicks in if digital black is input. As a final touch, if you save to 24-bit
//the silence will return to being digital black again.
}
drySampleL = inputSampleL;
drySampleR = inputSampleR;
s3L = s2L;
s2L = s1L;
s1L = inputSampleL;
smoothL = (s3L + s2L + s1L) / 3.0;
m1L = (s1L-s2L)*((s1L-s2L)/1.3);
m2L = (s2L-s3L)*((s1L-s2L)/1.3);
senseL = fabs(m1L-m2L);
senseL = (intensity*intensity*senseL);
o3L = o2L;
o2L = o1L;
o1L = senseL;
if (o2L > senseL) senseL = o2L;
if (o3L > senseL) senseL = o3L;
//sense on the most intense
s3R = s2R;
s2R = s1R;
s1R = inputSampleR;
smoothR = (s3R + s2R + s1R) / 3.0;
m1R = (s1R-s2R)*((s1R-s2R)/1.3);
m2R = (s2R-s3R)*((s1R-s2R)/1.3);
senseR = fabs(m1R-m2R);
senseR = (intensity*intensity*senseR);
o3R = o2R;
o2R = o1R;
o1R = senseR;
if (o2R > senseR) senseR = o2R;
if (o3R > senseR) senseR = o3R;
//sense on the most intense
if (senseL > 1.0) senseL = 1.0;
if (senseR > 1.0) senseR = 1.0;
inputSampleL *= (1.0-senseL);
inputSampleR *= (1.0-senseR);
inputSampleL += (smoothL*senseL);
inputSampleR += (smoothR*senseR);
senseL /= 2.0;
senseR /= 2.0;
accumulatorSample = (ataLastOutL*senseL)+(inputSampleL*(1.0-senseL));
ataLastOutL = inputSampleL;
inputSampleL = accumulatorSample;
accumulatorSample = (ataLastOutR*senseR)+(inputSampleR*(1.0-senseR));
ataLastOutR = inputSampleR;
inputSampleR = accumulatorSample;
if (wet !=1.0) {
inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
//stereo 32 bit dither, made small and tidy.
int expon; frexpf((float)inputSampleL, &expon);
long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
frexpf((float)inputSampleR, &expon);
dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
//end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
*in1++;
*in2++;
*out1++;
*out2++;
}
}
void Acceleration::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 intensity = pow(A,3)*(32/overallscale);
double wet = B;
double dry = 1.0 - wet;
double senseL;
double smoothL;
double senseR;
double smoothR;
double accumulatorSample;
double drySampleL;
double drySampleR;
long double inputSampleL;
long double inputSampleR;
while (--sampleFrames >= 0)
{
inputSampleL = *in1;
inputSampleR = *in2;
if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
static int noisesource = 0;
//this declares a variable before anything else is compiled. It won't keep assigning
//it to 0 for every sample, it's as if the declaration doesn't exist in this context,
//but it lets me add this denormalization fix in a single place rather than updating
//it in three different locations. The variable isn't thread-safe but this is only
//a random seed and we can share it with whatever.
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleL = applyresidue;
}
if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
static int noisesource = 0;
noisesource = noisesource % 1700021; noisesource++;
int residue = noisesource * noisesource;
residue = residue % 170003; residue *= residue;
residue = residue % 17011; residue *= residue;
residue = residue % 1709; residue *= residue;
residue = residue % 173; residue *= residue;
residue = residue % 17;
double applyresidue = residue;
applyresidue *= 0.00000001;
applyresidue *= 0.00000001;
inputSampleR = applyresidue;
//this denormalization routine produces a white noise at -300 dB which the noise
//shaping will interact with to produce a bipolar output, but the noise is actually
//all positive. That should stop any variables from going denormal, and the routine
//only kicks in if digital black is input. As a final touch, if you save to 24-bit
//the silence will return to being digital black again.
}
drySampleL = inputSampleL;
drySampleR = inputSampleR;
s3L = s2L;
s2L = s1L;
s1L = inputSampleL;
smoothL = (s3L + s2L + s1L) / 3.0;
m1L = (s1L-s2L)*((s1L-s2L)/1.3);
m2L = (s2L-s3L)*((s1L-s2L)/1.3);
senseL = fabs(m1L-m2L);
senseL = (intensity*intensity*senseL);
o3L = o2L;
o2L = o1L;
o1L = senseL;
if (o2L > senseL) senseL = o2L;
if (o3L > senseL) senseL = o3L;
//sense on the most intense
s3R = s2R;
s2R = s1R;
s1R = inputSampleR;
smoothR = (s3R + s2R + s1R) / 3.0;
m1R = (s1R-s2R)*((s1R-s2R)/1.3);
m2R = (s2R-s3R)*((s1R-s2R)/1.3);
senseR = fabs(m1R-m2R);
senseR = (intensity*intensity*senseR);
o3R = o2R;
o2R = o1R;
o1R = senseR;
if (o2R > senseR) senseR = o2R;
if (o3R > senseR) senseR = o3R;
//sense on the most intense
if (senseL > 1.0) senseL = 1.0;
if (senseR > 1.0) senseR = 1.0;
inputSampleL *= (1.0-senseL);
inputSampleR *= (1.0-senseR);
inputSampleL += (smoothL*senseL);
inputSampleR += (smoothR*senseR);
senseL /= 2.0;
senseR /= 2.0;
accumulatorSample = (ataLastOutL*senseL)+(inputSampleL*(1.0-senseL));
ataLastOutL = inputSampleL;
inputSampleL = accumulatorSample;
accumulatorSample = (ataLastOutR*senseR)+(inputSampleR*(1.0-senseR));
ataLastOutR = inputSampleR;
inputSampleR = accumulatorSample;
if (wet !=1.0) {
inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
//stereo 64 bit dither, made small and tidy.
int expon; frexp((double)inputSampleL, &expon);
long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
dither /= 536870912.0; //needs this to scale to 64 bit zone
inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
frexp((double)inputSampleR, &expon);
dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
dither /= 536870912.0; //needs this to scale to 64 bit zone
inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
//end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
*in1++;
*in2++;
*out1++;
*out2++;
}
}

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Acceleration2 */;
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 = 630330371;
PBXWorkspaceStateSaveDate = 630330371;
};
perUserProjectItems = {
8BE1ABC82597E7EC00E5CF6A /* XCBuildMessageTextBookmark */ = 8BE1ABC82597E7EC00E5CF6A /* XCBuildMessageTextBookmark */;
8BE1ABC92597E7EC00E5CF6A /* PBXTextBookmark */ = 8BE1ABC92597E7EC00E5CF6A /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Acceleration2.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1049, 2412}}";
sepNavSelRange = "{638, 0}";
sepNavVisRange = "{3516, 1564}";
sepNavWindowFrame = "{{17, 60}, {1096, 813}}";
};
};
245463B80991757100464AD3 /* Acceleration2.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1110, 1458}}";
sepNavSelRange = "{2561, 0}";
sepNavVisRange = "{1320, 1618}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1074, 27360}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* Acceleration2Proc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1353, 4392}}";
sepNavSelRange = "{7849, 0}";
sepNavVisRange = "{5217, 1795}";
sepNavWindowFrame = "{{29, 47}, {1400, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BE1ABC82597E7EC00E5CF6A /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 1;
rLoc = 306;
rType = 1;
};
8BE1ABC92597E7EC00E5CF6A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
vrLen = 277;
vrLoc = 10459;
};
8D01CCC60486CAD60068D4B7 /* Acceleration2 */ = {
activeExec = 0;
};
}

Some files were not shown because too many files have changed in this diff Show more