diff options
Diffstat (limited to 'plugins/MacAU')
24 files changed, 8842 insertions, 0 deletions
diff --git a/plugins/MacAU/PocketVerbs/English.lproj/InfoPlist.strings b/plugins/MacAU/PocketVerbs/English.lproj/InfoPlist.strings Binary files differnew file mode 100755 index 0000000..eaeed1c --- /dev/null +++ b/plugins/MacAU/PocketVerbs/English.lproj/InfoPlist.strings diff --git a/plugins/MacAU/PocketVerbs/Info.plist b/plugins/MacAU/PocketVerbs/Info.plist new file mode 100755 index 0000000..12f0517 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/Info.plist @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIconFile</key> + <string></string> + <key>CFBundleIdentifier</key> + <string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string> + <key>CFBundleName</key> + <string>${PROJECTNAMEASIDENTIFIER}</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>BNDL</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleSignature</key> + <string>Dthr</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>CSResourcesFileMapped</key> + <true/> +</dict> +</plist> diff --git a/plugins/MacAU/PocketVerbs/PocketVerbs.cpp b/plugins/MacAU/PocketVerbs/PocketVerbs.cpp new file mode 100755 index 0000000..741b94e --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbs.cpp @@ -0,0 +1,4909 @@ +/* +* File: PocketVerbs.cpp +* +* Version: 1.0 +* +* Created: 8/19/12 +* +* Copyright: Copyright © 2012 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. +* +*/ +/*============================================================================= + PocketVerbs.cpp + +=============================================================================*/ +#include "PocketVerbs.h" + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +COMPONENT_ENTRY(PocketVerbs) + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// PocketVerbs::PocketVerbs +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +PocketVerbs::PocketVerbs(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 + +} + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// PocketVerbs::GetParameterValueStrings +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult PocketVerbs::GetParameterValueStrings(AudioUnitScope inScope, + AudioUnitParameterID inParameterID, + CFArrayRef * outStrings) +{ + if ((inScope == kAudioUnitScope_Global) && (inParameterID == kParam_One)) //ID must be actual name of parameter identifier, not number + { + if (outStrings == NULL) return noErr; + CFStringRef strings [] = + { + kMenuItem_Chamber, + kMenuItem_Spring, + kMenuItem_Tiled, + kMenuItem_Room, + kMenuItem_Stretch, + kMenuItem_Zarathustra, + }; + *outStrings = CFArrayCreate ( + NULL, + (const void **) strings, + (sizeof (strings) / sizeof (strings [0])), + NULL + ); + return noErr; + } + return kAudioUnitErr_InvalidProperty; +} + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// PocketVerbs::GetParameterInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult PocketVerbs::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_Indexed; + outParameterInfo.minValue = kChamber; + outParameterInfo.maxValue = kZarathustra; + 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; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// PocketVerbs::GetPropertyInfo +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult PocketVerbs::GetPropertyInfo (AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + UInt32 & outDataSize, + Boolean & outWritable) +{ + return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable); +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// PocketVerbs::GetProperty +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult PocketVerbs::GetProperty( AudioUnitPropertyID inID, + AudioUnitScope inScope, + AudioUnitElement inElement, + void * outData ) +{ + return AUEffectBase::GetProperty (inID, inScope, inElement, outData); +} + +// PocketVerbs::Initialize +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +ComponentResult PocketVerbs::Initialize() +{ + ComponentResult result = AUEffectBase::Initialize(); + if (result == noErr) + Reset(kAudioUnitScope_Global, 0); + return result; +} + +#pragma mark ____PocketVerbsEffectKernel + + + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// PocketVerbs::PocketVerbsKernel::Reset() +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +void PocketVerbs::PocketVerbsKernel::Reset() +{ + int count; + for(count = 0; count < 6; count++) {dA[count] = 0.0; dB[count] = 0.0; dC[count] = 0.0; dD[count] = 0.0; dE[count] = 0.0; + dF[count] = 0.0; dG[count] = 0.0; dH[count] = 0.0; dI[count] = 0.0; dJ[count] = 0.0; dK[count] = 0.0; dL[count] = 0.0; + dM[count] = 0.0; dN[count] = 0.0; dO[count] = 0.0; dP[count] = 0.0; dQ[count] = 0.0; dR[count] = 0.0; dS[count] = 0.0; + dT[count] = 0.0; dU[count] = 0.0; dV[count] = 0.0; dW[count] = 0.0; dX[count] = 0.0; dY[count] = 0.0; dZ[count] = 0.0;} + + for(count = 0; count < 15149; count++) {aA[count] = 0.0;} + for(count = 0; count < 15149; count++) {oA[count] = 0.0;} + for(count = 0; count < 14617; count++) {aB[count] = 0.0;} + for(count = 0; count < 14617; count++) {oB[count] = 0.0;} + for(count = 0; count < 14357; count++) {aC[count] = 0.0;} + for(count = 0; count < 14357; count++) {oC[count] = 0.0;} + for(count = 0; count < 13817; count++) {aD[count] = 0.0;} + for(count = 0; count < 13817; count++) {oD[count] = 0.0;} + for(count = 0; count < 13561; count++) {aE[count] = 0.0;} + for(count = 0; count < 13561; count++) {oE[count] = 0.0;} + for(count = 0; count < 13045; count++) {aF[count] = 0.0;} + for(count = 0; count < 13045; count++) {oF[count] = 0.0;} + for(count = 0; count < 11965; count++) {aG[count] = 0.0;} + for(count = 0; count < 11965; count++) {oG[count] = 0.0;} + for(count = 0; count < 11129; count++) {aH[count] = 0.0;} + for(count = 0; count < 11129; count++) {oH[count] = 0.0;} + for(count = 0; count < 10597; count++) {aI[count] = 0.0;} + for(count = 0; count < 10597; count++) {oI[count] = 0.0;} + for(count = 0; count < 9809; count++) {aJ[count] = 0.0;} + for(count = 0; count < 9809; count++) {oJ[count] = 0.0;} + for(count = 0; count < 9521; count++) {aK[count] = 0.0;} + for(count = 0; count < 9521; count++) {oK[count] = 0.0;} + for(count = 0; count < 8981; count++) {aL[count] = 0.0;} + for(count = 0; count < 8981; count++) {oL[count] = 0.0;} + for(count = 0; count < 8785; count++) {aM[count] = 0.0;} + for(count = 0; count < 8785; count++) {oM[count] = 0.0;} + for(count = 0; count < 8461; count++) {aN[count] = 0.0;} + for(count = 0; count < 8461; count++) {oN[count] = 0.0;} + for(count = 0; count < 8309; count++) {aO[count] = 0.0;} + for(count = 0; count < 8309; count++) {oO[count] = 0.0;} + for(count = 0; count < 7981; count++) {aP[count] = 0.0;} + for(count = 0; count < 7981; count++) {oP[count] = 0.0;} + for(count = 0; count < 7321; count++) {aQ[count] = 0.0;} + for(count = 0; count < 7321; count++) {oQ[count] = 0.0;} + for(count = 0; count < 6817; count++) {aR[count] = 0.0;} + for(count = 0; count < 6817; count++) {oR[count] = 0.0;} + for(count = 0; count < 6505; count++) {aS[count] = 0.0;} + for(count = 0; count < 6505; count++) {oS[count] = 0.0;} + for(count = 0; count < 6001; count++) {aT[count] = 0.0;} + for(count = 0; count < 6001; count++) {oT[count] = 0.0;} + for(count = 0; count < 5837; count++) {aU[count] = 0.0;} + for(count = 0; count < 5837; count++) {oU[count] = 0.0;} + for(count = 0; count < 5501; count++) {aV[count] = 0.0;} + for(count = 0; count < 5501; count++) {oV[count] = 0.0;} + for(count = 0; count < 5009; count++) {aW[count] = 0.0;} + for(count = 0; count < 5009; count++) {oW[count] = 0.0;} + for(count = 0; count < 4849; count++) {aX[count] = 0.0;} + for(count = 0; count < 4849; count++) {oX[count] = 0.0;} + for(count = 0; count < 4295; count++) {aY[count] = 0.0;} + for(count = 0; count < 4295; count++) {oY[count] = 0.0;} + for(count = 0; count < 4179; count++) {aZ[count] = 0.0;} + for(count = 0; count < 4179; count++) {oZ[count] = 0.0;} + + + outA = 1; alpA = 1; delayA = 4; maxdelayA = 7573; + outB = 1; alpB = 1; delayB = 4; maxdelayB = 7307; + outC = 1; alpC = 1; delayC = 4; maxdelayC = 7177; + outD = 1; alpD = 1; delayD = 4; maxdelayD = 6907; + outE = 1; alpE = 1; delayE = 4; maxdelayE = 6779; + outF = 1; alpF = 1; delayF = 4; maxdelayF = 6521; + outG = 1; alpG = 1; delayG = 4; maxdelayG = 5981; + outH = 1; alpH = 1; delayH = 4; maxdelayH = 5563; + outI = 1; alpI = 1; delayI = 4; maxdelayI = 5297; + outJ = 1; alpJ = 1; delayJ = 4; maxdelayJ = 4903; + outK = 1; alpK = 1; delayK = 4; maxdelayK = 4759; + outL = 1; alpL = 1; delayL = 4; maxdelayL = 4489; + outM = 1; alpM = 1; delayM = 4; maxdelayM = 4391; + outN = 1; alpN = 1; delayN = 4; maxdelayN = 4229; + outO = 1; alpO = 1; delayO = 4; maxdelayO = 4153; + outP = 1; alpP = 1; delayP = 4; maxdelayP = 3989; + outQ = 1; alpQ = 1; delayQ = 4; maxdelayQ = 3659; + outR = 1; alpR = 1; delayR = 4; maxdelayR = 3407; + outS = 1; alpS = 1; delayS = 4; maxdelayS = 3251; + outT = 1; alpT = 1; delayT = 4; maxdelayT = 2999; + outU = 1; alpU = 1; delayU = 4; maxdelayU = 2917; + outV = 1; alpV = 1; delayV = 4; maxdelayV = 2749; + outW = 1; alpW = 1; delayW = 4; maxdelayW = 2503; + outX = 1; alpX = 1; delayX = 4; maxdelayX = 2423; + outY = 1; alpY = 1; delayY = 4; maxdelayY = 2146; + outZ = 1; alpZ = 1; delayZ = 4; maxdelayZ = 2088; + + savedRoomsize = -1.0; //force update to begin + countdown = -1; + peak = 1.0; + fpd = 17; +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// PocketVerbs::PocketVerbsKernel::Process +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +void PocketVerbs::PocketVerbsKernel::Process( const Float32 *inSourceP, + Float32 *inDestP, + UInt32 inFramesToProcess, + UInt32 inNumChannels, + bool &ioSilence ) +{ + UInt32 nSampleFrames = inFramesToProcess; + const Float32 *sourceP = inSourceP; + Float32 *destP = inDestP; + int verbtype = GetParameter( kParam_One ); + Float64 roomsize = (pow(GetParameter( kParam_Two ),2)*1.9)+0.1; + + Float64 release = 0.00008 * pow(GetParameter( kParam_Three ),3); + if (release == 0.0) peak = 1.0; + Float64 wetnesstarget = GetParameter( kParam_Four ); + Float64 dryness = (1.0 - wetnesstarget); + //verbs use base wetness value internally + Float64 wetness = wetnesstarget; + Float64 constallpass = 0.618033988749894848204586; //golden ratio! + int allpasstemp; + int count; + int max = 70; //biggest divisor to test primes against + Float64 bridgerectifier; + Float64 gain = 0.5+(wetnesstarget*0.5); //dryer for less verb drive + //used as an aux, saturates when fed high levels + + //remap values to primes input number in question is 'i' + //max is the largest prime we care about- HF interactions more interesting than the big numbers + //pushing values larger and larger until we have a result + //for (primetest=2; primetest <= max; primetest++) {if ( i!=primetest && i % primetest == 0 ) {i += 1; primetest=2;}} + + if (savedRoomsize != roomsize) {savedRoomsize = roomsize; countdown = 26;} //kick off the adjustment which will take 26 zippernoise refreshes to complete + if (countdown > 0) {switch (countdown) + { + case 1: + delayA = (int(maxdelayA * roomsize)); + for (count=2; count <= max; count++) {if ( delayA != count && delayA % count == 0 ) {delayA += 1; count=2;}} //try for primeish As + if (delayA > maxdelayA) delayA = maxdelayA; //insanitycheck + for(count = alpA; count < 15149; count++) {aA[count] = 0.0;} + for(count = outA; count < 15149; count++) {oA[count] = 0.0;} + break; + + case 2: + delayB = (int(maxdelayB * roomsize)); + for (count=2; count <= max; count++) {if ( delayB != count && delayB % count == 0 ) {delayB += 1; count=2;}} //try for primeish Bs + if (delayB > maxdelayB) delayB = maxdelayB; //insanitycheck + for(count = alpB; count < 14617; count++) {aB[count] = 0.0;} + for(count = outB; count < 14617; count++) {oB[count] = 0.0;} + break; + + case 3: + delayC = (int(maxdelayC * roomsize)); + for (count=2; count <= max; count++) {if ( delayC != count && delayC % count == 0 ) {delayC += 1; count=2;}} //try for primeish Cs + if (delayC > maxdelayC) delayC = maxdelayC; //insanitycheck + for(count = alpC; count < 14357; count++) {aC[count] = 0.0;} + for(count = outC; count < 14357; count++) {oC[count] = 0.0;} + break; + + case 4: + delayD = (int(maxdelayD * roomsize)); + for (count=2; count <= max; count++) {if ( delayD != count && delayD % count == 0 ) {delayD += 1; count=2;}} //try for primeish Ds + if (delayD > maxdelayD) delayD = maxdelayD; //insanitycheck + for(count = alpD; count < 13817; count++) {aD[count] = 0.0;} + for(count = outD; count < 13817; count++) {oD[count] = 0.0;} + break; + + case 5: + delayE = (int(maxdelayE * roomsize)); + for (count=2; count <= max; count++) {if ( delayE != count && delayE % count == 0 ) {delayE += 1; count=2;}} //try for primeish Es + if (delayE > maxdelayE) delayE = maxdelayE; //insanitycheck + for(count = alpE; count < 13561; count++) {aE[count] = 0.0;} + for(count = outE; count < 13561; count++) {oE[count] = 0.0;} + break; + + case 6: + delayF = (int(maxdelayF * roomsize)); + for (count=2; count <= max; count++) {if ( delayF != count && delayF % count == 0 ) {delayF += 1; count=2;}} //try for primeish Fs + if (delayF > maxdelayF) delayF = maxdelayF; //insanitycheck + for(count = alpF; count < 13045; count++) {aF[count] = 0.0;} + for(count = outF; count < 13045; count++) {oF[count] = 0.0;} + break; + + case 7: + delayG = (int(maxdelayG * roomsize)); + for (count=2; count <= max; count++) {if ( delayG != count && delayG % count == 0 ) {delayG += 1; count=2;}} //try for primeish Gs + if (delayG > maxdelayG) delayG = maxdelayG; //insanitycheck + for(count = alpG; count < 11965; count++) {aG[count] = 0.0;} + for(count = outG; count < 11965; count++) {oG[count] = 0.0;} + break; + + case 8: + delayH = (int(maxdelayH * roomsize)); + for (count=2; count <= max; count++) {if ( delayH != count && delayH % count == 0 ) {delayH += 1; count=2;}} //try for primeish Hs + if (delayH > maxdelayH) delayH = maxdelayH; //insanitycheck + for(count = alpH; count < 11129; count++) {aH[count] = 0.0;} + for(count = outH; count < 11129; count++) {oH[count] = 0.0;} + break; + + case 9: + delayI = (int(maxdelayI * roomsize)); + for (count=2; count <= max; count++) {if ( delayI != count && delayI % count == 0 ) {delayI += 1; count=2;}} //try for primeish Is + if (delayI > maxdelayI) delayI = maxdelayI; //insanitycheck + for(count = alpI; count < 10597; count++) {aI[count] = 0.0;} + for(count = outI; count < 10597; count++) {oI[count] = 0.0;} + break; + + case 10: + delayJ = (int(maxdelayJ * roomsize)); + for (count=2; count <= max; count++) {if ( delayJ != count && delayJ % count == 0 ) {delayJ += 1; count=2;}} //try for primeish Js + if (delayJ > maxdelayJ) delayJ = maxdelayJ; //insanitycheck + for(count = alpJ; count < 9809; count++) {aJ[count] = 0.0;} + for(count = outJ; count < 9809; count++) {oJ[count] = 0.0;} + break; + + case 11: + delayK = (int(maxdelayK * roomsize)); + for (count=2; count <= max; count++) {if ( delayK != count && delayK % count == 0 ) {delayK += 1; count=2;}} //try for primeish Ks + if (delayK > maxdelayK) delayK = maxdelayK; //insanitycheck + for(count = alpK; count < 9521; count++) {aK[count] = 0.0;} + for(count = outK; count < 9521; count++) {oK[count] = 0.0;} + break; + + case 12: + delayL = (int(maxdelayL * roomsize)); + for (count=2; count <= max; count++) {if ( delayL != count && delayL % count == 0 ) {delayL += 1; count=2;}} //try for primeish Ls + if (delayL > maxdelayL) delayL = maxdelayL; //insanitycheck + for(count = alpL; count < 8981; count++) {aL[count] = 0.0;} + for(count = outL; count < 8981; count++) {oL[count] = 0.0;} + break; + + case 13: + delayM = (int(maxdelayM * roomsize)); + for (count=2; count <= max; count++) {if ( delayM != count && delayM % count == 0 ) {delayM += 1; count=2;}} //try for primeish Ms + if (delayM > maxdelayM) delayM = maxdelayM; //insanitycheck + for(count = alpM; count < 8785; count++) {aM[count] = 0.0;} + for(count = outM; count < 8785; count++) {oM[count] = 0.0;} + break; + + case 14: + delayN = (int(maxdelayN * roomsize)); + for (count=2; count <= max; count++) {if ( delayN != count && delayN % count == 0 ) {delayN += 1; count=2;}} //try for primeish Ns + if (delayN > maxdelayN) delayN = maxdelayN; //insanitycheck + for(count = alpN; count < 8461; count++) {aN[count] = 0.0;} + for(count = outN; count < 8461; count++) {oN[count] = 0.0;} + break; + + case 15: + delayO = (int(maxdelayO * roomsize)); + for (count=2; count <= max; count++) {if ( delayO != count && delayO % count == 0 ) {delayO += 1; count=2;}} //try for primeish Os + if (delayO > maxdelayO) delayO = maxdelayO; //insanitycheck + for(count = alpO; count < 8309; count++) {aO[count] = 0.0;} + for(count = outO; count < 8309; count++) {oO[count] = 0.0;} + break; + + case 16: + delayP = (int(maxdelayP * roomsize)); + for (count=2; count <= max; count++) {if ( delayP != count && delayP % count == 0 ) {delayP += 1; count=2;}} //try for primeish Ps + if (delayP > maxdelayP) delayP = maxdelayP; //insanitycheck + for(count = alpP; count < 7981; count++) {aP[count] = 0.0;} + for(count = outP; count < 7981; count++) {oP[count] = 0.0;} + break; + + case 17: + delayQ = (int(maxdelayQ * roomsize)); + for (count=2; count <= max; count++) {if ( delayQ != count && delayQ % count == 0 ) {delayQ += 1; count=2;}} //try for primeish Qs + if (delayQ > maxdelayQ) delayQ = maxdelayQ; //insanitycheck + for(count = alpQ; count < 7321; count++) {aQ[count] = 0.0;} + for(count = outQ; count < 7321; count++) {oQ[count] = 0.0;} + break; + + case 18: + delayR = (int(maxdelayR * roomsize)); + for (count=2; count <= max; count++) {if ( delayR != count && delayR % count == 0 ) {delayR += 1; count=2;}} //try for primeish Rs + if (delayR > maxdelayR) delayR = maxdelayR; //insanitycheck + for(count = alpR; count < 6817; count++) {aR[count] = 0.0;} + for(count = outR; count < 6817; count++) {oR[count] = 0.0;} + break; + + case 19: + delayS = (int(maxdelayS * roomsize)); + for (count=2; count <= max; count++) {if ( delayS != count && delayS % count == 0 ) {delayS += 1; count=2;}} //try for primeish Ss + if (delayS > maxdelayS) delayS = maxdelayS; //insanitycheck + for(count = alpS; count < 6505; count++) {aS[count] = 0.0;} + for(count = outS; count < 6505; count++) {oS[count] = 0.0;} + break; + + case 20: + delayT = (int(maxdelayT * roomsize)); + for (count=2; count <= max; count++) {if ( delayT != count && delayT % count == 0 ) {delayT += 1; count=2;}} //try for primeish Ts + if (delayT > maxdelayT) delayT = maxdelayT; //insanitycheck + for(count = alpT; count < 6001; count++) {aT[count] = 0.0;} + for(count = outT; count < 6001; count++) {oT[count] = 0.0;} + break; + + case 21: + delayU = (int(maxdelayU * roomsize)); + for (count=2; count <= max; count++) {if ( delayU != count && delayU % count == 0 ) {delayU += 1; count=2;}} //try for primeish Us + if (delayU > maxdelayU) delayU = maxdelayU; //insanitycheck + for(count = alpU; count < 5837; count++) {aU[count] = 0.0;} + for(count = outU; count < 5837; count++) {oU[count] = 0.0;} + break; + + case 22: + delayV = (int(maxdelayV * roomsize)); + for (count=2; count <= max; count++) {if ( delayV != count && delayV % count == 0 ) {delayV += 1; count=2;}} //try for primeish Vs + if (delayV > maxdelayV) delayV = maxdelayV; //insanitycheck + for(count = alpV; count < 5501; count++) {aV[count] = 0.0;} + for(count = outV; count < 5501; count++) {oV[count] = 0.0;} + break; + + case 23: + delayW = (int(maxdelayW * roomsize)); + for (count=2; count <= max; count++) {if ( delayW != count && delayW % count == 0 ) {delayW += 1; count=2;}} //try for primeish Ws + if (delayW > maxdelayW) delayW = maxdelayW; //insanitycheck + for(count = alpW; count < 5009; count++) {aW[count] = 0.0;} + for(count = outW; count < 5009; count++) {oW[count] = 0.0;} + break; + + case 24: + delayX = (int(maxdelayX * roomsize)); + for (count=2; count <= max; count++) {if ( delayX != count && delayX % count == 0 ) {delayX += 1; count=2;}} //try for primeish Xs + if (delayX > maxdelayX) delayX = maxdelayX; //insanitycheck + for(count = alpX; count < 4849; count++) {aX[count] = 0.0;} + for(count = outX; count < 4849; count++) {oX[count] = 0.0;} + break; + + case 25: + delayY = (int(maxdelayY * roomsize)); + for (count=2; count <= max; count++) {if ( delayY != count && delayY % count == 0 ) {delayY += 1; count=2;}} //try for primeish Ys + if (delayY > maxdelayY) delayY = maxdelayY; //insanitycheck + for(count = alpY; count < 4295; count++) {aY[count] = 0.0;} + for(count = outY; count < 4295; count++) {oY[count] = 0.0;} + break; + + case 26: + delayZ = (int(maxdelayZ * roomsize)); + for (count=2; count <= max; count++) {if ( delayZ != count && delayZ % count == 0 ) {delayZ += 1; count=2;}} //try for primeish Zs + if (delayZ > maxdelayZ) delayZ = maxdelayZ; //insanitycheck + for(count = alpZ; count < 4179; count++) {aZ[count] = 0.0;} + for(count = outZ; count < 4179; count++) {oZ[count] = 0.0;} + break; + } //end of switch statement + countdown--; + } + + + while (nSampleFrames-- > 0) { + long double inputSample = *sourceP; + if (fabs(inputSample)<1.18e-37) inputSample = fpd * 1.18e-37; + long double drySample = inputSample; + + peak -= release; + if (peak < fabs(inputSample*2.0)) peak = fabs(inputSample*2.0); + if (peak > 1.0) peak = 1.0; + //chase the maximum signal to incorporate the wetter/louder behavior + //boost for more extreme effect when in use, cap it + + inputSample *= gain; + bridgerectifier = fabs(inputSample); + bridgerectifier = sin(bridgerectifier); + if (inputSample > 0) inputSample = bridgerectifier; + else inputSample = -bridgerectifier; + //here we apply the ADT2 console-on-steroids trick + + switch (verbtype) + { + + +case 1://Chamber + allpasstemp = alpA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= aA[allpasstemp]*constallpass; + aA[alpA] = inputSample; + inputSample *= constallpass; + alpA--; if (alpA < 0 || alpA > delayA) {alpA = delayA;} + inputSample += (aA[alpA]); + //allpass filter A + + dA[3] = dA[2]; + dA[2] = dA[1]; + dA[1] = inputSample; + inputSample = (dA[1] + dA[2] + dA[3])/3.0; + + allpasstemp = alpB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= aB[allpasstemp]*constallpass; + aB[alpB] = inputSample; + inputSample *= constallpass; + alpB--; if (alpB < 0 || alpB > delayB) {alpB = delayB;} + inputSample += (aB[alpB]); + //allpass filter B + + dB[3] = dB[2]; + dB[2] = dB[1]; + dB[1] = inputSample; + inputSample = (dB[1] + dB[2] + dB[3])/3.0; + + allpasstemp = alpC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= aC[allpasstemp]*constallpass; + aC[alpC] = inputSample; + inputSample *= constallpass; + alpC--; if (alpC < 0 || alpC > delayC) {alpC = delayC;} + inputSample += (aC[alpC]); + //allpass filter C + + dC[3] = dC[2]; + dC[2] = dC[1]; + dC[1] = inputSample; + inputSample = (dA[1] + dC[2] + dC[3])/3.0; + + allpasstemp = alpD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= aD[allpasstemp]*constallpass; + aD[alpD] = inputSample; + inputSample *= constallpass; + alpD--; if (alpD < 0 || alpD > delayD) {alpD = delayD;} + inputSample += (aD[alpD]); + //allpass filter D + + dD[3] = dD[2]; + dD[2] = dD[1]; + dD[1] = inputSample; + inputSample = (dD[1] + dD[2] + dD[3])/3.0; + + allpasstemp = alpE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= aE[allpasstemp]*constallpass; + aE[alpE] = inputSample; + inputSample *= constallpass; + alpE--; if (alpE < 0 || alpE > delayE) {alpE = delayE;} + inputSample += (aE[alpE]); + //allpass filter E + + dE[3] = dE[2]; + dE[2] = dE[1]; + dE[1] = inputSample; + inputSample = (dA[1] + dE[2] + dE[3])/3.0; + + allpasstemp = alpF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= aF[allpasstemp]*constallpass; + aF[alpF] = inputSample; + inputSample *= constallpass; + alpF--; if (alpF < 0 || alpF > delayF) {alpF = delayF;} + inputSample += (aF[alpF]); + //allpass filter F + + dF[3] = dF[2]; + dF[2] = dF[1]; + dF[1] = inputSample; + inputSample = (dF[1] + dF[2] + dF[3])/3.0; + + allpasstemp = alpG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= aG[allpasstemp]*constallpass; + aG[alpG] = inputSample; + inputSample *= constallpass; + alpG--; if (alpG < 0 || alpG > delayG) {alpG = delayG;} + inputSample += (aG[alpG]); + //allpass filter G + + dG[3] = dG[2]; + dG[2] = dG[1]; + dG[1] = inputSample; + inputSample = (dA[1] + dG[2] + dG[3])/3.0; + + allpasstemp = alpH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= aH[allpasstemp]*constallpass; + aH[alpH] = inputSample; + inputSample *= constallpass; + alpH--; if (alpH < 0 || alpH > delayH) {alpH = delayH;} + inputSample += (aH[alpH]); + //allpass filter H + + dH[3] = dH[2]; + dH[2] = dH[1]; + dH[1] = inputSample; + inputSample = (dH[1] + dH[2] + dH[3])/3.0; + + allpasstemp = alpI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= aI[allpasstemp]*constallpass; + aI[alpI] = inputSample; + inputSample *= constallpass; + alpI--; if (alpI < 0 || alpI > delayI) {alpI = delayI;} + inputSample += (aI[alpI]); + //allpass filter I + + dI[3] = dI[2]; + dI[2] = dI[1]; + dI[1] = inputSample; + inputSample = (dI[1] + dI[2] + dI[3])/3.0; + + allpasstemp = alpJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= aJ[allpasstemp]*constallpass; + aJ[alpJ] = inputSample; + inputSample *= constallpass; + alpJ--; if (alpJ < 0 || alpJ > delayJ) {alpJ = delayJ;} + inputSample += (aJ[alpJ]); + //allpass filter J + + dJ[3] = dJ[2]; + dJ[2] = dJ[1]; + dJ[1] = inputSample; + inputSample = (dJ[1] + dJ[2] + dJ[3])/3.0; + + allpasstemp = alpK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= aK[allpasstemp]*constallpass; + aK[alpK] = inputSample; + inputSample *= constallpass; + alpK--; if (alpK < 0 || alpK > delayK) {alpK = delayK;} + inputSample += (aK[alpK]); + //allpass filter K + + dK[3] = dK[2]; + dK[2] = dK[1]; + dK[1] = inputSample; + inputSample = (dA[1] + dK[2] + dK[3])/3.0; + + allpasstemp = alpL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= aL[allpasstemp]*constallpass; + aL[alpL] = inputSample; + inputSample *= constallpass; + alpL--; if (alpL < 0 || alpL > delayL) {alpL = delayL;} + inputSample += (aL[alpL]); + //allpass filter L + + dL[3] = dL[2]; + dL[2] = dL[1]; + dL[1] = inputSample; + inputSample = (dL[1] + dL[2] + dL[3])/3.0; + + allpasstemp = alpM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= aM[allpasstemp]*constallpass; + aM[alpM] = inputSample; + inputSample *= constallpass; + alpM--; if (alpM < 0 || alpM > delayM) {alpM = delayM;} + inputSample += (aM[alpM]); + //allpass filter M + + dM[3] = dM[2]; + dM[2] = dM[1]; + dM[1] = inputSample; + inputSample = (dA[1] + dM[2] + dM[3])/3.0; + + allpasstemp = alpN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= aN[allpasstemp]*constallpass; + aN[alpN] = inputSample; + inputSample *= constallpass; + alpN--; if (alpN < 0 || alpN > delayN) {alpN = delayN;} + inputSample += (aN[alpN]); + //allpass filter N + + dN[3] = dN[2]; + dN[2] = dN[1]; + dN[1] = inputSample; + inputSample = (dN[1] + dN[2] + dN[3])/3.0; + + allpasstemp = alpO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= aO[allpasstemp]*constallpass; + aO[alpO] = inputSample; + inputSample *= constallpass; + alpO--; if (alpO < 0 || alpO > delayO) {alpO = delayO;} + inputSample += (aO[alpO]); + //allpass filter O + + dO[3] = dO[2]; + dO[2] = dO[1]; + dO[1] = inputSample; + inputSample = (dO[1] + dO[2] + dO[3])/3.0; + + allpasstemp = alpP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= aP[allpasstemp]*constallpass; + aP[alpP] = inputSample; + inputSample *= constallpass; + alpP--; if (alpP < 0 || alpP > delayP) {alpP = delayP;} + inputSample += (aP[alpP]); + //allpass filter P + + dP[3] = dP[2]; + dP[2] = dP[1]; + dP[1] = inputSample; + inputSample = (dP[1] + dP[2] + dP[3])/3.0; + + allpasstemp = alpQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= aQ[allpasstemp]*constallpass; + aQ[alpQ] = inputSample; + inputSample *= constallpass; + alpQ--; if (alpQ < 0 || alpQ > delayQ) {alpQ = delayQ;} + inputSample += (aQ[alpQ]); + //allpass filter Q + + dQ[3] = dQ[2]; + dQ[2] = dQ[1]; + dQ[1] = inputSample; + inputSample = (dA[1] + dQ[2] + dQ[3])/3.0; + + allpasstemp = alpR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= aR[allpasstemp]*constallpass; + aR[alpR] = inputSample; + inputSample *= constallpass; + alpR--; if (alpR < 0 || alpR > delayR) {alpR = delayR;} + inputSample += (aR[alpR]); + //allpass filter R + + dR[3] = dR[2]; + dR[2] = dR[1]; + dR[1] = inputSample; + inputSample = (dR[1] + dR[2] + dR[3])/3.0; + + allpasstemp = alpS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= aS[allpasstemp]*constallpass; + aS[alpS] = inputSample; + inputSample *= constallpass; + alpS--; if (alpS < 0 || alpS > delayS) {alpS = delayS;} + inputSample += (aS[alpS]); + //allpass filter S + + dS[3] = dS[2]; + dS[2] = dS[1]; + dS[1] = inputSample; + inputSample = (dA[1] + dS[2] + dS[3])/3.0; + + allpasstemp = alpT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= aT[allpasstemp]*constallpass; + aT[alpT] = inputSample; + inputSample *= constallpass; + alpT--; if (alpT < 0 || alpT > delayT) {alpT = delayT;} + inputSample += (aT[alpT]); + //allpass filter T + + dT[3] = dT[2]; + dT[2] = dT[1]; + dT[1] = inputSample; + inputSample = (dT[1] + dT[2] + dT[3])/3.0; + + allpasstemp = alpU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= aU[allpasstemp]*constallpass; + aU[alpU] = inputSample; + inputSample *= constallpass; + alpU--; if (alpU < 0 || alpU > delayU) {alpU = delayU;} + inputSample += (aU[alpU]); + //allpass filter U + + dU[3] = dU[2]; + dU[2] = dU[1]; + dU[1] = inputSample; + inputSample = (dU[1] + dU[2] + dU[3])/3.0; + + allpasstemp = alpV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= aV[allpasstemp]*constallpass; + aV[alpV] = inputSample; + inputSample *= constallpass; + alpV--; if (alpV < 0 || alpV > delayV) {alpV = delayV;} + inputSample += (aV[alpV]); + //allpass filter V + + dV[3] = dV[2]; + dV[2] = dV[1]; + dV[1] = inputSample; + inputSample = (dV[1] + dV[2] + dV[3])/3.0; + + allpasstemp = alpW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= aW[allpasstemp]*constallpass; + aW[alpW] = inputSample; + inputSample *= constallpass; + alpW--; if (alpW < 0 || alpW > delayW) {alpW = delayW;} + inputSample += (aW[alpW]); + //allpass filter W + + dW[3] = dW[2]; + dW[2] = dW[1]; + dW[1] = inputSample; + inputSample = (dA[1] + dW[2] + dW[3])/3.0; + + allpasstemp = alpX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= aX[allpasstemp]*constallpass; + aX[alpX] = inputSample; + inputSample *= constallpass; + alpX--; if (alpX < 0 || alpX > delayX) {alpX = delayX;} + inputSample += (aX[alpX]); + //allpass filter X + + dX[3] = dX[2]; + dX[2] = dX[1]; + dX[1] = inputSample; + inputSample = (dX[1] + dX[2] + dX[3])/3.0; + + allpasstemp = alpY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= aY[allpasstemp]*constallpass; + aY[alpY] = inputSample; + inputSample *= constallpass; + alpY--; if (alpY < 0 || alpY > delayY) {alpY = delayY;} + inputSample += (aY[alpY]); + //allpass filter Y + + dY[3] = dY[2]; + dY[2] = dY[1]; + dY[1] = inputSample; + inputSample = (dY[1] + dY[2] + dY[3])/3.0; + + allpasstemp = alpZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= aZ[allpasstemp]*constallpass; + aZ[alpZ] = inputSample; + inputSample *= constallpass; + alpZ--; if (alpZ < 0 || alpZ > delayZ) {alpZ = delayZ;} + inputSample += (aZ[alpZ]); + //allpass filter Z + + dZ[3] = dZ[2]; + dZ[2] = dZ[1]; + dZ[1] = inputSample; + inputSample = (dZ[1] + dZ[2] + dZ[3])/3.0; + + // now the second stage using the 'out' bank of allpasses + + allpasstemp = outA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= oA[allpasstemp]*constallpass; + oA[outA] = inputSample; + inputSample *= constallpass; + outA--; if (outA < 0 || outA > delayA) {outA = delayA;} + inputSample += (oA[outA]); + //allpass filter A + + dA[6] = dA[5]; + dA[5] = dA[4]; + dA[4] = inputSample; + inputSample = (dA[4] + dA[5] + dA[6])/3.0; + + allpasstemp = outB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= oB[allpasstemp]*constallpass; + oB[outB] = inputSample; + inputSample *= constallpass; + outB--; if (outB < 0 || outB > delayB) {outB = delayB;} + inputSample += (oB[outB]); + //allpass filter B + + dB[6] = dB[5]; + dB[5] = dB[4]; + dB[4] = inputSample; + inputSample = (dB[4] + dB[5] + dB[6])/3.0; + + allpasstemp = outC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= oC[allpasstemp]*constallpass; + oC[outC] = inputSample; + inputSample *= constallpass; + outC--; if (outC < 0 || outC > delayC) {outC = delayC;} + inputSample += (oC[outC]); + //allpass filter C + + dC[6] = dC[5]; + dC[5] = dC[4]; + dC[4] = inputSample; + inputSample = (dA[1] + dC[5] + dC[6])/3.0; + + allpasstemp = outD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= oD[allpasstemp]*constallpass; + oD[outD] = inputSample; + inputSample *= constallpass; + outD--; if (outD < 0 || outD > delayD) {outD = delayD;} + inputSample += (oD[outD]); + //allpass filter D + + dD[6] = dD[5]; + dD[5] = dD[4]; + dD[4] = inputSample; + inputSample = (dD[4] + dD[5] + dD[6])/3.0; + + allpasstemp = outE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= oE[allpasstemp]*constallpass; + oE[outE] = inputSample; + inputSample *= constallpass; + outE--; if (outE < 0 || outE > delayE) {outE = delayE;} + inputSample += (oE[outE]); + //allpass filter E + + dE[6] = dE[5]; + dE[5] = dE[4]; + dE[4] = inputSample; + inputSample = (dA[1] + dE[5] + dE[6])/3.0; + + allpasstemp = outF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= oF[allpasstemp]*constallpass; + oF[outF] = inputSample; + inputSample *= constallpass; + outF--; if (outF < 0 || outF > delayF) {outF = delayF;} + inputSample += (oF[outF]); + //allpass filter F + + dF[6] = dF[5]; + dF[5] = dF[4]; + dF[4] = inputSample; + inputSample = (dF[4] + dF[5] + dF[6])/3.0; + + allpasstemp = outG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= oG[allpasstemp]*constallpass; + oG[outG] = inputSample; + inputSample *= constallpass; + outG--; if (outG < 0 || outG > delayG) {outG = delayG;} + inputSample += (oG[outG]); + //allpass filter G + + dG[6] = dG[5]; + dG[5] = dG[4]; + dG[4] = inputSample; + inputSample = (dG[4] + dG[5] + dG[6])/3.0; + + allpasstemp = outH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= oH[allpasstemp]*constallpass; + oH[outH] = inputSample; + inputSample *= constallpass; + outH--; if (outH < 0 || outH > delayH) {outH = delayH;} + inputSample += (oH[outH]); + //allpass filter H + + dH[6] = dH[5]; + dH[5] = dH[4]; + dH[4] = inputSample; + inputSample = (dH[4] + dH[5] + dH[6])/3.0; + + allpasstemp = outI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= oI[allpasstemp]*constallpass; + oI[outI] = inputSample; + inputSample *= constallpass; + outI--; if (outI < 0 || outI > delayI) {outI = delayI;} + inputSample += (oI[outI]); + //allpass filter I + + dI[6] = dI[5]; + dI[5] = dI[4]; + dI[4] = inputSample; + inputSample = (dI[4] + dI[5] + dI[6])/3.0; + + allpasstemp = outJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= oJ[allpasstemp]*constallpass; + oJ[outJ] = inputSample; + inputSample *= constallpass; + outJ--; if (outJ < 0 || outJ > delayJ) {outJ = delayJ;} + inputSample += (oJ[outJ]); + //allpass filter J + + dJ[6] = dJ[5]; + dJ[5] = dJ[4]; + dJ[4] = inputSample; + inputSample = (dJ[4] + dJ[5] + dJ[6])/3.0; + + allpasstemp = outK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= oK[allpasstemp]*constallpass; + oK[outK] = inputSample; + inputSample *= constallpass; + outK--; if (outK < 0 || outK > delayK) {outK = delayK;} + inputSample += (oK[outK]); + //allpass filter K + + dK[6] = dK[5]; + dK[5] = dK[4]; + dK[4] = inputSample; + inputSample = (dA[1] + dK[5] + dK[6])/3.0; + + allpasstemp = outL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= oL[allpasstemp]*constallpass; + oL[outL] = inputSample; + inputSample *= constallpass; + outL--; if (outL < 0 || outL > delayL) {outL = delayL;} + inputSample += (oL[outL]); + //allpass filter L + + dL[6] = dL[5]; + dL[5] = dL[4]; + dL[4] = inputSample; + inputSample = (dL[4] + dL[5] + dL[6])/3.0; + + allpasstemp = outM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= oM[allpasstemp]*constallpass; + oM[outM] = inputSample; + inputSample *= constallpass; + outM--; if (outM < 0 || outM > delayM) {outM = delayM;} + inputSample += (oM[outM]); + //allpass filter M + + dM[6] = dM[5]; + dM[5] = dM[4]; + dM[4] = inputSample; + inputSample = (dM[4] + dM[5] + dM[6])/3.0; + + allpasstemp = outN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= oN[allpasstemp]*constallpass; + oN[outN] = inputSample; + inputSample *= constallpass; + outN--; if (outN < 0 || outN > delayN) {outN = delayN;} + inputSample += (oN[outN]); + //allpass filter N + + dN[6] = dN[5]; + dN[5] = dN[4]; + dN[4] = inputSample; + inputSample = (dN[4] + dN[5] + dN[6])/3.0; + + allpasstemp = outO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= oO[allpasstemp]*constallpass; + oO[outO] = inputSample; + inputSample *= constallpass; + outO--; if (outO < 0 || outO > delayO) {outO = delayO;} + inputSample += (oO[outO]); + //allpass filter O + + dO[6] = dO[5]; + dO[5] = dO[4]; + dO[4] = inputSample; + inputSample = (dA[1] + dO[5] + dO[6])/3.0; + + allpasstemp = outP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= oP[allpasstemp]*constallpass; + oP[outP] = inputSample; + inputSample *= constallpass; + outP--; if (outP < 0 || outP > delayP) {outP = delayP;} + inputSample += (oP[outP]); + //allpass filter P + + dP[6] = dP[5]; + dP[5] = dP[4]; + dP[4] = inputSample; + inputSample = (dP[4] + dP[5] + dP[6])/3.0; + + allpasstemp = outQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= oQ[allpasstemp]*constallpass; + oQ[outQ] = inputSample; + inputSample *= constallpass; + outQ--; if (outQ < 0 || outQ > delayQ) {outQ = delayQ;} + inputSample += (oQ[outQ]); + //allpass filter Q + + dQ[6] = dQ[5]; + dQ[5] = dQ[4]; + dQ[4] = inputSample; + inputSample = (dA[1] + dQ[5] + dQ[6])/3.0; + + allpasstemp = outR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= oR[allpasstemp]*constallpass; + oR[outR] = inputSample; + inputSample *= constallpass; + outR--; if (outR < 0 || outR > delayR) {outR = delayR;} + inputSample += (oR[outR]); + //allpass filter R + + dR[6] = dR[5]; + dR[5] = dR[4]; + dR[4] = inputSample; + inputSample = (dR[4] + dR[5] + dR[6])/3.0; + + allpasstemp = outS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= oS[allpasstemp]*constallpass; + oS[outS] = inputSample; + inputSample *= constallpass; + outS--; if (outS < 0 || outS > delayS) {outS = delayS;} + inputSample += (oS[outS]); + //allpass filter S + + dS[6] = dS[5]; + dS[5] = dS[4]; + dS[4] = inputSample; + inputSample = (dS[4] + dS[5] + dS[6])/3.0; + + allpasstemp = outT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= oT[allpasstemp]*constallpass; + oT[outT] = inputSample; + inputSample *= constallpass; + outT--; if (outT < 0 || outT > delayT) {outT = delayT;} + inputSample += (oT[outT]); + //allpass filter T + + dT[6] = dT[5]; + dT[5] = dT[4]; + dT[4] = inputSample; + inputSample = (dT[4] + dT[5] + dT[6])/3.0; + + allpasstemp = outU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= oU[allpasstemp]*constallpass; + oU[outU] = inputSample; + inputSample *= constallpass; + outU--; if (outU < 0 || outU > delayU) {outU = delayU;} + inputSample += (oU[outU]); + //allpass filter U + + dU[6] = dU[5]; + dU[5] = dU[4]; + dU[4] = inputSample; + inputSample = (dA[1] + dU[5] + dU[6])/3.0; + + allpasstemp = outV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= oV[allpasstemp]*constallpass; + oV[outV] = inputSample; + inputSample *= constallpass; + outV--; if (outV < 0 || outV > delayV) {outV = delayV;} + inputSample += (oV[outV]); + //allpass filter V + + dV[6] = dV[5]; + dV[5] = dV[4]; + dV[4] = inputSample; + inputSample = (dV[4] + dV[5] + dV[6])/3.0; + + allpasstemp = outW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= oW[allpasstemp]*constallpass; + oW[outW] = inputSample; + inputSample *= constallpass; + outW--; if (outW < 0 || outW > delayW) {outW = delayW;} + inputSample += (oW[outW]); + //allpass filter W + + dW[6] = dW[5]; + dW[5] = dW[4]; + dW[4] = inputSample; + inputSample = (dW[4] + dW[5] + dW[6])/3.0; + + allpasstemp = outX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= oX[allpasstemp]*constallpass; + oX[outX] = inputSample; + inputSample *= constallpass; + outX--; if (outX < 0 || outX > delayX) {outX = delayX;} + inputSample += (oX[outX]); + //allpass filter X + + dX[6] = dX[5]; + dX[5] = dX[4]; + dX[4] = inputSample; + inputSample = (dX[4] + dX[5] + dX[6])/3.0; + + allpasstemp = outY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= oY[allpasstemp]*constallpass; + oY[outY] = inputSample; + inputSample *= constallpass; + outY--; if (outY < 0 || outY > delayY) {outY = delayY;} + inputSample += (oY[outY]); + //allpass filter Y + + dY[6] = dY[5]; + dY[5] = dY[4]; + dY[4] = inputSample; + inputSample = (dY[4] + dY[5] + dY[6])/3.0; + + allpasstemp = outZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= oZ[allpasstemp]*constallpass; + oZ[outZ] = inputSample; + inputSample *= constallpass; + outZ--; if (outZ < 0 || outZ > delayZ) {outZ = delayZ;} + inputSample += (oZ[outZ]); + //allpass filter Z + + dZ[6] = dZ[5]; + dZ[5] = dZ[4]; + dZ[4] = inputSample; + inputSample = (dZ[4] + dZ[5] + dZ[6]); + //output Chamber + break; + + + + + + case 2: //Spring + + allpasstemp = alpA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= aA[allpasstemp]*constallpass; + aA[alpA] = inputSample; + inputSample *= constallpass; + alpA--; if (alpA < 0 || alpA > delayA) {alpA = delayA;} + inputSample += (aA[alpA]); + //allpass filter A + + dA[3] = dA[2]; + dA[2] = dA[1]; + dA[1] = inputSample; + inputSample = (dA[1] + dA[2] + dA[3])/3.0; + + allpasstemp = alpB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= aB[allpasstemp]*constallpass; + aB[alpB] = inputSample; + inputSample *= constallpass; + alpB--; if (alpB < 0 || alpB > delayB) {alpB = delayB;} + inputSample += (aB[alpB]); + //allpass filter B + + dB[3] = dB[2]; + dB[2] = dB[1]; + dB[1] = inputSample; + inputSample = (dB[1] + dB[2] + dB[3])/3.0; + + allpasstemp = alpC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= aC[allpasstemp]*constallpass; + aC[alpC] = inputSample; + inputSample *= constallpass; + alpC--; if (alpC < 0 || alpC > delayC) {alpC = delayC;} + inputSample += (aC[alpC]); + //allpass filter C + + dC[3] = dC[2]; + dC[2] = dC[1]; + dC[1] = inputSample; + inputSample = (dC[1] + dC[2] + dC[3])/3.0; + + allpasstemp = alpD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= aD[allpasstemp]*constallpass; + aD[alpD] = inputSample; + inputSample *= constallpass; + alpD--; if (alpD < 0 || alpD > delayD) {alpD = delayD;} + inputSample += (aD[alpD]); + //allpass filter D + + dD[3] = dD[2]; + dD[2] = dD[1]; + dD[1] = inputSample; + inputSample = (dD[1] + dD[2] + dD[3])/3.0; + + allpasstemp = alpE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= aE[allpasstemp]*constallpass; + aE[alpE] = inputSample; + inputSample *= constallpass; + alpE--; if (alpE < 0 || alpE > delayE) {alpE = delayE;} + inputSample += (aE[alpE]); + //allpass filter E + + dE[3] = dE[2]; + dE[2] = dE[1]; + dE[1] = inputSample; + inputSample = (dE[1] + dE[2] + dE[3])/3.0; + + allpasstemp = alpF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= aF[allpasstemp]*constallpass; + aF[alpF] = inputSample; + inputSample *= constallpass; + alpF--; if (alpF < 0 || alpF > delayF) {alpF = delayF;} + inputSample += (aF[alpF]); + //allpass filter F + + dF[3] = dF[2]; + dF[2] = dF[1]; + dF[1] = inputSample; + inputSample = (dF[1] + dF[2] + dF[3])/3.0; + + allpasstemp = alpG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= aG[allpasstemp]*constallpass; + aG[alpG] = inputSample; + inputSample *= constallpass; + alpG--; if (alpG < 0 || alpG > delayG) {alpG = delayG;} + inputSample += (aG[alpG]); + //allpass filter G + + dG[3] = dG[2]; + dG[2] = dG[1]; + dG[1] = inputSample; + inputSample = (dG[1] + dG[2] + dG[3])/3.0; + + allpasstemp = alpH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= aH[allpasstemp]*constallpass; + aH[alpH] = inputSample; + inputSample *= constallpass; + alpH--; if (alpH < 0 || alpH > delayH) {alpH = delayH;} + inputSample += (aH[alpH]); + //allpass filter H + + dH[3] = dH[2]; + dH[2] = dH[1]; + dH[1] = inputSample; + inputSample = (dH[1] + dH[2] + dH[3])/3.0; + + allpasstemp = alpI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= aI[allpasstemp]*constallpass; + aI[alpI] = inputSample; + inputSample *= constallpass; + alpI--; if (alpI < 0 || alpI > delayI) {alpI = delayI;} + inputSample += (aI[alpI]); + //allpass filter I + + dI[3] = dI[2]; + dI[2] = dI[1]; + dI[1] = inputSample; + inputSample = (dI[1] + dI[2] + dI[3])/3.0; + + allpasstemp = alpJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= aJ[allpasstemp]*constallpass; + aJ[alpJ] = inputSample; + inputSample *= constallpass; + alpJ--; if (alpJ < 0 || alpJ > delayJ) {alpJ = delayJ;} + inputSample += (aJ[alpJ]); + //allpass filter J + + dJ[3] = dJ[2]; + dJ[2] = dJ[1]; + dJ[1] = inputSample; + inputSample = (dJ[1] + dJ[2] + dJ[3])/3.0; + + allpasstemp = alpK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= aK[allpasstemp]*constallpass; + aK[alpK] = inputSample; + inputSample *= constallpass; + alpK--; if (alpK < 0 || alpK > delayK) {alpK = delayK;} + inputSample += (aK[alpK]); + //allpass filter K + + dK[3] = dK[2]; + dK[2] = dK[1]; + dK[1] = inputSample; + inputSample = (dK[1] + dK[2] + dK[3])/3.0; + + allpasstemp = alpL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= aL[allpasstemp]*constallpass; + aL[alpL] = inputSample; + inputSample *= constallpass; + alpL--; if (alpL < 0 || alpL > delayL) {alpL = delayL;} + inputSample += (aL[alpL]); + //allpass filter L + + dL[3] = dL[2]; + dL[2] = dL[1]; + dL[1] = inputSample; + inputSample = (dL[1] + dL[2] + dL[3])/3.0; + + allpasstemp = alpM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= aM[allpasstemp]*constallpass; + aM[alpM] = inputSample; + inputSample *= constallpass; + alpM--; if (alpM < 0 || alpM > delayM) {alpM = delayM;} + inputSample += (aM[alpM]); + //allpass filter M + + dM[3] = dM[2]; + dM[2] = dM[1]; + dM[1] = inputSample; + inputSample = (dM[1] + dM[2] + dM[3])/3.0; + + allpasstemp = alpN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= aN[allpasstemp]*constallpass; + aN[alpN] = inputSample; + inputSample *= constallpass; + alpN--; if (alpN < 0 || alpN > delayN) {alpN = delayN;} + inputSample += (aN[alpN]); + //allpass filter N + + dN[3] = dN[2]; + dN[2] = dN[1]; + dN[1] = inputSample; + inputSample = (dN[1] + dN[2] + dN[3])/3.0; + + allpasstemp = alpO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= aO[allpasstemp]*constallpass; + aO[alpO] = inputSample; + inputSample *= constallpass; + alpO--; if (alpO < 0 || alpO > delayO) {alpO = delayO;} + inputSample += (aO[alpO]); + //allpass filter O + + dO[3] = dO[2]; + dO[2] = dO[1]; + dO[1] = inputSample; + inputSample = (dO[1] + dO[2] + dO[3])/3.0; + + allpasstemp = alpP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= aP[allpasstemp]*constallpass; + aP[alpP] = inputSample; + inputSample *= constallpass; + alpP--; if (alpP < 0 || alpP > delayP) {alpP = delayP;} + inputSample += (aP[alpP]); + //allpass filter P + + dP[3] = dP[2]; + dP[2] = dP[1]; + dP[1] = inputSample; + inputSample = (dP[1] + dP[2] + dP[3])/3.0; + + allpasstemp = alpQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= aQ[allpasstemp]*constallpass; + aQ[alpQ] = inputSample; + inputSample *= constallpass; + alpQ--; if (alpQ < 0 || alpQ > delayQ) {alpQ = delayQ;} + inputSample += (aQ[alpQ]); + //allpass filter Q + + dQ[3] = dQ[2]; + dQ[2] = dQ[1]; + dQ[1] = inputSample; + inputSample = (dQ[1] + dQ[2] + dQ[3])/3.0; + + allpasstemp = alpR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= aR[allpasstemp]*constallpass; + aR[alpR] = inputSample; + inputSample *= constallpass; + alpR--; if (alpR < 0 || alpR > delayR) {alpR = delayR;} + inputSample += (aR[alpR]); + //allpass filter R + + dR[3] = dR[2]; + dR[2] = dR[1]; + dR[1] = inputSample; + inputSample = (dR[1] + dR[2] + dR[3])/3.0; + + allpasstemp = alpS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= aS[allpasstemp]*constallpass; + aS[alpS] = inputSample; + inputSample *= constallpass; + alpS--; if (alpS < 0 || alpS > delayS) {alpS = delayS;} + inputSample += (aS[alpS]); + //allpass filter S + + dS[3] = dS[2]; + dS[2] = dS[1]; + dS[1] = inputSample; + inputSample = (dS[1] + dS[2] + dS[3])/3.0; + + allpasstemp = alpT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= aT[allpasstemp]*constallpass; + aT[alpT] = inputSample; + inputSample *= constallpass; + alpT--; if (alpT < 0 || alpT > delayT) {alpT = delayT;} + inputSample += (aT[alpT]); + //allpass filter T + + dT[3] = dT[2]; + dT[2] = dT[1]; + dT[1] = inputSample; + inputSample = (dT[1] + dT[2] + dT[3])/3.0; + + allpasstemp = alpU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= aU[allpasstemp]*constallpass; + aU[alpU] = inputSample; + inputSample *= constallpass; + alpU--; if (alpU < 0 || alpU > delayU) {alpU = delayU;} + inputSample += (aU[alpU]); + //allpass filter U + + dU[3] = dU[2]; + dU[2] = dU[1]; + dU[1] = inputSample; + inputSample = (dU[1] + dU[2] + dU[3])/3.0; + + allpasstemp = alpV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= aV[allpasstemp]*constallpass; + aV[alpV] = inputSample; + inputSample *= constallpass; + alpV--; if (alpV < 0 || alpV > delayV) {alpV = delayV;} + inputSample += (aV[alpV]); + //allpass filter V + + dV[3] = dV[2]; + dV[2] = dV[1]; + dV[1] = inputSample; + inputSample = (dV[1] + dV[2] + dV[3])/3.0; + + allpasstemp = alpW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= aW[allpasstemp]*constallpass; + aW[alpW] = inputSample; + inputSample *= constallpass; + alpW--; if (alpW < 0 || alpW > delayW) {alpW = delayW;} + inputSample += (aW[alpW]); + //allpass filter W + + dW[3] = dW[2]; + dW[2] = dW[1]; + dW[1] = inputSample; + inputSample = (dW[1] + dW[2] + dW[3])/3.0; + + allpasstemp = alpX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= aX[allpasstemp]*constallpass; + aX[alpX] = inputSample; + inputSample *= constallpass; + alpX--; if (alpX < 0 || alpX > delayX) {alpX = delayX;} + inputSample += (aX[alpX]); + //allpass filter X + + dX[3] = dX[2]; + dX[2] = dX[1]; + dX[1] = inputSample; + inputSample = (dX[1] + dX[2] + dX[3])/3.0; + + allpasstemp = alpY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= aY[allpasstemp]*constallpass; + aY[alpY] = inputSample; + inputSample *= constallpass; + alpY--; if (alpY < 0 || alpY > delayY) {alpY = delayY;} + inputSample += (aY[alpY]); + //allpass filter Y + + dY[3] = dY[2]; + dY[2] = dY[1]; + dY[1] = inputSample; + inputSample = (dY[1] + dY[2] + dY[3])/3.0; + + allpasstemp = alpZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= aZ[allpasstemp]*constallpass; + aZ[alpZ] = inputSample; + inputSample *= constallpass; + alpZ--; if (alpZ < 0 || alpZ > delayZ) {alpZ = delayZ;} + inputSample += (aZ[alpZ]); + //allpass filter Z + + dZ[3] = dZ[2]; + dZ[2] = dZ[1]; + dZ[1] = inputSample; + inputSample = (dZ[1] + dZ[2] + dZ[3])/3.0; + + // now the second stage using the 'out' bank of allpasses + + allpasstemp = outA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= oA[allpasstemp]*constallpass; + oA[outA] = inputSample; + inputSample *= constallpass; + outA--; if (outA < 0 || outA > delayA) {outA = delayA;} + inputSample += (oA[outA]); + //allpass filter A + + dA[6] = dA[5]; + dA[5] = dA[4]; + dA[4] = inputSample; + inputSample = (dY[1] + dA[5] + dA[6])/3.0; + + allpasstemp = outB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= oB[allpasstemp]*constallpass; + oB[outB] = inputSample; + inputSample *= constallpass; + outB--; if (outB < 0 || outB > delayB) {outB = delayB;} + inputSample += (oB[outB]); + //allpass filter B + + dB[6] = dB[5]; + dB[5] = dB[4]; + dB[4] = inputSample; + inputSample = (dX[1] + dB[5] + dB[6])/3.0; + + allpasstemp = outC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= oC[allpasstemp]*constallpass; + oC[outC] = inputSample; + inputSample *= constallpass; + outC--; if (outC < 0 || outC > delayC) {outC = delayC;} + inputSample += (oC[outC]); + //allpass filter C + + dC[6] = dC[5]; + dC[5] = dC[4]; + dC[4] = inputSample; + inputSample = (dW[1] + dC[5] + dC[6])/3.0; + + allpasstemp = outD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= oD[allpasstemp]*constallpass; + oD[outD] = inputSample; + inputSample *= constallpass; + outD--; if (outD < 0 || outD > delayD) {outD = delayD;} + inputSample += (oD[outD]); + //allpass filter D + + dD[6] = dD[5]; + dD[5] = dD[4]; + dD[4] = inputSample; + inputSample = (dV[1] + dD[5] + dD[6])/3.0; + + allpasstemp = outE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= oE[allpasstemp]*constallpass; + oE[outE] = inputSample; + inputSample *= constallpass; + outE--; if (outE < 0 || outE > delayE) {outE = delayE;} + inputSample += (oE[outE]); + //allpass filter E + + dE[6] = dE[5]; + dE[5] = dE[4]; + dE[4] = inputSample; + inputSample = (dU[1] + dE[5] + dE[6])/3.0; + + allpasstemp = outF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= oF[allpasstemp]*constallpass; + oF[outF] = inputSample; + inputSample *= constallpass; + outF--; if (outF < 0 || outF > delayF) {outF = delayF;} + inputSample += (oF[outF]); + //allpass filter F + + dF[6] = dF[5]; + dF[5] = dF[4]; + dF[4] = inputSample; + inputSample = (dT[1] + dF[5] + dF[6])/3.0; + + allpasstemp = outG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= oG[allpasstemp]*constallpass; + oG[outG] = inputSample; + inputSample *= constallpass; + outG--; if (outG < 0 || outG > delayG) {outG = delayG;} + inputSample += (oG[outG]); + //allpass filter G + + dG[6] = dG[5]; + dG[5] = dG[4]; + dG[4] = inputSample; + inputSample = (dS[1] + dG[5] + dG[6])/3.0; + + allpasstemp = outH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= oH[allpasstemp]*constallpass; + oH[outH] = inputSample; + inputSample *= constallpass; + outH--; if (outH < 0 || outH > delayH) {outH = delayH;} + inputSample += (oH[outH]); + //allpass filter H + + dH[6] = dH[5]; + dH[5] = dH[4]; + dH[4] = inputSample; + inputSample = (dR[1] + dH[5] + dH[6])/3.0; + + allpasstemp = outI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= oI[allpasstemp]*constallpass; + oI[outI] = inputSample; + inputSample *= constallpass; + outI--; if (outI < 0 || outI > delayI) {outI = delayI;} + inputSample += (oI[outI]); + //allpass filter I + + dI[6] = dI[5]; + dI[5] = dI[4]; + dI[4] = inputSample; + inputSample = (dQ[1] + dI[5] + dI[6])/3.0; + + allpasstemp = outJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= oJ[allpasstemp]*constallpass; + oJ[outJ] = inputSample; + inputSample *= constallpass; + outJ--; if (outJ < 0 || outJ > delayJ) {outJ = delayJ;} + inputSample += (oJ[outJ]); + //allpass filter J + + dJ[6] = dJ[5]; + dJ[5] = dJ[4]; + dJ[4] = inputSample; + inputSample = (dP[1] + dJ[5] + dJ[6])/3.0; + + allpasstemp = outK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= oK[allpasstemp]*constallpass; + oK[outK] = inputSample; + inputSample *= constallpass; + outK--; if (outK < 0 || outK > delayK) {outK = delayK;} + inputSample += (oK[outK]); + //allpass filter K + + dK[6] = dK[5]; + dK[5] = dK[4]; + dK[4] = inputSample; + inputSample = (dO[1] + dK[5] + dK[6])/3.0; + + allpasstemp = outL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= oL[allpasstemp]*constallpass; + oL[outL] = inputSample; + inputSample *= constallpass; + outL--; if (outL < 0 || outL > delayL) {outL = delayL;} + inputSample += (oL[outL]); + //allpass filter L + + dL[6] = dL[5]; + dL[5] = dL[4]; + dL[4] = inputSample; + inputSample = (dN[1] + dL[5] + dL[6])/3.0; + + allpasstemp = outM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= oM[allpasstemp]*constallpass; + oM[outM] = inputSample; + inputSample *= constallpass; + outM--; if (outM < 0 || outM > delayM) {outM = delayM;} + inputSample += (oM[outM]); + //allpass filter M + + dM[6] = dM[5]; + dM[5] = dM[4]; + dM[4] = inputSample; + inputSample = (dM[1] + dM[5] + dM[6])/3.0; + + allpasstemp = outN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= oN[allpasstemp]*constallpass; + oN[outN] = inputSample; + inputSample *= constallpass; + outN--; if (outN < 0 || outN > delayN) {outN = delayN;} + inputSample += (oN[outN]); + //allpass filter N + + dN[6] = dN[5]; + dN[5] = dN[4]; + dN[4] = inputSample; + inputSample = (dL[1] + dN[5] + dN[6])/3.0; + + allpasstemp = outO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= oO[allpasstemp]*constallpass; + oO[outO] = inputSample; + inputSample *= constallpass; + outO--; if (outO < 0 || outO > delayO) {outO = delayO;} + inputSample += (oO[outO]); + //allpass filter O + + dO[6] = dO[5]; + dO[5] = dO[4]; + dO[4] = inputSample; + inputSample = (dK[1] + dO[5] + dO[6])/3.0; + + allpasstemp = outP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= oP[allpasstemp]*constallpass; + oP[outP] = inputSample; + inputSample *= constallpass; + outP--; if (outP < 0 || outP > delayP) {outP = delayP;} + inputSample += (oP[outP]); + //allpass filter P + + dP[6] = dP[5]; + dP[5] = dP[4]; + dP[4] = inputSample; + inputSample = (dJ[1] + dP[5] + dP[6])/3.0; + + allpasstemp = outQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= oQ[allpasstemp]*constallpass; + oQ[outQ] = inputSample; + inputSample *= constallpass; + outQ--; if (outQ < 0 || outQ > delayQ) {outQ = delayQ;} + inputSample += (oQ[outQ]); + //allpass filter Q + + dQ[6] = dQ[5]; + dQ[5] = dQ[4]; + dQ[4] = inputSample; + inputSample = (dI[1] + dQ[5] + dQ[6])/3.0; + + allpasstemp = outR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= oR[allpasstemp]*constallpass; + oR[outR] = inputSample; + inputSample *= constallpass; + outR--; if (outR < 0 || outR > delayR) {outR = delayR;} + inputSample += (oR[outR]); + //allpass filter R + + dR[6] = dR[5]; + dR[5] = dR[4]; + dR[4] = inputSample; + inputSample = (dH[1] + dR[5] + dR[6])/3.0; + + allpasstemp = outS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= oS[allpasstemp]*constallpass; + oS[outS] = inputSample; + inputSample *= constallpass; + outS--; if (outS < 0 || outS > delayS) {outS = delayS;} + inputSample += (oS[outS]); + //allpass filter S + + dS[6] = dS[5]; + dS[5] = dS[4]; + dS[4] = inputSample; + inputSample = (dG[1] + dS[5] + dS[6])/3.0; + + allpasstemp = outT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= oT[allpasstemp]*constallpass; + oT[outT] = inputSample; + inputSample *= constallpass; + outT--; if (outT < 0 || outT > delayT) {outT = delayT;} + inputSample += (oT[outT]); + //allpass filter T + + dT[6] = dT[5]; + dT[5] = dT[4]; + dT[4] = inputSample; + inputSample = (dF[1] + dT[5] + dT[6])/3.0; + + allpasstemp = outU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= oU[allpasstemp]*constallpass; + oU[outU] = inputSample; + inputSample *= constallpass; + outU--; if (outU < 0 || outU > delayU) {outU = delayU;} + inputSample += (oU[outU]); + //allpass filter U + + dU[6] = dU[5]; + dU[5] = dU[4]; + dU[4] = inputSample; + inputSample = (dE[1] + dU[5] + dU[6])/3.0; + + allpasstemp = outV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= oV[allpasstemp]*constallpass; + oV[outV] = inputSample; + inputSample *= constallpass; + outV--; if (outV < 0 || outV > delayV) {outV = delayV;} + inputSample += (oV[outV]); + //allpass filter V + + dV[6] = dV[5]; + dV[5] = dV[4]; + dV[4] = inputSample; + inputSample = (dD[1] + dV[5] + dV[6])/3.0; + + allpasstemp = outW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= oW[allpasstemp]*constallpass; + oW[outW] = inputSample; + inputSample *= constallpass; + outW--; if (outW < 0 || outW > delayW) {outW = delayW;} + inputSample += (oW[outW]); + //allpass filter W + + dW[6] = dW[5]; + dW[5] = dW[4]; + dW[4] = inputSample; + inputSample = (dC[1] + dW[5] + dW[6])/3.0; + + allpasstemp = outX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= oX[allpasstemp]*constallpass; + oX[outX] = inputSample; + inputSample *= constallpass; + outX--; if (outX < 0 || outX > delayX) {outX = delayX;} + inputSample += (oX[outX]); + //allpass filter X + + dX[6] = dX[5]; + dX[5] = dX[4]; + dX[4] = inputSample; + inputSample = (dA[1] + dX[5] + dX[6])/3.0; + + allpasstemp = outY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= oY[allpasstemp]*constallpass; + oY[outY] = inputSample; + inputSample *= constallpass; + outY--; if (outY < 0 || outY > delayY) {outY = delayY;} + inputSample += (oY[outY]); + //allpass filter Y + + dY[6] = dY[5]; + dY[5] = dY[4]; + dY[4] = inputSample; + inputSample = (dB[1] + dY[5] + dY[6])/3.0; + + allpasstemp = outZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= oZ[allpasstemp]*constallpass; + oZ[outZ] = inputSample; + inputSample *= constallpass; + outZ--; if (outZ < 0 || outZ > delayZ) {outZ = delayZ;} + inputSample += (oZ[outZ]); + //allpass filter Z + + dZ[6] = dZ[5]; + dZ[5] = dZ[4]; + dZ[4] = inputSample; + inputSample = (dZ[5] + dZ[6]); + //output Spring + break; + + +case 3: //Tiled + allpasstemp = alpA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= aA[allpasstemp]*constallpass; + aA[alpA] = inputSample; + inputSample *= constallpass; + alpA--; if (alpA < 0 || alpA > delayA) {alpA = delayA;} + inputSample += (aA[alpA]); + //allpass filter A + + dA[2] = dA[1]; + dA[1] = inputSample; + inputSample = (dA[1] + dA[2])/2.0; + + allpasstemp = alpB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= aB[allpasstemp]*constallpass; + aB[alpB] = inputSample; + inputSample *= constallpass; + alpB--; if (alpB < 0 || alpB > delayB) {alpB = delayB;} + inputSample += (aB[alpB]); + //allpass filter B + + dB[2] = dB[1]; + dB[1] = inputSample; + inputSample = (dB[1] + dB[2])/2.0; + + allpasstemp = alpC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= aC[allpasstemp]*constallpass; + aC[alpC] = inputSample; + inputSample *= constallpass; + alpC--; if (alpC < 0 || alpC > delayC) {alpC = delayC;} + inputSample += (aC[alpC]); + //allpass filter C + + dC[2] = dC[1]; + dC[1] = inputSample; + inputSample = (dA[1] + dC[2])/2.0; + + allpasstemp = alpD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= aD[allpasstemp]*constallpass; + aD[alpD] = inputSample; + inputSample *= constallpass; + alpD--; if (alpD < 0 || alpD > delayD) {alpD = delayD;} + inputSample += (aD[alpD]); + //allpass filter D + + dD[2] = dD[1]; + dD[1] = inputSample; + inputSample = (dD[1] + dD[2])/2.0; + + allpasstemp = alpE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= aE[allpasstemp]*constallpass; + aE[alpE] = inputSample; + inputSample *= constallpass; + alpE--; if (alpE < 0 || alpE > delayE) {alpE = delayE;} + inputSample += (aE[alpE]); + //allpass filter E + + dE[2] = dE[1]; + dE[1] = inputSample; + inputSample = (dA[1] + dE[2])/2.0; + + allpasstemp = alpF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= aF[allpasstemp]*constallpass; + aF[alpF] = inputSample; + inputSample *= constallpass; + alpF--; if (alpF < 0 || alpF > delayF) {alpF = delayF;} + inputSample += (aF[alpF]); + //allpass filter F + + dF[2] = dF[1]; + dF[1] = inputSample; + inputSample = (dF[1] + dF[2])/2.0; + + allpasstemp = alpG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= aG[allpasstemp]*constallpass; + aG[alpG] = inputSample; + inputSample *= constallpass; + alpG--; if (alpG < 0 || alpG > delayG) {alpG = delayG;} + inputSample += (aG[alpG]); + //allpass filter G + + dG[2] = dG[1]; + dG[1] = inputSample; + inputSample = (dA[1] + dG[2])/2.0; + + allpasstemp = alpH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= aH[allpasstemp]*constallpass; + aH[alpH] = inputSample; + inputSample *= constallpass; + alpH--; if (alpH < 0 || alpH > delayH) {alpH = delayH;} + inputSample += (aH[alpH]); + //allpass filter H + + dH[2] = dH[1]; + dH[1] = inputSample; + inputSample = (dH[1] + dH[2])/2.0; + + allpasstemp = alpI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= aI[allpasstemp]*constallpass; + aI[alpI] = inputSample; + inputSample *= constallpass; + alpI--; if (alpI < 0 || alpI > delayI) {alpI = delayI;} + inputSample += (aI[alpI]); + //allpass filter I + + dI[2] = dI[1]; + dI[1] = inputSample; + inputSample = (dI[1] + dI[2])/2.0; + + allpasstemp = alpJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= aJ[allpasstemp]*constallpass; + aJ[alpJ] = inputSample; + inputSample *= constallpass; + alpJ--; if (alpJ < 0 || alpJ > delayJ) {alpJ = delayJ;} + inputSample += (aJ[alpJ]); + //allpass filter J + + dJ[2] = dJ[1]; + dJ[1] = inputSample; + inputSample = (dJ[1] + dJ[2])/2.0; + + allpasstemp = alpK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= aK[allpasstemp]*constallpass; + aK[alpK] = inputSample; + inputSample *= constallpass; + alpK--; if (alpK < 0 || alpK > delayK) {alpK = delayK;} + inputSample += (aK[alpK]); + //allpass filter K + + dK[2] = dK[1]; + dK[1] = inputSample; + inputSample = (dA[1] + dK[2])/2.0; + + allpasstemp = alpL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= aL[allpasstemp]*constallpass; + aL[alpL] = inputSample; + inputSample *= constallpass; + alpL--; if (alpL < 0 || alpL > delayL) {alpL = delayL;} + inputSample += (aL[alpL]); + //allpass filter L + + dL[2] = dL[1]; + dL[1] = inputSample; + inputSample = (dL[1] + dL[2])/2.0; + + allpasstemp = alpM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= aM[allpasstemp]*constallpass; + aM[alpM] = inputSample; + inputSample *= constallpass; + alpM--; if (alpM < 0 || alpM > delayM) {alpM = delayM;} + inputSample += (aM[alpM]); + //allpass filter M + + dM[2] = dM[1]; + dM[1] = inputSample; + inputSample = (dA[1] + dM[2])/2.0; + + allpasstemp = alpN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= aN[allpasstemp]*constallpass; + aN[alpN] = inputSample; + inputSample *= constallpass; + alpN--; if (alpN < 0 || alpN > delayN) {alpN = delayN;} + inputSample += (aN[alpN]); + //allpass filter N + + dN[2] = dN[1]; + dN[1] = inputSample; + inputSample = (dN[1] + dN[2])/2.0; + + allpasstemp = alpO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= aO[allpasstemp]*constallpass; + aO[alpO] = inputSample; + inputSample *= constallpass; + alpO--; if (alpO < 0 || alpO > delayO) {alpO = delayO;} + inputSample += (aO[alpO]); + //allpass filter O + + dO[2] = dO[1]; + dO[1] = inputSample; + inputSample = (dO[1] + dO[2])/2.0; + + allpasstemp = alpP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= aP[allpasstemp]*constallpass; + aP[alpP] = inputSample; + inputSample *= constallpass; + alpP--; if (alpP < 0 || alpP > delayP) {alpP = delayP;} + inputSample += (aP[alpP]); + //allpass filter P + + dP[2] = dP[1]; + dP[1] = inputSample; + inputSample = (dP[1] + dP[2])/2.0; + + allpasstemp = alpQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= aQ[allpasstemp]*constallpass; + aQ[alpQ] = inputSample; + inputSample *= constallpass; + alpQ--; if (alpQ < 0 || alpQ > delayQ) {alpQ = delayQ;} + inputSample += (aQ[alpQ]); + //allpass filter Q + + dQ[2] = dQ[1]; + dQ[1] = inputSample; + inputSample = (dA[1] + dQ[2])/2.0; + + allpasstemp = alpR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= aR[allpasstemp]*constallpass; + aR[alpR] = inputSample; + inputSample *= constallpass; + alpR--; if (alpR < 0 || alpR > delayR) {alpR = delayR;} + inputSample += (aR[alpR]); + //allpass filter R + + dR[2] = dR[1]; + dR[1] = inputSample; + inputSample = (dR[1] + dR[2])/2.0; + + allpasstemp = alpS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= aS[allpasstemp]*constallpass; + aS[alpS] = inputSample; + inputSample *= constallpass; + alpS--; if (alpS < 0 || alpS > delayS) {alpS = delayS;} + inputSample += (aS[alpS]); + //allpass filter S + + dS[2] = dS[1]; + dS[1] = inputSample; + inputSample = (dA[1] + dS[2])/2.0; + + allpasstemp = alpT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= aT[allpasstemp]*constallpass; + aT[alpT] = inputSample; + inputSample *= constallpass; + alpT--; if (alpT < 0 || alpT > delayT) {alpT = delayT;} + inputSample += (aT[alpT]); + //allpass filter T + + dT[2] = dT[1]; + dT[1] = inputSample; + inputSample = (dT[1] + dT[2])/2.0; + + allpasstemp = alpU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= aU[allpasstemp]*constallpass; + aU[alpU] = inputSample; + inputSample *= constallpass; + alpU--; if (alpU < 0 || alpU > delayU) {alpU = delayU;} + inputSample += (aU[alpU]); + //allpass filter U + + dU[2] = dU[1]; + dU[1] = inputSample; + inputSample = (dU[1] + dU[2])/2.0; + + allpasstemp = alpV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= aV[allpasstemp]*constallpass; + aV[alpV] = inputSample; + inputSample *= constallpass; + alpV--; if (alpV < 0 || alpV > delayV) {alpV = delayV;} + inputSample += (aV[alpV]); + //allpass filter V + + dV[2] = dV[1]; + dV[1] = inputSample; + inputSample = (dV[1] + dV[2])/2.0; + + allpasstemp = alpW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= aW[allpasstemp]*constallpass; + aW[alpW] = inputSample; + inputSample *= constallpass; + alpW--; if (alpW < 0 || alpW > delayW) {alpW = delayW;} + inputSample += (aW[alpW]); + //allpass filter W + + dW[2] = dW[1]; + dW[1] = inputSample; + inputSample = (dA[1] + dW[2])/2.0; + + allpasstemp = alpX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= aX[allpasstemp]*constallpass; + aX[alpX] = inputSample; + inputSample *= constallpass; + alpX--; if (alpX < 0 || alpX > delayX) {alpX = delayX;} + inputSample += (aX[alpX]); + //allpass filter X + + dX[2] = dX[1]; + dX[1] = inputSample; + inputSample = (dX[1] + dX[2])/2.0; + + allpasstemp = alpY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= aY[allpasstemp]*constallpass; + aY[alpY] = inputSample; + inputSample *= constallpass; + alpY--; if (alpY < 0 || alpY > delayY) {alpY = delayY;} + inputSample += (aY[alpY]); + //allpass filter Y + + dY[2] = dY[1]; + dY[1] = inputSample; + inputSample = (dY[1] + dY[2])/2.0; + + allpasstemp = alpZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= aZ[allpasstemp]*constallpass; + aZ[alpZ] = inputSample; + inputSample *= constallpass; + alpZ--; if (alpZ < 0 || alpZ > delayZ) {alpZ = delayZ;} + inputSample += (aZ[alpZ]); + //allpass filter Z + + dZ[2] = dZ[1]; + dZ[1] = inputSample; + inputSample = (dZ[1] + dZ[2])/2.0; + + // now the second stage using the 'out' bank of allpasses + + allpasstemp = outA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= oA[allpasstemp]*constallpass; + oA[outA] = inputSample; + inputSample *= constallpass; + outA--; if (outA < 0 || outA > delayA) {outA = delayA;} + inputSample += (oA[outA]); + //allpass filter A + + dA[5] = dA[4]; + dA[4] = inputSample; + inputSample = (dA[4] + dA[5])/2.0; + + allpasstemp = outB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= oB[allpasstemp]*constallpass; + oB[outB] = inputSample; + inputSample *= constallpass; + outB--; if (outB < 0 || outB > delayB) {outB = delayB;} + inputSample += (oB[outB]); + //allpass filter B + + dB[5] = dB[4]; + dB[4] = inputSample; + inputSample = (dB[4] + dB[5])/2.0; + + allpasstemp = outC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= oC[allpasstemp]*constallpass; + oC[outC] = inputSample; + inputSample *= constallpass; + outC--; if (outC < 0 || outC > delayC) {outC = delayC;} + inputSample += (oC[outC]); + //allpass filter C + + dC[5] = dC[4]; + dC[4] = inputSample; + inputSample = (dA[1] + dC[5])/2.0; + + allpasstemp = outD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= oD[allpasstemp]*constallpass; + oD[outD] = inputSample; + inputSample *= constallpass; + outD--; if (outD < 0 || outD > delayD) {outD = delayD;} + inputSample += (oD[outD]); + //allpass filter D + + dD[5] = dD[4]; + dD[4] = inputSample; + inputSample = (dD[4] + dD[5])/2.0; + + allpasstemp = outE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= oE[allpasstemp]*constallpass; + oE[outE] = inputSample; + inputSample *= constallpass; + outE--; if (outE < 0 || outE > delayE) {outE = delayE;} + inputSample += (oE[outE]); + //allpass filter E + + dE[5] = dE[4]; + dE[4] = inputSample; + inputSample = (dA[1] + dE[5])/2.0; + + allpasstemp = outF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= oF[allpasstemp]*constallpass; + oF[outF] = inputSample; + inputSample *= constallpass; + outF--; if (outF < 0 || outF > delayF) {outF = delayF;} + inputSample += (oF[outF]); + //allpass filter F + + dF[5] = dF[4]; + dF[4] = inputSample; + inputSample = (dF[4] + dF[5])/2.0; + + allpasstemp = outG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= oG[allpasstemp]*constallpass; + oG[outG] = inputSample; + inputSample *= constallpass; + outG--; if (outG < 0 || outG > delayG) {outG = delayG;} + inputSample += (oG[outG]); + //allpass filter G + + dG[5] = dG[4]; + dG[4] = inputSample; + inputSample = (dG[4] + dG[5])/2.0; + + allpasstemp = outH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= oH[allpasstemp]*constallpass; + oH[outH] = inputSample; + inputSample *= constallpass; + outH--; if (outH < 0 || outH > delayH) {outH = delayH;} + inputSample += (oH[outH]); + //allpass filter H + + dH[5] = dH[4]; + dH[4] = inputSample; + inputSample = (dH[4] + dH[5])/2.0; + + allpasstemp = outI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= oI[allpasstemp]*constallpass; + oI[outI] = inputSample; + inputSample *= constallpass; + outI--; if (outI < 0 || outI > delayI) {outI = delayI;} + inputSample += (oI[outI]); + //allpass filter I + + dI[5] = dI[4]; + dI[4] = inputSample; + inputSample = (dI[4] + dI[5])/2.0; + + allpasstemp = outJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= oJ[allpasstemp]*constallpass; + oJ[outJ] = inputSample; + inputSample *= constallpass; + outJ--; if (outJ < 0 || outJ > delayJ) {outJ = delayJ;} + inputSample += (oJ[outJ]); + //allpass filter J + + dJ[5] = dJ[4]; + dJ[4] = inputSample; + inputSample = (dJ[4] + dJ[5])/2.0; + + allpasstemp = outK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= oK[allpasstemp]*constallpass; + oK[outK] = inputSample; + inputSample *= constallpass; + outK--; if (outK < 0 || outK > delayK) {outK = delayK;} + inputSample += (oK[outK]); + //allpass filter K + + dK[5] = dK[4]; + dK[4] = inputSample; + inputSample = (dA[1] + dK[5])/2.0; + + allpasstemp = outL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= oL[allpasstemp]*constallpass; + oL[outL] = inputSample; + inputSample *= constallpass; + outL--; if (outL < 0 || outL > delayL) {outL = delayL;} + inputSample += (oL[outL]); + //allpass filter L + + dL[5] = dL[4]; + dL[4] = inputSample; + inputSample = (dL[4] + dL[5])/2.0; + + allpasstemp = outM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= oM[allpasstemp]*constallpass; + oM[outM] = inputSample; + inputSample *= constallpass; + outM--; if (outM < 0 || outM > delayM) {outM = delayM;} + inputSample += (oM[outM]); + //allpass filter M + + dM[5] = dM[4]; + dM[4] = inputSample; + inputSample = (dM[4] + dM[5])/2.0; + + allpasstemp = outN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= oN[allpasstemp]*constallpass; + oN[outN] = inputSample; + inputSample *= constallpass; + outN--; if (outN < 0 || outN > delayN) {outN = delayN;} + inputSample += (oN[outN]); + //allpass filter N + + dN[5] = dN[4]; + dN[4] = inputSample; + inputSample = (dN[4] + dN[5])/2.0; + + allpasstemp = outO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= oO[allpasstemp]*constallpass; + oO[outO] = inputSample; + inputSample *= constallpass; + outO--; if (outO < 0 || outO > delayO) {outO = delayO;} + inputSample += (oO[outO]); + //allpass filter O + + dO[5] = dO[4]; + dO[4] = inputSample; + inputSample = (dA[1] + dO[5])/2.0; + + allpasstemp = outP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= oP[allpasstemp]*constallpass; + oP[outP] = inputSample; + inputSample *= constallpass; + outP--; if (outP < 0 || outP > delayP) {outP = delayP;} + inputSample += (oP[outP]); + //allpass filter P + + dP[5] = dP[4]; + dP[4] = inputSample; + inputSample = (dP[4] + dP[5])/2.0; + + allpasstemp = outQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= oQ[allpasstemp]*constallpass; + oQ[outQ] = inputSample; + inputSample *= constallpass; + outQ--; if (outQ < 0 || outQ > delayQ) {outQ = delayQ;} + inputSample += (oQ[outQ]); + //allpass filter Q + + dQ[5] = dQ[4]; + dQ[4] = inputSample; + inputSample = (dA[1] + dQ[5])/2.0; + + allpasstemp = outR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= oR[allpasstemp]*constallpass; + oR[outR] = inputSample; + inputSample *= constallpass; + outR--; if (outR < 0 || outR > delayR) {outR = delayR;} + inputSample += (oR[outR]); + //allpass filter R + + dR[5] = dR[4]; + dR[4] = inputSample; + inputSample = (dR[4] + dR[5])/2.0; + + allpasstemp = outS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= oS[allpasstemp]*constallpass; + oS[outS] = inputSample; + inputSample *= constallpass; + outS--; if (outS < 0 || outS > delayS) {outS = delayS;} + inputSample += (oS[outS]); + //allpass filter S + + dS[5] = dS[4]; + dS[4] = inputSample; + inputSample = (dS[4] + dS[5])/2.0; + + allpasstemp = outT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= oT[allpasstemp]*constallpass; + oT[outT] = inputSample; + inputSample *= constallpass; + outT--; if (outT < 0 || outT > delayT) {outT = delayT;} + inputSample += (oT[outT]); + //allpass filter T + + dT[5] = dT[4]; + dT[4] = inputSample; + inputSample = (dT[4] + dT[5])/2.0; + + allpasstemp = outU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= oU[allpasstemp]*constallpass; + oU[outU] = inputSample; + inputSample *= constallpass; + outU--; if (outU < 0 || outU > delayU) {outU = delayU;} + inputSample += (oU[outU]); + //allpass filter U + + dU[5] = dU[4]; + dU[4] = inputSample; + inputSample = (dA[1] + dU[5])/2.0; + + allpasstemp = outV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= oV[allpasstemp]*constallpass; + oV[outV] = inputSample; + inputSample *= constallpass; + outV--; if (outV < 0 || outV > delayV) {outV = delayV;} + inputSample += (oV[outV]); + //allpass filter V + + dV[5] = dV[4]; + dV[4] = inputSample; + inputSample = (dV[4] + dV[5])/2.0; + + allpasstemp = outW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= oW[allpasstemp]*constallpass; + oW[outW] = inputSample; + inputSample *= constallpass; + outW--; if (outW < 0 || outW > delayW) {outW = delayW;} + inputSample += (oW[outW]); + //allpass filter W + + dW[5] = dW[4]; + dW[4] = inputSample; + inputSample = (dW[4] + dW[5])/2.0; + + allpasstemp = outX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= oX[allpasstemp]*constallpass; + oX[outX] = inputSample; + inputSample *= constallpass; + outX--; if (outX < 0 || outX > delayX) {outX = delayX;} + inputSample += (oX[outX]); + //allpass filter X + + dX[5] = dX[4]; + dX[4] = inputSample; + inputSample = (dX[4] + dX[5])/2.0; + + allpasstemp = outY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= oY[allpasstemp]*constallpass; + oY[outY] = inputSample; + inputSample *= constallpass; + outY--; if (outY < 0 || outY > delayY) {outY = delayY;} + inputSample += (oY[outY]); + //allpass filter Y + + dY[5] = dY[4]; + dY[4] = inputSample; + inputSample = (dY[4] + dY[5])/2.0; + + allpasstemp = outZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= oZ[allpasstemp]*constallpass; + oZ[outZ] = inputSample; + inputSample *= constallpass; + outZ--; if (outZ < 0 || outZ > delayZ) {outZ = delayZ;} + inputSample += (oZ[outZ]); + //allpass filter Z + + dZ[5] = dZ[4]; + dZ[4] = inputSample; + inputSample = (dZ[4] + dZ[5]); + //output Tiled + break; + + +case 4://Room + allpasstemp = alpA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= aA[allpasstemp]*constallpass; + aA[alpA] = inputSample; + inputSample *= constallpass; + alpA--; if (alpA < 0 || alpA > delayA) {alpA = delayA;} + inputSample += (aA[alpA]); + //allpass filter A + + dA[2] = dA[1]; + dA[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= aB[allpasstemp]*constallpass; + aB[alpB] = inputSample; + inputSample *= constallpass; + alpB--; if (alpB < 0 || alpB > delayB) {alpB = delayB;} + inputSample += (aB[alpB]); + //allpass filter B + + dB[2] = dB[1]; + dB[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= aC[allpasstemp]*constallpass; + aC[alpC] = inputSample; + inputSample *= constallpass; + alpC--; if (alpC < 0 || alpC > delayC) {alpC = delayC;} + inputSample += (aC[alpC]); + //allpass filter C + + dC[2] = dC[1]; + dC[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= aD[allpasstemp]*constallpass; + aD[alpD] = inputSample; + inputSample *= constallpass; + alpD--; if (alpD < 0 || alpD > delayD) {alpD = delayD;} + inputSample += (aD[alpD]); + //allpass filter D + + dD[2] = dD[1]; + dD[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= aE[allpasstemp]*constallpass; + aE[alpE] = inputSample; + inputSample *= constallpass; + alpE--; if (alpE < 0 || alpE > delayE) {alpE = delayE;} + inputSample += (aE[alpE]); + //allpass filter E + + dE[2] = dE[1]; + dE[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= aF[allpasstemp]*constallpass; + aF[alpF] = inputSample; + inputSample *= constallpass; + alpF--; if (alpF < 0 || alpF > delayF) {alpF = delayF;} + inputSample += (aF[alpF]); + //allpass filter F + + dF[2] = dF[1]; + dF[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= aG[allpasstemp]*constallpass; + aG[alpG] = inputSample; + inputSample *= constallpass; + alpG--; if (alpG < 0 || alpG > delayG) {alpG = delayG;} + inputSample += (aG[alpG]); + //allpass filter G + + dG[2] = dG[1]; + dG[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= aH[allpasstemp]*constallpass; + aH[alpH] = inputSample; + inputSample *= constallpass; + alpH--; if (alpH < 0 || alpH > delayH) {alpH = delayH;} + inputSample += (aH[alpH]); + //allpass filter H + + dH[2] = dH[1]; + dH[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= aI[allpasstemp]*constallpass; + aI[alpI] = inputSample; + inputSample *= constallpass; + alpI--; if (alpI < 0 || alpI > delayI) {alpI = delayI;} + inputSample += (aI[alpI]); + //allpass filter I + + dI[2] = dI[1]; + dI[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= aJ[allpasstemp]*constallpass; + aJ[alpJ] = inputSample; + inputSample *= constallpass; + alpJ--; if (alpJ < 0 || alpJ > delayJ) {alpJ = delayJ;} + inputSample += (aJ[alpJ]); + //allpass filter J + + dJ[2] = dJ[1]; + dJ[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= aK[allpasstemp]*constallpass; + aK[alpK] = inputSample; + inputSample *= constallpass; + alpK--; if (alpK < 0 || alpK > delayK) {alpK = delayK;} + inputSample += (aK[alpK]); + //allpass filter K + + dK[2] = dK[1]; + dK[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= aL[allpasstemp]*constallpass; + aL[alpL] = inputSample; + inputSample *= constallpass; + alpL--; if (alpL < 0 || alpL > delayL) {alpL = delayL;} + inputSample += (aL[alpL]); + //allpass filter L + + dL[2] = dL[1]; + dL[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= aM[allpasstemp]*constallpass; + aM[alpM] = inputSample; + inputSample *= constallpass; + alpM--; if (alpM < 0 || alpM > delayM) {alpM = delayM;} + inputSample += (aM[alpM]); + //allpass filter M + + dM[2] = dM[1]; + dM[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= aN[allpasstemp]*constallpass; + aN[alpN] = inputSample; + inputSample *= constallpass; + alpN--; if (alpN < 0 || alpN > delayN) {alpN = delayN;} + inputSample += (aN[alpN]); + //allpass filter N + + dN[2] = dN[1]; + dN[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= aO[allpasstemp]*constallpass; + aO[alpO] = inputSample; + inputSample *= constallpass; + alpO--; if (alpO < 0 || alpO > delayO) {alpO = delayO;} + inputSample += (aO[alpO]); + //allpass filter O + + dO[2] = dO[1]; + dO[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= aP[allpasstemp]*constallpass; + aP[alpP] = inputSample; + inputSample *= constallpass; + alpP--; if (alpP < 0 || alpP > delayP) {alpP = delayP;} + inputSample += (aP[alpP]); + //allpass filter P + + dP[2] = dP[1]; + dP[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= aQ[allpasstemp]*constallpass; + aQ[alpQ] = inputSample; + inputSample *= constallpass; + alpQ--; if (alpQ < 0 || alpQ > delayQ) {alpQ = delayQ;} + inputSample += (aQ[alpQ]); + //allpass filter Q + + dQ[2] = dQ[1]; + dQ[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= aR[allpasstemp]*constallpass; + aR[alpR] = inputSample; + inputSample *= constallpass; + alpR--; if (alpR < 0 || alpR > delayR) {alpR = delayR;} + inputSample += (aR[alpR]); + //allpass filter R + + dR[2] = dR[1]; + dR[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= aS[allpasstemp]*constallpass; + aS[alpS] = inputSample; + inputSample *= constallpass; + alpS--; if (alpS < 0 || alpS > delayS) {alpS = delayS;} + inputSample += (aS[alpS]); + //allpass filter S + + dS[2] = dS[1]; + dS[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= aT[allpasstemp]*constallpass; + aT[alpT] = inputSample; + inputSample *= constallpass; + alpT--; if (alpT < 0 || alpT > delayT) {alpT = delayT;} + inputSample += (aT[alpT]); + //allpass filter T + + dT[2] = dT[1]; + dT[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= aU[allpasstemp]*constallpass; + aU[alpU] = inputSample; + inputSample *= constallpass; + alpU--; if (alpU < 0 || alpU > delayU) {alpU = delayU;} + inputSample += (aU[alpU]); + //allpass filter U + + dU[2] = dU[1]; + dU[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= aV[allpasstemp]*constallpass; + aV[alpV] = inputSample; + inputSample *= constallpass; + alpV--; if (alpV < 0 || alpV > delayV) {alpV = delayV;} + inputSample += (aV[alpV]); + //allpass filter V + + dV[2] = dV[1]; + dV[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= aW[allpasstemp]*constallpass; + aW[alpW] = inputSample; + inputSample *= constallpass; + alpW--; if (alpW < 0 || alpW > delayW) {alpW = delayW;} + inputSample += (aW[alpW]); + //allpass filter W + + dW[2] = dW[1]; + dW[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= aX[allpasstemp]*constallpass; + aX[alpX] = inputSample; + inputSample *= constallpass; + alpX--; if (alpX < 0 || alpX > delayX) {alpX = delayX;} + inputSample += (aX[alpX]); + //allpass filter X + + dX[2] = dX[1]; + dX[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= aY[allpasstemp]*constallpass; + aY[alpY] = inputSample; + inputSample *= constallpass; + alpY--; if (alpY < 0 || alpY > delayY) {alpY = delayY;} + inputSample += (aY[alpY]); + //allpass filter Y + + dY[2] = dY[1]; + dY[1] = inputSample; + inputSample = drySample; + + allpasstemp = alpZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= aZ[allpasstemp]*constallpass; + aZ[alpZ] = inputSample; + inputSample *= constallpass; + alpZ--; if (alpZ < 0 || alpZ > delayZ) {alpZ = delayZ;} + inputSample += (aZ[alpZ]); + //allpass filter Z + + dZ[2] = dZ[1]; + dZ[1] = inputSample; + inputSample = drySample; + + // now the second stage using the 'out' bank of allpasses + + allpasstemp = outA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= oA[allpasstemp]*constallpass; + oA[outA] = inputSample; + inputSample *= constallpass; + outA--; if (outA < 0 || outA > delayA) {outA = delayA;} + inputSample += (oA[outA]); + //allpass filter A + + dA[5] = dA[4]; + dA[4] = inputSample; + inputSample = (dA[1]+dA[2])/2.0; + + allpasstemp = outB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= oB[allpasstemp]*constallpass; + oB[outB] = inputSample; + inputSample *= constallpass; + outB--; if (outB < 0 || outB > delayB) {outB = delayB;} + inputSample += (oB[outB]); + //allpass filter B + + dB[5] = dB[4]; + dB[4] = inputSample; + inputSample = (dB[1]+dB[2])/2.0; + + allpasstemp = outC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= oC[allpasstemp]*constallpass; + oC[outC] = inputSample; + inputSample *= constallpass; + outC--; if (outC < 0 || outC > delayC) {outC = delayC;} + inputSample += (oC[outC]); + //allpass filter C + + dC[5] = dC[4]; + dC[4] = inputSample; + inputSample = (dC[1]+dC[2])/2.0; + + allpasstemp = outD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= oD[allpasstemp]*constallpass; + oD[outD] = inputSample; + inputSample *= constallpass; + outD--; if (outD < 0 || outD > delayD) {outD = delayD;} + inputSample += (oD[outD]); + //allpass filter D + + dD[5] = dD[4]; + dD[4] = inputSample; + inputSample = (dD[1]+dD[2])/2.0; + + allpasstemp = outE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= oE[allpasstemp]*constallpass; + oE[outE] = inputSample; + inputSample *= constallpass; + outE--; if (outE < 0 || outE > delayE) {outE = delayE;} + inputSample += (oE[outE]); + //allpass filter E + + dE[5] = dE[4]; + dE[4] = inputSample; + inputSample = (dE[1]+dE[2])/2.0; + + allpasstemp = outF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= oF[allpasstemp]*constallpass; + oF[outF] = inputSample; + inputSample *= constallpass; + outF--; if (outF < 0 || outF > delayF) {outF = delayF;} + inputSample += (oF[outF]); + //allpass filter F + + dF[5] = dF[4]; + dF[4] = inputSample; + inputSample = (dF[1]+dF[2])/2.0; + + allpasstemp = outG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= oG[allpasstemp]*constallpass; + oG[outG] = inputSample; + inputSample *= constallpass; + outG--; if (outG < 0 || outG > delayG) {outG = delayG;} + inputSample += (oG[outG]); + //allpass filter G + + dG[5] = dG[4]; + dG[4] = inputSample; + inputSample = (dG[1]+dG[2])/2.0; + + allpasstemp = outH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= oH[allpasstemp]*constallpass; + oH[outH] = inputSample; + inputSample *= constallpass; + outH--; if (outH < 0 || outH > delayH) {outH = delayH;} + inputSample += (oH[outH]); + //allpass filter H + + dH[5] = dH[4]; + dH[4] = inputSample; + inputSample = (dH[1]+dH[2])/2.0; + + allpasstemp = outI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= oI[allpasstemp]*constallpass; + oI[outI] = inputSample; + inputSample *= constallpass; + outI--; if (outI < 0 || outI > delayI) {outI = delayI;} + inputSample += (oI[outI]); + //allpass filter I + + dI[5] = dI[4]; + dI[4] = inputSample; + inputSample = (dI[1]+dI[2])/2.0; + + allpasstemp = outJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= oJ[allpasstemp]*constallpass; + oJ[outJ] = inputSample; + inputSample *= constallpass; + outJ--; if (outJ < 0 || outJ > delayJ) {outJ = delayJ;} + inputSample += (oJ[outJ]); + //allpass filter J + + dJ[5] = dJ[4]; + dJ[4] = inputSample; + inputSample = (dJ[1]+dJ[2])/2.0; + + allpasstemp = outK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= oK[allpasstemp]*constallpass; + oK[outK] = inputSample; + inputSample *= constallpass; + outK--; if (outK < 0 || outK > delayK) {outK = delayK;} + inputSample += (oK[outK]); + //allpass filter K + + dK[5] = dK[4]; + dK[4] = inputSample; + inputSample = (dK[1]+dK[2])/2.0; + + allpasstemp = outL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= oL[allpasstemp]*constallpass; + oL[outL] = inputSample; + inputSample *= constallpass; + outL--; if (outL < 0 || outL > delayL) {outL = delayL;} + inputSample += (oL[outL]); + //allpass filter L + + dL[5] = dL[4]; + dL[4] = inputSample; + inputSample = (dL[1]+dL[2])/2.0; + + allpasstemp = outM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= oM[allpasstemp]*constallpass; + oM[outM] = inputSample; + inputSample *= constallpass; + outM--; if (outM < 0 || outM > delayM) {outM = delayM;} + inputSample += (oM[outM]); + //allpass filter M + + dM[5] = dM[4]; + dM[4] = inputSample; + inputSample = (dM[1]+dM[2])/2.0; + + allpasstemp = outN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= oN[allpasstemp]*constallpass; + oN[outN] = inputSample; + inputSample *= constallpass; + outN--; if (outN < 0 || outN > delayN) {outN = delayN;} + inputSample += (oN[outN]); + //allpass filter N + + dN[5] = dN[4]; + dN[4] = inputSample; + inputSample = (dN[1]+dN[2])/2.0; + + allpasstemp = outO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= oO[allpasstemp]*constallpass; + oO[outO] = inputSample; + inputSample *= constallpass; + outO--; if (outO < 0 || outO > delayO) {outO = delayO;} + inputSample += (oO[outO]); + //allpass filter O + + dO[5] = dO[4]; + dO[4] = inputSample; + inputSample = (dO[1]+dO[2])/2.0; + + allpasstemp = outP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= oP[allpasstemp]*constallpass; + oP[outP] = inputSample; + inputSample *= constallpass; + outP--; if (outP < 0 || outP > delayP) {outP = delayP;} + inputSample += (oP[outP]); + //allpass filter P + + dP[5] = dP[4]; + dP[4] = inputSample; + inputSample = (dP[1]+dP[2])/2.0; + + allpasstemp = outQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= oQ[allpasstemp]*constallpass; + oQ[outQ] = inputSample; + inputSample *= constallpass; + outQ--; if (outQ < 0 || outQ > delayQ) {outQ = delayQ;} + inputSample += (oQ[outQ]); + //allpass filter Q + + dQ[5] = dQ[4]; + dQ[4] = inputSample; + inputSample = (dQ[1]+dQ[2])/2.0; + + allpasstemp = outR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= oR[allpasstemp]*constallpass; + oR[outR] = inputSample; + inputSample *= constallpass; + outR--; if (outR < 0 || outR > delayR) {outR = delayR;} + inputSample += (oR[outR]); + //allpass filter R + + dR[5] = dR[4]; + dR[4] = inputSample; + inputSample = (dR[1]+dR[2])/2.0; + + allpasstemp = outS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= oS[allpasstemp]*constallpass; + oS[outS] = inputSample; + inputSample *= constallpass; + outS--; if (outS < 0 || outS > delayS) {outS = delayS;} + inputSample += (oS[outS]); + //allpass filter S + + dS[5] = dS[4]; + dS[4] = inputSample; + inputSample = (dS[1]+dS[2])/2.0; + + allpasstemp = outT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= oT[allpasstemp]*constallpass; + oT[outT] = inputSample; + inputSample *= constallpass; + outT--; if (outT < 0 || outT > delayT) {outT = delayT;} + inputSample += (oT[outT]); + //allpass filter T + + dT[5] = dT[4]; + dT[4] = inputSample; + inputSample = (dT[1]+dT[2])/2.0; + + allpasstemp = outU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= oU[allpasstemp]*constallpass; + oU[outU] = inputSample; + inputSample *= constallpass; + outU--; if (outU < 0 || outU > delayU) {outU = delayU;} + inputSample += (oU[outU]); + //allpass filter U + + dU[5] = dU[4]; + dU[4] = inputSample; + inputSample = (dU[1]+dU[2])/2.0; + + allpasstemp = outV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= oV[allpasstemp]*constallpass; + oV[outV] = inputSample; + inputSample *= constallpass; + outV--; if (outV < 0 || outV > delayV) {outV = delayV;} + inputSample += (oV[outV]); + //allpass filter V + + dV[5] = dV[4]; + dV[4] = inputSample; + inputSample = (dV[1]+dV[2])/2.0; + + allpasstemp = outW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= oW[allpasstemp]*constallpass; + oW[outW] = inputSample; + inputSample *= constallpass; + outW--; if (outW < 0 || outW > delayW) {outW = delayW;} + inputSample += (oW[outW]); + //allpass filter W + + dW[5] = dW[4]; + dW[4] = inputSample; + inputSample = (dW[1]+dW[2])/2.0; + + allpasstemp = outX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= oX[allpasstemp]*constallpass; + oX[outX] = inputSample; + inputSample *= constallpass; + outX--; if (outX < 0 || outX > delayX) {outX = delayX;} + inputSample += (oX[outX]); + //allpass filter X + + dX[5] = dX[4]; + dX[4] = inputSample; + inputSample = (dX[1]+dX[2])/2.0; + + allpasstemp = outY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= oY[allpasstemp]*constallpass; + oY[outY] = inputSample; + inputSample *= constallpass; + outY--; if (outY < 0 || outY > delayY) {outY = delayY;} + inputSample += (oY[outY]); + //allpass filter Y + + dY[5] = dY[4]; + dY[4] = inputSample; + inputSample = (dY[1]+dY[2])/2.0; + + allpasstemp = outZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= oZ[allpasstemp]*constallpass; + oZ[outZ] = inputSample; + inputSample *= constallpass; + outZ--; if (outZ < 0 || outZ > delayZ) {outZ = delayZ;} + inputSample += (oZ[outZ]); + //allpass filter Z + + dZ[5] = dZ[4]; + dZ[4] = inputSample; + inputSample = (dB[4] * dryness); + inputSample += (dC[4] * dryness); + inputSample += dD[4]; + inputSample += dE[4]; + inputSample += dF[4]; + inputSample += dG[4]; + inputSample += dH[4]; + inputSample += dI[4]; + inputSample += dJ[4]; + inputSample += dK[4]; + inputSample += dL[4]; + inputSample += dM[4]; + inputSample += dN[4]; + inputSample += dO[4]; + inputSample += dP[4]; + inputSample += dQ[4]; + inputSample += dR[4]; + inputSample += dS[4]; + inputSample += dT[4]; + inputSample += dU[4]; + inputSample += dV[4]; + inputSample += dW[4]; + inputSample += dX[4]; + inputSample += dY[4]; + inputSample += (dZ[4] * wetness); + + inputSample += (dB[5] * dryness); + inputSample += (dC[5] * dryness); + inputSample += dD[5]; + inputSample += dE[5]; + inputSample += dF[5]; + inputSample += dG[5]; + inputSample += dH[5]; + inputSample += dI[5]; + inputSample += dJ[5]; + inputSample += dK[5]; + inputSample += dL[5]; + inputSample += dM[5]; + inputSample += dN[5]; + inputSample += dO[5]; + inputSample += dP[5]; + inputSample += dQ[5]; + inputSample += dR[5]; + inputSample += dS[5]; + inputSample += dT[5]; + inputSample += dU[5]; + inputSample += dV[5]; + inputSample += dW[5]; + inputSample += dX[5]; + inputSample += dY[5]; + inputSample += (dZ[5] * wetness); + + inputSample /= (26.0 + (wetness * 4.0)); + //output Room effect + break; + + + + + + +case 5: //Stretch + allpasstemp = alpA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= aA[allpasstemp]*constallpass; + aA[alpA] = inputSample; + inputSample *= constallpass; + alpA--; if (alpA < 0 || alpA > delayA) {alpA = delayA;} + inputSample += (aA[alpA]); + //allpass filter A + + dA[2] = dA[1]; + dA[1] = inputSample; + inputSample = (dA[1] + dA[2])/2.0; + + allpasstemp = alpB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= aB[allpasstemp]*constallpass; + aB[alpB] = inputSample; + inputSample *= constallpass; + alpB--; if (alpB < 0 || alpB > delayB) {alpB = delayB;} + inputSample += (aB[alpB]); + //allpass filter B + + dB[2] = dB[1]; + dB[1] = inputSample; + inputSample = (dB[1] + dB[2])/2.0; + + allpasstemp = alpC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= aC[allpasstemp]*constallpass; + aC[alpC] = inputSample; + inputSample *= constallpass; + alpC--; if (alpC < 0 || alpC > delayC) {alpC = delayC;} + inputSample += (aC[alpC]); + //allpass filter C + + dC[2] = dC[1]; + dC[1] = inputSample; + inputSample = (dC[1] + dC[2])/2.0; + + allpasstemp = alpD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= aD[allpasstemp]*constallpass; + aD[alpD] = inputSample; + inputSample *= constallpass; + alpD--; if (alpD < 0 || alpD > delayD) {alpD = delayD;} + inputSample += (aD[alpD]); + //allpass filter D + + dD[2] = dD[1]; + dD[1] = inputSample; + inputSample = (dD[1] + dD[2])/2.0; + + allpasstemp = alpE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= aE[allpasstemp]*constallpass; + aE[alpE] = inputSample; + inputSample *= constallpass; + alpE--; if (alpE < 0 || alpE > delayE) {alpE = delayE;} + inputSample += (aE[alpE]); + //allpass filter E + + dE[2] = dE[1]; + dE[1] = inputSample; + inputSample = (dE[1] + dE[2])/2.0; + + allpasstemp = alpF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= aF[allpasstemp]*constallpass; + aF[alpF] = inputSample; + inputSample *= constallpass; + alpF--; if (alpF < 0 || alpF > delayF) {alpF = delayF;} + inputSample += (aF[alpF]); + //allpass filter F + + dF[2] = dF[1]; + dF[1] = inputSample; + inputSample = (dF[1] + dF[2])/2.0; + + allpasstemp = alpG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= aG[allpasstemp]*constallpass; + aG[alpG] = inputSample; + inputSample *= constallpass; + alpG--; if (alpG < 0 || alpG > delayG) {alpG = delayG;} + inputSample += (aG[alpG]); + //allpass filter G + + dG[2] = dG[1]; + dG[1] = inputSample; + inputSample = (dG[1] + dG[2])/2.0; + + allpasstemp = alpH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= aH[allpasstemp]*constallpass; + aH[alpH] = inputSample; + inputSample *= constallpass; + alpH--; if (alpH < 0 || alpH > delayH) {alpH = delayH;} + inputSample += (aH[alpH]); + //allpass filter H + + dH[2] = dH[1]; + dH[1] = inputSample; + inputSample = (dH[1] + dH[2])/2.0; + + allpasstemp = alpI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= aI[allpasstemp]*constallpass; + aI[alpI] = inputSample; + inputSample *= constallpass; + alpI--; if (alpI < 0 || alpI > delayI) {alpI = delayI;} + inputSample += (aI[alpI]); + //allpass filter I + + dI[2] = dI[1]; + dI[1] = inputSample; + inputSample = (dI[1] + dI[2])/2.0; + + allpasstemp = alpJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= aJ[allpasstemp]*constallpass; + aJ[alpJ] = inputSample; + inputSample *= constallpass; + alpJ--; if (alpJ < 0 || alpJ > delayJ) {alpJ = delayJ;} + inputSample += (aJ[alpJ]); + //allpass filter J + + dJ[2] = dJ[1]; + dJ[1] = inputSample; + inputSample = (dJ[1] + dJ[2])/2.0; + + allpasstemp = alpK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= aK[allpasstemp]*constallpass; + aK[alpK] = inputSample; + inputSample *= constallpass; + alpK--; if (alpK < 0 || alpK > delayK) {alpK = delayK;} + inputSample += (aK[alpK]); + //allpass filter K + + dK[2] = dK[1]; + dK[1] = inputSample; + inputSample = (dK[1] + dK[2])/2.0; + + allpasstemp = alpL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= aL[allpasstemp]*constallpass; + aL[alpL] = inputSample; + inputSample *= constallpass; + alpL--; if (alpL < 0 || alpL > delayL) {alpL = delayL;} + inputSample += (aL[alpL]); + //allpass filter L + + dL[2] = dL[1]; + dL[1] = inputSample; + inputSample = (dL[1] + dL[2])/2.0; + + allpasstemp = alpM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= aM[allpasstemp]*constallpass; + aM[alpM] = inputSample; + inputSample *= constallpass; + alpM--; if (alpM < 0 || alpM > delayM) {alpM = delayM;} + inputSample += (aM[alpM]); + //allpass filter M + + dM[2] = dM[1]; + dM[1] = inputSample; + inputSample = (dM[1] + dM[2])/2.0; + + allpasstemp = alpN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= aN[allpasstemp]*constallpass; + aN[alpN] = inputSample; + inputSample *= constallpass; + alpN--; if (alpN < 0 || alpN > delayN) {alpN = delayN;} + inputSample += (aN[alpN]); + //allpass filter N + + dN[2] = dN[1]; + dN[1] = inputSample; + inputSample = (dN[1] + dN[2])/2.0; + + allpasstemp = alpO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= aO[allpasstemp]*constallpass; + aO[alpO] = inputSample; + inputSample *= constallpass; + alpO--; if (alpO < 0 || alpO > delayO) {alpO = delayO;} + inputSample += (aO[alpO]); + //allpass filter O + + dO[2] = dO[1]; + dO[1] = inputSample; + inputSample = (dO[1] + dO[2])/2.0; + + allpasstemp = alpP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= aP[allpasstemp]*constallpass; + aP[alpP] = inputSample; + inputSample *= constallpass; + alpP--; if (alpP < 0 || alpP > delayP) {alpP = delayP;} + inputSample += (aP[alpP]); + //allpass filter P + + dP[2] = dP[1]; + dP[1] = inputSample; + inputSample = (dP[1] + dP[2])/2.0; + + allpasstemp = alpQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= aQ[allpasstemp]*constallpass; + aQ[alpQ] = inputSample; + inputSample *= constallpass; + alpQ--; if (alpQ < 0 || alpQ > delayQ) {alpQ = delayQ;} + inputSample += (aQ[alpQ]); + //allpass filter Q + + dQ[2] = dQ[1]; + dQ[1] = inputSample; + inputSample = (dQ[1] + dQ[2])/2.0; + + allpasstemp = alpR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= aR[allpasstemp]*constallpass; + aR[alpR] = inputSample; + inputSample *= constallpass; + alpR--; if (alpR < 0 || alpR > delayR) {alpR = delayR;} + inputSample += (aR[alpR]); + //allpass filter R + + dR[2] = dR[1]; + dR[1] = inputSample; + inputSample = (dR[1] + dR[2])/2.0; + + allpasstemp = alpS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= aS[allpasstemp]*constallpass; + aS[alpS] = inputSample; + inputSample *= constallpass; + alpS--; if (alpS < 0 || alpS > delayS) {alpS = delayS;} + inputSample += (aS[alpS]); + //allpass filter S + + dS[2] = dS[1]; + dS[1] = inputSample; + inputSample = (dS[1] + dS[2])/2.0; + + allpasstemp = alpT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= aT[allpasstemp]*constallpass; + aT[alpT] = inputSample; + inputSample *= constallpass; + alpT--; if (alpT < 0 || alpT > delayT) {alpT = delayT;} + inputSample += (aT[alpT]); + //allpass filter T + + dT[2] = dT[1]; + dT[1] = inputSample; + inputSample = (dT[1] + dT[2])/2.0; + + allpasstemp = alpU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= aU[allpasstemp]*constallpass; + aU[alpU] = inputSample; + inputSample *= constallpass; + alpU--; if (alpU < 0 || alpU > delayU) {alpU = delayU;} + inputSample += (aU[alpU]); + //allpass filter U + + dU[2] = dU[1]; + dU[1] = inputSample; + inputSample = (dU[1] + dU[2])/2.0; + + allpasstemp = alpV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= aV[allpasstemp]*constallpass; + aV[alpV] = inputSample; + inputSample *= constallpass; + alpV--; if (alpV < 0 || alpV > delayV) {alpV = delayV;} + inputSample += (aV[alpV]); + //allpass filter V + + dV[2] = dV[1]; + dV[1] = inputSample; + inputSample = (dV[1] + dV[2])/2.0; + + allpasstemp = alpW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= aW[allpasstemp]*constallpass; + aW[alpW] = inputSample; + inputSample *= constallpass; + alpW--; if (alpW < 0 || alpW > delayW) {alpW = delayW;} + inputSample += (aW[alpW]); + //allpass filter W + + dW[2] = dW[1]; + dW[1] = inputSample; + inputSample = (dW[1] + dW[2])/2.0; + + allpasstemp = alpX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= aX[allpasstemp]*constallpass; + aX[alpX] = inputSample; + inputSample *= constallpass; + alpX--; if (alpX < 0 || alpX > delayX) {alpX = delayX;} + inputSample += (aX[alpX]); + //allpass filter X + + dX[2] = dX[1]; + dX[1] = inputSample; + inputSample = (dX[1] + dX[2])/2.0; + + allpasstemp = alpY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= aY[allpasstemp]*constallpass; + aY[alpY] = inputSample; + inputSample *= constallpass; + alpY--; if (alpY < 0 || alpY > delayY) {alpY = delayY;} + inputSample += (aY[alpY]); + //allpass filter Y + + dY[2] = dY[1]; + dY[1] = inputSample; + inputSample = (dY[1] + dY[2])/2.0; + + allpasstemp = alpZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= aZ[allpasstemp]*constallpass; + aZ[alpZ] = inputSample; + inputSample *= constallpass; + alpZ--; if (alpZ < 0 || alpZ > delayZ) {alpZ = delayZ;} + inputSample += (aZ[alpZ]); + //allpass filter Z + + dZ[2] = dZ[1]; + dZ[1] = inputSample; + inputSample = (dZ[1] + dZ[2])/2.0; + + // now the second stage using the 'out' bank of allpasses + + allpasstemp = outA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= oA[allpasstemp]*constallpass; + oA[outA] = inputSample; + inputSample *= constallpass; + outA--; if (outA < 0 || outA > delayA) {outA = delayA;} + inputSample += (oA[outA]); + //allpass filter A + + dA[5] = dA[4]; + dA[4] = inputSample; + inputSample = (dA[4] + dA[5])/2.0; + + allpasstemp = outB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= oB[allpasstemp]*constallpass; + oB[outB] = inputSample; + inputSample *= constallpass; + outB--; if (outB < 0 || outB > delayB) {outB = delayB;} + inputSample += (oB[outB]); + //allpass filter B + + dB[5] = dB[4]; + dB[4] = inputSample; + inputSample = (dB[4] + dB[5])/2.0; + + allpasstemp = outC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= oC[allpasstemp]*constallpass; + oC[outC] = inputSample; + inputSample *= constallpass; + outC--; if (outC < 0 || outC > delayC) {outC = delayC;} + inputSample += (oC[outC]); + //allpass filter C + + dC[5] = dC[4]; + dC[4] = inputSample; + inputSample = (dC[4] + dC[5])/2.0; + + allpasstemp = outD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= oD[allpasstemp]*constallpass; + oD[outD] = inputSample; + inputSample *= constallpass; + outD--; if (outD < 0 || outD > delayD) {outD = delayD;} + inputSample += (oD[outD]); + //allpass filter D + + dD[5] = dD[4]; + dD[4] = inputSample; + inputSample = (dD[4] + dD[5])/2.0; + + allpasstemp = outE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= oE[allpasstemp]*constallpass; + oE[outE] = inputSample; + inputSample *= constallpass; + outE--; if (outE < 0 || outE > delayE) {outE = delayE;} + inputSample += (oE[outE]); + //allpass filter E + + dE[5] = dE[4]; + dE[4] = inputSample; + inputSample = (dE[4] + dE[5])/2.0; + + allpasstemp = outF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= oF[allpasstemp]*constallpass; + oF[outF] = inputSample; + inputSample *= constallpass; + outF--; if (outF < 0 || outF > delayF) {outF = delayF;} + inputSample += (oF[outF]); + //allpass filter F + + dF[5] = dF[4]; + dF[4] = inputSample; + inputSample = (dF[4] + dF[5])/2.0; + + allpasstemp = outG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= oG[allpasstemp]*constallpass; + oG[outG] = inputSample; + inputSample *= constallpass; + outG--; if (outG < 0 || outG > delayG) {outG = delayG;} + inputSample += (oG[outG]); + //allpass filter G + + dG[5] = dG[4]; + dG[4] = inputSample; + inputSample = (dG[4] + dG[5])/2.0; + + allpasstemp = outH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= oH[allpasstemp]*constallpass; + oH[outH] = inputSample; + inputSample *= constallpass; + outH--; if (outH < 0 || outH > delayH) {outH = delayH;} + inputSample += (oH[outH]); + //allpass filter H + + dH[5] = dH[4]; + dH[4] = inputSample; + inputSample = (dH[4] + dH[5])/2.0; + + allpasstemp = outI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= oI[allpasstemp]*constallpass; + oI[outI] = inputSample; + inputSample *= constallpass; + outI--; if (outI < 0 || outI > delayI) {outI = delayI;} + inputSample += (oI[outI]); + //allpass filter I + + dI[5] = dI[4]; + dI[4] = inputSample; + inputSample = (dI[4] + dI[5])/2.0; + + allpasstemp = outJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= oJ[allpasstemp]*constallpass; + oJ[outJ] = inputSample; + inputSample *= constallpass; + outJ--; if (outJ < 0 || outJ > delayJ) {outJ = delayJ;} + inputSample += (oJ[outJ]); + //allpass filter J + + dJ[5] = dJ[4]; + dJ[4] = inputSample; + inputSample = (dJ[4] + dJ[5])/2.0; + + allpasstemp = outK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= oK[allpasstemp]*constallpass; + oK[outK] = inputSample; + inputSample *= constallpass; + outK--; if (outK < 0 || outK > delayK) {outK = delayK;} + inputSample += (oK[outK]); + //allpass filter K + + dK[5] = dK[4]; + dK[4] = inputSample; + inputSample = (dK[4] + dK[5])/2.0; + + allpasstemp = outL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= oL[allpasstemp]*constallpass; + oL[outL] = inputSample; + inputSample *= constallpass; + outL--; if (outL < 0 || outL > delayL) {outL = delayL;} + inputSample += (oL[outL]); + //allpass filter L + + dL[5] = dL[4]; + dL[4] = inputSample; + inputSample = (dL[4] + dL[5])/2.0; + + allpasstemp = outM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= oM[allpasstemp]*constallpass; + oM[outM] = inputSample; + inputSample *= constallpass; + outM--; if (outM < 0 || outM > delayM) {outM = delayM;} + inputSample += (oM[outM]); + //allpass filter M + + dM[5] = dM[4]; + dM[4] = inputSample; + inputSample = (dM[4] + dM[5])/2.0; + + allpasstemp = outN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= oN[allpasstemp]*constallpass; + oN[outN] = inputSample; + inputSample *= constallpass; + outN--; if (outN < 0 || outN > delayN) {outN = delayN;} + inputSample += (oN[outN]); + //allpass filter N + + dN[5] = dN[4]; + dN[4] = inputSample; + inputSample = (dN[4] + dN[5])/2.0; + + allpasstemp = outO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= oO[allpasstemp]*constallpass; + oO[outO] = inputSample; + inputSample *= constallpass; + outO--; if (outO < 0 || outO > delayO) {outO = delayO;} + inputSample += (oO[outO]); + //allpass filter O + + dO[5] = dO[4]; + dO[4] = inputSample; + inputSample = (dO[4] + dO[5])/2.0; + + allpasstemp = outP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= oP[allpasstemp]*constallpass; + oP[outP] = inputSample; + inputSample *= constallpass; + outP--; if (outP < 0 || outP > delayP) {outP = delayP;} + inputSample += (oP[outP]); + //allpass filter P + + dP[5] = dP[4]; + dP[4] = inputSample; + inputSample = (dP[4] + dP[5])/2.0; + + allpasstemp = outQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= oQ[allpasstemp]*constallpass; + oQ[outQ] = inputSample; + inputSample *= constallpass; + outQ--; if (outQ < 0 || outQ > delayQ) {outQ = delayQ;} + inputSample += (oQ[outQ]); + //allpass filter Q + + dQ[5] = dQ[4]; + dQ[4] = inputSample; + inputSample = (dQ[4] + dQ[5])/2.0; + + allpasstemp = outR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= oR[allpasstemp]*constallpass; + oR[outR] = inputSample; + inputSample *= constallpass; + outR--; if (outR < 0 || outR > delayR) {outR = delayR;} + inputSample += (oR[outR]); + //allpass filter R + + dR[5] = dR[4]; + dR[4] = inputSample; + inputSample = (dR[4] + dR[5])/2.0; + + allpasstemp = outS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= oS[allpasstemp]*constallpass; + oS[outS] = inputSample; + inputSample *= constallpass; + outS--; if (outS < 0 || outS > delayS) {outS = delayS;} + inputSample += (oS[outS]); + //allpass filter S + + dS[5] = dS[4]; + dS[4] = inputSample; + inputSample = (dS[4] + dS[5])/2.0; + + allpasstemp = outT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= oT[allpasstemp]*constallpass; + oT[outT] = inputSample; + inputSample *= constallpass; + outT--; if (outT < 0 || outT > delayT) {outT = delayT;} + inputSample += (oT[outT]); + //allpass filter T + + dT[5] = dT[4]; + dT[4] = inputSample; + inputSample = (dT[4] + dT[5])/2.0; + + allpasstemp = outU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= oU[allpasstemp]*constallpass; + oU[outU] = inputSample; + inputSample *= constallpass; + outU--; if (outU < 0 || outU > delayU) {outU = delayU;} + inputSample += (oU[outU]); + //allpass filter U + + dU[5] = dU[4]; + dU[4] = inputSample; + inputSample = (dU[4] + dU[5])/2.0; + + allpasstemp = outV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= oV[allpasstemp]*constallpass; + oV[outV] = inputSample; + inputSample *= constallpass; + outV--; if (outV < 0 || outV > delayV) {outV = delayV;} + inputSample += (oV[outV]); + //allpass filter V + + dV[5] = dV[4]; + dV[4] = inputSample; + inputSample = (dV[4] + dV[5])/2.0; + + allpasstemp = outW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= oW[allpasstemp]*constallpass; + oW[outW] = inputSample; + inputSample *= constallpass; + outW--; if (outW < 0 || outW > delayW) {outW = delayW;} + inputSample += (oW[outW]); + //allpass filter W + + dW[5] = dW[4]; + dW[4] = inputSample; + inputSample = (dW[4] + dW[5])/2.0; + + allpasstemp = outX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= oX[allpasstemp]*constallpass; + oX[outX] = inputSample; + inputSample *= constallpass; + outX--; if (outX < 0 || outX > delayX) {outX = delayX;} + inputSample += (oX[outX]); + //allpass filter X + + dX[5] = dX[4]; + dX[4] = inputSample; + inputSample = (dX[4] + dX[5])/2.0; + + allpasstemp = outY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= oY[allpasstemp]*constallpass; + oY[outY] = inputSample; + inputSample *= constallpass; + outY--; if (outY < 0 || outY > delayY) {outY = delayY;} + inputSample += (oY[outY]); + //allpass filter Y + + dY[5] = dY[4]; + dY[4] = inputSample; + inputSample = (dY[4] + dY[5])/2.0; + + allpasstemp = outZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= oZ[allpasstemp]*constallpass; + oZ[outZ] = inputSample; + inputSample *= constallpass; + outZ--; if (outZ < 0 || outZ > delayZ) {outZ = delayZ;} + inputSample += (oZ[outZ]); + //allpass filter Z + + dZ[5] = dZ[4]; + dZ[4] = inputSample; + inputSample = (dZ[4] + dZ[5])/2.0; + //output Stretch unrealistic but smooth fake Paulstretch + break; + + +case 6: //Zarathustra + allpasstemp = alpA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= aA[allpasstemp]*constallpass; + aA[alpA] = inputSample; + inputSample *= constallpass; + alpA--; if (alpA < 0 || alpA > delayA) {alpA = delayA;} + inputSample += (aA[alpA]); + //allpass filter A + + dA[3] = dA[2]; + dA[2] = dA[1]; + dA[1] = inputSample; + inputSample = (dA[1] + dA[2] + dZ[3])/3.0; //add feedback + + allpasstemp = alpB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= aB[allpasstemp]*constallpass; + aB[alpB] = inputSample; + inputSample *= constallpass; + alpB--; if (alpB < 0 || alpB > delayB) {alpB = delayB;} + inputSample += (aB[alpB]); + //allpass filter B + + dB[3] = dB[2]; + dB[2] = dB[1]; + dB[1] = inputSample; + inputSample = (dB[1] + dB[2] + dB[3])/3.0; + + allpasstemp = alpC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= aC[allpasstemp]*constallpass; + aC[alpC] = inputSample; + inputSample *= constallpass; + alpC--; if (alpC < 0 || alpC > delayC) {alpC = delayC;} + inputSample += (aC[alpC]); + //allpass filter C + + dC[3] = dC[2]; + dC[2] = dC[1]; + dC[1] = inputSample; + inputSample = (dC[1] + dC[2] + dC[3])/3.0; + + allpasstemp = alpD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= aD[allpasstemp]*constallpass; + aD[alpD] = inputSample; + inputSample *= constallpass; + alpD--; if (alpD < 0 || alpD > delayD) {alpD = delayD;} + inputSample += (aD[alpD]); + //allpass filter D + + dD[3] = dD[2]; + dD[2] = dD[1]; + dD[1] = inputSample; + inputSample = (dD[1] + dD[2] + dD[3])/3.0; + + allpasstemp = alpE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= aE[allpasstemp]*constallpass; + aE[alpE] = inputSample; + inputSample *= constallpass; + alpE--; if (alpE < 0 || alpE > delayE) {alpE = delayE;} + inputSample += (aE[alpE]); + //allpass filter E + + dE[3] = dE[2]; + dE[2] = dE[1]; + dE[1] = inputSample; + inputSample = (dE[1] + dE[2] + dE[3])/3.0; + + allpasstemp = alpF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= aF[allpasstemp]*constallpass; + aF[alpF] = inputSample; + inputSample *= constallpass; + alpF--; if (alpF < 0 || alpF > delayF) {alpF = delayF;} + inputSample += (aF[alpF]); + //allpass filter F + + dF[3] = dF[2]; + dF[2] = dF[1]; + dF[1] = inputSample; + inputSample = (dF[1] + dF[2] + dF[3])/3.0; + + allpasstemp = alpG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= aG[allpasstemp]*constallpass; + aG[alpG] = inputSample; + inputSample *= constallpass; + alpG--; if (alpG < 0 || alpG > delayG) {alpG = delayG;} + inputSample += (aG[alpG]); + //allpass filter G + + dG[3] = dG[2]; + dG[2] = dG[1]; + dG[1] = inputSample; + inputSample = (dG[1] + dG[2] + dG[3])/3.0; + + allpasstemp = alpH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= aH[allpasstemp]*constallpass; + aH[alpH] = inputSample; + inputSample *= constallpass; + alpH--; if (alpH < 0 || alpH > delayH) {alpH = delayH;} + inputSample += (aH[alpH]); + //allpass filter H + + dH[3] = dH[2]; + dH[2] = dH[1]; + dH[1] = inputSample; + inputSample = (dH[1] + dH[2] + dH[3])/3.0; + + allpasstemp = alpI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= aI[allpasstemp]*constallpass; + aI[alpI] = inputSample; + inputSample *= constallpass; + alpI--; if (alpI < 0 || alpI > delayI) {alpI = delayI;} + inputSample += (aI[alpI]); + //allpass filter I + + dI[3] = dI[2]; + dI[2] = dI[1]; + dI[1] = inputSample; + inputSample = (dI[1] + dI[2] + dI[3])/3.0; + + allpasstemp = alpJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= aJ[allpasstemp]*constallpass; + aJ[alpJ] = inputSample; + inputSample *= constallpass; + alpJ--; if (alpJ < 0 || alpJ > delayJ) {alpJ = delayJ;} + inputSample += (aJ[alpJ]); + //allpass filter J + + dJ[3] = dJ[2]; + dJ[2] = dJ[1]; + dJ[1] = inputSample; + inputSample = (dJ[1] + dJ[2] + dJ[3])/3.0; + + allpasstemp = alpK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= aK[allpasstemp]*constallpass; + aK[alpK] = inputSample; + inputSample *= constallpass; + alpK--; if (alpK < 0 || alpK > delayK) {alpK = delayK;} + inputSample += (aK[alpK]); + //allpass filter K + + dK[3] = dK[2]; + dK[2] = dK[1]; + dK[1] = inputSample; + inputSample = (dK[1] + dK[2] + dK[3])/3.0; + + allpasstemp = alpL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= aL[allpasstemp]*constallpass; + aL[alpL] = inputSample; + inputSample *= constallpass; + alpL--; if (alpL < 0 || alpL > delayL) {alpL = delayL;} + inputSample += (aL[alpL]); + //allpass filter L + + dL[3] = dL[2]; + dL[2] = dL[1]; + dL[1] = inputSample; + inputSample = (dL[1] + dL[2] + dL[3])/3.0; + + allpasstemp = alpM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= aM[allpasstemp]*constallpass; + aM[alpM] = inputSample; + inputSample *= constallpass; + alpM--; if (alpM < 0 || alpM > delayM) {alpM = delayM;} + inputSample += (aM[alpM]); + //allpass filter M + + dM[3] = dM[2]; + dM[2] = dM[1]; + dM[1] = inputSample; + inputSample = (dM[1] + dM[2] + dM[3])/3.0; + + allpasstemp = alpN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= aN[allpasstemp]*constallpass; + aN[alpN] = inputSample; + inputSample *= constallpass; + alpN--; if (alpN < 0 || alpN > delayN) {alpN = delayN;} + inputSample += (aN[alpN]); + //allpass filter N + + dN[3] = dN[2]; + dN[2] = dN[1]; + dN[1] = inputSample; + inputSample = (dN[1] + dN[2] + dN[3])/3.0; + + allpasstemp = alpO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= aO[allpasstemp]*constallpass; + aO[alpO] = inputSample; + inputSample *= constallpass; + alpO--; if (alpO < 0 || alpO > delayO) {alpO = delayO;} + inputSample += (aO[alpO]); + //allpass filter O + + dO[3] = dO[2]; + dO[2] = dO[1]; + dO[1] = inputSample; + inputSample = (dO[1] + dO[2] + dO[3])/3.0; + + allpasstemp = alpP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= aP[allpasstemp]*constallpass; + aP[alpP] = inputSample; + inputSample *= constallpass; + alpP--; if (alpP < 0 || alpP > delayP) {alpP = delayP;} + inputSample += (aP[alpP]); + //allpass filter P + + dP[3] = dP[2]; + dP[2] = dP[1]; + dP[1] = inputSample; + inputSample = (dP[1] + dP[2] + dP[3])/3.0; + + allpasstemp = alpQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= aQ[allpasstemp]*constallpass; + aQ[alpQ] = inputSample; + inputSample *= constallpass; + alpQ--; if (alpQ < 0 || alpQ > delayQ) {alpQ = delayQ;} + inputSample += (aQ[alpQ]); + //allpass filter Q + + dQ[3] = dQ[2]; + dQ[2] = dQ[1]; + dQ[1] = inputSample; + inputSample = (dQ[1] + dQ[2] + dQ[3])/3.0; + + allpasstemp = alpR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= aR[allpasstemp]*constallpass; + aR[alpR] = inputSample; + inputSample *= constallpass; + alpR--; if (alpR < 0 || alpR > delayR) {alpR = delayR;} + inputSample += (aR[alpR]); + //allpass filter R + + dR[3] = dR[2]; + dR[2] = dR[1]; + dR[1] = inputSample; + inputSample = (dR[1] + dR[2] + dR[3])/3.0; + + allpasstemp = alpS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= aS[allpasstemp]*constallpass; + aS[alpS] = inputSample; + inputSample *= constallpass; + alpS--; if (alpS < 0 || alpS > delayS) {alpS = delayS;} + inputSample += (aS[alpS]); + //allpass filter S + + dS[3] = dS[2]; + dS[2] = dS[1]; + dS[1] = inputSample; + inputSample = (dS[1] + dS[2] + dS[3])/3.0; + + allpasstemp = alpT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= aT[allpasstemp]*constallpass; + aT[alpT] = inputSample; + inputSample *= constallpass; + alpT--; if (alpT < 0 || alpT > delayT) {alpT = delayT;} + inputSample += (aT[alpT]); + //allpass filter T + + dT[3] = dT[2]; + dT[2] = dT[1]; + dT[1] = inputSample; + inputSample = (dT[1] + dT[2] + dT[3])/3.0; + + allpasstemp = alpU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= aU[allpasstemp]*constallpass; + aU[alpU] = inputSample; + inputSample *= constallpass; + alpU--; if (alpU < 0 || alpU > delayU) {alpU = delayU;} + inputSample += (aU[alpU]); + //allpass filter U + + dU[3] = dU[2]; + dU[2] = dU[1]; + dU[1] = inputSample; + inputSample = (dU[1] + dU[2] + dU[3])/3.0; + + allpasstemp = alpV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= aV[allpasstemp]*constallpass; + aV[alpV] = inputSample; + inputSample *= constallpass; + alpV--; if (alpV < 0 || alpV > delayV) {alpV = delayV;} + inputSample += (aV[alpV]); + //allpass filter V + + dV[3] = dV[2]; + dV[2] = dV[1]; + dV[1] = inputSample; + inputSample = (dV[1] + dV[2] + dV[3])/3.0; + + allpasstemp = alpW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= aW[allpasstemp]*constallpass; + aW[alpW] = inputSample; + inputSample *= constallpass; + alpW--; if (alpW < 0 || alpW > delayW) {alpW = delayW;} + inputSample += (aW[alpW]); + //allpass filter W + + dW[3] = dW[2]; + dW[2] = dW[1]; + dW[1] = inputSample; + inputSample = (dW[1] + dW[2] + dW[3])/3.0; + + allpasstemp = alpX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= aX[allpasstemp]*constallpass; + aX[alpX] = inputSample; + inputSample *= constallpass; + alpX--; if (alpX < 0 || alpX > delayX) {alpX = delayX;} + inputSample += (aX[alpX]); + //allpass filter X + + dX[3] = dX[2]; + dX[2] = dX[1]; + dX[1] = inputSample; + inputSample = (dX[1] + dX[2] + dX[3])/3.0; + + allpasstemp = alpY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= aY[allpasstemp]*constallpass; + aY[alpY] = inputSample; + inputSample *= constallpass; + alpY--; if (alpY < 0 || alpY > delayY) {alpY = delayY;} + inputSample += (aY[alpY]); + //allpass filter Y + + dY[3] = dY[2]; + dY[2] = dY[1]; + dY[1] = inputSample; + inputSample = (dY[1] + dY[2] + dY[3])/3.0; + + allpasstemp = alpZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= aZ[allpasstemp]*constallpass; + aZ[alpZ] = inputSample; + inputSample *= constallpass; + alpZ--; if (alpZ < 0 || alpZ > delayZ) {alpZ = delayZ;} + inputSample += (aZ[alpZ]); + //allpass filter Z + + dZ[3] = dZ[2]; + dZ[2] = dZ[1]; + dZ[1] = inputSample; + inputSample = (dZ[1] + dZ[2] + dZ[3])/3.0; + + // now the second stage using the 'out' bank of allpasses + + allpasstemp = outA - 1; + if (allpasstemp < 0 || allpasstemp > delayA) {allpasstemp = delayA;} + inputSample -= oA[allpasstemp]*constallpass; + oA[outA] = inputSample; + inputSample *= constallpass; + outA--; if (outA < 0 || outA > delayA) {outA = delayA;} + inputSample += (oA[outA]); + //allpass filter A + + dA[6] = dA[5]; + dA[5] = dA[4]; + dA[4] = inputSample; + inputSample = (dC[1] + dA[5] + dA[6])/3.0; //note, feeding in dry again for a little more clarity! + + allpasstemp = outB - 1; + if (allpasstemp < 0 || allpasstemp > delayB) {allpasstemp = delayB;} + inputSample -= oB[allpasstemp]*constallpass; + oB[outB] = inputSample; + inputSample *= constallpass; + outB--; if (outB < 0 || outB > delayB) {outB = delayB;} + inputSample += (oB[outB]); + //allpass filter B + + dB[6] = dB[5]; + dB[5] = dB[4]; + dB[4] = inputSample; + inputSample = (dB[4] + dB[5] + dB[6])/3.0; + + allpasstemp = outC - 1; + if (allpasstemp < 0 || allpasstemp > delayC) {allpasstemp = delayC;} + inputSample -= oC[allpasstemp]*constallpass; + oC[outC] = inputSample; + inputSample *= constallpass; + outC--; if (outC < 0 || outC > delayC) {outC = delayC;} + inputSample += (oC[outC]); + //allpass filter C + + dC[6] = dC[5]; + dC[5] = dC[4]; + dC[4] = inputSample; + inputSample = (dC[4] + dC[5] + dC[6])/3.0; + + allpasstemp = outD - 1; + if (allpasstemp < 0 || allpasstemp > delayD) {allpasstemp = delayD;} + inputSample -= oD[allpasstemp]*constallpass; + oD[outD] = inputSample; + inputSample *= constallpass; + outD--; if (outD < 0 || outD > delayD) {outD = delayD;} + inputSample += (oD[outD]); + //allpass filter D + + dD[6] = dD[5]; + dD[5] = dD[4]; + dD[4] = inputSample; + inputSample = (dD[4] + dD[5] + dD[6])/3.0; + + allpasstemp = outE - 1; + if (allpasstemp < 0 || allpasstemp > delayE) {allpasstemp = delayE;} + inputSample -= oE[allpasstemp]*constallpass; + oE[outE] = inputSample; + inputSample *= constallpass; + outE--; if (outE < 0 || outE > delayE) {outE = delayE;} + inputSample += (oE[outE]); + //allpass filter E + + dE[6] = dE[5]; + dE[5] = dE[4]; + dE[4] = inputSample; + inputSample = (dE[4] + dE[5] + dE[6])/3.0; + + allpasstemp = outF - 1; + if (allpasstemp < 0 || allpasstemp > delayF) {allpasstemp = delayF;} + inputSample -= oF[allpasstemp]*constallpass; + oF[outF] = inputSample; + inputSample *= constallpass; + outF--; if (outF < 0 || outF > delayF) {outF = delayF;} + inputSample += (oF[outF]); + //allpass filter F + + dF[6] = dF[5]; + dF[5] = dF[4]; + dF[4] = inputSample; + inputSample = (dF[4] + dF[5] + dF[6])/3.0; + + allpasstemp = outG - 1; + if (allpasstemp < 0 || allpasstemp > delayG) {allpasstemp = delayG;} + inputSample -= oG[allpasstemp]*constallpass; + oG[outG] = inputSample; + inputSample *= constallpass; + outG--; if (outG < 0 || outG > delayG) {outG = delayG;} + inputSample += (oG[outG]); + //allpass filter G + + dG[6] = dG[5]; + dG[5] = dG[4]; + dG[4] = inputSample; + inputSample = (dG[4] + dG[5] + dG[6])/3.0; + + allpasstemp = outH - 1; + if (allpasstemp < 0 || allpasstemp > delayH) {allpasstemp = delayH;} + inputSample -= oH[allpasstemp]*constallpass; + oH[outH] = inputSample; + inputSample *= constallpass; + outH--; if (outH < 0 || outH > delayH) {outH = delayH;} + inputSample += (oH[outH]); + //allpass filter H + + dH[6] = dH[5]; + dH[5] = dH[4]; + dH[4] = inputSample; + inputSample = (dH[4] + dH[5] + dH[6])/3.0; + + allpasstemp = outI - 1; + if (allpasstemp < 0 || allpasstemp > delayI) {allpasstemp = delayI;} + inputSample -= oI[allpasstemp]*constallpass; + oI[outI] = inputSample; + inputSample *= constallpass; + outI--; if (outI < 0 || outI > delayI) {outI = delayI;} + inputSample += (oI[outI]); + //allpass filter I + + dI[6] = dI[5]; + dI[5] = dI[4]; + dI[4] = inputSample; + inputSample = (dI[4] + dI[5] + dI[6])/3.0; + + allpasstemp = outJ - 1; + if (allpasstemp < 0 || allpasstemp > delayJ) {allpasstemp = delayJ;} + inputSample -= oJ[allpasstemp]*constallpass; + oJ[outJ] = inputSample; + inputSample *= constallpass; + outJ--; if (outJ < 0 || outJ > delayJ) {outJ = delayJ;} + inputSample += (oJ[outJ]); + //allpass filter J + + dJ[6] = dJ[5]; + dJ[5] = dJ[4]; + dJ[4] = inputSample; + inputSample = (dJ[4] + dJ[5] + dJ[6])/3.0; + + allpasstemp = outK - 1; + if (allpasstemp < 0 || allpasstemp > delayK) {allpasstemp = delayK;} + inputSample -= oK[allpasstemp]*constallpass; + oK[outK] = inputSample; + inputSample *= constallpass; + outK--; if (outK < 0 || outK > delayK) {outK = delayK;} + inputSample += (oK[outK]); + //allpass filter K + + dK[6] = dK[5]; + dK[5] = dK[4]; + dK[4] = inputSample; + inputSample = (dK[4] + dK[5] + dK[6])/3.0; + + allpasstemp = outL - 1; + if (allpasstemp < 0 || allpasstemp > delayL) {allpasstemp = delayL;} + inputSample -= oL[allpasstemp]*constallpass; + oL[outL] = inputSample; + inputSample *= constallpass; + outL--; if (outL < 0 || outL > delayL) {outL = delayL;} + inputSample += (oL[outL]); + //allpass filter L + + dL[6] = dL[5]; + dL[5] = dL[4]; + dL[4] = inputSample; + inputSample = (dL[4] + dL[5] + dL[6])/3.0; + + allpasstemp = outM - 1; + if (allpasstemp < 0 || allpasstemp > delayM) {allpasstemp = delayM;} + inputSample -= oM[allpasstemp]*constallpass; + oM[outM] = inputSample; + inputSample *= constallpass; + outM--; if (outM < 0 || outM > delayM) {outM = delayM;} + inputSample += (oM[outM]); + //allpass filter M + + dM[6] = dM[5]; + dM[5] = dM[4]; + dM[4] = inputSample; + inputSample = (dM[4] + dM[5] + dM[6])/3.0; + + allpasstemp = outN - 1; + if (allpasstemp < 0 || allpasstemp > delayN) {allpasstemp = delayN;} + inputSample -= oN[allpasstemp]*constallpass; + oN[outN] = inputSample; + inputSample *= constallpass; + outN--; if (outN < 0 || outN > delayN) {outN = delayN;} + inputSample += (oN[outN]); + //allpass filter N + + dN[6] = dN[5]; + dN[5] = dN[4]; + dN[4] = inputSample; + inputSample = (dN[4] + dN[5] + dN[6])/3.0; + + allpasstemp = outO - 1; + if (allpasstemp < 0 || allpasstemp > delayO) {allpasstemp = delayO;} + inputSample -= oO[allpasstemp]*constallpass; + oO[outO] = inputSample; + inputSample *= constallpass; + outO--; if (outO < 0 || outO > delayO) {outO = delayO;} + inputSample += (oO[outO]); + //allpass filter O + + dO[6] = dO[5]; + dO[5] = dO[4]; + dO[4] = inputSample; + inputSample = (dO[4] + dO[5] + dO[6])/3.0; + + allpasstemp = outP - 1; + if (allpasstemp < 0 || allpasstemp > delayP) {allpasstemp = delayP;} + inputSample -= oP[allpasstemp]*constallpass; + oP[outP] = inputSample; + inputSample *= constallpass; + outP--; if (outP < 0 || outP > delayP) {outP = delayP;} + inputSample += (oP[outP]); + //allpass filter P + + dP[6] = dP[5]; + dP[5] = dP[4]; + dP[4] = inputSample; + inputSample = (dP[4] + dP[5] + dP[6])/3.0; + + allpasstemp = outQ - 1; + if (allpasstemp < 0 || allpasstemp > delayQ) {allpasstemp = delayQ;} + inputSample -= oQ[allpasstemp]*constallpass; + oQ[outQ] = inputSample; + inputSample *= constallpass; + outQ--; if (outQ < 0 || outQ > delayQ) {outQ = delayQ;} + inputSample += (oQ[outQ]); + //allpass filter Q + + dQ[6] = dQ[5]; + dQ[5] = dQ[4]; + dQ[4] = inputSample; + inputSample = (dQ[4] + dQ[5] + dQ[6])/3.0; + + allpasstemp = outR - 1; + if (allpasstemp < 0 || allpasstemp > delayR) {allpasstemp = delayR;} + inputSample -= oR[allpasstemp]*constallpass; + oR[outR] = inputSample; + inputSample *= constallpass; + outR--; if (outR < 0 || outR > delayR) {outR = delayR;} + inputSample += (oR[outR]); + //allpass filter R + + dR[6] = dR[5]; + dR[5] = dR[4]; + dR[4] = inputSample; + inputSample = (dR[4] + dR[5] + dR[6])/3.0; + + allpasstemp = outS - 1; + if (allpasstemp < 0 || allpasstemp > delayS) {allpasstemp = delayS;} + inputSample -= oS[allpasstemp]*constallpass; + oS[outS] = inputSample; + inputSample *= constallpass; + outS--; if (outS < 0 || outS > delayS) {outS = delayS;} + inputSample += (oS[outS]); + //allpass filter S + + dS[6] = dS[5]; + dS[5] = dS[4]; + dS[4] = inputSample; + inputSample = (dS[4] + dS[5] + dS[6])/3.0; + + allpasstemp = outT - 1; + if (allpasstemp < 0 || allpasstemp > delayT) {allpasstemp = delayT;} + inputSample -= oT[allpasstemp]*constallpass; + oT[outT] = inputSample; + inputSample *= constallpass; + outT--; if (outT < 0 || outT > delayT) {outT = delayT;} + inputSample += (oT[outT]); + //allpass filter T + + dT[6] = dT[5]; + dT[5] = dT[4]; + dT[4] = inputSample; + inputSample = (dT[4] + dT[5] + dT[6])/3.0; + + allpasstemp = outU - 1; + if (allpasstemp < 0 || allpasstemp > delayU) {allpasstemp = delayU;} + inputSample -= oU[allpasstemp]*constallpass; + oU[outU] = inputSample; + inputSample *= constallpass; + outU--; if (outU < 0 || outU > delayU) {outU = delayU;} + inputSample += (oU[outU]); + //allpass filter U + + dU[6] = dU[5]; + dU[5] = dU[4]; + dU[4] = inputSample; + inputSample = (dU[4] + dU[5] + dU[6])/3.0; + + allpasstemp = outV - 1; + if (allpasstemp < 0 || allpasstemp > delayV) {allpasstemp = delayV;} + inputSample -= oV[allpasstemp]*constallpass; + oV[outV] = inputSample; + inputSample *= constallpass; + outV--; if (outV < 0 || outV > delayV) {outV = delayV;} + inputSample += (oV[outV]); + //allpass filter V + + dV[6] = dV[5]; + dV[5] = dV[4]; + dV[4] = inputSample; + inputSample = (dV[4] + dV[5] + dV[6])/3.0; + + allpasstemp = outW - 1; + if (allpasstemp < 0 || allpasstemp > delayW) {allpasstemp = delayW;} + inputSample -= oW[allpasstemp]*constallpass; + oW[outW] = inputSample; + inputSample *= constallpass; + outW--; if (outW < 0 || outW > delayW) {outW = delayW;} + inputSample += (oW[outW]); + //allpass filter W + + dW[6] = dW[5]; + dW[5] = dW[4]; + dW[4] = inputSample; + inputSample = (dW[4] + dW[5] + dW[6])/3.0; + + allpasstemp = outX - 1; + if (allpasstemp < 0 || allpasstemp > delayX) {allpasstemp = delayX;} + inputSample -= oX[allpasstemp]*constallpass; + oX[outX] = inputSample; + inputSample *= constallpass; + outX--; if (outX < 0 || outX > delayX) {outX = delayX;} + inputSample += (oX[outX]); + //allpass filter X + + dX[6] = dX[5]; + dX[5] = dX[4]; + dX[4] = inputSample; + inputSample = (dX[4] + dX[5] + dX[6])/3.0; + + allpasstemp = outY - 1; + if (allpasstemp < 0 || allpasstemp > delayY) {allpasstemp = delayY;} + inputSample -= oY[allpasstemp]*constallpass; + oY[outY] = inputSample; + inputSample *= constallpass; + outY--; if (outY < 0 || outY > delayY) {outY = delayY;} + inputSample += (oY[outY]); + //allpass filter Y + + dY[6] = dY[5]; + dY[5] = dY[4]; + dY[4] = inputSample; + inputSample = (dY[4] + dY[5] + dY[6])/3.0; + + allpasstemp = outZ - 1; + if (allpasstemp < 0 || allpasstemp > delayZ) {allpasstemp = delayZ;} + inputSample -= oZ[allpasstemp]*constallpass; + oZ[outZ] = inputSample; + inputSample *= constallpass; + outZ--; if (outZ < 0 || outZ > delayZ) {outZ = delayZ;} + inputSample += (oZ[outZ]); + //allpass filter Z + + dZ[6] = dZ[5]; + dZ[5] = dZ[4]; + dZ[4] = inputSample; + inputSample = (dZ[4] + dZ[5] + dZ[6]); + //output Zarathustra infinite space verb + break; + + } + //end big switch for verb type + + + + bridgerectifier = fabs(inputSample); + bridgerectifier = 1.0-cos(bridgerectifier); + if (inputSample > 0) inputSample -= bridgerectifier; + else inputSample += bridgerectifier; + inputSample /= gain; + //here we apply the ADT2 'console on steroids' trick + + wetness = wetnesstarget; + //setting up verb wetness to be manipulated by gate and peak + + wetness *= peak; + //but we only use peak (indirect) to deal with dry/wet, so that it'll manipulate the dry/wet like we want + + drySample *= (1.0-wetness); + inputSample *= wetness; + inputSample += drySample; + //here we combine the tanks with the dry signal + + + //begin 32 bit floating point dither + int expon; frexpf((float)inputSample, &expon); + fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5; + inputSample += static_cast<int32_t>(fpd) * 5.960464655174751e-36L * pow(2,expon+62); + //end 32 bit floating point dither + + *destP = inputSample; + sourceP += inNumChannels; destP += inNumChannels; + } +} + diff --git a/plugins/MacAU/PocketVerbs/PocketVerbs.exp b/plugins/MacAU/PocketVerbs/PocketVerbs.exp new file mode 100755 index 0000000..41b0949 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbs.exp @@ -0,0 +1 @@ +_PocketVerbsEntry diff --git a/plugins/MacAU/PocketVerbs/PocketVerbs.h b/plugins/MacAU/PocketVerbs/PocketVerbs.h new file mode 100755 index 0000000..c713f82 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbs.h @@ -0,0 +1,271 @@ +/* +* File: PocketVerbs.h +* +* Version: 1.0 +* +* Created: 8/19/12 +* +* Copyright: Copyright © 2012 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 "PocketVerbsVersion.h" + +#if AU_DEBUG_DISPATCHER + #include "AUDebugDispatcher.h" +#endif + + +#ifndef __PocketVerbs_h__ +#define __PocketVerbs_h__ + + +#pragma mark ____PocketVerbs Parameters + +// parameters +static CFStringRef kParameterOneName = CFSTR("Type"); +static const int kChamber = 1; +static const int kSpring = 2; +static const int kTiled = 3; +static const int kRoom = 4; +static const int kStretch = 5; +static const int kZarathustra = 6; +static const int kDefaultValue_ParamOne = kChamber; + +static CFStringRef kMenuItem_Chamber = CFSTR ("Chamber"); +static CFStringRef kMenuItem_Spring = CFSTR ("Spring"); +static CFStringRef kMenuItem_Tiled = CFSTR ("Tiled"); +static CFStringRef kMenuItem_Room = CFSTR ("Room"); +static CFStringRef kMenuItem_Stretch = CFSTR ("Stretch"); +static CFStringRef kMenuItem_Zarathustra = CFSTR ("Zarathustra"); + + +static const float kDefaultValue_ParamTwo = 0.5; +static const float kDefaultValue_ParamThree = 0.0; +static const float kDefaultValue_ParamFour = 0.5; + +static CFStringRef kParameterTwoName = CFSTR("Size"); +static CFStringRef kParameterThreeName = CFSTR("Gating"); +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 ____PocketVerbs +class PocketVerbs : public AUEffectBase +{ +public: + PocketVerbs(AudioUnit component); +#if AU_DEBUG_DISPATCHER + virtual ~PocketVerbs () { delete mDebugDispatcher; } +#endif + + virtual AUKernelBase * NewKernel() { return new PocketVerbsKernel(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()*220000.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 kPocketVerbsVersion; } + + + +protected: + class PocketVerbsKernel : public AUKernelBase // most of the real work happens here + { +public: + PocketVerbsKernel(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: + Float64 dA[7]; + Float64 dB[7]; + Float64 dC[7]; + Float64 dD[7]; + Float64 dE[7]; + Float64 dF[7]; + Float64 dG[7]; + Float64 dH[7]; + Float64 dI[7]; + Float64 dJ[7]; + Float64 dK[7]; + Float64 dL[7]; + Float64 dM[7]; + Float64 dN[7]; + Float64 dO[7]; + Float64 dP[7]; + Float64 dQ[7]; + Float64 dR[7]; + Float64 dS[7]; + Float64 dT[7]; + Float64 dU[7]; + Float64 dV[7]; + Float64 dW[7]; + Float64 dX[7]; + Float64 dY[7]; + Float64 dZ[7]; + + Float64 aA[15150]; + Float64 aB[14618]; + Float64 aC[14358]; + Float64 aD[13818]; + Float64 aE[13562]; + Float64 aF[13046]; + Float64 aG[11966]; + Float64 aH[11130]; + Float64 aI[10598]; + Float64 aJ[9810]; + Float64 aK[9522]; + Float64 aL[8982]; + Float64 aM[8786]; + Float64 aN[8462]; + Float64 aO[8310]; + Float64 aP[7982]; + Float64 aQ[7322]; + Float64 aR[6818]; + Float64 aS[6506]; + Float64 aT[6002]; + Float64 aU[5838]; + Float64 aV[5502]; + Float64 aW[5010]; + Float64 aX[4850]; + Float64 aY[4296]; + Float64 aZ[4180]; + + Float64 oA[15150]; + Float64 oB[14618]; + Float64 oC[14358]; + Float64 oD[13818]; + Float64 oE[13562]; + Float64 oF[13046]; + Float64 oG[11966]; + Float64 oH[11130]; + Float64 oI[10598]; + Float64 oJ[9810]; + Float64 oK[9522]; + Float64 oL[8982]; + Float64 oM[8786]; + Float64 oN[8462]; + Float64 oO[8310]; + Float64 oP[7982]; + Float64 oQ[7322]; + Float64 oR[6818]; + Float64 oS[6506]; + Float64 oT[6002]; + Float64 oU[5838]; + Float64 oV[5502]; + Float64 oW[5010]; + Float64 oX[4850]; + Float64 oY[4296]; + Float64 oZ[4180]; + + int outA, alpA, maxdelayA, delayA; + int outB, alpB, maxdelayB, delayB; + int outC, alpC, maxdelayC, delayC; + int outD, alpD, maxdelayD, delayD; + int outE, alpE, maxdelayE, delayE; + int outF, alpF, maxdelayF, delayF; + int outG, alpG, maxdelayG, delayG; + int outH, alpH, maxdelayH, delayH; + int outI, alpI, maxdelayI, delayI; + int outJ, alpJ, maxdelayJ, delayJ; + int outK, alpK, maxdelayK, delayK; + int outL, alpL, maxdelayL, delayL; + int outM, alpM, maxdelayM, delayM; + int outN, alpN, maxdelayN, delayN; + int outO, alpO, maxdelayO, delayO; + int outP, alpP, maxdelayP, delayP; + int outQ, alpQ, maxdelayQ, delayQ; + int outR, alpR, maxdelayR, delayR; + int outS, alpS, maxdelayS, delayS; + int outT, alpT, maxdelayT, delayT; + int outU, alpU, maxdelayU, delayU; + int outV, alpV, maxdelayV, delayV; + int outW, alpW, maxdelayW, delayW; + int outX, alpX, maxdelayX, delayX; + int outY, alpY, maxdelayY, delayY; + int outZ, alpZ, maxdelayZ, delayZ; + + Float64 savedRoomsize; + int countdown; + Float64 peak; + uint32_t fpd; + + }; + }; + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +#endif
\ No newline at end of file diff --git a/plugins/MacAU/PocketVerbs/PocketVerbs.r b/plugins/MacAU/PocketVerbs/PocketVerbs.r new file mode 100755 index 0000000..07090e6 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbs.r @@ -0,0 +1,61 @@ +/* +* File: PocketVerbs.r +* +* Version: 1.0 +* +* Created: 8/19/12 +* +* Copyright: Copyright © 2012 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 "PocketVerbsVersion.h" + +// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description +#define kAudioUnitResID_PocketVerbs 1000 + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PocketVerbs~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#define RES_ID kAudioUnitResID_PocketVerbs +#define COMP_TYPE kAudioUnitType_Effect +#define COMP_SUBTYPE PocketVerbs_COMP_SUBTYPE +#define COMP_MANUF PocketVerbs_COMP_MANF + +#define VERSION kPocketVerbsVersion +#define NAME "Airwindows: PocketVerbs" +#define DESCRIPTION "PocketVerbs AU" +#define ENTRY_POINT "PocketVerbsEntry" + +#include "AUResources.r"
\ No newline at end of file diff --git a/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.mode1v3 b/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.mode1v3 new file mode 100755 index 0000000..4bbeff6 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.mode1v3 @@ -0,0 +1,1374 @@ +<?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>ActivePerspectiveName</key> + <string>Project</string> + <key>AllowedModules</key> + <array> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Name</key> + <string>Groups and Files Outline View</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Name</key> + <string>Editor</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCTaskListModule</string> + <key>Name</key> + <string>Task List</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCDetailModule</string> + <key>Name</key> + <string>File and Smart Group Detail Viewer</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXBuildResultsModule</string> + <key>Name</key> + <string>Detailed Build Results Viewer</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXProjectFindModule</string> + <key>Name</key> + <string>Project Batch Find Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCProjectFormatConflictsModule</string> + <key>Name</key> + <string>Project Format Conflicts List</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXBookmarksModule</string> + <key>Name</key> + <string>Bookmarks Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXClassBrowserModule</string> + <key>Name</key> + <string>Class Browser</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXCVSModule</string> + <key>Name</key> + <string>Source Code Control Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXDebugBreakpointsModule</string> + <key>Name</key> + <string>Debug Breakpoints Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCDockableInspector</string> + <key>Name</key> + <string>Inspector</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXOpenQuicklyModule</string> + <key>Name</key> + <string>Open Quickly Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Name</key> + <string>Debugger</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Name</key> + <string>Debug Console</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCSnapshotModule</string> + <key>Name</key> + <string>Snapshots Tool</string> + </dict> + </array> + <key>BundlePath</key> + <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string> + <key>Description</key> + <string>DefaultDescriptionKey</string> + <key>DockingSystemVisible</key> + <false/> + <key>Extension</key> + <string>mode1v3</string> + <key>FavBarConfig</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>8BD3CCBC148831C90062E48C</string> + <key>XCBarModuleItemNames</key> + <dict/> + <key>XCBarModuleItems</key> + <array/> + </dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>com.apple.perspectives.project.mode1v3</string> + <key>MajorVersion</key> + <integer>33</integer> + <key>MinorVersion</key> + <integer>0</integer> + <key>Name</key> + <string>Default</string> + <key>Notifications</key> + <array/> + <key>OpenEditors</key> + <array/> + <key>PerspectiveWidths</key> + <array> + <integer>-1</integer> + <integer>-1</integer> + </array> + <key>Perspectives</key> + <array> + <dict> + <key>ChosenToolbarItems</key> + <array> + <string>active-combo-popup</string> + <string>action</string> + <string>build</string> + <string>debugger-enable-breakpoints</string> + <string>get-info</string> + <string>com.apple.pbx.toolbar.searchfield</string> + </array> + <key>ControllerClassBaseName</key> + <string></string> + <key>IconName</key> + <string>WindowOfProjectWithEditor</string> + <key>Identifier</key> + <string>perspective.project</string> + <key>IsVertical</key> + <false/> + <key>Layout</key> + <array> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C37FBAC04509CD000000102</string> + <string>1C37FAAC04509CD000000102</string> + <string>1C37FABC05509CD000000102</string> + <string>1C37FABC05539CD112110102</string> + <string>E2644B35053B69B200211256</string> + <string>1C37FABC04509CD000100104</string> + <string>1CC0EA4004350EF90044410B</string> + <string>1CC0EA4004350EF90041110B</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>1CE0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>yes</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>186</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>089C166AFE841209C02AAC07</string> + <string>08FB77ADFE841716C02AAC07</string> + <string>8BA05A56072072A900365D66</string> + <string>1C37FBAC04509CD000000102</string> + <string>1C37FABC05509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>4</integer> + <integer>2</integer> + <integer>1</integer> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {186, 647}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <true/> + <key>XCSharingToken</key> + <string>com.apple.Xcode.GFSharingToken</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {203, 665}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>186</real> + </array> + <key>RubberWindowFrame</key> + <string>547 163 857 706 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>203pt</string> + </dict> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20306471E060097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>PocketVerbsVersion.h</string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20406471E060097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>PocketVerbsVersion.h</string> + <key>_historyCapacity</key> + <integer>0</integer> + <key>bookmark</key> + <string>8B4223CF189BDBA000BD9C44</string> + <key>history</key> + <array> + <string>8B21D7851745523400E1943E</string> + <string>8B35583517455FF2009B6944</string> + <string>8B9B2A791779C31C0061D2E0</string> + <string>8B9B2A7A1779C31C0061D2E0</string> + <string>8B9B2A7B1779C31C0061D2E0</string> + <string>8B464AE617E3574500CFD7BE</string> + </array> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {649, 267}}</string> + <key>RubberWindowFrame</key> + <string>547 163 857 706 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>267pt</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CE0B20506471E060097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Detail</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 272}, {649, 393}}</string> + <key>RubberWindowFrame</key> + <string>547 163 857 706 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>XCDetailModule</string> + <key>Proportion</key> + <string>393pt</string> + </dict> + </array> + <key>Proportion</key> + <string>649pt</string> + </dict> + </array> + <key>Name</key> + <string>Project</string> + <key>ServiceClasses</key> + <array> + <string>XCModuleDock</string> + <string>PBXSmartGroupTreeModule</string> + <string>XCModuleDock</string> + <string>PBXNavigatorGroup</string> + <string>XCDetailModule</string> + </array> + <key>TableOfContents</key> + <array> + <string>8B4223D0189BDBA000BD9C44</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>8B4223D1189BDBA000BD9C44</string> + <string>1CE0B20306471E060097A5F4</string> + <string>1CE0B20506471E060097A5F4</string> + </array> + <key>ToolbarConfigUserDefaultsMinorVersion</key> + <string>2</string> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.defaultV3</string> + </dict> + <dict> + <key>ControllerClassBaseName</key> + <string></string> + <key>IconName</key> + <string>WindowOfProject</string> + <key>Identifier</key> + <string>perspective.morph</string> + <key>IsVertical</key> + <integer>0</integer> + <key>Layout</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C37FBAC04509CD000000102</string> + <string>1C37FAAC04509CD000000102</string> + <string>1C08E77C0454961000C914BD</string> + <string>1C37FABC05509CD000000102</string> + <string>1C37FABC05539CD112110102</string> + <string>E2644B35053B69B200211256</string> + <string>1C37FABC04509CD000100104</string> + <string>1CC0EA4004350EF90044410B</string> + <string>1CC0EA4004350EF90041110B</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>11E0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>yes</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>186</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>29B97314FDCFA39411CA2CEA</string> + <string>1C37FABC05509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {186, 337}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <integer>1</integer> + <key>XCSharingToken</key> + <string>com.apple.Xcode.GFSharingToken</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {203, 355}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>186</real> + </array> + <key>RubberWindowFrame</key> + <string>373 269 690 397 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Morph</string> + <key>PreferredWidth</key> + <integer>300</integer> + <key>ServiceClasses</key> + <array> + <string>XCModuleDock</string> + <string>PBXSmartGroupTreeModule</string> + </array> + <key>TableOfContents</key> + <array> + <string>11E0B1FE06471DED0097A5F4</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.default.shortV3</string> + </dict> + </array> + <key>PerspectivesBarVisible</key> + <false/> + <key>ShelfIsVisible</key> + <false/> + <key>SourceDescription</key> + <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string> + <key>StatusbarIsVisible</key> + <true/> + <key>TimeStamp</key> + <real>0.0</real> + <key>ToolbarConfigUserDefaultsMinorVersion</key> + <string>2</string> + <key>ToolbarDisplayMode</key> + <integer>1</integer> + <key>ToolbarIsVisible</key> + <true/> + <key>ToolbarSizeMode</key> + <integer>2</integer> + <key>Type</key> + <string>Perspectives</string> + <key>UpdateMessage</key> + <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string> + <key>WindowJustification</key> + <integer>5</integer> + <key>WindowOrderList</key> + <array> + <string>8B4223D3189BDBA000BD9C44</string> + <string>8BD3CCBD148831C90062E48C</string> + <string>/Users/christopherjohnson/Desktop/Dropbox/AU/PocketVerbs/PocketVerbs.xcodeproj</string> + </array> + <key>WindowString</key> + <string>547 163 857 706 0 0 1440 878 </string> + <key>WindowToolsV3</key> + <array> + <dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>windowTool.build</string> + <key>IsVertical</key> + <true/> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528F0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string></string> + <key>StatusBarVisibility</key> + <true/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {500, 218}}</string> + <key>RubberWindowFrame</key> + <string>668 222 500 500 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>218pt</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>XCMainBuildResultsModuleGUID</string> + <key>PBXProjectModuleLabel</key> + <string>Build Results</string> + <key>XCBuildResultsTrigger_Collapse</key> + <integer>1021</integer> + <key>XCBuildResultsTrigger_Open</key> + <integer>1011</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 223}, {500, 236}}</string> + <key>RubberWindowFrame</key> + <string>668 222 500 500 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXBuildResultsModule</string> + <key>Proportion</key> + <string>236pt</string> + </dict> + </array> + <key>Proportion</key> + <string>459pt</string> + </dict> + </array> + <key>Name</key> + <string>Build Results</string> + <key>ServiceClasses</key> + <array> + <string>PBXBuildResultsModule</string> + </array> + <key>StatusbarIsVisible</key> + <true/> + <key>TableOfContents</key> + <array> + <string>8BD3CCBD148831C90062E48C</string> + <string>8B4223D2189BDBA000BD9C44</string> + <string>1CD0528F0623707200166675</string> + <string>XCMainBuildResultsModuleGUID</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.buildV3</string> + <key>WindowContentMinSize</key> + <string>486 300</string> + <key>WindowString</key> + <string>668 222 500 500 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>8BD3CCBD148831C90062E48C</string> + <key>WindowToolIsVisible</key> + <false/> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debugger</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>Debugger</key> + <dict> + <key>HorizontalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {317, 164}}</string> + <string>{{317, 0}, {377, 164}}</string> + </array> + </dict> + <key>VerticalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {694, 164}}</string> + <string>{{0, 164}, {694, 216}}</string> + </array> + </dict> + </dict> + <key>LauncherConfigVersion</key> + <string>8</string> + <key>PBXProjectModuleGUID</key> + <string>1C162984064C10D400B95A72</string> + <key>PBXProjectModuleLabel</key> + <string>Debug - GLUTExamples (Underwater)</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>DebugConsoleDrawerSize</key> + <string>{100, 120}</string> + <key>DebugConsoleVisible</key> + <string>None</string> + <key>DebugConsoleWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>DebugSTDIOWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>Frame</key> + <string>{{0, 0}, {694, 380}}</string> + <key>RubberWindowFrame</key> + <string>321 238 694 422 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Debugger</string> + <key>ServiceClasses</key> + <array> + <string>PBXDebugSessionModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1CD10A99069EF8BA00B06720</string> + <string>1C0AD2AB069F1E9B00FABCE6</string> + <string>1C162984064C10D400B95A72</string> + <string>1C0AD2AC069F1E9B00FABCE6</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debugV3</string> + <key>WindowString</key> + <string>321 238 694 422 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1CD10A99069EF8BA00B06720</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.find</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CDD528C0622207200134675</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528D0623707200166675</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <integer>1</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {781, 167}}</string> + <key>RubberWindowFrame</key> + <string>62 385 781 470 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>781pt</string> + </dict> + </array> + <key>Proportion</key> + <string>50%</string> + </dict> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528E0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>Project Find</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{8, 0}, {773, 254}}</string> + <key>RubberWindowFrame</key> + <string>62 385 781 470 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXProjectFindModule</string> + <key>Proportion</key> + <string>50%</string> + </dict> + </array> + <key>Proportion</key> + <string>428pt</string> + </dict> + </array> + <key>Name</key> + <string>Project Find</string> + <key>ServiceClasses</key> + <array> + <string>PBXProjectFindModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C530D57069F1CE1000CFCEE</string> + <string>1C530D58069F1CE1000CFCEE</string> + <string>1C530D59069F1CE1000CFCEE</string> + <string>1CDD528C0622207200134675</string> + <string>1C530D5A069F1CE1000CFCEE</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>1CD0528E0623707200166675</string> + </array> + <key>WindowString</key> + <string>62 385 781 470 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1C530D57069F1CE1000CFCEE</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>Identifier</key> + <string>MENUSEPARATOR</string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debuggerConsole</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAAC065D492600B07095</string> + <key>PBXProjectModuleLabel</key> + <string>Debugger Console</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {650, 250}}</string> + <key>RubberWindowFrame</key> + <string>516 632 650 250 0 0 1680 1027 </string> + </dict> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Proportion</key> + <string>209pt</string> + </dict> + </array> + <key>Proportion</key> + <string>209pt</string> + </dict> + </array> + <key>Name</key> + <string>Debugger Console</string> + <key>ServiceClasses</key> + <array> + <string>PBXDebugCLIModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C78EAAD065D492600B07095</string> + <string>1C78EAAE065D492600B07095</string> + <string>1C78EAAC065D492600B07095</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.consoleV3</string> + <key>WindowString</key> + <string>650 41 650 250 0 0 1280 1002 </string> + <key>WindowToolGUID</key> + <string>1C78EAAD065D492600B07095</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.snapshots</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>XCSnapshotModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Snapshots</string> + <key>ServiceClasses</key> + <array> + <string>XCSnapshotModule</string> + </array> + <key>StatusbarIsVisible</key> + <string>Yes</string> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.snapshots</string> + <key>WindowString</key> + <string>315 824 300 550 0 0 1440 878 </string> + <key>WindowToolIsVisible</key> + <string>Yes</string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.scm</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAB2065D492600B07095</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAB3065D492600B07095</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <integer>1</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {452, 0}}</string> + <key>RubberWindowFrame</key> + <string>743 379 452 308 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>0pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD052920623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>SCM</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>ConsoleFrame</key> + <string>{{0, 259}, {452, 0}}</string> + <key>Frame</key> + <string>{{0, 7}, {452, 259}}</string> + <key>RubberWindowFrame</key> + <string>743 379 452 308 0 0 1280 1002 </string> + <key>TableConfiguration</key> + <array> + <string>Status</string> + <real>30</real> + <string>FileName</string> + <real>199</real> + <string>Path</string> + <real>197.0950012207031</real> + </array> + <key>TableFrame</key> + <string>{{0, 0}, {452, 250}}</string> + </dict> + <key>Module</key> + <string>PBXCVSModule</string> + <key>Proportion</key> + <string>262pt</string> + </dict> + </array> + <key>Proportion</key> + <string>266pt</string> + </dict> + </array> + <key>Name</key> + <string>SCM</string> + <key>ServiceClasses</key> + <array> + <string>PBXCVSModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C78EAB4065D492600B07095</string> + <string>1C78EAB5065D492600B07095</string> + <string>1C78EAB2065D492600B07095</string> + <string>1CD052920623707200166675</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.scm</string> + <key>WindowString</key> + <string>743 379 452 308 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.breakpoints</string> + <key>IsVertical</key> + <integer>0</integer> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>1CE0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>no</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>168</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {168, 350}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <integer>0</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {185, 368}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>168</real> + </array> + <key>RubberWindowFrame</key> + <string>315 424 744 409 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>185pt</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CA1AED706398EBD00589147</string> + <key>PBXProjectModuleLabel</key> + <string>Detail</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{190, 0}, {554, 368}}</string> + <key>RubberWindowFrame</key> + <string>315 424 744 409 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>XCDetailModule</string> + <key>Proportion</key> + <string>554pt</string> + </dict> + </array> + <key>Proportion</key> + <string>368pt</string> + </dict> + </array> + <key>MajorVersion</key> + <integer>3</integer> + <key>MinorVersion</key> + <integer>0</integer> + <key>Name</key> + <string>Breakpoints</string> + <key>ServiceClasses</key> + <array> + <string>PBXSmartGroupTreeModule</string> + <string>XCDetailModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1CDDB66807F98D9800BB5817</string> + <string>1CDDB66907F98D9800BB5817</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>1CA1AED706398EBD00589147</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.breakpointsV3</string> + <key>WindowString</key> + <string>315 424 744 409 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1CDDB66807F98D9800BB5817</string> + <key>WindowToolIsVisible</key> + <integer>1</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debugAnimator</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Debug Visualizer</string> + <key>ServiceClasses</key> + <array> + <string>PBXNavigatorGroup</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debugAnimatorV3</string> + <key>WindowString</key> + <string>100 100 700 500 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.bookmarks</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>PBXBookmarksModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Bookmarks</string> + <key>ServiceClasses</key> + <array> + <string>PBXBookmarksModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>WindowString</key> + <string>538 42 401 187 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.projectFormatConflicts</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>XCProjectFormatConflictsModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Project Format Conflicts</string> + <key>ServiceClasses</key> + <array> + <string>XCProjectFormatConflictsModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>WindowContentMinSize</key> + <string>450 300</string> + <key>WindowString</key> + <string>50 850 472 307 0 0 1440 877</string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.classBrowser</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>OptionsSetName</key> + <string>Hierarchy, all classes</string> + <key>PBXProjectModuleGUID</key> + <string>1CA6456E063B45B4001379D8</string> + <key>PBXProjectModuleLabel</key> + <string>Class Browser - NSObject</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>ClassesFrame</key> + <string>{{0, 0}, {374, 96}}</string> + <key>ClassesTreeTableConfiguration</key> + <array> + <string>PBXClassNameColumnIdentifier</string> + <real>208</real> + <string>PBXClassBookColumnIdentifier</string> + <real>22</real> + </array> + <key>Frame</key> + <string>{{0, 0}, {630, 331}}</string> + <key>MembersFrame</key> + <string>{{0, 105}, {374, 395}}</string> + <key>MembersTreeTableConfiguration</key> + <array> + <string>PBXMemberTypeIconColumnIdentifier</string> + <real>22</real> + <string>PBXMemberNameColumnIdentifier</string> + <real>216</real> + <string>PBXMemberTypeColumnIdentifier</string> + <real>97</real> + <string>PBXMemberBookColumnIdentifier</string> + <real>22</real> + </array> + <key>PBXModuleWindowStatusBarHidden2</key> + <integer>1</integer> + <key>RubberWindowFrame</key> + <string>385 179 630 352 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXClassBrowserModule</string> + <key>Proportion</key> + <string>332pt</string> + </dict> + </array> + <key>Proportion</key> + <string>332pt</string> + </dict> + </array> + <key>Name</key> + <string>Class Browser</string> + <key>ServiceClasses</key> + <array> + <string>PBXClassBrowserModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>TableOfContents</key> + <array> + <string>1C0AD2AF069F1E9B00FABCE6</string> + <string>1C0AD2B0069F1E9B00FABCE6</string> + <string>1CA6456E063B45B4001379D8</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.classbrowser</string> + <key>WindowString</key> + <string>385 179 630 352 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1C0AD2AF069F1E9B00FABCE6</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.refactoring</string> + <key>IncludeInToolsMenu</key> + <integer>0</integer> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{0, 0}, {500, 335}</string> + <key>RubberWindowFrame</key> + <string>{0, 0}, {500, 335}</string> + </dict> + <key>Module</key> + <string>XCRefactoringModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Refactoring</string> + <key>ServiceClasses</key> + <array> + <string>XCRefactoringModule</string> + </array> + <key>WindowString</key> + <string>200 200 500 356 0 0 1920 1200 </string> + </dict> + </array> +</dict> +</plist> diff --git a/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.pbxuser new file mode 100755 index 0000000..7fbbf18 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.pbxuser @@ -0,0 +1,149 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8D01CCC60486CAD60068D4B7 /* PocketVerbs */; + codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 364, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 301, + 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 = 595625819; + PBXWorkspaceStateSaveDate = 595625819; + }; + perUserProjectItems = { + 8B0639D12380A76700606DBC /* PBXTextBookmark */ = 8B0639D12380A76700606DBC /* PBXTextBookmark */; + 8B0639D22380A76700606DBC /* PBXTextBookmark */ = 8B0639D22380A76700606DBC /* PBXTextBookmark */; + 8B0639D32380A76700606DBC /* PBXTextBookmark */ = 8B0639D32380A76700606DBC /* PBXTextBookmark */; + }; + sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */; + userBuildSettings = { + }; + }; + 8B0639D12380A76700606DBC /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A690720730100365D66 /* PocketVerbsVersion.h */; + name = "PocketVerbsVersion.h: 48"; + rLen = 0; + rLoc = 2728; + rType = 0; + vrLen = 87; + vrLoc = 2683; + }; + 8B0639D22380A76700606DBC /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* PocketVerbs.cpp */; + name = "PocketVerbs.cpp: 325"; + rLen = 0; + rLoc = 15455; + rType = 0; + vrLen = 87; + vrLoc = 14950; + }; + 8B0639D32380A76700606DBC /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8BA05A660720730100365D66 /* PocketVerbs.cpp */; + name = "PocketVerbs.cpp: 325"; + rLen = 0; + rLoc = 15455; + rType = 0; + vrLen = 87; + vrLoc = 14950; + }; + 8BA05A660720730100365D66 /* PocketVerbs.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1111, 62803}}"; + sepNavSelRange = "{15455, 0}"; + sepNavVisRange = "{14950, 87}"; + sepNavWindowFrame = "{{518, 57}, {908, 821}}"; + }; + }; + 8BA05A670720730100365D66 /* PocketVerbs.exp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {588, 259}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 18}"; + }; + }; + 8BA05A680720730100365D66 /* PocketVerbs.r */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {702, 627}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1442}"; + }; + }; + 8BA05A690720730100365D66 /* PocketVerbsVersion.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {803, 936}}"; + sepNavSelRange = "{2728, 0}"; + sepNavVisRange = "{2683, 87}"; + sepNavWindowFrame = "{{575, 67}, {834, 801}}"; + }; + }; + 8BC6025B073B072D006C4272 /* PocketVerbs.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1041, 3523}}"; + sepNavSelRange = "{5987, 0}"; + sepNavVisRange = "{3031, 1879}"; + sepNavWindowFrame = "{{546, 57}, {885, 821}}"; + }; + }; + 8BD3CCB8148830B20062E48C /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8BD3CCB9148830B20062E48C /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 8D01CCC60486CAD60068D4B7 /* PocketVerbs */ = { + activeExec = 0; + }; +} diff --git a/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.perspectivev3 new file mode 100755 index 0000000..37ac50e --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/christopherjohnson.perspectivev3 @@ -0,0 +1,1485 @@ +<?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>ActivePerspectiveName</key> + <string>Project</string> + <key>AllowedModules</key> + <array> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Name</key> + <string>Groups and Files Outline View</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Name</key> + <string>Editor</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCTaskListModule</string> + <key>Name</key> + <string>Task List</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCDetailModule</string> + <key>Name</key> + <string>File and Smart Group Detail Viewer</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXBuildResultsModule</string> + <key>Name</key> + <string>Detailed Build Results Viewer</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXProjectFindModule</string> + <key>Name</key> + <string>Project Batch Find Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCProjectFormatConflictsModule</string> + <key>Name</key> + <string>Project Format Conflicts List</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXBookmarksModule</string> + <key>Name</key> + <string>Bookmarks Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXClassBrowserModule</string> + <key>Name</key> + <string>Class Browser</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXCVSModule</string> + <key>Name</key> + <string>Source Code Control Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXDebugBreakpointsModule</string> + <key>Name</key> + <string>Debug Breakpoints Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCDockableInspector</string> + <key>Name</key> + <string>Inspector</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>PBXOpenQuicklyModule</string> + <key>Name</key> + <string>Open Quickly Tool</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Name</key> + <string>Debugger</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>1</string> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Name</key> + <string>Debug Console</string> + </dict> + <dict> + <key>BundleLoadPath</key> + <string></string> + <key>MaxInstances</key> + <string>n</string> + <key>Module</key> + <string>XCSnapshotModule</string> + <key>Name</key> + <string>Snapshots Tool</string> + </dict> + </array> + <key>BundlePath</key> + <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string> + <key>Description</key> + <string>AIODescriptionKey</string> + <key>DockingSystemVisible</key> + <false/> + <key>Extension</key> + <string>perspectivev3</string> + <key>FavBarConfig</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>8BEED1FF1EA54DCA0094708A</string> + <key>XCBarModuleItemNames</key> + <dict/> + <key>XCBarModuleItems</key> + <array/> + </dict> + <key>FirstTimeWindowDisplayed</key> + <false/> + <key>Identifier</key> + <string>com.apple.perspectives.project.defaultV3</string> + <key>MajorVersion</key> + <integer>34</integer> + <key>MinorVersion</key> + <integer>0</integer> + <key>Name</key> + <string>All-In-One</string> + <key>Notifications</key> + <array> + <dict> + <key>XCObserverAutoDisconnectKey</key> + <true/> + <key>XCObserverDefintionKey</key> + <dict> + <key>PBXStatusErrorsKey</key> + <integer>0</integer> + </dict> + <key>XCObserverFactoryKey</key> + <string>XCPerspectivesSpecificationIdentifier</string> + <key>XCObserverGUIDKey</key> + <string>XCObserverProjectIdentifier</string> + <key>XCObserverNotificationKey</key> + <string>PBXStatusBuildStateMessageNotification</string> + <key>XCObserverTargetKey</key> + <string>XCMainBuildResultsModuleGUID</string> + <key>XCObserverTriggerKey</key> + <string>awakenModuleWithObserver:</string> + <key>XCObserverValidationKey</key> + <dict> + <key>PBXStatusErrorsKey</key> + <integer>2</integer> + </dict> + </dict> + </array> + <key>OpenEditors</key> + <array/> + <key>PerspectiveWidths</key> + <array> + <integer>-1</integer> + <integer>-1</integer> + </array> + <key>Perspectives</key> + <array> + <dict> + <key>ChosenToolbarItems</key> + <array> + <string>XCToolbarPerspectiveControl</string> + <string>NSToolbarSeparatorItem</string> + <string>active-combo-popup</string> + <string>action</string> + <string>NSToolbarFlexibleSpaceItem</string> + <string>debugger-enable-breakpoints</string> + <string>build-and-go</string> + <string>com.apple.ide.PBXToolbarStopButton</string> + <string>get-info</string> + <string>NSToolbarFlexibleSpaceItem</string> + <string>com.apple.pbx.toolbar.searchfield</string> + </array> + <key>ControllerClassBaseName</key> + <string></string> + <key>IconName</key> + <string>WindowOfProject</string> + <key>Identifier</key> + <string>perspective.project</string> + <key>IsVertical</key> + <false/> + <key>Layout</key> + <array> + <dict> + <key>BecomeActive</key> + <true/> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C37FBAC04509CD000000102</string> + <string>1C37FAAC04509CD000000102</string> + <string>1C37FABC05509CD000000102</string> + <string>1C37FABC05539CD112110102</string> + <string>E2644B35053B69B200211256</string> + <string>1C37FABC04509CD000100104</string> + <string>1CC0EA4004350EF90044410B</string> + <string>1CC0EA4004350EF90041110B</string> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>1CA23ED40692098700951B8B</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>yes</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>185</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>089C166AFE841209C02AAC07</string> + <string>08FB77ADFE841716C02AAC07</string> + <string>8BA05A56072072A900365D66</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>4</integer> + <integer>2</integer> + <integer>1</integer> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {185, 428}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <false/> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {202, 446}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>185</real> + </array> + <key>RubberWindowFrame</key> + <string>620 386 810 487 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>202pt</string> + </dict> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>8BEED1FA1EA54DCA0094708A</string> + <key>PBXProjectModuleLabel</key> + <string>PocketVerbs.cpp</string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>8BEED1FB1EA54DCA0094708A</string> + <key>PBXProjectModuleLabel</key> + <string>PocketVerbs.cpp</string> + <key>_historyCapacity</key> + <integer>0</integer> + <key>bookmark</key> + <string>8B0639D32380A76700606DBC</string> + <key>history</key> + <array> + <string>8B0639D12380A76700606DBC</string> + <string>8B0639D22380A76700606DBC</string> + </array> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <true/> + <key>XCSharingToken</key> + <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {603, 51}}</string> + <key>RubberWindowFrame</key> + <string>620 386 810 487 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>51pt</string> + </dict> + <dict> + <key>Proportion</key> + <string>390pt</string> + <key>Tabs</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CA23EDF0692099D00951B8B</string> + <key>PBXProjectModuleLabel</key> + <string>Detail</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{10, 27}, {603, 363}}</string> + <key>RubberWindowFrame</key> + <string>620 386 810 487 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>XCDetailModule</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CA23EE00692099D00951B8B</string> + <key>PBXProjectModuleLabel</key> + <string>Project Find</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{10, 31}, {603, 297}}</string> + </dict> + <key>Module</key> + <string>PBXProjectFindModule</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXCVSModuleFilterTypeKey</key> + <integer>1032</integer> + <key>PBXProjectModuleGUID</key> + <string>1CA23EE10692099D00951B8B</string> + <key>PBXProjectModuleLabel</key> + <string>SCM Results</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{10, 31}, {603, 297}}</string> + </dict> + <key>Module</key> + <string>PBXCVSModule</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>XCMainBuildResultsModuleGUID</string> + <key>PBXProjectModuleLabel</key> + <string>Build Results</string> + <key>XCBuildResultsTrigger_Collapse</key> + <integer>1023</integer> + <key>XCBuildResultsTrigger_Open</key> + <integer>1012</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{10, 31}, {603, 297}}</string> + </dict> + <key>Module</key> + <string>PBXBuildResultsModule</string> + </dict> + </array> + </dict> + </array> + <key>Proportion</key> + <string>603pt</string> + </dict> + </array> + <key>Name</key> + <string>Project</string> + <key>ServiceClasses</key> + <array> + <string>XCModuleDock</string> + <string>PBXSmartGroupTreeModule</string> + <string>XCModuleDock</string> + <string>PBXNavigatorGroup</string> + <string>XCDockableTabModule</string> + <string>XCDetailModule</string> + <string>PBXProjectFindModule</string> + <string>PBXCVSModule</string> + <string>PBXBuildResultsModule</string> + </array> + <key>TableOfContents</key> + <array> + <string>8B0639D42380A76700606DBC</string> + <string>1CA23ED40692098700951B8B</string> + <string>8B0639D52380A76700606DBC</string> + <string>8BEED1FA1EA54DCA0094708A</string> + <string>8B0639D62380A76700606DBC</string> + <string>1CA23EDF0692099D00951B8B</string> + <string>1CA23EE00692099D00951B8B</string> + <string>1CA23EE10692099D00951B8B</string> + <string>XCMainBuildResultsModuleGUID</string> + </array> + <key>ToolbarConfigUserDefaultsMinorVersion</key> + <string>2</string> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.defaultV3</string> + </dict> + <dict> + <key>ChosenToolbarItems</key> + <array> + <string>XCToolbarPerspectiveControl</string> + <string>NSToolbarSeparatorItem</string> + <string>active-combo-popup</string> + <string>NSToolbarFlexibleSpaceItem</string> + <string>debugger-enable-breakpoints</string> + <string>build-and-go</string> + <string>com.apple.ide.PBXToolbarStopButton</string> + <string>debugger-restart-executable</string> + <string>debugger-pause</string> + <string>debugger-step-over</string> + <string>debugger-step-into</string> + <string>debugger-step-out</string> + <string>NSToolbarFlexibleSpaceItem</string> + <string>servicesModulebreakpoints</string> + <string>debugger-show-console-window</string> + </array> + <key>ControllerClassBaseName</key> + <string>PBXDebugSessionModule</string> + <key>IconName</key> + <string>DebugTabIcon</string> + <key>Identifier</key> + <string>perspective.debug</string> + <key>IsVertical</key> + <integer>1</integer> + <key>Layout</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CCC7628064C1048000F2A68</string> + <key>PBXProjectModuleLabel</key> + <string>Debugger Console</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {810, 0}}</string> + </dict> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Proportion</key> + <string>0%</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>Debugger</key> + <dict> + <key>HorizontalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {395, 213}}</string> + <string>{{395, 0}, {415, 213}}</string> + </array> + </dict> + <key>VerticalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {810, 213}}</string> + <string>{{0, 213}, {810, 225}}</string> + </array> + </dict> + </dict> + <key>LauncherConfigVersion</key> + <string>8</string> + <key>PBXProjectModuleGUID</key> + <string>1CCC7629064C1048000F2A68</string> + <key>PBXProjectModuleLabel</key> + <string>Debug</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>DebugConsoleDrawerSize</key> + <string>{100, 120}</string> + <key>DebugConsoleVisible</key> + <string>None</string> + <key>DebugConsoleWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>DebugSTDIOWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>Frame</key> + <string>{{0, 7}, {810, 438}}</string> + </dict> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Proportion</key> + <string>443pt</string> + </dict> + </array> + <key>Name</key> + <string>Debug</string> + <key>ServiceClasses</key> + <array> + <string>XCModuleDock</string> + <string>XCModuleDock</string> + <string>PBXDebugCLIModule</string> + <string>PBXDebugSessionModule</string> + <string>XCConsole</string> + </array> + <key>TableOfContents</key> + <array> + <string>1CC8E6A5069209BD00BB180A</string> + <string>1CC8E6A6069209BD00BB180A</string> + <string>1CCC7628064C1048000F2A68</string> + <string>1CCC7629064C1048000F2A68</string> + <string>1CC8E6A7069209BD00BB180A</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debugV3</string> + </dict> + </array> + <key>PerspectivesBarVisible</key> + <true/> + <key>ShelfIsVisible</key> + <false/> + <key>SourceDescription</key> + <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec'</string> + <key>StatusbarIsVisible</key> + <true/> + <key>TimeStamp</key> + <real>595634023.18682003</real> + <key>ToolbarConfigUserDefaultsMinorVersion</key> + <string>2</string> + <key>ToolbarDisplayMode</key> + <integer>1</integer> + <key>ToolbarIsVisible</key> + <true/> + <key>ToolbarSizeMode</key> + <integer>2</integer> + <key>Type</key> + <string>Perspectives</string> + <key>UpdateMessage</key> + <string></string> + <key>WindowJustification</key> + <integer>5</integer> + <key>WindowOrderList</key> + <array> + <string>8B0639D72380A76700606DBC</string> + <string>/Users/christopherjohnson/Desktop/Plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj</string> + </array> + <key>WindowString</key> + <string>620 386 810 487 0 0 1440 878 </string> + <key>WindowToolsV3</key> + <array> + <dict> + <key>Identifier</key> + <string>windowTool.debugger</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>Debugger</key> + <dict> + <key>HorizontalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {317, 164}}</string> + <string>{{317, 0}, {377, 164}}</string> + </array> + </dict> + <key>VerticalSplitView</key> + <dict> + <key>_collapsingFrameDimension</key> + <real>0.0</real> + <key>_indexOfCollapsedView</key> + <integer>0</integer> + <key>_percentageOfCollapsedView</key> + <real>0.0</real> + <key>isCollapsed</key> + <string>yes</string> + <key>sizes</key> + <array> + <string>{{0, 0}, {694, 164}}</string> + <string>{{0, 164}, {694, 216}}</string> + </array> + </dict> + </dict> + <key>LauncherConfigVersion</key> + <string>8</string> + <key>PBXProjectModuleGUID</key> + <string>1C162984064C10D400B95A72</string> + <key>PBXProjectModuleLabel</key> + <string>Debug - GLUTExamples (Underwater)</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>DebugConsoleDrawerSize</key> + <string>{100, 120}</string> + <key>DebugConsoleVisible</key> + <string>None</string> + <key>DebugConsoleWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>DebugSTDIOWindowFrame</key> + <string>{{200, 200}, {500, 300}}</string> + <key>Frame</key> + <string>{{0, 0}, {694, 380}}</string> + <key>RubberWindowFrame</key> + <string>321 238 694 422 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXDebugSessionModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Debugger</string> + <key>ServiceClasses</key> + <array> + <string>PBXDebugSessionModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1CD10A99069EF8BA00B06720</string> + <string>1C0AD2AB069F1E9B00FABCE6</string> + <string>1C162984064C10D400B95A72</string> + <string>1C0AD2AC069F1E9B00FABCE6</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debugV3</string> + <key>WindowString</key> + <string>321 238 694 422 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1CD10A99069EF8BA00B06720</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.build</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528F0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD052900623707200166675</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <integer>1</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {500, 215}}</string> + <key>RubberWindowFrame</key> + <string>192 257 500 500 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>218pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>XCMainBuildResultsModuleGUID</string> + <key>PBXProjectModuleLabel</key> + <string>Build Results</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 222}, {500, 236}}</string> + <key>RubberWindowFrame</key> + <string>192 257 500 500 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXBuildResultsModule</string> + <key>Proportion</key> + <string>236pt</string> + </dict> + </array> + <key>Proportion</key> + <string>458pt</string> + </dict> + </array> + <key>Name</key> + <string>Build Results</string> + <key>ServiceClasses</key> + <array> + <string>PBXBuildResultsModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C78EAA5065D492600B07095</string> + <string>1C78EAA6065D492600B07095</string> + <string>1CD0528F0623707200166675</string> + <string>XCMainBuildResultsModuleGUID</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.buildV3</string> + <key>WindowString</key> + <string>192 257 500 500 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.find</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CDD528C0622207200134675</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528D0623707200166675</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <integer>1</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {781, 167}}</string> + <key>RubberWindowFrame</key> + <string>62 385 781 470 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>781pt</string> + </dict> + </array> + <key>Proportion</key> + <string>50%</string> + </dict> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD0528E0623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>Project Find</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{8, 0}, {773, 254}}</string> + <key>RubberWindowFrame</key> + <string>62 385 781 470 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXProjectFindModule</string> + <key>Proportion</key> + <string>50%</string> + </dict> + </array> + <key>Proportion</key> + <string>428pt</string> + </dict> + </array> + <key>Name</key> + <string>Project Find</string> + <key>ServiceClasses</key> + <array> + <string>PBXProjectFindModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C530D57069F1CE1000CFCEE</string> + <string>1C530D58069F1CE1000CFCEE</string> + <string>1C530D59069F1CE1000CFCEE</string> + <string>1CDD528C0622207200134675</string> + <string>1C530D5A069F1CE1000CFCEE</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>1CD0528E0623707200166675</string> + </array> + <key>WindowString</key> + <string>62 385 781 470 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1C530D57069F1CE1000CFCEE</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.snapshots</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>XCSnapshotModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Snapshots</string> + <key>ServiceClasses</key> + <array> + <string>XCSnapshotModule</string> + </array> + <key>StatusbarIsVisible</key> + <string>Yes</string> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.snapshots</string> + <key>WindowString</key> + <string>315 824 300 550 0 0 1440 878 </string> + <key>WindowToolIsVisible</key> + <string>Yes</string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debuggerConsole</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAAC065D492600B07095</string> + <key>PBXProjectModuleLabel</key> + <string>Debugger Console</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {700, 358}}</string> + <key>RubberWindowFrame</key> + <string>149 87 700 400 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXDebugCLIModule</string> + <key>Proportion</key> + <string>358pt</string> + </dict> + </array> + <key>Proportion</key> + <string>358pt</string> + </dict> + </array> + <key>Name</key> + <string>Debugger Console</string> + <key>ServiceClasses</key> + <array> + <string>PBXDebugCLIModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C530D5B069F1CE1000CFCEE</string> + <string>1C530D5C069F1CE1000CFCEE</string> + <string>1C78EAAC065D492600B07095</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.consoleV3</string> + <key>WindowString</key> + <string>149 87 440 400 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1C530D5B069F1CE1000CFCEE</string> + <key>WindowToolIsVisible</key> + <integer>0</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.scm</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAB2065D492600B07095</string> + <key>PBXProjectModuleLabel</key> + <string><No Editor></string> + <key>PBXSplitModuleInNavigatorKey</key> + <dict> + <key>Split0</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1C78EAB3065D492600B07095</string> + </dict> + <key>SplitCount</key> + <string>1</string> + </dict> + <key>StatusBarVisibility</key> + <integer>1</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {452, 0}}</string> + <key>RubberWindowFrame</key> + <string>743 379 452 308 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>0pt</string> + </dict> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CD052920623707200166675</string> + <key>PBXProjectModuleLabel</key> + <string>SCM</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>ConsoleFrame</key> + <string>{{0, 259}, {452, 0}}</string> + <key>Frame</key> + <string>{{0, 7}, {452, 259}}</string> + <key>RubberWindowFrame</key> + <string>743 379 452 308 0 0 1280 1002 </string> + <key>TableConfiguration</key> + <array> + <string>Status</string> + <real>30</real> + <string>FileName</string> + <real>199</real> + <string>Path</string> + <real>197.09500122070312</real> + </array> + <key>TableFrame</key> + <string>{{0, 0}, {452, 250}}</string> + </dict> + <key>Module</key> + <string>PBXCVSModule</string> + <key>Proportion</key> + <string>262pt</string> + </dict> + </array> + <key>Proportion</key> + <string>266pt</string> + </dict> + </array> + <key>Name</key> + <string>SCM</string> + <key>ServiceClasses</key> + <array> + <string>PBXCVSModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1C78EAB4065D492600B07095</string> + <string>1C78EAB5065D492600B07095</string> + <string>1C78EAB2065D492600B07095</string> + <string>1CD052920623707200166675</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.scmV3</string> + <key>WindowString</key> + <string>743 379 452 308 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.breakpoints</string> + <key>IsVertical</key> + <integer>0</integer> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>PBXBottomSmartGroupGIDs</key> + <array> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXProjectModuleGUID</key> + <string>1CE0B1FE06471DED0097A5F4</string> + <key>PBXProjectModuleLabel</key> + <string>Files</string> + <key>PBXProjectStructureProvided</key> + <string>no</string> + <key>PBXSmartGroupTreeModuleColumnData</key> + <dict> + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> + <array> + <real>168</real> + </array> + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> + <array> + <string>MainColumn</string> + </array> + </dict> + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> + <dict> + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> + <array> + <string>1C77FABC04509CD000000102</string> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> + <array> + <array> + <integer>0</integer> + </array> + </array> + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> + <string>{{0, 0}, {168, 350}}</string> + </dict> + <key>PBXTopSmartGroupGIDs</key> + <array/> + <key>XCIncludePerspectivesSwitch</key> + <integer>0</integer> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{0, 0}, {185, 368}}</string> + <key>GroupTreeTableConfiguration</key> + <array> + <string>MainColumn</string> + <real>168</real> + </array> + <key>RubberWindowFrame</key> + <string>315 424 744 409 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>PBXSmartGroupTreeModule</string> + <key>Proportion</key> + <string>185pt</string> + </dict> + <dict> + <key>ContentConfiguration</key> + <dict> + <key>PBXProjectModuleGUID</key> + <string>1CA1AED706398EBD00589147</string> + <key>PBXProjectModuleLabel</key> + <string>Detail</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{{190, 0}, {554, 368}}</string> + <key>RubberWindowFrame</key> + <string>315 424 744 409 0 0 1440 878 </string> + </dict> + <key>Module</key> + <string>XCDetailModule</string> + <key>Proportion</key> + <string>554pt</string> + </dict> + </array> + <key>Proportion</key> + <string>368pt</string> + </dict> + </array> + <key>MajorVersion</key> + <integer>3</integer> + <key>MinorVersion</key> + <integer>0</integer> + <key>Name</key> + <string>Breakpoints</string> + <key>ServiceClasses</key> + <array> + <string>PBXSmartGroupTreeModule</string> + <string>XCDetailModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>TableOfContents</key> + <array> + <string>1CDDB66807F98D9800BB5817</string> + <string>1CDDB66907F98D9800BB5817</string> + <string>1CE0B1FE06471DED0097A5F4</string> + <string>1CA1AED706398EBD00589147</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.breakpointsV3</string> + <key>WindowString</key> + <string>315 424 744 409 0 0 1440 878 </string> + <key>WindowToolGUID</key> + <string>1CDDB66807F98D9800BB5817</string> + <key>WindowToolIsVisible</key> + <integer>1</integer> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.debugAnimator</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>PBXNavigatorGroup</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Debug Visualizer</string> + <key>ServiceClasses</key> + <array> + <string>PBXNavigatorGroup</string> + </array> + <key>StatusbarIsVisible</key> + <integer>1</integer> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.debugAnimatorV3</string> + <key>WindowString</key> + <string>100 100 700 500 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.bookmarks</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>PBXBookmarksModule</string> + <key>Proportion</key> + <string>166pt</string> + </dict> + </array> + <key>Proportion</key> + <string>166pt</string> + </dict> + </array> + <key>Name</key> + <string>Bookmarks</string> + <key>ServiceClasses</key> + <array> + <string>PBXBookmarksModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>WindowString</key> + <string>538 42 401 187 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.projectFormatConflicts</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>Module</key> + <string>XCProjectFormatConflictsModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Project Format Conflicts</string> + <key>ServiceClasses</key> + <array> + <string>XCProjectFormatConflictsModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>WindowContentMinSize</key> + <string>450 300</string> + <key>WindowString</key> + <string>50 850 472 307 0 0 1440 877</string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.classBrowser</string> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>ContentConfiguration</key> + <dict> + <key>OptionsSetName</key> + <string>Hierarchy, all classes</string> + <key>PBXProjectModuleGUID</key> + <string>1CA6456E063B45B4001379D8</string> + <key>PBXProjectModuleLabel</key> + <string>Class Browser - NSObject</string> + </dict> + <key>GeometryConfiguration</key> + <dict> + <key>ClassesFrame</key> + <string>{{0, 0}, {369, 96}}</string> + <key>ClassesTreeTableConfiguration</key> + <array> + <string>PBXClassNameColumnIdentifier</string> + <real>208</real> + <string>PBXClassBookColumnIdentifier</string> + <real>22</real> + </array> + <key>Frame</key> + <string>{{0, 0}, {616, 353}}</string> + <key>MembersFrame</key> + <string>{{0, 105}, {369, 395}}</string> + <key>MembersTreeTableConfiguration</key> + <array> + <string>PBXMemberTypeIconColumnIdentifier</string> + <real>22</real> + <string>PBXMemberNameColumnIdentifier</string> + <real>216</real> + <string>PBXMemberTypeColumnIdentifier</string> + <real>94</real> + <string>PBXMemberBookColumnIdentifier</string> + <real>22</real> + </array> + <key>PBXModuleWindowStatusBarHidden2</key> + <integer>1</integer> + <key>RubberWindowFrame</key> + <string>597 125 616 374 0 0 1280 1002 </string> + </dict> + <key>Module</key> + <string>PBXClassBrowserModule</string> + <key>Proportion</key> + <string>354pt</string> + </dict> + </array> + <key>Proportion</key> + <string>354pt</string> + </dict> + </array> + <key>Name</key> + <string>Class Browser</string> + <key>ServiceClasses</key> + <array> + <string>PBXClassBrowserModule</string> + </array> + <key>StatusbarIsVisible</key> + <integer>0</integer> + <key>TableOfContents</key> + <array> + <string>1C78EABA065D492600B07095</string> + <string>1C78EABB065D492600B07095</string> + <string>1CA6456E063B45B4001379D8</string> + </array> + <key>ToolbarConfiguration</key> + <string>xcode.toolbar.config.classbrowser</string> + <key>WindowString</key> + <string>597 125 616 374 0 0 1280 1002 </string> + </dict> + <dict> + <key>Identifier</key> + <string>windowTool.refactoring</string> + <key>IncludeInToolsMenu</key> + <integer>0</integer> + <key>Layout</key> + <array> + <dict> + <key>Dock</key> + <array> + <dict> + <key>BecomeActive</key> + <integer>1</integer> + <key>GeometryConfiguration</key> + <dict> + <key>Frame</key> + <string>{0, 0}, {500, 335}</string> + <key>RubberWindowFrame</key> + <string>{0, 0}, {500, 335}</string> + </dict> + <key>Module</key> + <string>XCRefactoringModule</string> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Proportion</key> + <string>100%</string> + </dict> + </array> + <key>Name</key> + <string>Refactoring</string> + <key>ServiceClasses</key> + <array> + <string>XCRefactoringModule</string> + </array> + <key>WindowString</key> + <string>200 200 500 356 0 0 1920 1200 </string> + </dict> + </array> +</dict> +</plist> diff --git a/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/project.pbxproj b/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/project.pbxproj new file mode 100755 index 0000000..b874a8f --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbs.xcodeproj/project.pbxproj @@ -0,0 +1,490 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */; }; + 3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */; }; + 3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */; }; + 8B4119B70749654200361ABE /* PocketVerbs.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* PocketVerbs.r */; }; + 8BA05A6B0720730100365D66 /* PocketVerbs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* PocketVerbs.cpp */; }; + 8BA05A6E0720730100365D66 /* PocketVerbsVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* PocketVerbsVersion.h */; }; + 8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A7F072073D200365D66 /* AUBase.cpp */; }; + 8BA05AAF072073D300365D66 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A80072073D200365D66 /* AUBase.h */; }; + 8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A81072073D200365D66 /* AUDispatch.cpp */; }; + 8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A82072073D200365D66 /* AUDispatch.h */; }; + 8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A83072073D200365D66 /* AUInputElement.cpp */; }; + 8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A84072073D200365D66 /* AUInputElement.h */; }; + 8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A85072073D200365D66 /* AUOutputElement.cpp */; }; + 8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A86072073D200365D66 /* AUOutputElement.h */; }; + 8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A88072073D200365D66 /* AUScopeElement.cpp */; }; + 8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A89072073D200365D66 /* AUScopeElement.h */; }; + 8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A8A072073D200365D66 /* ComponentBase.cpp */; }; + 8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A8B072073D200365D66 /* ComponentBase.h */; }; + 8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */; }; + 8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A9B072073D200365D66 /* AUEffectBase.h */; }; + 8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA7072073D200365D66 /* AUBuffer.cpp */; }; + 8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AA8072073D200365D66 /* AUBuffer.h */; }; + 8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */; }; + 8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */; }; + 8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */; }; + 8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */; }; + 8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */; }; + 8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */; }; + 8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */; }; + 8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE10720742100365D66 /* CAMutex.cpp */; }; + 8BA05AE80720742100365D66 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE20720742100365D66 /* CAMutex.h */; }; + 8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */; }; + 8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */; }; + 8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; }; + 8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; }; + 8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; }; + 8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05B050720754400365D66 /* CAAUParameter.cpp */; }; + 8BA05B080720754400365D66 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05B060720754400365D66 /* CAAUParameter.h */; }; + 8BC6025C073B072D006C4272 /* PocketVerbs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* PocketVerbs.h */; }; + 8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; }; + F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */; }; + F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; + 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; }; + 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; }; + 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; }; + 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; + 8BA05A660720730100365D66 /* PocketVerbs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PocketVerbs.cpp; sourceTree = "<group>"; }; + 8BA05A670720730100365D66 /* PocketVerbs.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = PocketVerbs.exp; sourceTree = "<group>"; }; + 8BA05A680720730100365D66 /* PocketVerbs.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = PocketVerbs.r; sourceTree = "<group>"; }; + 8BA05A690720730100365D66 /* PocketVerbsVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PocketVerbsVersion.h; sourceTree = "<group>"; }; + 8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; }; + 8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; }; + 8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; }; + 8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; }; + 8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; }; + 8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; }; + 8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; }; + 8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; }; + 8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; }; + 8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; }; + 8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; }; + 8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; }; + 8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; }; + 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; }; + 8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; }; + 8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; }; + 8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; }; + 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = "<group>"; }; + 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = "<group>"; }; + 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; }; + 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; }; + 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; }; + 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; }; + 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; }; + 8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; }; + 8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; }; + 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; }; + 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; }; + 8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; }; + 8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; }; + 8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; }; + 8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; }; + 8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; }; + 8BC6025B073B072D006C4272 /* PocketVerbs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PocketVerbs.h; sourceTree = "<group>"; }; + 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; + 8D01CCD20486CAD60068D4B7 /* PocketVerbs.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PocketVerbs.component; sourceTree = BUILT_PRODUCTS_DIR; }; + F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUBaseHelper.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.cpp; sourceTree = SYSTEM_DEVELOPER_DIR; }; + F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUBaseHelper.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.h; sourceTree = SYSTEM_DEVELOPER_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D01CCCD0486CAD60068D4B7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */, + 8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */, + 8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 089C166AFE841209C02AAC07 /* PocketVerbs */ = { + isa = PBXGroup; + children = ( + 08FB77ADFE841716C02AAC07 /* Source */, + 089C167CFE841241C02AAC07 /* Resources */, + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB4FE9D528D11CA2CBB /* Products */, + ); + name = PocketVerbs; + sourceTree = "<group>"; + }; + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */, + 8BA05B01072074F900365D66 /* CoreServices.framework */, + 8BA05AF9072074E100365D66 /* AudioToolbox.framework */, + 8BA05AFA072074E100365D66 /* AudioUnit.framework */, + ); + name = "External Frameworks and Libraries"; + sourceTree = "<group>"; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 8D01CCD10486CAD60068D4B7 /* Info.plist */, + 089C167DFE841241C02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = "<group>"; + }; + 08FB77ADFE841716C02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 8BA05A56072072A900365D66 /* AU Source */, + 8BA05AEB0720742700365D66 /* PublicUtility */, + 8BA05A7D072073D200365D66 /* AUPublic */, + ); + name = Source; + sourceTree = "<group>"; + }; + 19C28FB4FE9D528D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D01CCD20486CAD60068D4B7 /* PocketVerbs.component */, + ); + name = Products; + sourceTree = "<group>"; + }; + 8BA05A56072072A900365D66 /* AU Source */ = { + isa = PBXGroup; + children = ( + 8BC6025B073B072D006C4272 /* PocketVerbs.h */, + 8BA05A660720730100365D66 /* PocketVerbs.cpp */, + 8BA05A670720730100365D66 /* PocketVerbs.exp */, + 8BA05A680720730100365D66 /* PocketVerbs.r */, + 8BA05A690720730100365D66 /* PocketVerbsVersion.h */, + ); + name = "AU Source"; + sourceTree = "<group>"; + }; + 8BA05A7D072073D200365D66 /* AUPublic */ = { + isa = PBXGroup; + children = ( + 8BA05A7E072073D200365D66 /* AUBase */, + 8BA05A99072073D200365D66 /* OtherBases */, + 8BA05AA6072073D200365D66 /* Utility */, + ); + name = AUPublic; + path = Extras/CoreAudio/AudioUnits/AUPublic; + sourceTree = SYSTEM_DEVELOPER_DIR; + }; + 8BA05A7E072073D200365D66 /* AUBase */ = { + isa = PBXGroup; + children = ( + 8BA05A7F072073D200365D66 /* AUBase.cpp */, + 8BA05A80072073D200365D66 /* AUBase.h */, + 8BA05A81072073D200365D66 /* AUDispatch.cpp */, + 8BA05A82072073D200365D66 /* AUDispatch.h */, + 8BA05A83072073D200365D66 /* AUInputElement.cpp */, + 8BA05A84072073D200365D66 /* AUInputElement.h */, + 8BA05A85072073D200365D66 /* AUOutputElement.cpp */, + 8BA05A86072073D200365D66 /* AUOutputElement.h */, + 8BA05A87072073D200365D66 /* AUResources.r */, + 8BA05A88072073D200365D66 /* AUScopeElement.cpp */, + 8BA05A89072073D200365D66 /* AUScopeElement.h */, + 8BA05A8A072073D200365D66 /* ComponentBase.cpp */, + 8BA05A8B072073D200365D66 /* ComponentBase.h */, + ); + path = AUBase; + sourceTree = "<group>"; + }; + 8BA05A99072073D200365D66 /* OtherBases */ = { + isa = PBXGroup; + children = ( + 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */, + 8BA05A9B072073D200365D66 /* AUEffectBase.h */, + ); + path = OtherBases; + sourceTree = "<group>"; + }; + 8BA05AA6072073D200365D66 /* Utility */ = { + isa = PBXGroup; + children = ( + F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */, + F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */, + 8BA05AA7072073D200365D66 /* AUBuffer.cpp */, + 8BA05AA8072073D200365D66 /* AUBuffer.h */, + 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */, + 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */, + 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */, + 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */, + 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */, + ); + path = Utility; + sourceTree = "<group>"; + }; + 8BA05AEB0720742700365D66 /* PublicUtility */ = { + isa = PBXGroup; + children = ( + 8BA05B050720754400365D66 /* CAAUParameter.cpp */, + 8BA05B060720754400365D66 /* CAAUParameter.h */, + 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */, + 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */, + 8BA05AE10720742100365D66 /* CAMutex.cpp */, + 8BA05AE20720742100365D66 /* CAMutex.h */, + 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */, + 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */, + 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */, + 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */, + 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */, + ); + name = PublicUtility; + path = Extras/CoreAudio/PublicUtility; + sourceTree = SYSTEM_DEVELOPER_DIR; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8D01CCC70486CAD60068D4B7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 8BA05A6E0720730100365D66 /* PocketVerbsVersion.h in Headers */, + 8BA05AAF072073D300365D66 /* AUBase.h in Headers */, + 8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */, + 8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */, + 8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */, + 8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */, + 8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */, + 8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */, + 8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */, + 8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */, + 8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */, + 8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */, + 8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */, + 8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */, + 8BA05AE80720742100365D66 /* CAMutex.h in Headers */, + 8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */, + 8BA05B080720754400365D66 /* CAAUParameter.h in Headers */, + 8BC6025C073B072D006C4272 /* PocketVerbs.h in Headers */, + 3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */, + 3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */, + F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8D01CCC60486CAD60068D4B7 /* PocketVerbs */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "PocketVerbs" */; + buildPhases = ( + 8D01CCC70486CAD60068D4B7 /* Headers */, + 8D01CCC90486CAD60068D4B7 /* Resources */, + 8D01CCCB0486CAD60068D4B7 /* Sources */, + 8D01CCCD0486CAD60068D4B7 /* Frameworks */, + 8D01CCCF0486CAD60068D4B7 /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PocketVerbs; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = PocketVerbs; + productReference = 8D01CCD20486CAD60068D4B7 /* PocketVerbs.component */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 089C1669FE841209C02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "PocketVerbs" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 089C166AFE841209C02AAC07 /* PocketVerbs */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D01CCC60486CAD60068D4B7 /* PocketVerbs */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D01CCC90486CAD60068D4B7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + 8D01CCCF0486CAD60068D4B7 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + 8B4119B70749654200361ABE /* PocketVerbs.r in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D01CCCB0486CAD60068D4B7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8BA05A6B0720730100365D66 /* PocketVerbs.cpp in Sources */, + 8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */, + 8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */, + 8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */, + 8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */, + 8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */, + 8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */, + 8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */, + 8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */, + 8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */, + 8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */, + 8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */, + 8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */, + 8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */, + 3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */, + F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C167EFE841241C02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = "<group>"; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 3E4BA244089833B7007656EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + EXPORTED_SYMBOLS_FILE = PocketVerbs.exp; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GENERATE_PKGINFO_FILE = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; + LIBRARY_STYLE = Bundle; + OTHER_LDFLAGS = "-bundle"; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\""; + PRODUCT_NAME = PocketVerbs; + WRAPPER_EXTENSION = component; + }; + name = Debug; + }; + 3E4BA245089833B7007656EC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + x86_64, + ); + EXPORTED_SYMBOLS_FILE = PocketVerbs.exp; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GENERATE_PKGINFO_FILE = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; + LIBRARY_STYLE = Bundle; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_LDFLAGS = "-bundle"; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\""; + PRODUCT_NAME = PocketVerbs; + SDKROOT = macosx10.5; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = all; + WRAPPER_EXTENSION = component; + }; + name = Release; + }; + 3E4BA248089833B7007656EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = c99; + SDKROOT = macosx10.6; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + }; + name = Debug; + }; + 3E4BA249089833B7007656EC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = c99; + SDKROOT = macosx10.6; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "PocketVerbs" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA244089833B7007656EC /* Debug */, + 3E4BA245089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "PocketVerbs" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3E4BA248089833B7007656EC /* Debug */, + 3E4BA249089833B7007656EC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/plugins/MacAU/PocketVerbs/PocketVerbsVersion.h b/plugins/MacAU/PocketVerbs/PocketVerbsVersion.h new file mode 100755 index 0000000..b05ac2d --- /dev/null +++ b/plugins/MacAU/PocketVerbs/PocketVerbsVersion.h @@ -0,0 +1,58 @@ +/* +* File: PocketVerbsVersion.h +* +* Version: 1.0 +* +* Created: 8/19/12 +* +* Copyright: Copyright © 2012 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 __PocketVerbsVersion_h__ +#define __PocketVerbsVersion_h__ + + +#ifdef DEBUG + #define kPocketVerbsVersion 0xFFFFFFFF +#else + #define kPocketVerbsVersion 0x00010000 +#endif + +//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~// +#define PocketVerbs_COMP_MANF 'Dthr' +#define PocketVerbs_COMP_SUBTYPE 'pkvb' +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// + +#endif + diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/categories.pbxbtree b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/categories.pbxbtree Binary files differnew file mode 100755 index 0000000..d3f6bb3 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/categories.pbxbtree diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/cdecls.pbxbtree b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/cdecls.pbxbtree Binary files differnew file mode 100755 index 0000000..4821b57 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/cdecls.pbxbtree diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/decls.pbxbtree b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/decls.pbxbtree Binary files differnew file mode 100755 index 0000000..4a40b5d --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/decls.pbxbtree diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/files.pbxbtree b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/files.pbxbtree Binary files differnew file mode 100755 index 0000000..f9bccaa --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/files.pbxbtree diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/imports.pbxbtree b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/imports.pbxbtree Binary files differnew file mode 100755 index 0000000..9d9ec0a --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/imports.pbxbtree diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/pbxindex.header b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/pbxindex.header Binary files differnew file mode 100755 index 0000000..6131daa --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/pbxindex.header diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/protocols.pbxbtree b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/protocols.pbxbtree Binary files differnew file mode 100755 index 0000000..d3f6bb3 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/protocols.pbxbtree diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/refs.pbxbtree b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/refs.pbxbtree Binary files differnew file mode 100755 index 0000000..aca451d --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/refs.pbxbtree diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/strings.pbxstrings/control b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/strings.pbxstrings/control Binary files differnew file mode 100755 index 0000000..d0d3ded --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/strings.pbxstrings/control diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/strings.pbxstrings/strings b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/strings.pbxstrings/strings Binary files differnew file mode 100755 index 0000000..8c8a0b1 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/strings.pbxstrings/strings diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/subclasses.pbxbtree b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/subclasses.pbxbtree Binary files differnew file mode 100755 index 0000000..712f37a --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/subclasses.pbxbtree diff --git a/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/symbols0.pbxsymbols b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/symbols0.pbxsymbols Binary files differnew file mode 100755 index 0000000..46e93f5 --- /dev/null +++ b/plugins/MacAU/PocketVerbs/build/PocketVerbs.build/PocketVerbs.pbxindex/symbols0.pbxsymbols diff --git a/plugins/MacAU/PocketVerbs/version.plist b/plugins/MacAU/PocketVerbs/version.plist new file mode 100755 index 0000000..11edf8a --- /dev/null +++ b/plugins/MacAU/PocketVerbs/version.plist @@ -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> |