Merge branch 'airwindows:master' into master

This commit is contained in:
Andrew Ostler 2025-05-14 09:25:23 +01:00 committed by GitHub
commit bcc55eca1d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
163 changed files with 47565 additions and 3 deletions

View file

@ -25,7 +25,7 @@ Distortion: Distortion, Edge, Dirt, Mackity, ZOutputStage, Density2, Zoom, Densi
Dithers: Dark, PaulWide, PaulDither, TPDFWide, TPDFDither, NotJustAnotherDither, NotJustAnotherCD, Beam, TapeDither, SpatializeDither, VinylDither, DoublePaul, Ditherbox, BuildATPDF, NodeDither, StudioTan, DitherMeTimbers, DitherMeDiskers, RawTimbers, RawGlitters, NaturalizeDither, HighGlossDither, DitherFloat
Dynamics: Pop3, Pop2, Pressure5, StoneFireComp, Dynamics, Pop, DigitalBlack, Logical4, VariMu, ButterComp2, curve, Overheads, Recurve, Pyewacket, BlockParty, SoftGate, Thunder, Compresaturator, DrumSlam, ButterComp, BrassRider, Point, Gatelope, PodcastDeluxe, Podcast, Swell, PurestSquish, Pressure4, Surge, SurgeTide
Dynamics: BeziComp, Pop3, Pop2, Pressure5, StoneFireComp, Dynamics, Pop, DigitalBlack, Logical4, VariMu, ButterComp2, curve, Overheads, Recurve, Pyewacket, BlockParty, SoftGate, Thunder, Compresaturator, DrumSlam, ButterComp, BrassRider, Point, Gatelope, PodcastDeluxe, Podcast, Swell, PurestSquish, Pressure4, Surge, SurgeTide
Effects: RingModulator, Dubly3, Dubly2, GalacticVibe, CloudCoat, Disintegrate, Fracture2, Dubly, Pafnuty2, PitchNasty, Trianglizer, ShortBuss, GuitarConditioner, Aura, TremoSquare, Tremolo, GlitchShifter, Gringer, Exciter, Energy2, Energy, Facet, Fracture, PowerSag2, PowerSag, Preponderant, Nikola
@ -35,7 +35,7 @@ Lo-Fi: Flutter2, DeRez3, Pockey2, CrunchyGrooveWear, GrooveWear, Pockey, Flutter
Noise: Noise, Texturize, TexturizeMS, VoiceOfTheStarship, DarkNoise, ElectroHat, Silhouette, TapeDust
Reverb: Galactic3, kCathedral3, kPlate140, kPlate240, CreamCoat, kGuitarHall, kPlateD, kPlateB, kPlateA, kPlateC, CrunchCoat, kCathedral2, Verbity2, Galactic, Galactic2, Verbity, Chamber2, Chamber, Infinity2, NonlinearSpace, kCathedral, Infinity, MatrixVerb, PocketVerbs, Reverb
Reverb: kCosmos, Galactic3, kCathedral3, kPlate140, kPlate240, CreamCoat, kGuitarHall, kPlateD, kPlateB, kPlateA, kPlateC, CrunchCoat, kCathedral2, Verbity2, Galactic, Galactic2, Verbity, Chamber2, Chamber, Infinity2, NonlinearSpace, kCathedral, Infinity, MatrixVerb, PocketVerbs, Reverb
Saturation: SquareRoot, Hypersoft, Creature, Huge, NCSeventeen, Tube2, Tube, Spiral2, PurestDrive, Focus, Mojo, Dyno, Spiral, UnBox, Desk4, Righteous4
@ -47,7 +47,7 @@ Tape: ToTape8, ToTape7, ToTape6, FromTape, Tape, IronOxideClassic2, IronOxide5,
Tone Color: BussColors4, Channel9, Apicolypse, Neverland, Elation, Calibre, Cider, Crystal, Precious, Luxor, Channel8, Channel7, Channel6, Channel5, Channel4
Utility: DubPlate2, DubPlate, CansAW, Cans, Monitoring3, Monitoring2, Monitoring, BitShiftPan, BitShiftGain, PurestGain, PurestFade, EveryTrim, HermeTrim, SlewOnly, SubsOnly, PeaksOnly, Golem, DCVoltage, LRConvolve2, LRConvolve, EdIsDim, MidSide, uLawEncode, uLawDecode, RightoMono, LeftoMono, Balanced, Flipity, MoNoam, VoiceTrick, ContentHideD
Utility: SoftClock, DubPlate2, DubPlate, CansAW, Cans, Monitoring3, Monitoring2, Monitoring, BitShiftPan, BitShiftGain, PurestGain, PurestFade, EveryTrim, HermeTrim, SlewOnly, SubsOnly, PeaksOnly, Golem, DCVoltage, LRConvolve2, LRConvolve, EdIsDim, MidSide, uLawEncode, uLawDecode, RightoMono, LeftoMono, Balanced, Flipity, MoNoam, VoiceTrick, ContentHideD
XYZ Filters: ZBandpass2, ZHighpass2, ZLowpass2, ZNotch2, ZRegion2, ZBandpass, ZHighpass, ZLowpass, ZNotch, ZRegion, YBandpass, YNotBandpass, YHighpass, YNotHighpass, YLowpass, YNotLowpass, YNotch, YNotNotch, XBandpass. XHighpass, XLowpass, XNotch, XRegion
@ -351,6 +351,32 @@ And then dial it back to as subtle as you like, simply by making Treble, Mid and
Have fun and don't say I didn't warn you :)
############ BeziComp is a radical compressor that eliminates aliasing!
Funny how many of my Bezier curve experiments make plugins with powerful weird colorations… and then, this one is the opposite.
Or at least, appears to be the opposite… until you dig a little deeper, and unleash the madness.
So this is an experiment. The full range of the experiment is available, meaning 'good' settings might occupy small and fussy settings on the controls. It's Bezier curves as the result of literal sound density, so it's a compressor without attack or release, just a curve that goes wild based on what's under it, audio-wise. There are three controls that can either harness this, or just turn it loose to be weird and unexpected.
Comp drives the Bezier curve: it acts like your threshold. Everything you do ends up interacting not so much with 'compressed level', as if you can set the threshold and it'll be smoothly compressed below it… no, BeziComp works largely with HOW you hit this threshold and interact with it, because if you crank Comp way up it will wrap around not to a flat amplitude, but silence. That's intentional, because the output is meant to work with what you might call a 'live' curve rather than flatten things into a featureless dynamic line. So there's a start: Comp is how much BeziComp reacts, but it flattens out to silence, not audio, so you keep Comp in check (unless you are specifically just isolating attacks in Wet using this behavior).
Speed is basically DeRez, except the range goes way deeper into subsonic frequencies than usual. It still goes way up into the audio band if you like. The key here is, this sets the energy level of the Bezier curve based on a loudness window that's directly related to the Bezier curve itself. So in theory, it would smooth things out completely, except we often don't use compressors for that, do we? We slow attacks and speed releases to get sonic effects. Turns out that's what happens here, because as BeziComp reacts, the reaction is slowed by having to analyse the audio, and so as you slow it more you get a broader and broader attack on the sound. If Speed is high, it's real twitchy and will jump on transients quickly, but if Speed is real slow, you have a slower 'swing' that can be timed to a beat and used to accentuate the groove. So far, basically normal (ish).
Dry/Wet is basically your ratio control, but extra. Since BeziComp wraps around to dynamically invert, Dry/Wet is the only way you can get continued sound if you're pushing Comp real hard. Anything over about halfway gets you into territories that act like vari-mu tones: the 'squish' abilities here are very extreme. Even when keeping Comp and Speed in check, when using BeziComp on something like mix buss, it will probably still be almost all Dry, because that's the only way you can force it to have a relatively low ratio. Expect to not use full Wet in many cases, treat it like full wet is sort of 'isolated delta of the effect', a more exaggerated version of what you want.
Now, here's where things start to go off the rails a bit.
BeziComp is modulating a Bezier curve, not following an attack and release. Speed does profoundly affect this, but not in the sense of setting a maximum speed for the behavior, instead it fixes a tightest corner with which the curve can TURN… and it's constantly willing to use that sharpest corner, and it will apply that corner to anything.
That means if you have full silence followed by full density, BeziComp will attack harder and compress more than if you have just as hot a peak, but less audio behind it. It is NOT a limiter, or even a normal compressor, If you have loud audio and then sudden silence, it will begin swooping up in loudness not instantly, but on the same curve (and minimum curve radius) and then it's gonna put another curve radius on there as it hits silence, rather than simply 'switching' to full volume.
This means BeziComp is more free from aliasing than any other compressor, period, even at high Speed settings. Nothing you do can make it suddenly hit the threshold and start to turn down. The amplitude modulation IS the Bezier curve, meaning it can only contain harmonics below what you set, meaning no matter what you do it can't produce an artifact over its own curve radius. And at low Speed settings, that radius is VERY wide.
So, BeziComp is both able to make unexpected moves (since its maximum gain-change speed is not an Attack or Release, but whatever its Bezier curve allows it to do) and also hard to hear (because you can't go by artifacts, there are none). It's disgustingly transparent but also capable of being quirky and throwing odd bursts of loudness or silence in there. No matter how extreme you make it act, it hides the extremeness through using the Bezier curve on dynamic modulation… and no matter how well it hides its moves, it's still capable of unexpected quirks, because of that fact that the attack and release speeds aren't really just 'speeds' but curve radiuses.
We're not used to using compressors that do that. Time we learned, because I think it'll be good :)
############ BigAmp is a very flexible amplike thing with a taste for the bizarre.
Lets go a little farther! BigAmp steps even farther away from what you might call realistic amp sim behavior. Its more like the Z series filters, or perhaps the X filters: you can make it act sort of normal, but it also lets you twist the knobs way beyond whats realistic. So, you can use BigAmp for layering, or to supplement a sound, or just do strange things. Theres one more amp sim before I get into other, different plugins (and indeed different whole things like the sample instruments Im developing, as heard in Skronk and these demos) but BigAmp is perhaps the widest-ranging of the lot.
@ -3061,6 +3087,25 @@ Oh… because the delay works like you're speeding up the tape more and more, if
I'll have more legit stuff coming soon. For now, have fun with the new monstrosity. It won't behave, but nothing you have will make noises like it, and that's always part of what I do :)
############ kCosmos is infinite space ambient, or titanic hall.
It's not the first time I've tried to make a space ambient type reverb, but there are a number of firsts here nevertheless.
kCosmos uses the 5x5 Householder matrix design I've used in recent reverbs like kGuitarHall, but rather than just finding a new arrangement of delays, it's riding a wave of new developments in reverb development. Rather than taking days to evaluate ten or a hundred thousand possible reverbs before critical listening, I revamped the program I was using, to hundreds of MILLIONS per night. Since the method is not unlike the genetic algorithm in that it's trying variations against fitness functions, this wildly improved tone quality.
I went from evaluating recurring delay lengths based on where they were in the reverb tail, to mapping out spacings between echo returns, and evaluating the distribution of these spacings. This changed the whole texture of the reverbs from 'artifical' to more of a natural, invisible spaciousness that blends in better.
And I went from running an extra 3x3 matrix just for early reflections, to running no early reflections at all, to running a whole other parallel unfiltered 5x5 matrix… JUST for early reflections. That's the EarlyRF slider, which can be used in conjuction with Dry/Wet, predelay, and the Filter control, to help transition from the raw sounds to the deep reverb space.
I've added an FIR brickwall filter for the main regenerating section (though not inside the regeneration) and worked out my own sinc interpolation, and have a plugin coming along those lines, and used it for the regenerating filter section. I've included a simple averaging for non-full-crank settings of this filter, so kCosmos can switch on the fly between extended highs at infinite sustain, and a maximal-depth version that gradually loses highs in a way that sounds like distance.
And I've refined the concept of 'gradually restraining the infinite sustain when new audio is coming in', so that in normal use as an infinite verb, you can layer stuff all day without the reverb running away with you. It's so effective that subtle noises can have a slight feedback bias: when you start with very quiet layers, they will creep up in volume to about -18 dB total, at which point they'll balance. So it's an infinite reverb specifically designed for live performace as an ambient musician doing deep space explorations, and it'll adapt to the way you play audio into it.
And lastly it has both CreamCoat style undersampling, and CrunchCoat style, at the same time. Meaning, set to full crank it uses the CreamCoat method for applying Bezier undersampling without artifacts, and as soon as you go away from Derez of 1.0, it switches to the continuous adjustment range of CrunchCoat, sometimes described as 'cursed digital derezzing'. Except this time, the Derez control is control-smoothed, and use of the filter tends to mask the 'cursed' quality completely. It's just that the giant reverbing space can be cleanly pitched up and down as you go, or dropped to an eerie rumble and murmur.
There will be further experiments, but kCosmos stakes out a position as the most epic (and playable) Airwindows reverb. I hope you like it :)
############ kGuitarHall accentuates loud midrange skronk!
What if reverb, but skronk?
@ -4501,6 +4546,38 @@ SmoothEQ is a simple three-band version of this. Now that I know I can do it, I
It's going to be fun running with this technique and making stuff sound better, and I hope you like SmoothEQ :)
############ SoftClock is a groove-oriented time reference.
By special request, here's SoftClock before I can properly demo and use it. I'll have to play catch-up!
SoftClock is a timing reference, like a click track… but far more powerful, because it does not synchronize machines so much as it synchronizes HUMANS. You put it on an unused track, and route it to another track AS AUDIO which you then record, in the arrange window as just another audio file. This can be done as you lay down an initial track while listening to the SoftClock output.
What's the noise it makes? Frequency swoops, of a tone. It doesn't turn on and off, there's no attack or decay… a continuous tone which drops in volume as the pitch drops, but otherwise is just a drone… and this is your new click track.
The next question is 'for the love of God, why would you do such a thing?' Because not only is this not a percussive sound, it doesn't even have a definable attack, and yet it proposes to replace click tracks, and in fact wants to become a timing reference for a world of 'human played' music where nothing is snapped to grid. There will be no grid, just human-played tracks riffing over SoftClock.
The reason is, Entrainment. The 'swoop' of the tone mimicks the swing of a drummer's arm, or the strum of a guitar… or a dancer's body. It's digitally accurate, but directs the listener not toward an inhumanly accurate 'tick' but towards a motion… and when many players are moving in synchrony, that's when you have a powerful groove.
But there's more. It's also a reference to where you are in the bar. The non-accented beats ebb down to a lower tone, and then ramp up again toward the One, which is the loudest and highest-pitched swoop of the tone. The amount of variation can be controlled, as can the basic pitch. Bear in mind the volume does modulate, but not in such a way as to produce an attack, even at the fastest speed settings. You dial it in to mimic the motion of your body playing, whether that's groovy or laid-back or hammering, and the non-accented beats always show you where you are in the bar, in an easy-to-hear way, even if the beats are themselves swung or the backbeat is slowed to add weight and bombast.
What about those accented beats? Firstly, they're louder and higher-pitched, but they're also spaced out in an interesting way. You see, SoftClock can give you 4/4, or eighth notes, or four bars of 4/4… but it will also give you odd times beyond your humble sevens and elevens. It'll give variations on funny times when you've gone beyond 4/4. Here's the list, and how they're counted:
1, 2, and 3 are counted as you'd expect. 4 is counted as 2,2. 5 is counted as 3,2 (in other words: one two three one two, with one being the accent). 6 is 3-3, and 7 is counted backwards from how Pink Floyd's 'Money' had it: 4-3, one two three four one two three. 8 is 4-4, 9 is 3-3-3, 10 is 5-5.
Then things get more complicated. Note that Count numbers 8, 16, 24 and 32 are reserved for 4/4 with accents every eight beats, so you can have normal time but hear the unaccented beats guide you around one, two, three or four bars and highlight the first One.
11 is counted four ways: 3332, 443, 551, 65.
13 is counted three ways: 3334, 445, 553.
17 is counted four ways: 44441, 5552, 773, 881.
19 is counted four ways: 44443, 5554, 775, 883.
23 is counted four ways: 444443, 5558, 7772, 887.
Count the accents and they'll come in these spacings. It's options for 'sub-phrases', repetitions or modulations up front and a variation for a turn-around, orienting you to the odd rhythm. The idea is for the repetitions to themselves be easily countable, and ideally seem to fit into a 'four sections but one is different' or 'three sections but one is different' model.
This is in line with a music arrangement game I've been developing that's more likely to see life as a video-game now than as the card game I'd intended. Point being, SoftClock can do normal metronome things (except using entrainment rather than ticking at you) and orientation things as far as locating you in the bar, but it can also combine all that into a baffling proggy rhythm that nevertheless guides you into grooving and memorable riffs of many kinds. If the standard variations on freaky prime-numbered prog-meters aren't enough, you can play with Swing and the delay of BigBeat (accented beats) until you've gone full Beefheart: or, rather, full Magic Band and John French drum parts.
Dive as deep as you like, or keep it more simple: SoftClock has you covered. You may be surprised at how much easier it is to hear, entrain, and orient yourself when using a click track that refuses to click. Remember, lay it down as a track, don't try to match it to a normal click, don't grid anything! SoftClock is for gridless grooves, and music that sounds human because it moves like humans. See how it feels.
############ SoftGate is a gate that can mute hiss and smooth sample tails.
Hi! Todays Airwindows tool is for sample makers (though you could use in in a mix if you really wanted to, or abuse it for special effects). Its called SoftGate.

View file

@ -73,6 +73,7 @@ add_airwindows_plugin(Channel6)
add_airwindows_plugin(Channel7)
add_airwindows_plugin(Channel8)
add_airwindows_plugin(Channel9)
add_airwindows_plugin(ChimeyGuitar)
add_airwindows_plugin(Chorus)
add_airwindows_plugin(ChorusEnsemble)
add_airwindows_plugin(ChromeOxide)
@ -243,6 +244,7 @@ add_airwindows_plugin(kCathedral)
add_airwindows_plugin(kCathedral2)
add_airwindows_plugin(kCathedral3)
add_airwindows_plugin(kChamberAR)
add_airwindows_plugin(kCosmos)
add_airwindows_plugin(kGuitarHall)
add_airwindows_plugin(kPlate140)
add_airwindows_plugin(kPlate240)

View file

@ -0,0 +1,216 @@
/* ========================================
* ChimeyGuitar - ChimeyGuitar.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ChimeyGuitar_H
#include "ChimeyGuitar.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new ChimeyGuitar(audioMaster);}
ChimeyGuitar::ChimeyGuitar(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.8;
C = 0.7;
D = 0.5;
E = 0.7;
F = 0.4;
G = 0.8;
H = 0.4;
I = 0.3;
J = 1.0;
for(int x=0; x<21; x++) {
for(int y=0; y<11; y++) {
angSL[x][y] = 0.0;angAL[x][y] = 0.0;
angSR[x][y] = 0.0;angAR[x][y] = 0.0;
}
}
for(int y=0; y<11; y++) {
angG[y] = 0.0;
for (int x = 0; x < bez_total; x++) {bezComp[x][y] = 0.0;}
bezComp[bez_cycleL][y] = 1.0;
bezComp[bez_cycleR][y] = 1.0;
}
bezRezA = bezRezB = 0.0002;
for(int count = 0; count < 36; count++) {
iirHPositionL[count] = 0.0;
iirHAngleL[count] = 0.0;
iirBPositionL[count] = 0.0;
iirBAngleL[count] = 0.0;
iirHPositionR[count] = 0.0;
iirHAngleR[count] = 0.0;
iirBPositionR[count] = 0.0;
iirBAngleR[count] = 0.0;
}
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
ChimeyGuitar::~ChimeyGuitar() {}
VstInt32 ChimeyGuitar::getVendorVersion () {return 1000;}
void ChimeyGuitar::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void ChimeyGuitar::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
static float pinParameter(float data)
{
if (data < 0.0f) return 0.0f;
if (data > 1.0f) return 1.0f;
return data;
}
VstInt32 ChimeyGuitar::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
chunkData[4] = E;
chunkData[5] = F;
chunkData[6] = G;
chunkData[7] = H;
chunkData[8] = I;
chunkData[9] = J;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 ChimeyGuitar::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
D = pinParameter(chunkData[3]);
E = pinParameter(chunkData[4]);
F = pinParameter(chunkData[5]);
G = pinParameter(chunkData[6]);
H = pinParameter(chunkData[7]);
I = pinParameter(chunkData[8]);
J = pinParameter(chunkData[9]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void ChimeyGuitar::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
case kParamD: D = value; break;
case kParamE: E = value; break;
case kParamF: F = value; break;
case kParamG: G = value; break;
case kParamH: H = value; break;
case kParamI: I = value; break;
case kParamJ: J = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float ChimeyGuitar::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
case kParamD: return D; break;
case kParamE: return E; break;
case kParamF: return F; break;
case kParamG: return G; break;
case kParamH: return H; break;
case kParamI: return I; break;
case kParamJ: return J; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void ChimeyGuitar::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Compres", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Presnce", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "Sub", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "HSpeakr", kVstMaxParamStrLen); break;
case kParamH: vst_strncpy (text, "LSpeakr", kVstMaxParamStrLen); break;
case kParamI: vst_strncpy (text, "Speed", kVstMaxParamStrLen); break;
case kParamJ: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void ChimeyGuitar::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
case kParamG: float2string (G, text, kVstMaxParamStrLen); break;
case kParamH: float2string (H, text, kVstMaxParamStrLen); break;
case kParamI: float2string (I, text, kVstMaxParamStrLen); break;
case kParamJ: float2string (J, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void ChimeyGuitar::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 ChimeyGuitar::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool ChimeyGuitar::getEffectName(char* name) {
vst_strncpy(name, "ChimeyGuitar", kVstMaxProductStrLen); return true;
}
VstPlugCategory ChimeyGuitar::getPlugCategory() {return kPlugCategEffect;}
bool ChimeyGuitar::getProductString(char* text) {
vst_strncpy (text, "airwindows ChimeyGuitar", kVstMaxProductStrLen); return true;
}
bool ChimeyGuitar::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,116 @@
/* ========================================
* ChimeyGuitar - ChimeyGuitar.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ChimeyGuitar_H
#define __ChimeyGuitar_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kParamD =3,
kParamE =4,
kParamF =5,
kParamG =6,
kParamH =7,
kParamI =8,
kParamJ =9,
kNumParameters = 10
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'cgtr'; //Change this to what the AU identity is!
class ChimeyGuitar :
public AudioEffectX
{
public:
ChimeyGuitar(audioMasterCallback audioMaster);
~ChimeyGuitar();
virtual bool getEffectName(char* name); // The plug-in name
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
virtual bool getVendorString(char* text); // Vendor info
virtual VstInt32 getVendorVersion(); // Version number
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
virtual void getProgramName(char *name); // read the name from the host
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
virtual VstInt32 getChunk (void** data, bool isPreset);
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
virtual VstInt32 canDo(char *text);
private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
float A;
float B;
float C;
float D;
float E;
float F;
float G;
float H;
float I;
float J;
double angSL[22][12];
double angAL[22][12];
double iirHPositionL[37];
double iirHAngleL[37];
double iirBPositionL[37];
double iirBAngleL[37];
double angSR[22][12];
double angAR[22][12];
double iirHPositionR[37];
double iirHAngleR[37];
double iirBPositionR[37];
double iirBAngleR[37];
double angG[12];
enum {
bez_AL,
bez_BL,
bez_CL,
bez_InL,
bez_UnInL,
bez_SampL,
bez_cycleL,
bez_AR,
bez_BR,
bez_CR,
bez_InR,
bez_UnInR,
bez_SampR,
bez_cycleR,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total][12];
double bezRezA, bezRezB;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,296 @@
/* ========================================
* ChimeyGuitar - ChimeyGuitar.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ChimeyGuitar_H
#include "ChimeyGuitar.h"
#endif
void ChimeyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
int poles = (int)(pow(A,2)*20.0);
angG[0] = sqrt(B*2.0);
angG[2] = sqrt(C*2.0);
angG[4] = sqrt(D*2.0);
angG[6] = sqrt(E*2.0);
angG[8] = sqrt(F*2.0);
angG[1] = (angG[0]+angG[2])*0.5;
angG[3] = (angG[2]+angG[4])*0.5;
angG[5] = (angG[4]+angG[6])*0.5;
angG[7] = (angG[6]+angG[8])*0.5;
angG[9] = angG[8];
double hFreq = pow(G,overallscale);
double lFreq = pow(H,overallscale+3.0);
bezRezA = bezRezB; bezRezB = ((pow(I,4.0)*0.5)+0.0002)/overallscale;
if (bezRezB > 1.0) bezRezB = 1.0;
double output = J;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double temp = (double)sampleFrames/inFramesToProcess;
double bezRez = (bezRezA*temp)+(bezRezB*(1.0-temp));
double CBAL = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSampleL; inputSampleL = 0.0;
for (int y = 0; y < 9; y++) {
angAL[x][y] = (angAL[x][y]*(1.0-fr)) + ((band-angSL[x][y])*fr);
double temp = band; band = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
angSL[x][y] = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSampleL += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycleL][y] += bezRez;
bezComp[bez_SampL][y] += (fabs(inputSampleL) * bezRez);
if (bezComp[bez_cycleL][y] > 1.0) {
bezComp[bez_cycleL][y] -= 1.0;
bezComp[bez_CL][y] = bezComp[bez_BL][y];
bezComp[bez_BL][y] = bezComp[bez_AL][y];
bezComp[bez_AL][y] = bezComp[bez_SampL][y];
bezComp[bez_SampL][y] = 0.0;
}
double CBL = (bezComp[bez_CL][y]*(1.0-bezComp[bez_cycleL][y]))+(bezComp[bez_BL][y]*bezComp[bez_cycleL][y]);
double BAL = (bezComp[bez_BL][y]*(1.0-bezComp[bez_cycleL][y]))+(bezComp[bez_AL][y]*bezComp[bez_cycleL][y]);
CBAL += (bezComp[bez_BL][y]+(CBL*(1.0-bezComp[bez_cycleL][y]))+(BAL*bezComp[bez_cycleL][y]))*0.5;
inputSampleL *= 1.0-(fmin(CBAL*0.01,1.0));
}
inputSampleL += (band*angG[9]);
}
inputSampleL = sin(inputSampleL);
double lowSample = inputSampleL;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngleL[count] = (iirBAngleL[count]*(1.0-lFreq))+((lowSample-iirBPositionL[count])*lFreq);
lowSample = ((iirBPositionL[count]+(iirBAngleL[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPositionL[count] = ((iirBPositionL[count]+(iirBAngleL[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSampleL -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((inputSampleL-iirHPositionL[count])*hFreq);
inputSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(inputSampleL*hFreq);
iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(inputSampleL*hFreq);
} //the lowpass
inputSampleL *= output;
double CBAR = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSampleR; inputSampleR = 0.0;
for (int y = 0; y < 9; y++) {
angAR[x][y] = (angAR[x][y]*(1.0-fr)) + ((band-angSR[x][y])*fr);
double temp = band; band = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
angSR[x][y] = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSampleR += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycleR][y] += bezRez;
bezComp[bez_SampR][y] += (fabs(inputSampleR) * bezRez);
if (bezComp[bez_cycleR][y] > 1.0) {
bezComp[bez_cycleR][y] -= 1.0;
bezComp[bez_CR][y] = bezComp[bez_BR][y];
bezComp[bez_BR][y] = bezComp[bez_AR][y];
bezComp[bez_AR][y] = bezComp[bez_SampR][y];
bezComp[bez_SampR][y] = 0.0;
}
double CBR = (bezComp[bez_CR][y]*(1.0-bezComp[bez_cycleR][y]))+(bezComp[bez_BR][y]*bezComp[bez_cycleR][y]);
double BAR = (bezComp[bez_BR][y]*(1.0-bezComp[bez_cycleR][y]))+(bezComp[bez_AR][y]*bezComp[bez_cycleR][y]);
CBAR += (bezComp[bez_BR][y]+(CBR*(1.0-bezComp[bez_cycleR][y]))+(BAR*bezComp[bez_cycleR][y]))*0.5;
inputSampleR *= 1.0-(fmin(CBAR*0.01,1.0));
}
inputSampleR += (band*angG[9]);
}
inputSampleR = sin(inputSampleR);
lowSample = inputSampleR;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngleR[count] = (iirBAngleR[count]*(1.0-lFreq))+((lowSample-iirBPositionR[count])*lFreq);
lowSample = ((iirBPositionR[count]+(iirBAngleR[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPositionR[count] = ((iirBPositionR[count]+(iirBAngleR[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSampleR -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((inputSampleR-iirHPositionR[count])*hFreq);
inputSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(inputSampleR*hFreq);
iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(inputSampleR*hFreq);
} //the lowpass
inputSampleR *= output;
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}
void ChimeyGuitar::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
int poles = (int)(pow(A,2)*20.0);
angG[0] = sqrt(B*2.0);
angG[2] = sqrt(C*2.0);
angG[4] = sqrt(D*2.0);
angG[6] = sqrt(E*2.0);
angG[8] = sqrt(F*2.0);
angG[1] = (angG[0]+angG[2])*0.5;
angG[3] = (angG[2]+angG[4])*0.5;
angG[5] = (angG[4]+angG[6])*0.5;
angG[7] = (angG[6]+angG[8])*0.5;
angG[9] = angG[8];
double hFreq = pow(G,overallscale);
double lFreq = pow(H,overallscale+3.0);
bezRezA = bezRezB; bezRezB = ((pow(I,4.0)*0.5)+0.0002)/overallscale;
if (bezRezB > 1.0) bezRezB = 1.0;
double output = J;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double temp = (double)sampleFrames/inFramesToProcess;
double bezRez = (bezRezA*temp)+(bezRezB*(1.0-temp));
double CBAL = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSampleL; inputSampleL = 0.0;
for (int y = 0; y < 9; y++) {
angAL[x][y] = (angAL[x][y]*(1.0-fr)) + ((band-angSL[x][y])*fr);
double temp = band; band = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
angSL[x][y] = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSampleL += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycleL][y] += bezRez;
bezComp[bez_SampL][y] += (fabs(inputSampleL) * bezRez);
if (bezComp[bez_cycleL][y] > 1.0) {
bezComp[bez_cycleL][y] -= 1.0;
bezComp[bez_CL][y] = bezComp[bez_BL][y];
bezComp[bez_BL][y] = bezComp[bez_AL][y];
bezComp[bez_AL][y] = bezComp[bez_SampL][y];
bezComp[bez_SampL][y] = 0.0;
}
double CBL = (bezComp[bez_CL][y]*(1.0-bezComp[bez_cycleL][y]))+(bezComp[bez_BL][y]*bezComp[bez_cycleL][y]);
double BAL = (bezComp[bez_BL][y]*(1.0-bezComp[bez_cycleL][y]))+(bezComp[bez_AL][y]*bezComp[bez_cycleL][y]);
CBAL += (bezComp[bez_BL][y]+(CBL*(1.0-bezComp[bez_cycleL][y]))+(BAL*bezComp[bez_cycleL][y]))*0.5;
inputSampleL *= 1.0-(fmin(CBAL*0.01,1.0));
}
inputSampleL += (band*angG[9]);
}
inputSampleL = sin(inputSampleL);
double lowSample = inputSampleL;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngleL[count] = (iirBAngleL[count]*(1.0-lFreq))+((lowSample-iirBPositionL[count])*lFreq);
lowSample = ((iirBPositionL[count]+(iirBAngleL[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPositionL[count] = ((iirBPositionL[count]+(iirBAngleL[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSampleL -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((inputSampleL-iirHPositionL[count])*hFreq);
inputSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(inputSampleL*hFreq);
iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(inputSampleL*hFreq);
} //the lowpass
inputSampleL *= output;
double CBAR = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSampleR; inputSampleR = 0.0;
for (int y = 0; y < 9; y++) {
angAR[x][y] = (angAR[x][y]*(1.0-fr)) + ((band-angSR[x][y])*fr);
double temp = band; band = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
angSR[x][y] = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSampleR += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycleR][y] += bezRez;
bezComp[bez_SampR][y] += (fabs(inputSampleR) * bezRez);
if (bezComp[bez_cycleR][y] > 1.0) {
bezComp[bez_cycleR][y] -= 1.0;
bezComp[bez_CR][y] = bezComp[bez_BR][y];
bezComp[bez_BR][y] = bezComp[bez_AR][y];
bezComp[bez_AR][y] = bezComp[bez_SampR][y];
bezComp[bez_SampR][y] = 0.0;
}
double CBR = (bezComp[bez_CR][y]*(1.0-bezComp[bez_cycleR][y]))+(bezComp[bez_BR][y]*bezComp[bez_cycleR][y]);
double BAR = (bezComp[bez_BR][y]*(1.0-bezComp[bez_cycleR][y]))+(bezComp[bez_AR][y]*bezComp[bez_cycleR][y]);
CBAR += (bezComp[bez_BR][y]+(CBR*(1.0-bezComp[bez_cycleR][y]))+(BAR*bezComp[bez_cycleR][y]))*0.5;
inputSampleR *= 1.0-(fmin(CBAR*0.01,1.0));
}
inputSampleR += (band*angG[9]);
}
inputSampleR = sin(inputSampleR);
lowSample = inputSampleR;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngleR[count] = (iirBAngleR[count]*(1.0-lFreq))+((lowSample-iirBPositionR[count])*lFreq);
lowSample = ((iirBPositionR[count]+(iirBAngleR[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPositionR[count] = ((iirBPositionR[count]+(iirBAngleR[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSampleR -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((inputSampleR-iirHPositionR[count])*hFreq);
inputSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(inputSampleR*hFreq);
iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(inputSampleR*hFreq);
} //the lowpass
inputSampleR *= output;
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

View file

@ -0,0 +1,272 @@
/* ========================================
* kCosmos - kCosmos.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __kCosmos_H
#include "kCosmos.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new kCosmos(audioMaster);}
kCosmos::kCosmos(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 1.0;
C = 0.5;
D = 0.5;
E = 0.0;
F = 0.5;
for(int count = 0; count < delayA+2; count++) {eAL[count] = 0.0; eAR[count] = 0.0; aAL[count] = 0.0; aAR[count] = 0.0;}
for(int count = 0; count < delayB+2; count++) {eBL[count] = 0.0; eBR[count] = 0.0; aBL[count] = 0.0; aBR[count] = 0.0;}
for(int count = 0; count < delayC+2; count++) {eCL[count] = 0.0; eCR[count] = 0.0; aCL[count] = 0.0; aCR[count] = 0.0;}
for(int count = 0; count < delayD+2; count++) {eDL[count] = 0.0; eDR[count] = 0.0; aDL[count] = 0.0; aDR[count] = 0.0;}
for(int count = 0; count < delayE+2; count++) {eEL[count] = 0.0; eER[count] = 0.0; aEL[count] = 0.0; aER[count] = 0.0;}
for(int count = 0; count < delayF+2; count++) {eFL[count] = 0.0; eFR[count] = 0.0; aFL[count] = 0.0; aFR[count] = 0.0;}
for(int count = 0; count < delayG+2; count++) {eGL[count] = 0.0; eGR[count] = 0.0; aGL[count] = 0.0; aGR[count] = 0.0;}
for(int count = 0; count < delayH+2; count++) {eHL[count] = 0.0; eHR[count] = 0.0; aHL[count] = 0.0; aHR[count] = 0.0;}
for(int count = 0; count < delayI+2; count++) {eIL[count] = 0.0; eIR[count] = 0.0; aIL[count] = 0.0; aIR[count] = 0.0;}
for(int count = 0; count < delayJ+2; count++) {eJL[count] = 0.0; eJR[count] = 0.0; aJL[count] = 0.0; aJR[count] = 0.0;}
for(int count = 0; count < delayK+2; count++) {eKL[count] = 0.0; eKR[count] = 0.0; aKL[count] = 0.0; aKR[count] = 0.0;}
for(int count = 0; count < delayL+2; count++) {eLL[count] = 0.0; eLR[count] = 0.0; aLL[count] = 0.0; aLR[count] = 0.0;}
for(int count = 0; count < delayM+2; count++) {eML[count] = 0.0; eMR[count] = 0.0; aML[count] = 0.0; aMR[count] = 0.0;}
for(int count = 0; count < delayN+2; count++) {eNL[count] = 0.0; eNR[count] = 0.0; aNL[count] = 0.0; aNR[count] = 0.0;}
for(int count = 0; count < delayO+2; count++) {eOL[count] = 0.0; eOR[count] = 0.0; aOL[count] = 0.0; aOR[count] = 0.0;}
for(int count = 0; count < delayP+2; count++) {ePL[count] = 0.0; ePR[count] = 0.0; aPL[count] = 0.0; aPR[count] = 0.0;}
for(int count = 0; count < delayQ+2; count++) {eQL[count] = 0.0; eQR[count] = 0.0; aQL[count] = 0.0; aQR[count] = 0.0;}
for(int count = 0; count < delayR+2; count++) {eRL[count] = 0.0; eRR[count] = 0.0; aRL[count] = 0.0; aRR[count] = 0.0;}
for(int count = 0; count < delayS+2; count++) {eSL[count] = 0.0; eSR[count] = 0.0; aSL[count] = 0.0; aSR[count] = 0.0;}
for(int count = 0; count < delayT+2; count++) {eTL[count] = 0.0; eTR[count] = 0.0; aTL[count] = 0.0; aTR[count] = 0.0;}
for(int count = 0; count < delayU+2; count++) {eUL[count] = 0.0; eUR[count] = 0.0; aUL[count] = 0.0; aUR[count] = 0.0;}
for(int count = 0; count < delayV+2; count++) {eVL[count] = 0.0; eVR[count] = 0.0; aVL[count] = 0.0; aVR[count] = 0.0;}
for(int count = 0; count < delayW+2; count++) {eWL[count] = 0.0; eWR[count] = 0.0; aWL[count] = 0.0; aWR[count] = 0.0;}
for(int count = 0; count < delayX+2; count++) {eXL[count] = 0.0; eXR[count] = 0.0; aXL[count] = 0.0; aXR[count] = 0.0;}
for(int count = 0; count < delayY+2; count++) {eYL[count] = 0.0; eYR[count] = 0.0; aYL[count] = 0.0; aYR[count] = 0.0;}
for(int count = 0; count < predelay+2; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
feedbackAL = 0.0;
feedbackBL = 0.0;
feedbackCL = 0.0;
feedbackDL = 0.0;
feedbackEL = 0.0;
feedbackER = 0.0;
feedbackJR = 0.0;
feedbackOR = 0.0;
feedbackTR = 0.0;
feedbackYR = 0.0;
countAL = 1;
countBL = 1;
countCL = 1;
countDL = 1;
countEL = 1;
countFL = 1;
countGL = 1;
countHL = 1;
countIL = 1;
countJL = 1;
countKL = 1;
countLL = 1;
countML = 1;
countNL = 1;
countOL = 1;
countPL = 1;
countQL = 1;
countRL = 1;
countSL = 1;
countTL = 1;
countUL = 1;
countVL = 1;
countWL = 1;
countXL = 1;
countYL = 1;
countAR = 1;
countBR = 1;
countCR = 1;
countDR = 1;
countER = 1;
countFR = 1;
countGR = 1;
countHR = 1;
countIR = 1;
countJR = 1;
countKR = 1;
countLR = 1;
countMR = 1;
countNR = 1;
countOR = 1;
countPR = 1;
countQR = 1;
countRR = 1;
countSR = 1;
countTR = 1;
countUR = 1;
countVR = 1;
countWR = 1;
countXR = 1;
countYR = 1;
countZ = 1;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 1.0;
for(int count = 0; count < 32767; count++) {firBufferL[count] = 0.0; firBufferR[count] = 0.0;}
firPosition = 0;
earlyReflectionL = 0.0; earlyReflectionR = 0.0;
prevAL = 0.0;
prevBL = 0.0;
prevCL = 0.0;
prevDL = 0.0;
prevEL = 0.0;
prevER = 0.0;
prevJR = 0.0;
prevOR = 0.0;
prevTR = 0.0;
prevYR = 0.0;
derezA = derezB = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
kCosmos::~kCosmos() {}
VstInt32 kCosmos::getVendorVersion () {return 1000;}
void kCosmos::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void kCosmos::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
static float pinParameter(float data)
{
if (data < 0.0f) return 0.0f;
if (data > 1.0f) return 1.0f;
return data;
}
VstInt32 kCosmos::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
chunkData[4] = E;
chunkData[5] = F;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 kCosmos::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
D = pinParameter(chunkData[3]);
E = pinParameter(chunkData[4]);
F = pinParameter(chunkData[5]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void kCosmos::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
case kParamD: D = value; break;
case kParamE: E = value; break;
case kParamF: F = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float kCosmos::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
case kParamD: return D; break;
case kParamE: return E; break;
case kParamF: return F; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void kCosmos::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Regen", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Derez", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Filter", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "EarlyRF", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "Predlay", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void kCosmos::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void kCosmos::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 kCosmos::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool kCosmos::getEffectName(char* name) {
vst_strncpy(name, "kCosmos", kVstMaxProductStrLen); return true;
}
VstPlugCategory kCosmos::getPlugCategory() {return kPlugCategEffect;}
bool kCosmos::getProductString(char* text) {
vst_strncpy (text, "airwindows kCosmos", kVstMaxProductStrLen); return true;
}
bool kCosmos::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,288 @@
/* ========================================
* kCosmos - kCosmos.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __kCosmos_H
#define __kCosmos_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kParamD =3,
kParamE =4,
kParamF =5,
kNumParameters = 6
}; //
const int predelay = 15000;
const int delayA = 857; const int delayB = 1433; const int delayC = 1597; const int delayD = 1789; const int delayE = 1987; const int delayF = 373; const int delayG = 883; const int delayH = 1471; const int delayI = 1601; const int delayJ = 1973; const int delayK = 191; const int delayL = 397; const int delayM = 941; const int delayN = 1483; const int delayO = 1663; const int delayP = 149; const int delayQ = 227; const int delayR = 593; const int delayS = 1061; const int delayT = 1549; const int delayU = 137; const int delayV = 167; const int delayW = 313; const int delayX = 641; const int delayY = 1153; //38 to 188 ms, 1538 seat hall
//1538-OGBP 2025-05-05 - kCosmos
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'kcsm'; //Change this to what the AU identity is!
class kCosmos :
public AudioEffectX
{
public:
kCosmos(audioMasterCallback audioMaster);
~kCosmos();
virtual bool getEffectName(char* name); // The plug-in name
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
virtual bool getVendorString(char* text); // Vendor info
virtual VstInt32 getVendorVersion(); // Version number
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
virtual void getProgramName(char *name); // read the name from the host
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
virtual VstInt32 getChunk (void** data, bool isPreset);
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
virtual VstInt32 canDo(char *text);
private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
float A;
float B;
float C;
float D;
float E;
float F;
double eAL[delayA+5];
double eBL[delayB+5];
double eCL[delayC+5];
double eDL[delayD+5];
double eEL[delayE+5];
double eFL[delayF+5];
double eGL[delayG+5];
double eHL[delayH+5];
double eIL[delayI+5];
double eJL[delayJ+5];
double eKL[delayK+5];
double eLL[delayL+5];
double eML[delayM+5];
double eNL[delayN+5];
double eOL[delayO+5];
double ePL[delayP+5];
double eQL[delayQ+5];
double eRL[delayR+5];
double eSL[delayS+5];
double eTL[delayT+5];
double eUL[delayU+5];
double eVL[delayV+5];
double eWL[delayW+5];
double eXL[delayX+5];
double eYL[delayY+5];
double eAR[delayA+5];
double eBR[delayB+5];
double eCR[delayC+5];
double eDR[delayD+5];
double eER[delayE+5];
double eFR[delayF+5];
double eGR[delayG+5];
double eHR[delayH+5];
double eIR[delayI+5];
double eJR[delayJ+5];
double eKR[delayK+5];
double eLR[delayL+5];
double eMR[delayM+5];
double eNR[delayN+5];
double eOR[delayO+5];
double ePR[delayP+5];
double eQR[delayQ+5];
double eRR[delayR+5];
double eSR[delayS+5];
double eTR[delayT+5];
double eUR[delayU+5];
double eVR[delayV+5];
double eWR[delayW+5];
double eXR[delayX+5];
double eYR[delayY+5];
double aAL[delayA+5];
double aBL[delayB+5];
double aCL[delayC+5];
double aDL[delayD+5];
double aEL[delayE+5];
double aFL[delayF+5];
double aGL[delayG+5];
double aHL[delayH+5];
double aIL[delayI+5];
double aJL[delayJ+5];
double aKL[delayK+5];
double aLL[delayL+5];
double aML[delayM+5];
double aNL[delayN+5];
double aOL[delayO+5];
double aPL[delayP+5];
double aQL[delayQ+5];
double aRL[delayR+5];
double aSL[delayS+5];
double aTL[delayT+5];
double aUL[delayU+5];
double aVL[delayV+5];
double aWL[delayW+5];
double aXL[delayX+5];
double aYL[delayY+5];
double aAR[delayA+5];
double aBR[delayB+5];
double aCR[delayC+5];
double aDR[delayD+5];
double aER[delayE+5];
double aFR[delayF+5];
double aGR[delayG+5];
double aHR[delayH+5];
double aIR[delayI+5];
double aJR[delayJ+5];
double aKR[delayK+5];
double aLR[delayL+5];
double aMR[delayM+5];
double aNR[delayN+5];
double aOR[delayO+5];
double aPR[delayP+5];
double aQR[delayQ+5];
double aRR[delayR+5];
double aSR[delayS+5];
double aTR[delayT+5];
double aUR[delayU+5];
double aVR[delayV+5];
double aWR[delayW+5];
double aXR[delayX+5];
double aYR[delayY+5];
double aZL[predelay+5];
double aZR[predelay+5];
double feedbackAL;
double feedbackBL;
double feedbackCL;
double feedbackDL;
double feedbackEL;
double feedbackER;
double feedbackJR;
double feedbackOR;
double feedbackTR;
double feedbackYR;
int countAL;
int countBL;
int countCL;
int countDL;
int countEL;
int countFL;
int countGL;
int countHL;
int countIL;
int countJL;
int countKL;
int countLL;
int countML;
int countNL;
int countOL;
int countPL;
int countQL;
int countRL;
int countSL;
int countTL;
int countUL;
int countVL;
int countWL;
int countXL;
int countYL;
int countAR;
int countBR;
int countCR;
int countDR;
int countER;
int countFR;
int countGR;
int countHR;
int countIR;
int countJR;
int countKR;
int countLR;
int countMR;
int countNR;
int countOR;
int countPR;
int countQR;
int countRR;
int countSR;
int countTR;
int countUR;
int countVR;
int countWR;
int countXR;
int countYR;
int countZ;
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_InL,
bez_InR,
bez_UnInL,
bez_UnInR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
double firBufferL[32768];
double firBufferR[32768];
int firPosition;
double earlyReflectionL;
double earlyReflectionR;
double prevAL;
double prevBL;
double prevCL;
double prevDL;
double prevEL;
double prevER;
double prevJR;
double prevOR;
double prevTR;
double prevYR;
double derezA, derezB;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,972 @@
/* ========================================
* kCosmos - kCosmos.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __kCosmos_H
#include "kCosmos.h"
#endif
void kCosmos::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double regenMax = (1.0-pow(1.0-A,3.0))*0.000321;
//start this but pad it in the loop by volume of output?
double feedbackSum = 0.0;
bool applyCream = (B > 0.9999);
double remainder = (overallscale-1.0)*0.0375;
derezA = derezB; derezB = B/overallscale;
if (applyCream) derezB = 1.0 / ((int)(1.0/derezB));
else derezB /= (2.0/pow(overallscale,0.5-remainder));
//this hard-locks derez to exact subdivisions of 1.0
if (derezB < 0.0005) derezB = 0.0005; if (derezB > 1.0) derezB = 1.0;
double freq = C*M_PI_2; if (freq < 0.5) freq = 0.5;
bool applyAvg = (C < 1.0);
double earlyLoudness = D;
int adjPredelay = predelay*E*derezB;
double wet = F;
double fir[74]; fir[36] = 1.0;
for(int fip = 0; fip < 36; fip++) {
fir[fip] = (fip-36)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
}
for(int fip = 37; fip < 72; fip++) {
fir[fip] = (fip-36)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
} //setting up the filter which will run inside DeRez
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
double temp = (double)sampleFrames/inFramesToProcess;
double derez = (derezA*temp)+(derezB*(1.0-temp));
bez[bez_cycle] += derez;
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
if (applyCream) bez[bez_cycle] = 0.0;
else bez[bez_cycle] -= 1.0;
//predelay
aZL[countZ] = bez[bez_SampL];
aZR[countZ] = bez[bez_SampR];
countZ++; if (countZ < 0 || countZ > adjPredelay) countZ = 0;
bez[bez_SampL] = aZL[countZ-((countZ > adjPredelay)?adjPredelay+1:0)];
bez[bez_SampR] = aZR[countZ-((countZ > adjPredelay)?adjPredelay+1:0)];
//end predelay
eAL[countAL] = bez[bez_SampL];
eBL[countBL] = bez[bez_SampL];
eCL[countCL] = bez[bez_SampL];
eDL[countDL] = bez[bez_SampL];
eEL[countEL] = bez[bez_SampL];
eER[countER] = bez[bez_SampR];
eJR[countJR] = bez[bez_SampR];
eOR[countOR] = bez[bez_SampR];
eTR[countTR] = bez[bez_SampR];
eYR[countYR] = bez[bez_SampR];
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBufferL[firp] = earlyReflectionL; earlyReflectionL = 0.0;
firBufferR[firp] = earlyReflectionR; earlyReflectionR = 0.0;
if (firp + 72 < 32767) {
for(int fip = 1; fip < 72; fip++) {
earlyReflectionL += firBufferL[firp+fip] * fir[fip];
earlyReflectionR += firBufferR[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < 72; fip++) {
earlyReflectionL += firBufferL[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
earlyReflectionR += firBufferR[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
earlyReflectionL *= 0.25; earlyReflectionR *= 0.25;
earlyReflectionL *= sqrt(freq); earlyReflectionR *= sqrt(freq);
firPosition--;//here's the brickwall FIR filter, running in front of the Householder matrix
feedbackSum *= 0.00001;
feedbackSum += fabs(earlyReflectionL);
feedbackSum += fabs(earlyReflectionR);
feedbackSum *= 0.00003;
double regen = fmax(regenMax - feedbackSum, 0.0);
if (applyAvg) regen *= 0.5;
else {
prevAL = prevBL = prevCL = prevDL = prevEL = 0.0;
prevER = prevJR = prevOR = prevTR = prevYR = 0.0;
}
aAL[countAL] = earlyReflectionL + ((feedbackAL+prevAL) * regen);
aBL[countBL] = earlyReflectionL + ((feedbackBL+prevBL) * regen);
aCL[countCL] = earlyReflectionL + ((feedbackCL+prevCL) * regen);
aDL[countDL] = earlyReflectionL + ((feedbackDL+prevDL) * regen);
aEL[countEL] = earlyReflectionL + ((feedbackEL+prevEL) * regen);
aER[countER] = earlyReflectionR + ((feedbackER+prevER) * regen);
aJR[countJR] = earlyReflectionR + ((feedbackJR+prevJR) * regen);
aOR[countOR] = earlyReflectionR + ((feedbackOR+prevOR) * regen);
aTR[countTR] = earlyReflectionR + ((feedbackTR+prevTR) * regen);
aYR[countYR] = earlyReflectionR + ((feedbackYR+prevYR) * regen);
prevAL = feedbackAL;
prevBL = feedbackBL;
prevCL = feedbackCL;
prevDL = feedbackDL;
prevEL = feedbackEL;
prevER = feedbackER;
prevJR = feedbackJR;
prevOR = feedbackOR;
prevTR = feedbackTR;
prevYR = feedbackYR;
countAL++; if (countAL < 0 || countAL > delayA) countAL = 0;
countBL++; if (countBL < 0 || countBL > delayB) countBL = 0;
countCL++; if (countCL < 0 || countCL > delayC) countCL = 0;
countDL++; if (countDL < 0 || countDL > delayD) countDL = 0;
countEL++; if (countEL < 0 || countEL > delayE) countEL = 0;
countER++; if (countER < 0 || countER > delayE) countER = 0;
countJR++; if (countJR < 0 || countJR > delayJ) countJR = 0;
countOR++; if (countOR < 0 || countOR > delayO) countOR = 0;
countTR++; if (countTR < 0 || countTR > delayT) countTR = 0;
countYR++; if (countYR < 0 || countYR > delayY) countYR = 0;
double earlyAL = eAL[countAL-((countAL > delayA)?delayA+1:0)];
double earlyBL = eBL[countBL-((countBL > delayB)?delayB+1:0)];
double earlyCL = eCL[countCL-((countCL > delayC)?delayC+1:0)];
double earlyDL = eDL[countDL-((countDL > delayD)?delayD+1:0)];
double earlyEL = eEL[countEL-((countEL > delayE)?delayE+1:0)];
double earlyER = eER[countER-((countER > delayE)?delayE+1:0)];
double earlyJR = eJR[countJR-((countJR > delayJ)?delayJ+1:0)];
double earlyOR = eOR[countOR-((countOR > delayO)?delayO+1:0)];
double earlyTR = eTR[countTR-((countTR > delayT)?delayT+1:0)];
double earlyYR = eYR[countYR-((countYR > delayY)?delayY+1:0)];
double outAL = aAL[countAL-((countAL > delayA)?delayA+1:0)];
double outBL = aBL[countBL-((countBL > delayB)?delayB+1:0)];
double outCL = aCL[countCL-((countCL > delayC)?delayC+1:0)];
double outDL = aDL[countDL-((countDL > delayD)?delayD+1:0)];
double outEL = aEL[countEL-((countEL > delayE)?delayE+1:0)];
double outER = aER[countER-((countER > delayE)?delayE+1:0)];
double outJR = aJR[countJR-((countJR > delayJ)?delayJ+1:0)];
double outOR = aOR[countOR-((countOR > delayO)?delayO+1:0)];
double outTR = aTR[countTR-((countTR > delayT)?delayT+1:0)];
double outYR = aYR[countYR-((countYR > delayY)?delayY+1:0)];
//-------- one
eFL[countFL] = ((earlyAL*3.0) - ((earlyBL + earlyCL + earlyDL + earlyEL)*2.0));
eGL[countGL] = ((earlyBL*3.0) - ((earlyAL + earlyCL + earlyDL + earlyEL)*2.0));
eHL[countHL] = ((earlyCL*3.0) - ((earlyAL + earlyBL + earlyDL + earlyEL)*2.0));
eIL[countIL] = ((earlyDL*3.0) - ((earlyAL + earlyBL + earlyCL + earlyEL)*2.0));
eJL[countJL] = ((earlyEL*3.0) - ((earlyAL + earlyBL + earlyCL + earlyDL)*2.0));
eDR[countDR] = ((earlyER*3.0) - ((earlyJR + earlyOR + earlyTR + earlyYR)*2.0));
eIR[countIR] = ((earlyJR*3.0) - ((earlyER + earlyOR + earlyTR + earlyYR)*2.0));
eNR[countNR] = ((earlyOR*3.0) - ((earlyER + earlyJR + earlyTR + earlyYR)*2.0));
eSR[countSR] = ((earlyTR*3.0) - ((earlyER + earlyJR + earlyOR + earlyYR)*2.0));
eXR[countXR] = ((earlyYR*3.0) - ((earlyER + earlyJR + earlyOR + earlyTR)*2.0));
aFL[countFL] = ((outAL*3.0) - ((outBL + outCL + outDL + outEL)*2.0));
aGL[countGL] = ((outBL*3.0) - ((outAL + outCL + outDL + outEL)*2.0));
aHL[countHL] = ((outCL*3.0) - ((outAL + outBL + outDL + outEL)*2.0));
aIL[countIL] = ((outDL*3.0) - ((outAL + outBL + outCL + outEL)*2.0));
aJL[countJL] = ((outEL*3.0) - ((outAL + outBL + outCL + outDL)*2.0));
aDR[countDR] = ((outER*3.0) - ((outJR + outOR + outTR + outYR)*2.0));
aIR[countIR] = ((outJR*3.0) - ((outER + outOR + outTR + outYR)*2.0));
aNR[countNR] = ((outOR*3.0) - ((outER + outJR + outTR + outYR)*2.0));
aSR[countSR] = ((outTR*3.0) - ((outER + outJR + outOR + outYR)*2.0));
aXR[countXR] = ((outYR*3.0) - ((outER + outJR + outOR + outTR)*2.0));
countFL++; if (countFL < 0 || countFL > delayF) countFL = 0;
countGL++; if (countGL < 0 || countGL > delayG) countGL = 0;
countHL++; if (countHL < 0 || countHL > delayH) countHL = 0;
countIL++; if (countIL < 0 || countIL > delayI) countIL = 0;
countJL++; if (countJL < 0 || countJL > delayJ) countJL = 0;
countDR++; if (countDR < 0 || countDR > delayD) countDR = 0;
countIR++; if (countIR < 0 || countIR > delayI) countIR = 0;
countNR++; if (countNR < 0 || countNR > delayN) countNR = 0;
countSR++; if (countSR < 0 || countSR > delayS) countSR = 0;
countXR++; if (countXR < 0 || countXR > delayX) countXR = 0;
double earlyFL = eFL[countFL-((countFL > delayF)?delayF+1:0)];
double earlyGL = eGL[countGL-((countGL > delayG)?delayG+1:0)];
double earlyHL = eHL[countHL-((countHL > delayH)?delayH+1:0)];
double earlyIL = eIL[countIL-((countIL > delayI)?delayI+1:0)];
double earlyJL = eJL[countJL-((countJL > delayJ)?delayJ+1:0)];
double earlyDR = eDR[countDR-((countDR > delayD)?delayD+1:0)];
double earlyIR = eIR[countIR-((countIR > delayI)?delayI+1:0)];
double earlyNR = eNR[countNR-((countNR > delayN)?delayN+1:0)];
double earlySR = eSR[countSR-((countSR > delayS)?delayS+1:0)];
double earlyXR = eXR[countXR-((countXR > delayX)?delayX+1:0)];
double outFL = aFL[countFL-((countFL > delayF)?delayF+1:0)];
double outGL = aGL[countGL-((countGL > delayG)?delayG+1:0)];
double outHL = aHL[countHL-((countHL > delayH)?delayH+1:0)];
double outIL = aIL[countIL-((countIL > delayI)?delayI+1:0)];
double outJL = aJL[countJL-((countJL > delayJ)?delayJ+1:0)];
double outDR = aDR[countDR-((countDR > delayD)?delayD+1:0)];
double outIR = aIR[countIR-((countIR > delayI)?delayI+1:0)];
double outNR = aNR[countNR-((countNR > delayN)?delayN+1:0)];
double outSR = aSR[countSR-((countSR > delayS)?delayS+1:0)];
double outXR = aXR[countXR-((countXR > delayX)?delayX+1:0)];
//-------- two
eKL[countKL] = ((earlyFL*3.0) - ((earlyGL + earlyHL + earlyIL + earlyJL)*2.0));
eLL[countLL] = ((earlyGL*3.0) - ((earlyFL + earlyHL + earlyIL + earlyJL)*2.0));
eML[countML] = ((earlyHL*3.0) - ((earlyFL + earlyGL + earlyIL + earlyJL)*2.0));
eNL[countNL] = ((earlyIL*3.0) - ((earlyFL + earlyGL + earlyHL + earlyJL)*2.0));
eOL[countOL] = ((earlyJL*3.0) - ((earlyFL + earlyGL + earlyHL + earlyIL)*2.0));
eCR[countCR] = ((earlyDR*3.0) - ((earlyIR + earlyNR + earlySR + earlyXR)*2.0));
eHR[countHR] = ((earlyIR*3.0) - ((earlyDR + earlyNR + earlySR + earlyXR)*2.0));
eMR[countMR] = ((earlyNR*3.0) - ((earlyDR + earlyIR + earlySR + earlyXR)*2.0));
eRR[countRR] = ((earlySR*3.0) - ((earlyDR + earlyIR + earlyNR + earlyXR)*2.0));
eWR[countWR] = ((earlyXR*3.0) - ((earlyDR + earlyIR + earlyNR + earlySR)*2.0));
aKL[countKL] = ((outFL*3.0) - ((outGL + outHL + outIL + outJL)*2.0));
aLL[countLL] = ((outGL*3.0) - ((outFL + outHL + outIL + outJL)*2.0));
aML[countML] = ((outHL*3.0) - ((outFL + outGL + outIL + outJL)*2.0));
aNL[countNL] = ((outIL*3.0) - ((outFL + outGL + outHL + outJL)*2.0));
aOL[countOL] = ((outJL*3.0) - ((outFL + outGL + outHL + outIL)*2.0));
aCR[countCR] = ((outDR*3.0) - ((outIR + outNR + outSR + outXR)*2.0));
aHR[countHR] = ((outIR*3.0) - ((outDR + outNR + outSR + outXR)*2.0));
aMR[countMR] = ((outNR*3.0) - ((outDR + outIR + outSR + outXR)*2.0));
aRR[countRR] = ((outSR*3.0) - ((outDR + outIR + outNR + outXR)*2.0));
aWR[countWR] = ((outXR*3.0) - ((outDR + outIR + outNR + outSR)*2.0));
countKL++; if (countKL < 0 || countKL > delayK) countKL = 0;
countLL++; if (countLL < 0 || countLL > delayL) countLL = 0;
countML++; if (countML < 0 || countML > delayM) countML = 0;
countNL++; if (countNL < 0 || countNL > delayN) countNL = 0;
countOL++; if (countOL < 0 || countOL > delayO) countOL = 0;
countCR++; if (countCR < 0 || countCR > delayC) countCR = 0;
countHR++; if (countHR < 0 || countHR > delayH) countHR = 0;
countMR++; if (countMR < 0 || countMR > delayM) countMR = 0;
countRR++; if (countRR < 0 || countRR > delayR) countRR = 0;
countWR++; if (countWR < 0 || countWR > delayW) countWR = 0;
double earlyKL = eKL[countKL-((countKL > delayK)?delayK+1:0)];
double earlyLL = eLL[countLL-((countLL > delayL)?delayL+1:0)];
double earlyML = eML[countML-((countML > delayM)?delayM+1:0)];
double earlyNL = eNL[countNL-((countNL > delayN)?delayN+1:0)];
double earlyOL = eOL[countOL-((countOL > delayO)?delayO+1:0)];
double earlyCR = eCR[countCR-((countCR > delayC)?delayC+1:0)];
double earlyHR = eHR[countHR-((countHR > delayH)?delayH+1:0)];
double earlyMR = eMR[countMR-((countMR > delayM)?delayM+1:0)];
double earlyRR = eRR[countRR-((countRR > delayR)?delayR+1:0)];
double earlyWR = eWR[countWR-((countWR > delayW)?delayW+1:0)];
double outKL = aKL[countKL-((countKL > delayK)?delayK+1:0)];
double outLL = aLL[countLL-((countLL > delayL)?delayL+1:0)];
double outML = aML[countML-((countML > delayM)?delayM+1:0)];
double outNL = aNL[countNL-((countNL > delayN)?delayN+1:0)];
double outOL = aOL[countOL-((countOL > delayO)?delayO+1:0)];
double outCR = aCR[countCR-((countCR > delayC)?delayC+1:0)];
double outHR = aHR[countHR-((countHR > delayH)?delayH+1:0)];
double outMR = aMR[countMR-((countMR > delayM)?delayM+1:0)];
double outRR = aRR[countRR-((countRR > delayR)?delayR+1:0)];
double outWR = aWR[countWR-((countWR > delayW)?delayW+1:0)];
//-------- three
ePL[countPL] = ((earlyKL*3.0) - ((earlyLL + earlyML + earlyNL + earlyOL)*2.0));
eQL[countQL] = ((earlyLL*3.0) - ((earlyKL + earlyML + earlyNL + earlyOL)*2.0));
eRL[countRL] = ((earlyML*3.0) - ((earlyKL + earlyLL + earlyNL + earlyOL)*2.0));
eSL[countSL] = ((earlyNL*3.0) - ((earlyKL + earlyLL + earlyML + earlyOL)*2.0));
eTL[countTL] = ((earlyOL*3.0) - ((earlyKL + earlyLL + earlyML + earlyNL)*2.0));
eBR[countBR] = ((earlyCR*3.0) - ((earlyHR + earlyMR + earlyRR + earlyWR)*2.0));
eGR[countGR] = ((earlyHR*3.0) - ((earlyCR + earlyMR + earlyRR + earlyWR)*2.0));
eLR[countLR] = ((earlyMR*3.0) - ((earlyCR + earlyHR + earlyRR + earlyWR)*2.0));
eQR[countQR] = ((earlyRR*3.0) - ((earlyCR + earlyHR + earlyMR + earlyWR)*2.0));
eVR[countVR] = ((earlyWR*3.0) - ((earlyCR + earlyHR + earlyMR + earlyRR)*2.0));
aPL[countPL] = ((outKL*3.0) - ((outLL + outML + outNL + outOL)*2.0));
aQL[countQL] = ((outLL*3.0) - ((outKL + outML + outNL + outOL)*2.0));
aRL[countRL] = ((outML*3.0) - ((outKL + outLL + outNL + outOL)*2.0));
aSL[countSL] = ((outNL*3.0) - ((outKL + outLL + outML + outOL)*2.0));
aTL[countTL] = ((outOL*3.0) - ((outKL + outLL + outML + outNL)*2.0));
aBR[countBR] = ((outCR*3.0) - ((outHR + outMR + outRR + outWR)*2.0));
aGR[countGR] = ((outHR*3.0) - ((outCR + outMR + outRR + outWR)*2.0));
aLR[countLR] = ((outMR*3.0) - ((outCR + outHR + outRR + outWR)*2.0));
aQR[countQR] = ((outRR*3.0) - ((outCR + outHR + outMR + outWR)*2.0));
aVR[countVR] = ((outWR*3.0) - ((outCR + outHR + outMR + outRR)*2.0));
countPL++; if (countPL < 0 || countPL > delayP) countPL = 0;
countQL++; if (countQL < 0 || countQL > delayQ) countQL = 0;
countRL++; if (countRL < 0 || countRL > delayR) countRL = 0;
countSL++; if (countSL < 0 || countSL > delayS) countSL = 0;
countTL++; if (countTL < 0 || countTL > delayT) countTL = 0;
countBR++; if (countBR < 0 || countBR > delayB) countBR = 0;
countGR++; if (countGR < 0 || countGR > delayG) countGR = 0;
countLR++; if (countLR < 0 || countLR > delayL) countLR = 0;
countQR++; if (countQR < 0 || countQR > delayQ) countQR = 0;
countVR++; if (countVR < 0 || countVR > delayV) countVR = 0;
double earlyPL = ePL[countPL-((countPL > delayP)?delayP+1:0)];
double earlyQL = eQL[countQL-((countQL > delayQ)?delayQ+1:0)];
double earlyRL = eRL[countRL-((countRL > delayR)?delayR+1:0)];
double earlySL = eSL[countSL-((countSL > delayS)?delayS+1:0)];
double earlyTL = eTL[countTL-((countTL > delayT)?delayT+1:0)];
double earlyBR = eBR[countBR-((countBR > delayB)?delayB+1:0)];
double earlyGR = eGR[countGR-((countGR > delayG)?delayG+1:0)];
double earlyLR = eLR[countLR-((countLR > delayL)?delayL+1:0)];
double earlyQR = eQR[countQR-((countQR > delayQ)?delayQ+1:0)];
double earlyVR = eVR[countVR-((countVR > delayV)?delayV+1:0)];
double outPL = aPL[countPL-((countPL > delayP)?delayP+1:0)];
double outQL = aQL[countQL-((countQL > delayQ)?delayQ+1:0)];
double outRL = aRL[countRL-((countRL > delayR)?delayR+1:0)];
double outSL = aSL[countSL-((countSL > delayS)?delayS+1:0)];
double outTL = aTL[countTL-((countTL > delayT)?delayT+1:0)];
double outBR = aBR[countBR-((countBR > delayB)?delayB+1:0)];
double outGR = aGR[countGR-((countGR > delayG)?delayG+1:0)];
double outLR = aLR[countLR-((countLR > delayL)?delayL+1:0)];
double outQR = aQR[countQR-((countQR > delayQ)?delayQ+1:0)];
double outVR = aVR[countVR-((countVR > delayV)?delayV+1:0)];
//-------- four
eUL[countUL] = ((earlyPL*3.0) - ((earlyQL + earlyRL + earlySL + earlyTL)*2.0));
eVL[countVL] = ((earlyQL*3.0) - ((earlyPL + earlyRL + earlySL + earlyTL)*2.0));
eWL[countWL] = ((earlyRL*3.0) - ((earlyPL + earlyQL + earlySL + earlyTL)*2.0));
eXL[countXL] = ((earlySL*3.0) - ((earlyPL + earlyQL + earlyRL + earlyTL)*2.0));
eYL[countYL] = ((earlyTL*3.0) - ((earlyPL + earlyQL + earlyRL + earlySL)*2.0));
eAR[countAR] = ((earlyBR*3.0) - ((earlyGR + earlyLR + earlyQR + earlyVR)*2.0));
eFR[countFR] = ((earlyGR*3.0) - ((earlyBR + earlyLR + earlyQR + earlyVR)*2.0));
eKR[countKR] = ((earlyLR*3.0) - ((earlyBR + earlyGR + earlyQR + earlyVR)*2.0));
ePR[countPR] = ((earlyQR*3.0) - ((earlyBR + earlyGR + earlyLR + earlyVR)*2.0));
eUR[countUR] = ((earlyVR*3.0) - ((earlyBR + earlyGR + earlyLR + earlyQR)*2.0));
aUL[countUL] = ((outPL*3.0) - ((outQL + outRL + outSL + outTL)*2.0));
aVL[countVL] = ((outQL*3.0) - ((outPL + outRL + outSL + outTL)*2.0));
aWL[countWL] = ((outRL*3.0) - ((outPL + outQL + outSL + outTL)*2.0));
aXL[countXL] = ((outSL*3.0) - ((outPL + outQL + outRL + outTL)*2.0));
aYL[countYL] = ((outTL*3.0) - ((outPL + outQL + outRL + outSL)*2.0));
aAR[countAR] = ((outBR*3.0) - ((outGR + outLR + outQR + outVR)*2.0));
aFR[countFR] = ((outGR*3.0) - ((outBR + outLR + outQR + outVR)*2.0));
aKR[countKR] = ((outLR*3.0) - ((outBR + outGR + outQR + outVR)*2.0));
aPR[countPR] = ((outQR*3.0) - ((outBR + outGR + outLR + outVR)*2.0));
aUR[countUR] = ((outVR*3.0) - ((outBR + outGR + outLR + outQR)*2.0));
countUL++; if (countUL < 0 || countUL > delayU) countUL = 0;
countVL++; if (countVL < 0 || countVL > delayV) countVL = 0;
countWL++; if (countWL < 0 || countWL > delayW) countWL = 0;
countXL++; if (countXL < 0 || countXL > delayX) countXL = 0;
countYL++; if (countYL < 0 || countYL > delayY) countYL = 0;
countAR++; if (countAR < 0 || countAR > delayA) countAR = 0;
countFR++; if (countFR < 0 || countFR > delayF) countFR = 0;
countKR++; if (countKR < 0 || countKR > delayK) countKR = 0;
countPR++; if (countPR < 0 || countPR > delayP) countPR = 0;
countUR++; if (countUR < 0 || countUR > delayU) countUR = 0;
double earlyUL = eUL[countUL-((countUL > delayU)?delayU+1:0)];
double earlyVL = eVL[countVL-((countVL > delayV)?delayV+1:0)];
double earlyWL = eWL[countWL-((countWL > delayW)?delayW+1:0)];
double earlyXL = eXL[countXL-((countXL > delayX)?delayX+1:0)];
double earlyYL = eYL[countYL-((countYL > delayY)?delayY+1:0)];
double earlyAR = eAR[countAR-((countAR > delayA)?delayA+1:0)];
double earlyFR = eFR[countFR-((countFR > delayF)?delayF+1:0)];
double earlyKR = eKR[countKR-((countKR > delayK)?delayK+1:0)];
double earlyPR = ePR[countPR-((countPR > delayP)?delayP+1:0)];
double earlyUR = eUR[countUR-((countUR > delayU)?delayU+1:0)];
double outUL = aUL[countUL-((countUL > delayU)?delayU+1:0)];
double outVL = aVL[countVL-((countVL > delayV)?delayV+1:0)];
double outWL = aWL[countWL-((countWL > delayW)?delayW+1:0)];
double outXL = aXL[countXL-((countXL > delayX)?delayX+1:0)];
double outYL = aYL[countYL-((countYL > delayY)?delayY+1:0)];
double outAR = aAR[countAR-((countAR > delayA)?delayA+1:0)];
double outFR = aFR[countFR-((countFR > delayF)?delayF+1:0)];
double outKR = aKR[countKR-((countKR > delayK)?delayK+1:0)];
double outPR = aPR[countPR-((countPR > delayP)?delayP+1:0)];
double outUR = aUR[countUR-((countUR > delayU)?delayU+1:0)];
//-------- five
earlyReflectionL = (earlyUL + earlyVL + earlyWL + earlyXL + earlyYL)*0.0008;
earlyReflectionR = (earlyAR + earlyFR + earlyKR + earlyPR + earlyUR)*0.0008;
//and take the final combined sum of outputs, corrected for Householder gain
feedbackAL = ((outAR*3.0) - ((outFR + outKR + outPR + outUR)*2.0)); feedbackSum = fabs(feedbackAL);
feedbackER = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackER);
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackBL);
feedbackJR = ((outFR*3.0) - ((outAR + outKR + outPR + outUR)*2.0)); feedbackSum += fabs(feedbackJR);
feedbackCL = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackCL);
feedbackOR = ((outKR*3.0) - ((outAR + outFR + outPR + outUR)*2.0)); feedbackSum += fabs(feedbackOR);
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0)); feedbackSum += fabs(feedbackDL);
feedbackTR = ((outPR*3.0) - ((outAR + outFR + outKR + outUR)*2.0)); feedbackSum += fabs(feedbackTR);
feedbackEL = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0)); feedbackSum += fabs(feedbackEL);
feedbackYR = ((outUR*3.0) - ((outAR + outFR + outKR + outPR)*2.0)); feedbackSum += fabs(feedbackYR);
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0008;
inputSampleR = (outAR + outFR + outKR + outPR + outUR)*0.0008;
//and take the final combined sum of outputs, corrected for Householder gain
inputSampleL += (earlyReflectionL * earlyLoudness);
inputSampleR += (earlyReflectionR * earlyLoudness);
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = inputSampleL;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = inputSampleR;
bez[bez_SampR] = 0.0;
}
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*0.125;
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*0.125;
inputSampleL = CBAL;
inputSampleR = CBAR;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}
void kCosmos::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double regenMax = (1.0-pow(1.0-A,3.0))*0.000321;
//start this but pad it in the loop by volume of output?
double feedbackSum = 0.0;
bool applyCream = (B > 0.9999);
double remainder = (overallscale-1.0)*0.0375;
derezA = derezB; derezB = B/overallscale;
if (applyCream) derezB = 1.0 / ((int)(1.0/derezB));
else derezB /= (2.0/pow(overallscale,0.5-remainder));
//this hard-locks derez to exact subdivisions of 1.0
if (derezB < 0.0005) derezB = 0.0005; if (derezB > 1.0) derezB = 1.0;
double freq = C*M_PI_2; if (freq < 0.5) freq = 0.5;
bool applyAvg = (C < 1.0);
double earlyLoudness = D;
int adjPredelay = predelay*E*derezB;
double wet = F;
double fir[74]; fir[36] = 1.0;
for(int fip = 0; fip < 36; fip++) {
fir[fip] = (fip-36)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
}
for(int fip = 37; fip < 72; fip++) {
fir[fip] = (fip-36)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
} //setting up the filter which will run inside DeRez
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
double temp = (double)sampleFrames/inFramesToProcess;
double derez = (derezA*temp)+(derezB*(1.0-temp));
bez[bez_cycle] += derez;
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
if (applyCream) bez[bez_cycle] = 0.0;
else bez[bez_cycle] -= 1.0;
//predelay
aZL[countZ] = bez[bez_SampL];
aZR[countZ] = bez[bez_SampR];
countZ++; if (countZ < 0 || countZ > adjPredelay) countZ = 0;
bez[bez_SampL] = aZL[countZ-((countZ > adjPredelay)?adjPredelay+1:0)];
bez[bez_SampR] = aZR[countZ-((countZ > adjPredelay)?adjPredelay+1:0)];
//end predelay
eAL[countAL] = bez[bez_SampL];
eBL[countBL] = bez[bez_SampL];
eCL[countCL] = bez[bez_SampL];
eDL[countDL] = bez[bez_SampL];
eEL[countEL] = bez[bez_SampL];
eER[countER] = bez[bez_SampR];
eJR[countJR] = bez[bez_SampR];
eOR[countOR] = bez[bez_SampR];
eTR[countTR] = bez[bez_SampR];
eYR[countYR] = bez[bez_SampR];
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBufferL[firp] = earlyReflectionL; earlyReflectionL = 0.0;
firBufferR[firp] = earlyReflectionR; earlyReflectionR = 0.0;
if (firp + 72 < 32767) {
for(int fip = 1; fip < 72; fip++) {
earlyReflectionL += firBufferL[firp+fip] * fir[fip];
earlyReflectionR += firBufferR[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < 72; fip++) {
earlyReflectionL += firBufferL[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
earlyReflectionR += firBufferR[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
earlyReflectionL *= 0.25; earlyReflectionR *= 0.25;
earlyReflectionL *= sqrt(freq); earlyReflectionR *= sqrt(freq);
firPosition--;//here's the brickwall FIR filter, running in front of the Householder matrix
feedbackSum *= 0.00001;
feedbackSum += fabs(earlyReflectionL);
feedbackSum += fabs(earlyReflectionR);
feedbackSum *= 0.00003;
double regen = fmax(regenMax - feedbackSum, 0.0);
if (applyAvg) regen *= 0.5;
else {
prevAL = prevBL = prevCL = prevDL = prevEL = 0.0;
prevER = prevJR = prevOR = prevTR = prevYR = 0.0;
}
aAL[countAL] = earlyReflectionL + ((feedbackAL+prevAL) * regen);
aBL[countBL] = earlyReflectionL + ((feedbackBL+prevBL) * regen);
aCL[countCL] = earlyReflectionL + ((feedbackCL+prevCL) * regen);
aDL[countDL] = earlyReflectionL + ((feedbackDL+prevDL) * regen);
aEL[countEL] = earlyReflectionL + ((feedbackEL+prevEL) * regen);
aER[countER] = earlyReflectionR + ((feedbackER+prevER) * regen);
aJR[countJR] = earlyReflectionR + ((feedbackJR+prevJR) * regen);
aOR[countOR] = earlyReflectionR + ((feedbackOR+prevOR) * regen);
aTR[countTR] = earlyReflectionR + ((feedbackTR+prevTR) * regen);
aYR[countYR] = earlyReflectionR + ((feedbackYR+prevYR) * regen);
prevAL = feedbackAL;
prevBL = feedbackBL;
prevCL = feedbackCL;
prevDL = feedbackDL;
prevEL = feedbackEL;
prevER = feedbackER;
prevJR = feedbackJR;
prevOR = feedbackOR;
prevTR = feedbackTR;
prevYR = feedbackYR;
countAL++; if (countAL < 0 || countAL > delayA) countAL = 0;
countBL++; if (countBL < 0 || countBL > delayB) countBL = 0;
countCL++; if (countCL < 0 || countCL > delayC) countCL = 0;
countDL++; if (countDL < 0 || countDL > delayD) countDL = 0;
countEL++; if (countEL < 0 || countEL > delayE) countEL = 0;
countER++; if (countER < 0 || countER > delayE) countER = 0;
countJR++; if (countJR < 0 || countJR > delayJ) countJR = 0;
countOR++; if (countOR < 0 || countOR > delayO) countOR = 0;
countTR++; if (countTR < 0 || countTR > delayT) countTR = 0;
countYR++; if (countYR < 0 || countYR > delayY) countYR = 0;
double earlyAL = eAL[countAL-((countAL > delayA)?delayA+1:0)];
double earlyBL = eBL[countBL-((countBL > delayB)?delayB+1:0)];
double earlyCL = eCL[countCL-((countCL > delayC)?delayC+1:0)];
double earlyDL = eDL[countDL-((countDL > delayD)?delayD+1:0)];
double earlyEL = eEL[countEL-((countEL > delayE)?delayE+1:0)];
double earlyER = eER[countER-((countER > delayE)?delayE+1:0)];
double earlyJR = eJR[countJR-((countJR > delayJ)?delayJ+1:0)];
double earlyOR = eOR[countOR-((countOR > delayO)?delayO+1:0)];
double earlyTR = eTR[countTR-((countTR > delayT)?delayT+1:0)];
double earlyYR = eYR[countYR-((countYR > delayY)?delayY+1:0)];
double outAL = aAL[countAL-((countAL > delayA)?delayA+1:0)];
double outBL = aBL[countBL-((countBL > delayB)?delayB+1:0)];
double outCL = aCL[countCL-((countCL > delayC)?delayC+1:0)];
double outDL = aDL[countDL-((countDL > delayD)?delayD+1:0)];
double outEL = aEL[countEL-((countEL > delayE)?delayE+1:0)];
double outER = aER[countER-((countER > delayE)?delayE+1:0)];
double outJR = aJR[countJR-((countJR > delayJ)?delayJ+1:0)];
double outOR = aOR[countOR-((countOR > delayO)?delayO+1:0)];
double outTR = aTR[countTR-((countTR > delayT)?delayT+1:0)];
double outYR = aYR[countYR-((countYR > delayY)?delayY+1:0)];
//-------- one
eFL[countFL] = ((earlyAL*3.0) - ((earlyBL + earlyCL + earlyDL + earlyEL)*2.0));
eGL[countGL] = ((earlyBL*3.0) - ((earlyAL + earlyCL + earlyDL + earlyEL)*2.0));
eHL[countHL] = ((earlyCL*3.0) - ((earlyAL + earlyBL + earlyDL + earlyEL)*2.0));
eIL[countIL] = ((earlyDL*3.0) - ((earlyAL + earlyBL + earlyCL + earlyEL)*2.0));
eJL[countJL] = ((earlyEL*3.0) - ((earlyAL + earlyBL + earlyCL + earlyDL)*2.0));
eDR[countDR] = ((earlyER*3.0) - ((earlyJR + earlyOR + earlyTR + earlyYR)*2.0));
eIR[countIR] = ((earlyJR*3.0) - ((earlyER + earlyOR + earlyTR + earlyYR)*2.0));
eNR[countNR] = ((earlyOR*3.0) - ((earlyER + earlyJR + earlyTR + earlyYR)*2.0));
eSR[countSR] = ((earlyTR*3.0) - ((earlyER + earlyJR + earlyOR + earlyYR)*2.0));
eXR[countXR] = ((earlyYR*3.0) - ((earlyER + earlyJR + earlyOR + earlyTR)*2.0));
aFL[countFL] = ((outAL*3.0) - ((outBL + outCL + outDL + outEL)*2.0));
aGL[countGL] = ((outBL*3.0) - ((outAL + outCL + outDL + outEL)*2.0));
aHL[countHL] = ((outCL*3.0) - ((outAL + outBL + outDL + outEL)*2.0));
aIL[countIL] = ((outDL*3.0) - ((outAL + outBL + outCL + outEL)*2.0));
aJL[countJL] = ((outEL*3.0) - ((outAL + outBL + outCL + outDL)*2.0));
aDR[countDR] = ((outER*3.0) - ((outJR + outOR + outTR + outYR)*2.0));
aIR[countIR] = ((outJR*3.0) - ((outER + outOR + outTR + outYR)*2.0));
aNR[countNR] = ((outOR*3.0) - ((outER + outJR + outTR + outYR)*2.0));
aSR[countSR] = ((outTR*3.0) - ((outER + outJR + outOR + outYR)*2.0));
aXR[countXR] = ((outYR*3.0) - ((outER + outJR + outOR + outTR)*2.0));
countFL++; if (countFL < 0 || countFL > delayF) countFL = 0;
countGL++; if (countGL < 0 || countGL > delayG) countGL = 0;
countHL++; if (countHL < 0 || countHL > delayH) countHL = 0;
countIL++; if (countIL < 0 || countIL > delayI) countIL = 0;
countJL++; if (countJL < 0 || countJL > delayJ) countJL = 0;
countDR++; if (countDR < 0 || countDR > delayD) countDR = 0;
countIR++; if (countIR < 0 || countIR > delayI) countIR = 0;
countNR++; if (countNR < 0 || countNR > delayN) countNR = 0;
countSR++; if (countSR < 0 || countSR > delayS) countSR = 0;
countXR++; if (countXR < 0 || countXR > delayX) countXR = 0;
double earlyFL = eFL[countFL-((countFL > delayF)?delayF+1:0)];
double earlyGL = eGL[countGL-((countGL > delayG)?delayG+1:0)];
double earlyHL = eHL[countHL-((countHL > delayH)?delayH+1:0)];
double earlyIL = eIL[countIL-((countIL > delayI)?delayI+1:0)];
double earlyJL = eJL[countJL-((countJL > delayJ)?delayJ+1:0)];
double earlyDR = eDR[countDR-((countDR > delayD)?delayD+1:0)];
double earlyIR = eIR[countIR-((countIR > delayI)?delayI+1:0)];
double earlyNR = eNR[countNR-((countNR > delayN)?delayN+1:0)];
double earlySR = eSR[countSR-((countSR > delayS)?delayS+1:0)];
double earlyXR = eXR[countXR-((countXR > delayX)?delayX+1:0)];
double outFL = aFL[countFL-((countFL > delayF)?delayF+1:0)];
double outGL = aGL[countGL-((countGL > delayG)?delayG+1:0)];
double outHL = aHL[countHL-((countHL > delayH)?delayH+1:0)];
double outIL = aIL[countIL-((countIL > delayI)?delayI+1:0)];
double outJL = aJL[countJL-((countJL > delayJ)?delayJ+1:0)];
double outDR = aDR[countDR-((countDR > delayD)?delayD+1:0)];
double outIR = aIR[countIR-((countIR > delayI)?delayI+1:0)];
double outNR = aNR[countNR-((countNR > delayN)?delayN+1:0)];
double outSR = aSR[countSR-((countSR > delayS)?delayS+1:0)];
double outXR = aXR[countXR-((countXR > delayX)?delayX+1:0)];
//-------- two
eKL[countKL] = ((earlyFL*3.0) - ((earlyGL + earlyHL + earlyIL + earlyJL)*2.0));
eLL[countLL] = ((earlyGL*3.0) - ((earlyFL + earlyHL + earlyIL + earlyJL)*2.0));
eML[countML] = ((earlyHL*3.0) - ((earlyFL + earlyGL + earlyIL + earlyJL)*2.0));
eNL[countNL] = ((earlyIL*3.0) - ((earlyFL + earlyGL + earlyHL + earlyJL)*2.0));
eOL[countOL] = ((earlyJL*3.0) - ((earlyFL + earlyGL + earlyHL + earlyIL)*2.0));
eCR[countCR] = ((earlyDR*3.0) - ((earlyIR + earlyNR + earlySR + earlyXR)*2.0));
eHR[countHR] = ((earlyIR*3.0) - ((earlyDR + earlyNR + earlySR + earlyXR)*2.0));
eMR[countMR] = ((earlyNR*3.0) - ((earlyDR + earlyIR + earlySR + earlyXR)*2.0));
eRR[countRR] = ((earlySR*3.0) - ((earlyDR + earlyIR + earlyNR + earlyXR)*2.0));
eWR[countWR] = ((earlyXR*3.0) - ((earlyDR + earlyIR + earlyNR + earlySR)*2.0));
aKL[countKL] = ((outFL*3.0) - ((outGL + outHL + outIL + outJL)*2.0));
aLL[countLL] = ((outGL*3.0) - ((outFL + outHL + outIL + outJL)*2.0));
aML[countML] = ((outHL*3.0) - ((outFL + outGL + outIL + outJL)*2.0));
aNL[countNL] = ((outIL*3.0) - ((outFL + outGL + outHL + outJL)*2.0));
aOL[countOL] = ((outJL*3.0) - ((outFL + outGL + outHL + outIL)*2.0));
aCR[countCR] = ((outDR*3.0) - ((outIR + outNR + outSR + outXR)*2.0));
aHR[countHR] = ((outIR*3.0) - ((outDR + outNR + outSR + outXR)*2.0));
aMR[countMR] = ((outNR*3.0) - ((outDR + outIR + outSR + outXR)*2.0));
aRR[countRR] = ((outSR*3.0) - ((outDR + outIR + outNR + outXR)*2.0));
aWR[countWR] = ((outXR*3.0) - ((outDR + outIR + outNR + outSR)*2.0));
countKL++; if (countKL < 0 || countKL > delayK) countKL = 0;
countLL++; if (countLL < 0 || countLL > delayL) countLL = 0;
countML++; if (countML < 0 || countML > delayM) countML = 0;
countNL++; if (countNL < 0 || countNL > delayN) countNL = 0;
countOL++; if (countOL < 0 || countOL > delayO) countOL = 0;
countCR++; if (countCR < 0 || countCR > delayC) countCR = 0;
countHR++; if (countHR < 0 || countHR > delayH) countHR = 0;
countMR++; if (countMR < 0 || countMR > delayM) countMR = 0;
countRR++; if (countRR < 0 || countRR > delayR) countRR = 0;
countWR++; if (countWR < 0 || countWR > delayW) countWR = 0;
double earlyKL = eKL[countKL-((countKL > delayK)?delayK+1:0)];
double earlyLL = eLL[countLL-((countLL > delayL)?delayL+1:0)];
double earlyML = eML[countML-((countML > delayM)?delayM+1:0)];
double earlyNL = eNL[countNL-((countNL > delayN)?delayN+1:0)];
double earlyOL = eOL[countOL-((countOL > delayO)?delayO+1:0)];
double earlyCR = eCR[countCR-((countCR > delayC)?delayC+1:0)];
double earlyHR = eHR[countHR-((countHR > delayH)?delayH+1:0)];
double earlyMR = eMR[countMR-((countMR > delayM)?delayM+1:0)];
double earlyRR = eRR[countRR-((countRR > delayR)?delayR+1:0)];
double earlyWR = eWR[countWR-((countWR > delayW)?delayW+1:0)];
double outKL = aKL[countKL-((countKL > delayK)?delayK+1:0)];
double outLL = aLL[countLL-((countLL > delayL)?delayL+1:0)];
double outML = aML[countML-((countML > delayM)?delayM+1:0)];
double outNL = aNL[countNL-((countNL > delayN)?delayN+1:0)];
double outOL = aOL[countOL-((countOL > delayO)?delayO+1:0)];
double outCR = aCR[countCR-((countCR > delayC)?delayC+1:0)];
double outHR = aHR[countHR-((countHR > delayH)?delayH+1:0)];
double outMR = aMR[countMR-((countMR > delayM)?delayM+1:0)];
double outRR = aRR[countRR-((countRR > delayR)?delayR+1:0)];
double outWR = aWR[countWR-((countWR > delayW)?delayW+1:0)];
//-------- three
ePL[countPL] = ((earlyKL*3.0) - ((earlyLL + earlyML + earlyNL + earlyOL)*2.0));
eQL[countQL] = ((earlyLL*3.0) - ((earlyKL + earlyML + earlyNL + earlyOL)*2.0));
eRL[countRL] = ((earlyML*3.0) - ((earlyKL + earlyLL + earlyNL + earlyOL)*2.0));
eSL[countSL] = ((earlyNL*3.0) - ((earlyKL + earlyLL + earlyML + earlyOL)*2.0));
eTL[countTL] = ((earlyOL*3.0) - ((earlyKL + earlyLL + earlyML + earlyNL)*2.0));
eBR[countBR] = ((earlyCR*3.0) - ((earlyHR + earlyMR + earlyRR + earlyWR)*2.0));
eGR[countGR] = ((earlyHR*3.0) - ((earlyCR + earlyMR + earlyRR + earlyWR)*2.0));
eLR[countLR] = ((earlyMR*3.0) - ((earlyCR + earlyHR + earlyRR + earlyWR)*2.0));
eQR[countQR] = ((earlyRR*3.0) - ((earlyCR + earlyHR + earlyMR + earlyWR)*2.0));
eVR[countVR] = ((earlyWR*3.0) - ((earlyCR + earlyHR + earlyMR + earlyRR)*2.0));
aPL[countPL] = ((outKL*3.0) - ((outLL + outML + outNL + outOL)*2.0));
aQL[countQL] = ((outLL*3.0) - ((outKL + outML + outNL + outOL)*2.0));
aRL[countRL] = ((outML*3.0) - ((outKL + outLL + outNL + outOL)*2.0));
aSL[countSL] = ((outNL*3.0) - ((outKL + outLL + outML + outOL)*2.0));
aTL[countTL] = ((outOL*3.0) - ((outKL + outLL + outML + outNL)*2.0));
aBR[countBR] = ((outCR*3.0) - ((outHR + outMR + outRR + outWR)*2.0));
aGR[countGR] = ((outHR*3.0) - ((outCR + outMR + outRR + outWR)*2.0));
aLR[countLR] = ((outMR*3.0) - ((outCR + outHR + outRR + outWR)*2.0));
aQR[countQR] = ((outRR*3.0) - ((outCR + outHR + outMR + outWR)*2.0));
aVR[countVR] = ((outWR*3.0) - ((outCR + outHR + outMR + outRR)*2.0));
countPL++; if (countPL < 0 || countPL > delayP) countPL = 0;
countQL++; if (countQL < 0 || countQL > delayQ) countQL = 0;
countRL++; if (countRL < 0 || countRL > delayR) countRL = 0;
countSL++; if (countSL < 0 || countSL > delayS) countSL = 0;
countTL++; if (countTL < 0 || countTL > delayT) countTL = 0;
countBR++; if (countBR < 0 || countBR > delayB) countBR = 0;
countGR++; if (countGR < 0 || countGR > delayG) countGR = 0;
countLR++; if (countLR < 0 || countLR > delayL) countLR = 0;
countQR++; if (countQR < 0 || countQR > delayQ) countQR = 0;
countVR++; if (countVR < 0 || countVR > delayV) countVR = 0;
double earlyPL = ePL[countPL-((countPL > delayP)?delayP+1:0)];
double earlyQL = eQL[countQL-((countQL > delayQ)?delayQ+1:0)];
double earlyRL = eRL[countRL-((countRL > delayR)?delayR+1:0)];
double earlySL = eSL[countSL-((countSL > delayS)?delayS+1:0)];
double earlyTL = eTL[countTL-((countTL > delayT)?delayT+1:0)];
double earlyBR = eBR[countBR-((countBR > delayB)?delayB+1:0)];
double earlyGR = eGR[countGR-((countGR > delayG)?delayG+1:0)];
double earlyLR = eLR[countLR-((countLR > delayL)?delayL+1:0)];
double earlyQR = eQR[countQR-((countQR > delayQ)?delayQ+1:0)];
double earlyVR = eVR[countVR-((countVR > delayV)?delayV+1:0)];
double outPL = aPL[countPL-((countPL > delayP)?delayP+1:0)];
double outQL = aQL[countQL-((countQL > delayQ)?delayQ+1:0)];
double outRL = aRL[countRL-((countRL > delayR)?delayR+1:0)];
double outSL = aSL[countSL-((countSL > delayS)?delayS+1:0)];
double outTL = aTL[countTL-((countTL > delayT)?delayT+1:0)];
double outBR = aBR[countBR-((countBR > delayB)?delayB+1:0)];
double outGR = aGR[countGR-((countGR > delayG)?delayG+1:0)];
double outLR = aLR[countLR-((countLR > delayL)?delayL+1:0)];
double outQR = aQR[countQR-((countQR > delayQ)?delayQ+1:0)];
double outVR = aVR[countVR-((countVR > delayV)?delayV+1:0)];
//-------- four
eUL[countUL] = ((earlyPL*3.0) - ((earlyQL + earlyRL + earlySL + earlyTL)*2.0));
eVL[countVL] = ((earlyQL*3.0) - ((earlyPL + earlyRL + earlySL + earlyTL)*2.0));
eWL[countWL] = ((earlyRL*3.0) - ((earlyPL + earlyQL + earlySL + earlyTL)*2.0));
eXL[countXL] = ((earlySL*3.0) - ((earlyPL + earlyQL + earlyRL + earlyTL)*2.0));
eYL[countYL] = ((earlyTL*3.0) - ((earlyPL + earlyQL + earlyRL + earlySL)*2.0));
eAR[countAR] = ((earlyBR*3.0) - ((earlyGR + earlyLR + earlyQR + earlyVR)*2.0));
eFR[countFR] = ((earlyGR*3.0) - ((earlyBR + earlyLR + earlyQR + earlyVR)*2.0));
eKR[countKR] = ((earlyLR*3.0) - ((earlyBR + earlyGR + earlyQR + earlyVR)*2.0));
ePR[countPR] = ((earlyQR*3.0) - ((earlyBR + earlyGR + earlyLR + earlyVR)*2.0));
eUR[countUR] = ((earlyVR*3.0) - ((earlyBR + earlyGR + earlyLR + earlyQR)*2.0));
aUL[countUL] = ((outPL*3.0) - ((outQL + outRL + outSL + outTL)*2.0));
aVL[countVL] = ((outQL*3.0) - ((outPL + outRL + outSL + outTL)*2.0));
aWL[countWL] = ((outRL*3.0) - ((outPL + outQL + outSL + outTL)*2.0));
aXL[countXL] = ((outSL*3.0) - ((outPL + outQL + outRL + outTL)*2.0));
aYL[countYL] = ((outTL*3.0) - ((outPL + outQL + outRL + outSL)*2.0));
aAR[countAR] = ((outBR*3.0) - ((outGR + outLR + outQR + outVR)*2.0));
aFR[countFR] = ((outGR*3.0) - ((outBR + outLR + outQR + outVR)*2.0));
aKR[countKR] = ((outLR*3.0) - ((outBR + outGR + outQR + outVR)*2.0));
aPR[countPR] = ((outQR*3.0) - ((outBR + outGR + outLR + outVR)*2.0));
aUR[countUR] = ((outVR*3.0) - ((outBR + outGR + outLR + outQR)*2.0));
countUL++; if (countUL < 0 || countUL > delayU) countUL = 0;
countVL++; if (countVL < 0 || countVL > delayV) countVL = 0;
countWL++; if (countWL < 0 || countWL > delayW) countWL = 0;
countXL++; if (countXL < 0 || countXL > delayX) countXL = 0;
countYL++; if (countYL < 0 || countYL > delayY) countYL = 0;
countAR++; if (countAR < 0 || countAR > delayA) countAR = 0;
countFR++; if (countFR < 0 || countFR > delayF) countFR = 0;
countKR++; if (countKR < 0 || countKR > delayK) countKR = 0;
countPR++; if (countPR < 0 || countPR > delayP) countPR = 0;
countUR++; if (countUR < 0 || countUR > delayU) countUR = 0;
double earlyUL = eUL[countUL-((countUL > delayU)?delayU+1:0)];
double earlyVL = eVL[countVL-((countVL > delayV)?delayV+1:0)];
double earlyWL = eWL[countWL-((countWL > delayW)?delayW+1:0)];
double earlyXL = eXL[countXL-((countXL > delayX)?delayX+1:0)];
double earlyYL = eYL[countYL-((countYL > delayY)?delayY+1:0)];
double earlyAR = eAR[countAR-((countAR > delayA)?delayA+1:0)];
double earlyFR = eFR[countFR-((countFR > delayF)?delayF+1:0)];
double earlyKR = eKR[countKR-((countKR > delayK)?delayK+1:0)];
double earlyPR = ePR[countPR-((countPR > delayP)?delayP+1:0)];
double earlyUR = eUR[countUR-((countUR > delayU)?delayU+1:0)];
double outUL = aUL[countUL-((countUL > delayU)?delayU+1:0)];
double outVL = aVL[countVL-((countVL > delayV)?delayV+1:0)];
double outWL = aWL[countWL-((countWL > delayW)?delayW+1:0)];
double outXL = aXL[countXL-((countXL > delayX)?delayX+1:0)];
double outYL = aYL[countYL-((countYL > delayY)?delayY+1:0)];
double outAR = aAR[countAR-((countAR > delayA)?delayA+1:0)];
double outFR = aFR[countFR-((countFR > delayF)?delayF+1:0)];
double outKR = aKR[countKR-((countKR > delayK)?delayK+1:0)];
double outPR = aPR[countPR-((countPR > delayP)?delayP+1:0)];
double outUR = aUR[countUR-((countUR > delayU)?delayU+1:0)];
//-------- five
earlyReflectionL = (earlyUL + earlyVL + earlyWL + earlyXL + earlyYL)*0.0008;
earlyReflectionR = (earlyAR + earlyFR + earlyKR + earlyPR + earlyUR)*0.0008;
//and take the final combined sum of outputs, corrected for Householder gain
feedbackAL = ((outAR*3.0) - ((outFR + outKR + outPR + outUR)*2.0)); feedbackSum = fabs(feedbackAL);
feedbackER = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackER);
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackBL);
feedbackJR = ((outFR*3.0) - ((outAR + outKR + outPR + outUR)*2.0)); feedbackSum += fabs(feedbackJR);
feedbackCL = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackCL);
feedbackOR = ((outKR*3.0) - ((outAR + outFR + outPR + outUR)*2.0)); feedbackSum += fabs(feedbackOR);
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0)); feedbackSum += fabs(feedbackDL);
feedbackTR = ((outPR*3.0) - ((outAR + outFR + outKR + outUR)*2.0)); feedbackSum += fabs(feedbackTR);
feedbackEL = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0)); feedbackSum += fabs(feedbackEL);
feedbackYR = ((outUR*3.0) - ((outAR + outFR + outKR + outPR)*2.0)); feedbackSum += fabs(feedbackYR);
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0008;
inputSampleR = (outAR + outFR + outKR + outPR + outUR)*0.0008;
//and take the final combined sum of outputs, corrected for Householder gain
inputSampleL += (earlyReflectionL * earlyLoudness);
inputSampleR += (earlyReflectionR * earlyLoudness);
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = inputSampleL;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = inputSampleR;
bez[bez_SampR] = 0.0;
}
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*0.125;
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*0.125;
inputSampleL = CBAL;
inputSampleR = CBAR;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

View file

@ -0,0 +1,348 @@
/*
* File: ChimeyGuitar.cpp
*
* Version: 1.0
*
* Created: 5/8/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
ChimeyGuitar.cpp
=============================================================================*/
#include "ChimeyGuitar.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(ChimeyGuitar)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::ChimeyGuitar
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ChimeyGuitar::ChimeyGuitar(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
SetParameter(kParam_G, kDefaultValue_ParamG );
SetParameter(kParam_H, kDefaultValue_ParamH );
SetParameter(kParam_I, kDefaultValue_ParamI );
SetParameter(kParam_J, kDefaultValue_ParamJ );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
case kParam_F:
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamF;
break;
case kParam_G:
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamG;
break;
case kParam_H:
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamH;
break;
case kParam_I:
AUBase::FillInParameterName (outParameterInfo, kParameterIName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamI;
break;
case kParam_J:
AUBase::FillInParameterName (outParameterInfo, kParameterJName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamJ;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// ChimeyGuitar::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____ChimeyGuitarEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::ChimeyGuitarKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ChimeyGuitar::ChimeyGuitarKernel::Reset()
{
for(int x=0; x<21; x++) {
for(int y=0; y<11; y++) {
angS[x][y] = 0.0;angA[x][y] = 0.0;
}
}
for(int y=0; y<11; y++) {
angG[y] = 0.0;
for (int x = 0; x < bez_total; x++) {bezComp[x][y] = 0.0;}
bezComp[bez_cycle][y] = 1.0;
}
bezRezA = bezRezB = 0.0002;
for(int count = 0; count < 36; count++) {
iirHPosition[count] = 0.0;
iirHAngle[count] = 0.0;
iirBPosition[count] = 0.0;
iirBAngle[count] = 0.0;
}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::ChimeyGuitarKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ChimeyGuitar::ChimeyGuitarKernel::Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence )
{
UInt32 nSampleFrames = inFramesToProcess;
const Float32 *sourceP = inSourceP;
Float32 *destP = inDestP;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
int poles = (int)(pow(GetParameter( kParam_A ),2)*20.0);
angG[0] = sqrt(GetParameter( kParam_B )*2.0);
angG[2] = sqrt(GetParameter( kParam_C )*2.0);
angG[4] = sqrt(GetParameter( kParam_D )*2.0);
angG[6] = sqrt(GetParameter( kParam_E )*2.0);
angG[8] = sqrt(GetParameter( kParam_F )*2.0);
angG[1] = (angG[0]+angG[2])*0.5;
angG[3] = (angG[2]+angG[4])*0.5;
angG[5] = (angG[4]+angG[6])*0.5;
angG[7] = (angG[6]+angG[8])*0.5;
angG[9] = angG[8];
double hFreq = pow(GetParameter( kParam_G ),overallscale);
double lFreq = pow(GetParameter( kParam_H ),overallscale+3.0);
bezRezA = bezRezB; bezRezB = ((pow(GetParameter( kParam_I ),4.0)*0.5)+0.0002)/overallscale;
if (bezRezB > 1.0) bezRezB = 1.0;
double output = GetParameter( kParam_J );
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double temp = (double)nSampleFrames/inFramesToProcess;
double bezRez = (bezRezA*temp)+(bezRezB*(1.0-temp));
double CBAL = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSample; inputSample = 0.0;
for (int y = 0; y < 9; y++) {
angA[x][y] = (angA[x][y]*(1.0-fr)) + ((band-angS[x][y])*fr);
double temp = band; band = ((angS[x][y]+(angA[x][y]*fr)) * (1.0-fr))+(band*fr);
angS[x][y] = ((angS[x][y]+(angA[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSample += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycle][y] += bezRez;
bezComp[bez_SampL][y] += (fabs(inputSample) * bezRez);
if (bezComp[bez_cycle][y] > 1.0) {
bezComp[bez_cycle][y] -= 1.0;
bezComp[bez_CL][y] = bezComp[bez_BL][y];
bezComp[bez_BL][y] = bezComp[bez_AL][y];
bezComp[bez_AL][y] = bezComp[bez_SampL][y];
bezComp[bez_SampL][y] = 0.0;
}
double CBL = (bezComp[bez_CL][y]*(1.0-bezComp[bez_cycle][y]))+(bezComp[bez_BL][y]*bezComp[bez_cycle][y]);
double BAL = (bezComp[bez_BL][y]*(1.0-bezComp[bez_cycle][y]))+(bezComp[bez_AL][y]*bezComp[bez_cycle][y]);
CBAL += (bezComp[bez_BL][y]+(CBL*(1.0-bezComp[bez_cycle][y]))+(BAL*bezComp[bez_cycle][y]))*0.5;
inputSample *= 1.0-(fmin(CBAL*0.01,1.0));
}
inputSample += (band*angG[9]);
}
inputSample = sin(inputSample);
double lowSample = inputSample;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngle[count] = (iirBAngle[count]*(1.0-lFreq))+((lowSample-iirBPosition[count])*lFreq);
lowSample = ((iirBPosition[count]+(iirBAngle[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPosition[count] = ((iirBPosition[count]+(iirBAngle[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSample -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngle[count] = (iirHAngle[count]*(1.0-hFreq))+((inputSample-iirHPosition[count])*hFreq);
inputSample = ((iirHPosition[count]+(iirHAngle[count]*hFreq))*(1.0-hFreq))+(inputSample*hFreq);
iirHPosition[count] = ((iirHPosition[count]+(iirHAngle[count]*hFreq))*(1.0-hFreq))+(inputSample*hFreq);
} //the lowpass
inputSample *= output;
//begin 32 bit floating point dither
int expon; frexpf((float)inputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSample;
sourceP += inNumChannels; destP += inNumChannels;
}
}

View file

@ -0,0 +1 @@
_ChimeyGuitarEntry

View file

@ -0,0 +1,181 @@
/*
* File: ChimeyGuitar.h
*
* Version: 1.0
*
* Created: 5/8/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "ChimeyGuitarVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __ChimeyGuitar_h__
#define __ChimeyGuitar_h__
#pragma mark ____ChimeyGuitar Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.8;
static const float kDefaultValue_ParamC = 0.7;
static const float kDefaultValue_ParamD = 0.5;
static const float kDefaultValue_ParamE = 0.7;
static const float kDefaultValue_ParamF = 0.4;
static const float kDefaultValue_ParamG = 0.8;
static const float kDefaultValue_ParamH = 0.4;
static const float kDefaultValue_ParamI = 0.3;
static const float kDefaultValue_ParamJ = 1.0;
static CFStringRef kParameterAName = CFSTR("Compres");
static CFStringRef kParameterBName = CFSTR("Presnce");
static CFStringRef kParameterCName = CFSTR("High");
static CFStringRef kParameterDName = CFSTR("Mid");
static CFStringRef kParameterEName = CFSTR("Low");
static CFStringRef kParameterFName = CFSTR("Sub");
static CFStringRef kParameterGName = CFSTR("HSpeakr");
static CFStringRef kParameterHName = CFSTR("LSpeakr");
static CFStringRef kParameterIName = CFSTR("Speed");
static CFStringRef kParameterJName = CFSTR("Output");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
kParam_H =7,
kParam_I =8,
kParam_J =9,
//Add your parameters here...
kNumberOfParameters=10
};
#pragma mark ____ChimeyGuitar
class ChimeyGuitar : public AUEffectBase
{
public:
ChimeyGuitar(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~ChimeyGuitar () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new ChimeyGuitarKernel(this); }
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings);
virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo);
virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable );
virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData);
virtual ComponentResult Initialize();
virtual bool SupportsTail () { return true; }
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
/*! @method Version */
virtual ComponentResult Version() { return kChimeyGuitarVersion; }
protected:
class ChimeyGuitarKernel : public AUKernelBase // most of the real work happens here
{
public:
ChimeyGuitarKernel(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:
double angS[22][12];
double angA[22][12];
double angG[12];
double iirHPosition[37];
double iirHAngle[37];
double iirBPosition[37];
double iirBAngle[37];
enum {
bez_AL,
bez_BL,
bez_CL,
bez_InL,
bez_UnInL,
bez_SampL,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total][12];
double bezRezA, bezRezB;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: ChimeyGuitar.r
*
* Version: 1.0
*
* Created: 5/8/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "ChimeyGuitarVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_ChimeyGuitar 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ChimeyGuitar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_ChimeyGuitar
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE ChimeyGuitar_COMP_SUBTYPE
#define COMP_MANUF ChimeyGuitar_COMP_MANF
#define VERSION kChimeyGuitarVersion
#define NAME "Airwindows: ChimeyGuitar"
#define DESCRIPTION "ChimeyGuitar AU"
#define ENTRY_POINT "ChimeyGuitarEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,164 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* ChimeyGuitar */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
292,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
252,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 768434107;
PBXWorkspaceStateSaveDate = 768434107;
};
perUserProjectItems = {
8BD500992DCD4D9A0045813C /* PlistBookmark */ = 8BD500992DCD4D9A0045813C /* PlistBookmark */;
8BD5013C2DCD5EEA0045813C /* PBXTextBookmark */ = 8BD5013C2DCD5EEA0045813C /* PBXTextBookmark */;
8BD5016F2DCD5FBD0045813C /* PBXBookmark */ = 8BD5016F2DCD5FBD0045813C /* PBXBookmark */;
8BD5017B2DCD5FF00045813C /* PBXTextBookmark */ = 8BD5017B2DCD5FF00045813C /* PBXTextBookmark */;
8BD5017C2DCD5FF00045813C /* PBXTextBookmark */ = 8BD5017C2DCD5FF00045813C /* PBXTextBookmark */;
8BD501822DCD5FF00045813C /* PBXTextBookmark */ = 8BD501822DCD5FF00045813C /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* ChimeyGuitar.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1101, 6372}}";
sepNavSelRange = "{14655, 0}";
sepNavVisRange = "{14435, 262}";
sepNavWindowFrame = "{{753, 33}, {917, 803}}";
};
};
8BA05A690720730100365D66 /* ChimeyGuitarVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1038, 1224}}";
sepNavSelRange = "{2926, 0}";
sepNavVisRange = "{2744, 244}";
sepNavWindowFrame = "{{619, 75}, {917, 803}}";
};
};
8BC6025B073B072D006C4272 /* ChimeyGuitar.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 3258}}";
sepNavSelRange = "{6244, 245}";
sepNavVisRange = "{2730, 1209}";
sepNavWindowFrame = "{{802, 75}, {917, 803}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BD500992DCD4D9A0045813C /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ChimeyGuitar/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BD5013C2DCD5EEA0045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* ChimeyGuitarVersion.h */;
name = "ChimeyGuitarVersion.h: 54";
rLen = 0;
rLoc = 2926;
rType = 0;
vrLen = 244;
vrLoc = 2744;
};
8BD5016F2DCD5FBD0045813C /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BC6025B073B072D006C4272 /* ChimeyGuitar.h */;
};
8BD5017B2DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ChimeyGuitar.cpp */;
name = "ChimeyGuitar.cpp: 320";
rLen = 0;
rLoc = 14655;
rType = 0;
vrLen = 262;
vrLoc = 14435;
};
8BD5017C2DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ChimeyGuitar.cpp */;
name = "ChimeyGuitar.cpp: 320";
rLen = 0;
rLoc = 14655;
rType = 0;
vrLen = 262;
vrLoc = 14435;
};
8BD501822DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* ChimeyGuitar.h */;
name = "ChimeyGuitar.h: 162";
rLen = 245;
rLoc = 6244;
rType = 0;
vrLen = 1209;
vrLoc = 2730;
};
8D01CCC60486CAD60068D4B7 /* ChimeyGuitar */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

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

View file

@ -0,0 +1,58 @@
/*
* File: ChimeyGuitarVersion.h
*
* Version: 1.0
*
* Created: 5/8/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __ChimeyGuitarVersion_h__
#define __ChimeyGuitarVersion_h__
#ifdef DEBUG
#define kChimeyGuitarVersion 0xFFFFFFFF
#else
#define kChimeyGuitarVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define ChimeyGuitar_COMP_MANF 'Dthr'
#define ChimeyGuitar_COMP_SUBTYPE 'cgtr'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

Binary file not shown.

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>3</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>${EXECUTABLE_NAME}</string>
<key>SourceVersion</key>
<string>590000</string>
</dict>
</plist>

Binary file not shown.

View file

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

View file

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

819
plugins/MacAU/kCosmos/kCosmos.cpp Executable file
View file

@ -0,0 +1,819 @@
/*
* File: kCosmos.cpp
*
* Version: 1.0
*
* Created: 4/29/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
kCosmos.cpp
=============================================================================*/
#include "kCosmos.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(kCosmos)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::kCosmos
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCosmos::kCosmos(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
case kParam_F:
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamF;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// state that plugin supports only stereo-in/stereo-out processing
UInt32 kCosmos::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// kCosmos::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____kCosmosEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::kCosmosKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
for(int count = 0; count < delayA+2; count++) {eAL[count] = 0.0; eAR[count] = 0.0; aAL[count] = 0.0; aAR[count] = 0.0;}
for(int count = 0; count < delayB+2; count++) {eBL[count] = 0.0; eBR[count] = 0.0; aBL[count] = 0.0; aBR[count] = 0.0;}
for(int count = 0; count < delayC+2; count++) {eCL[count] = 0.0; eCR[count] = 0.0; aCL[count] = 0.0; aCR[count] = 0.0;}
for(int count = 0; count < delayD+2; count++) {eDL[count] = 0.0; eDR[count] = 0.0; aDL[count] = 0.0; aDR[count] = 0.0;}
for(int count = 0; count < delayE+2; count++) {eEL[count] = 0.0; eER[count] = 0.0; aEL[count] = 0.0; aER[count] = 0.0;}
for(int count = 0; count < delayF+2; count++) {eFL[count] = 0.0; eFR[count] = 0.0; aFL[count] = 0.0; aFR[count] = 0.0;}
for(int count = 0; count < delayG+2; count++) {eGL[count] = 0.0; eGR[count] = 0.0; aGL[count] = 0.0; aGR[count] = 0.0;}
for(int count = 0; count < delayH+2; count++) {eHL[count] = 0.0; eHR[count] = 0.0; aHL[count] = 0.0; aHR[count] = 0.0;}
for(int count = 0; count < delayI+2; count++) {eIL[count] = 0.0; eIR[count] = 0.0; aIL[count] = 0.0; aIR[count] = 0.0;}
for(int count = 0; count < delayJ+2; count++) {eJL[count] = 0.0; eJR[count] = 0.0; aJL[count] = 0.0; aJR[count] = 0.0;}
for(int count = 0; count < delayK+2; count++) {eKL[count] = 0.0; eKR[count] = 0.0; aKL[count] = 0.0; aKR[count] = 0.0;}
for(int count = 0; count < delayL+2; count++) {eLL[count] = 0.0; eLR[count] = 0.0; aLL[count] = 0.0; aLR[count] = 0.0;}
for(int count = 0; count < delayM+2; count++) {eML[count] = 0.0; eMR[count] = 0.0; aML[count] = 0.0; aMR[count] = 0.0;}
for(int count = 0; count < delayN+2; count++) {eNL[count] = 0.0; eNR[count] = 0.0; aNL[count] = 0.0; aNR[count] = 0.0;}
for(int count = 0; count < delayO+2; count++) {eOL[count] = 0.0; eOR[count] = 0.0; aOL[count] = 0.0; aOR[count] = 0.0;}
for(int count = 0; count < delayP+2; count++) {ePL[count] = 0.0; ePR[count] = 0.0; aPL[count] = 0.0; aPR[count] = 0.0;}
for(int count = 0; count < delayQ+2; count++) {eQL[count] = 0.0; eQR[count] = 0.0; aQL[count] = 0.0; aQR[count] = 0.0;}
for(int count = 0; count < delayR+2; count++) {eRL[count] = 0.0; eRR[count] = 0.0; aRL[count] = 0.0; aRR[count] = 0.0;}
for(int count = 0; count < delayS+2; count++) {eSL[count] = 0.0; eSR[count] = 0.0; aSL[count] = 0.0; aSR[count] = 0.0;}
for(int count = 0; count < delayT+2; count++) {eTL[count] = 0.0; eTR[count] = 0.0; aTL[count] = 0.0; aTR[count] = 0.0;}
for(int count = 0; count < delayU+2; count++) {eUL[count] = 0.0; eUR[count] = 0.0; aUL[count] = 0.0; aUR[count] = 0.0;}
for(int count = 0; count < delayV+2; count++) {eVL[count] = 0.0; eVR[count] = 0.0; aVL[count] = 0.0; aVR[count] = 0.0;}
for(int count = 0; count < delayW+2; count++) {eWL[count] = 0.0; eWR[count] = 0.0; aWL[count] = 0.0; aWR[count] = 0.0;}
for(int count = 0; count < delayX+2; count++) {eXL[count] = 0.0; eXR[count] = 0.0; aXL[count] = 0.0; aXR[count] = 0.0;}
for(int count = 0; count < delayY+2; count++) {eYL[count] = 0.0; eYR[count] = 0.0; aYL[count] = 0.0; aYR[count] = 0.0;}
for(int count = 0; count < predelay+2; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
feedbackAL = 0.0;
feedbackBL = 0.0;
feedbackCL = 0.0;
feedbackDL = 0.0;
feedbackEL = 0.0;
feedbackER = 0.0;
feedbackJR = 0.0;
feedbackOR = 0.0;
feedbackTR = 0.0;
feedbackYR = 0.0;
countAL = 1;
countBL = 1;
countCL = 1;
countDL = 1;
countEL = 1;
countFL = 1;
countGL = 1;
countHL = 1;
countIL = 1;
countJL = 1;
countKL = 1;
countLL = 1;
countML = 1;
countNL = 1;
countOL = 1;
countPL = 1;
countQL = 1;
countRL = 1;
countSL = 1;
countTL = 1;
countUL = 1;
countVL = 1;
countWL = 1;
countXL = 1;
countYL = 1;
countAR = 1;
countBR = 1;
countCR = 1;
countDR = 1;
countER = 1;
countFR = 1;
countGR = 1;
countHR = 1;
countIR = 1;
countJR = 1;
countKR = 1;
countLR = 1;
countMR = 1;
countNR = 1;
countOR = 1;
countPR = 1;
countQR = 1;
countRR = 1;
countSR = 1;
countTR = 1;
countUR = 1;
countVR = 1;
countWR = 1;
countXR = 1;
countYR = 1;
countZ = 1;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 1.0;
for(int count = 0; count < 32767; count++) {firBufferL[count] = 0.0; firBufferR[count] = 0.0;}
firPosition = 0;
earlyReflectionL = 0.0; earlyReflectionR = 0.0;
prevAL = 0.0;
prevBL = 0.0;
prevCL = 0.0;
prevDL = 0.0;
prevEL = 0.0;
prevER = 0.0;
prevJR = 0.0;
prevOR = 0.0;
prevTR = 0.0;
prevYR = 0.0;
derezA = derezB = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus kCosmos::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer,
AudioBufferList & outBuffer,
UInt32 inFramesToProcess)
{
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
UInt32 nSampleFrames = inFramesToProcess;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
double regenMax = (1.0-pow(1.0-GetParameter( kParam_A ),3.0))*0.000321;
//start this but pad it in the loop by volume of output?
double feedbackSum = 0.0;
bool applyCream = (GetParameter( kParam_B ) > 0.9999);
double remainder = (overallscale-1.0)*0.0375;
derezA = derezB; derezB = GetParameter( kParam_B )/overallscale;
if (applyCream) derezB = 1.0 / ((int)(1.0/derezB));
else derezB /= (2.0/pow(overallscale,0.5-remainder));
//this hard-locks derez to exact subdivisions of 1.0
if (derezB < 0.0005) derezB = 0.0005; if (derezB > 1.0) derezB = 1.0;
double freq = GetParameter( kParam_C )*M_PI_2; if (freq < 0.5) freq = 0.5;
bool applyAvg = (GetParameter( kParam_C ) < 1.0);
double earlyLoudness = GetParameter( kParam_D );
int adjPredelay = predelay*GetParameter( kParam_E )*derezB;
double wet = GetParameter( kParam_F );
double fir[74]; fir[36] = 1.0;
for(int fip = 0; fip < 36; fip++) {
fir[fip] = (fip-36)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
}
for(int fip = 37; fip < 72; fip++) {
fir[fip] = (fip-36)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
} //setting up the filter which will run inside DeRez
while (nSampleFrames-- > 0) {
double inputSampleL = *inputL;
double inputSampleR = *inputR;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
double temp = (double)nSampleFrames/inFramesToProcess;
double derez = (derezA*temp)+(derezB*(1.0-temp));
bez[bez_cycle] += derez;
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
if (applyCream) bez[bez_cycle] = 0.0;
else bez[bez_cycle] -= 1.0;
//predelay
aZL[countZ] = bez[bez_SampL];
aZR[countZ] = bez[bez_SampR];
countZ++; if (countZ < 0 || countZ > adjPredelay) countZ = 0;
bez[bez_SampL] = aZL[countZ-((countZ > adjPredelay)?adjPredelay+1:0)];
bez[bez_SampR] = aZR[countZ-((countZ > adjPredelay)?adjPredelay+1:0)];
//end predelay
eAL[countAL] = bez[bez_SampL];
eBL[countBL] = bez[bez_SampL];
eCL[countCL] = bez[bez_SampL];
eDL[countDL] = bez[bez_SampL];
eEL[countEL] = bez[bez_SampL];
eER[countER] = bez[bez_SampR];
eJR[countJR] = bez[bez_SampR];
eOR[countOR] = bez[bez_SampR];
eTR[countTR] = bez[bez_SampR];
eYR[countYR] = bez[bez_SampR];
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBufferL[firp] = earlyReflectionL; earlyReflectionL = 0.0;
firBufferR[firp] = earlyReflectionR; earlyReflectionR = 0.0;
if (firp + 72 < 32767) {
for(int fip = 1; fip < 72; fip++) {
earlyReflectionL += firBufferL[firp+fip] * fir[fip];
earlyReflectionR += firBufferR[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < 72; fip++) {
earlyReflectionL += firBufferL[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
earlyReflectionR += firBufferR[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
earlyReflectionL *= 0.25; earlyReflectionR *= 0.25;
earlyReflectionL *= sqrt(freq); earlyReflectionR *= sqrt(freq);
firPosition--;//here's the brickwall FIR filter, running in front of the Householder matrix
feedbackSum *= 0.00001;
feedbackSum += fabs(earlyReflectionL);
feedbackSum += fabs(earlyReflectionR);
feedbackSum *= 0.00003;
double regen = fmax(regenMax - feedbackSum, 0.0);
if (applyAvg) regen *= 0.5;
else {
prevAL = prevBL = prevCL = prevDL = prevEL = 0.0;
prevER = prevJR = prevOR = prevTR = prevYR = 0.0;
}
aAL[countAL] = earlyReflectionL + ((feedbackAL+prevAL) * regen);
aBL[countBL] = earlyReflectionL + ((feedbackBL+prevBL) * regen);
aCL[countCL] = earlyReflectionL + ((feedbackCL+prevCL) * regen);
aDL[countDL] = earlyReflectionL + ((feedbackDL+prevDL) * regen);
aEL[countEL] = earlyReflectionL + ((feedbackEL+prevEL) * regen);
aER[countER] = earlyReflectionR + ((feedbackER+prevER) * regen);
aJR[countJR] = earlyReflectionR + ((feedbackJR+prevJR) * regen);
aOR[countOR] = earlyReflectionR + ((feedbackOR+prevOR) * regen);
aTR[countTR] = earlyReflectionR + ((feedbackTR+prevTR) * regen);
aYR[countYR] = earlyReflectionR + ((feedbackYR+prevYR) * regen);
prevAL = feedbackAL;
prevBL = feedbackBL;
prevCL = feedbackCL;
prevDL = feedbackDL;
prevEL = feedbackEL;
prevER = feedbackER;
prevJR = feedbackJR;
prevOR = feedbackOR;
prevTR = feedbackTR;
prevYR = feedbackYR;
countAL++; if (countAL < 0 || countAL > delayA) countAL = 0;
countBL++; if (countBL < 0 || countBL > delayB) countBL = 0;
countCL++; if (countCL < 0 || countCL > delayC) countCL = 0;
countDL++; if (countDL < 0 || countDL > delayD) countDL = 0;
countEL++; if (countEL < 0 || countEL > delayE) countEL = 0;
countER++; if (countER < 0 || countER > delayE) countER = 0;
countJR++; if (countJR < 0 || countJR > delayJ) countJR = 0;
countOR++; if (countOR < 0 || countOR > delayO) countOR = 0;
countTR++; if (countTR < 0 || countTR > delayT) countTR = 0;
countYR++; if (countYR < 0 || countYR > delayY) countYR = 0;
double earlyAL = eAL[countAL-((countAL > delayA)?delayA+1:0)];
double earlyBL = eBL[countBL-((countBL > delayB)?delayB+1:0)];
double earlyCL = eCL[countCL-((countCL > delayC)?delayC+1:0)];
double earlyDL = eDL[countDL-((countDL > delayD)?delayD+1:0)];
double earlyEL = eEL[countEL-((countEL > delayE)?delayE+1:0)];
double earlyER = eER[countER-((countER > delayE)?delayE+1:0)];
double earlyJR = eJR[countJR-((countJR > delayJ)?delayJ+1:0)];
double earlyOR = eOR[countOR-((countOR > delayO)?delayO+1:0)];
double earlyTR = eTR[countTR-((countTR > delayT)?delayT+1:0)];
double earlyYR = eYR[countYR-((countYR > delayY)?delayY+1:0)];
double outAL = aAL[countAL-((countAL > delayA)?delayA+1:0)];
double outBL = aBL[countBL-((countBL > delayB)?delayB+1:0)];
double outCL = aCL[countCL-((countCL > delayC)?delayC+1:0)];
double outDL = aDL[countDL-((countDL > delayD)?delayD+1:0)];
double outEL = aEL[countEL-((countEL > delayE)?delayE+1:0)];
double outER = aER[countER-((countER > delayE)?delayE+1:0)];
double outJR = aJR[countJR-((countJR > delayJ)?delayJ+1:0)];
double outOR = aOR[countOR-((countOR > delayO)?delayO+1:0)];
double outTR = aTR[countTR-((countTR > delayT)?delayT+1:0)];
double outYR = aYR[countYR-((countYR > delayY)?delayY+1:0)];
//-------- one
eFL[countFL] = ((earlyAL*3.0) - ((earlyBL + earlyCL + earlyDL + earlyEL)*2.0));
eGL[countGL] = ((earlyBL*3.0) - ((earlyAL + earlyCL + earlyDL + earlyEL)*2.0));
eHL[countHL] = ((earlyCL*3.0) - ((earlyAL + earlyBL + earlyDL + earlyEL)*2.0));
eIL[countIL] = ((earlyDL*3.0) - ((earlyAL + earlyBL + earlyCL + earlyEL)*2.0));
eJL[countJL] = ((earlyEL*3.0) - ((earlyAL + earlyBL + earlyCL + earlyDL)*2.0));
eDR[countDR] = ((earlyER*3.0) - ((earlyJR + earlyOR + earlyTR + earlyYR)*2.0));
eIR[countIR] = ((earlyJR*3.0) - ((earlyER + earlyOR + earlyTR + earlyYR)*2.0));
eNR[countNR] = ((earlyOR*3.0) - ((earlyER + earlyJR + earlyTR + earlyYR)*2.0));
eSR[countSR] = ((earlyTR*3.0) - ((earlyER + earlyJR + earlyOR + earlyYR)*2.0));
eXR[countXR] = ((earlyYR*3.0) - ((earlyER + earlyJR + earlyOR + earlyTR)*2.0));
aFL[countFL] = ((outAL*3.0) - ((outBL + outCL + outDL + outEL)*2.0));
aGL[countGL] = ((outBL*3.0) - ((outAL + outCL + outDL + outEL)*2.0));
aHL[countHL] = ((outCL*3.0) - ((outAL + outBL + outDL + outEL)*2.0));
aIL[countIL] = ((outDL*3.0) - ((outAL + outBL + outCL + outEL)*2.0));
aJL[countJL] = ((outEL*3.0) - ((outAL + outBL + outCL + outDL)*2.0));
aDR[countDR] = ((outER*3.0) - ((outJR + outOR + outTR + outYR)*2.0));
aIR[countIR] = ((outJR*3.0) - ((outER + outOR + outTR + outYR)*2.0));
aNR[countNR] = ((outOR*3.0) - ((outER + outJR + outTR + outYR)*2.0));
aSR[countSR] = ((outTR*3.0) - ((outER + outJR + outOR + outYR)*2.0));
aXR[countXR] = ((outYR*3.0) - ((outER + outJR + outOR + outTR)*2.0));
countFL++; if (countFL < 0 || countFL > delayF) countFL = 0;
countGL++; if (countGL < 0 || countGL > delayG) countGL = 0;
countHL++; if (countHL < 0 || countHL > delayH) countHL = 0;
countIL++; if (countIL < 0 || countIL > delayI) countIL = 0;
countJL++; if (countJL < 0 || countJL > delayJ) countJL = 0;
countDR++; if (countDR < 0 || countDR > delayD) countDR = 0;
countIR++; if (countIR < 0 || countIR > delayI) countIR = 0;
countNR++; if (countNR < 0 || countNR > delayN) countNR = 0;
countSR++; if (countSR < 0 || countSR > delayS) countSR = 0;
countXR++; if (countXR < 0 || countXR > delayX) countXR = 0;
double earlyFL = eFL[countFL-((countFL > delayF)?delayF+1:0)];
double earlyGL = eGL[countGL-((countGL > delayG)?delayG+1:0)];
double earlyHL = eHL[countHL-((countHL > delayH)?delayH+1:0)];
double earlyIL = eIL[countIL-((countIL > delayI)?delayI+1:0)];
double earlyJL = eJL[countJL-((countJL > delayJ)?delayJ+1:0)];
double earlyDR = eDR[countDR-((countDR > delayD)?delayD+1:0)];
double earlyIR = eIR[countIR-((countIR > delayI)?delayI+1:0)];
double earlyNR = eNR[countNR-((countNR > delayN)?delayN+1:0)];
double earlySR = eSR[countSR-((countSR > delayS)?delayS+1:0)];
double earlyXR = eXR[countXR-((countXR > delayX)?delayX+1:0)];
double outFL = aFL[countFL-((countFL > delayF)?delayF+1:0)];
double outGL = aGL[countGL-((countGL > delayG)?delayG+1:0)];
double outHL = aHL[countHL-((countHL > delayH)?delayH+1:0)];
double outIL = aIL[countIL-((countIL > delayI)?delayI+1:0)];
double outJL = aJL[countJL-((countJL > delayJ)?delayJ+1:0)];
double outDR = aDR[countDR-((countDR > delayD)?delayD+1:0)];
double outIR = aIR[countIR-((countIR > delayI)?delayI+1:0)];
double outNR = aNR[countNR-((countNR > delayN)?delayN+1:0)];
double outSR = aSR[countSR-((countSR > delayS)?delayS+1:0)];
double outXR = aXR[countXR-((countXR > delayX)?delayX+1:0)];
//-------- two
eKL[countKL] = ((earlyFL*3.0) - ((earlyGL + earlyHL + earlyIL + earlyJL)*2.0));
eLL[countLL] = ((earlyGL*3.0) - ((earlyFL + earlyHL + earlyIL + earlyJL)*2.0));
eML[countML] = ((earlyHL*3.0) - ((earlyFL + earlyGL + earlyIL + earlyJL)*2.0));
eNL[countNL] = ((earlyIL*3.0) - ((earlyFL + earlyGL + earlyHL + earlyJL)*2.0));
eOL[countOL] = ((earlyJL*3.0) - ((earlyFL + earlyGL + earlyHL + earlyIL)*2.0));
eCR[countCR] = ((earlyDR*3.0) - ((earlyIR + earlyNR + earlySR + earlyXR)*2.0));
eHR[countHR] = ((earlyIR*3.0) - ((earlyDR + earlyNR + earlySR + earlyXR)*2.0));
eMR[countMR] = ((earlyNR*3.0) - ((earlyDR + earlyIR + earlySR + earlyXR)*2.0));
eRR[countRR] = ((earlySR*3.0) - ((earlyDR + earlyIR + earlyNR + earlyXR)*2.0));
eWR[countWR] = ((earlyXR*3.0) - ((earlyDR + earlyIR + earlyNR + earlySR)*2.0));
aKL[countKL] = ((outFL*3.0) - ((outGL + outHL + outIL + outJL)*2.0));
aLL[countLL] = ((outGL*3.0) - ((outFL + outHL + outIL + outJL)*2.0));
aML[countML] = ((outHL*3.0) - ((outFL + outGL + outIL + outJL)*2.0));
aNL[countNL] = ((outIL*3.0) - ((outFL + outGL + outHL + outJL)*2.0));
aOL[countOL] = ((outJL*3.0) - ((outFL + outGL + outHL + outIL)*2.0));
aCR[countCR] = ((outDR*3.0) - ((outIR + outNR + outSR + outXR)*2.0));
aHR[countHR] = ((outIR*3.0) - ((outDR + outNR + outSR + outXR)*2.0));
aMR[countMR] = ((outNR*3.0) - ((outDR + outIR + outSR + outXR)*2.0));
aRR[countRR] = ((outSR*3.0) - ((outDR + outIR + outNR + outXR)*2.0));
aWR[countWR] = ((outXR*3.0) - ((outDR + outIR + outNR + outSR)*2.0));
countKL++; if (countKL < 0 || countKL > delayK) countKL = 0;
countLL++; if (countLL < 0 || countLL > delayL) countLL = 0;
countML++; if (countML < 0 || countML > delayM) countML = 0;
countNL++; if (countNL < 0 || countNL > delayN) countNL = 0;
countOL++; if (countOL < 0 || countOL > delayO) countOL = 0;
countCR++; if (countCR < 0 || countCR > delayC) countCR = 0;
countHR++; if (countHR < 0 || countHR > delayH) countHR = 0;
countMR++; if (countMR < 0 || countMR > delayM) countMR = 0;
countRR++; if (countRR < 0 || countRR > delayR) countRR = 0;
countWR++; if (countWR < 0 || countWR > delayW) countWR = 0;
double earlyKL = eKL[countKL-((countKL > delayK)?delayK+1:0)];
double earlyLL = eLL[countLL-((countLL > delayL)?delayL+1:0)];
double earlyML = eML[countML-((countML > delayM)?delayM+1:0)];
double earlyNL = eNL[countNL-((countNL > delayN)?delayN+1:0)];
double earlyOL = eOL[countOL-((countOL > delayO)?delayO+1:0)];
double earlyCR = eCR[countCR-((countCR > delayC)?delayC+1:0)];
double earlyHR = eHR[countHR-((countHR > delayH)?delayH+1:0)];
double earlyMR = eMR[countMR-((countMR > delayM)?delayM+1:0)];
double earlyRR = eRR[countRR-((countRR > delayR)?delayR+1:0)];
double earlyWR = eWR[countWR-((countWR > delayW)?delayW+1:0)];
double outKL = aKL[countKL-((countKL > delayK)?delayK+1:0)];
double outLL = aLL[countLL-((countLL > delayL)?delayL+1:0)];
double outML = aML[countML-((countML > delayM)?delayM+1:0)];
double outNL = aNL[countNL-((countNL > delayN)?delayN+1:0)];
double outOL = aOL[countOL-((countOL > delayO)?delayO+1:0)];
double outCR = aCR[countCR-((countCR > delayC)?delayC+1:0)];
double outHR = aHR[countHR-((countHR > delayH)?delayH+1:0)];
double outMR = aMR[countMR-((countMR > delayM)?delayM+1:0)];
double outRR = aRR[countRR-((countRR > delayR)?delayR+1:0)];
double outWR = aWR[countWR-((countWR > delayW)?delayW+1:0)];
//-------- three
ePL[countPL] = ((earlyKL*3.0) - ((earlyLL + earlyML + earlyNL + earlyOL)*2.0));
eQL[countQL] = ((earlyLL*3.0) - ((earlyKL + earlyML + earlyNL + earlyOL)*2.0));
eRL[countRL] = ((earlyML*3.0) - ((earlyKL + earlyLL + earlyNL + earlyOL)*2.0));
eSL[countSL] = ((earlyNL*3.0) - ((earlyKL + earlyLL + earlyML + earlyOL)*2.0));
eTL[countTL] = ((earlyOL*3.0) - ((earlyKL + earlyLL + earlyML + earlyNL)*2.0));
eBR[countBR] = ((earlyCR*3.0) - ((earlyHR + earlyMR + earlyRR + earlyWR)*2.0));
eGR[countGR] = ((earlyHR*3.0) - ((earlyCR + earlyMR + earlyRR + earlyWR)*2.0));
eLR[countLR] = ((earlyMR*3.0) - ((earlyCR + earlyHR + earlyRR + earlyWR)*2.0));
eQR[countQR] = ((earlyRR*3.0) - ((earlyCR + earlyHR + earlyMR + earlyWR)*2.0));
eVR[countVR] = ((earlyWR*3.0) - ((earlyCR + earlyHR + earlyMR + earlyRR)*2.0));
aPL[countPL] = ((outKL*3.0) - ((outLL + outML + outNL + outOL)*2.0));
aQL[countQL] = ((outLL*3.0) - ((outKL + outML + outNL + outOL)*2.0));
aRL[countRL] = ((outML*3.0) - ((outKL + outLL + outNL + outOL)*2.0));
aSL[countSL] = ((outNL*3.0) - ((outKL + outLL + outML + outOL)*2.0));
aTL[countTL] = ((outOL*3.0) - ((outKL + outLL + outML + outNL)*2.0));
aBR[countBR] = ((outCR*3.0) - ((outHR + outMR + outRR + outWR)*2.0));
aGR[countGR] = ((outHR*3.0) - ((outCR + outMR + outRR + outWR)*2.0));
aLR[countLR] = ((outMR*3.0) - ((outCR + outHR + outRR + outWR)*2.0));
aQR[countQR] = ((outRR*3.0) - ((outCR + outHR + outMR + outWR)*2.0));
aVR[countVR] = ((outWR*3.0) - ((outCR + outHR + outMR + outRR)*2.0));
countPL++; if (countPL < 0 || countPL > delayP) countPL = 0;
countQL++; if (countQL < 0 || countQL > delayQ) countQL = 0;
countRL++; if (countRL < 0 || countRL > delayR) countRL = 0;
countSL++; if (countSL < 0 || countSL > delayS) countSL = 0;
countTL++; if (countTL < 0 || countTL > delayT) countTL = 0;
countBR++; if (countBR < 0 || countBR > delayB) countBR = 0;
countGR++; if (countGR < 0 || countGR > delayG) countGR = 0;
countLR++; if (countLR < 0 || countLR > delayL) countLR = 0;
countQR++; if (countQR < 0 || countQR > delayQ) countQR = 0;
countVR++; if (countVR < 0 || countVR > delayV) countVR = 0;
double earlyPL = ePL[countPL-((countPL > delayP)?delayP+1:0)];
double earlyQL = eQL[countQL-((countQL > delayQ)?delayQ+1:0)];
double earlyRL = eRL[countRL-((countRL > delayR)?delayR+1:0)];
double earlySL = eSL[countSL-((countSL > delayS)?delayS+1:0)];
double earlyTL = eTL[countTL-((countTL > delayT)?delayT+1:0)];
double earlyBR = eBR[countBR-((countBR > delayB)?delayB+1:0)];
double earlyGR = eGR[countGR-((countGR > delayG)?delayG+1:0)];
double earlyLR = eLR[countLR-((countLR > delayL)?delayL+1:0)];
double earlyQR = eQR[countQR-((countQR > delayQ)?delayQ+1:0)];
double earlyVR = eVR[countVR-((countVR > delayV)?delayV+1:0)];
double outPL = aPL[countPL-((countPL > delayP)?delayP+1:0)];
double outQL = aQL[countQL-((countQL > delayQ)?delayQ+1:0)];
double outRL = aRL[countRL-((countRL > delayR)?delayR+1:0)];
double outSL = aSL[countSL-((countSL > delayS)?delayS+1:0)];
double outTL = aTL[countTL-((countTL > delayT)?delayT+1:0)];
double outBR = aBR[countBR-((countBR > delayB)?delayB+1:0)];
double outGR = aGR[countGR-((countGR > delayG)?delayG+1:0)];
double outLR = aLR[countLR-((countLR > delayL)?delayL+1:0)];
double outQR = aQR[countQR-((countQR > delayQ)?delayQ+1:0)];
double outVR = aVR[countVR-((countVR > delayV)?delayV+1:0)];
//-------- four
eUL[countUL] = ((earlyPL*3.0) - ((earlyQL + earlyRL + earlySL + earlyTL)*2.0));
eVL[countVL] = ((earlyQL*3.0) - ((earlyPL + earlyRL + earlySL + earlyTL)*2.0));
eWL[countWL] = ((earlyRL*3.0) - ((earlyPL + earlyQL + earlySL + earlyTL)*2.0));
eXL[countXL] = ((earlySL*3.0) - ((earlyPL + earlyQL + earlyRL + earlyTL)*2.0));
eYL[countYL] = ((earlyTL*3.0) - ((earlyPL + earlyQL + earlyRL + earlySL)*2.0));
eAR[countAR] = ((earlyBR*3.0) - ((earlyGR + earlyLR + earlyQR + earlyVR)*2.0));
eFR[countFR] = ((earlyGR*3.0) - ((earlyBR + earlyLR + earlyQR + earlyVR)*2.0));
eKR[countKR] = ((earlyLR*3.0) - ((earlyBR + earlyGR + earlyQR + earlyVR)*2.0));
ePR[countPR] = ((earlyQR*3.0) - ((earlyBR + earlyGR + earlyLR + earlyVR)*2.0));
eUR[countUR] = ((earlyVR*3.0) - ((earlyBR + earlyGR + earlyLR + earlyQR)*2.0));
aUL[countUL] = ((outPL*3.0) - ((outQL + outRL + outSL + outTL)*2.0));
aVL[countVL] = ((outQL*3.0) - ((outPL + outRL + outSL + outTL)*2.0));
aWL[countWL] = ((outRL*3.0) - ((outPL + outQL + outSL + outTL)*2.0));
aXL[countXL] = ((outSL*3.0) - ((outPL + outQL + outRL + outTL)*2.0));
aYL[countYL] = ((outTL*3.0) - ((outPL + outQL + outRL + outSL)*2.0));
aAR[countAR] = ((outBR*3.0) - ((outGR + outLR + outQR + outVR)*2.0));
aFR[countFR] = ((outGR*3.0) - ((outBR + outLR + outQR + outVR)*2.0));
aKR[countKR] = ((outLR*3.0) - ((outBR + outGR + outQR + outVR)*2.0));
aPR[countPR] = ((outQR*3.0) - ((outBR + outGR + outLR + outVR)*2.0));
aUR[countUR] = ((outVR*3.0) - ((outBR + outGR + outLR + outQR)*2.0));
countUL++; if (countUL < 0 || countUL > delayU) countUL = 0;
countVL++; if (countVL < 0 || countVL > delayV) countVL = 0;
countWL++; if (countWL < 0 || countWL > delayW) countWL = 0;
countXL++; if (countXL < 0 || countXL > delayX) countXL = 0;
countYL++; if (countYL < 0 || countYL > delayY) countYL = 0;
countAR++; if (countAR < 0 || countAR > delayA) countAR = 0;
countFR++; if (countFR < 0 || countFR > delayF) countFR = 0;
countKR++; if (countKR < 0 || countKR > delayK) countKR = 0;
countPR++; if (countPR < 0 || countPR > delayP) countPR = 0;
countUR++; if (countUR < 0 || countUR > delayU) countUR = 0;
double earlyUL = eUL[countUL-((countUL > delayU)?delayU+1:0)];
double earlyVL = eVL[countVL-((countVL > delayV)?delayV+1:0)];
double earlyWL = eWL[countWL-((countWL > delayW)?delayW+1:0)];
double earlyXL = eXL[countXL-((countXL > delayX)?delayX+1:0)];
double earlyYL = eYL[countYL-((countYL > delayY)?delayY+1:0)];
double earlyAR = eAR[countAR-((countAR > delayA)?delayA+1:0)];
double earlyFR = eFR[countFR-((countFR > delayF)?delayF+1:0)];
double earlyKR = eKR[countKR-((countKR > delayK)?delayK+1:0)];
double earlyPR = ePR[countPR-((countPR > delayP)?delayP+1:0)];
double earlyUR = eUR[countUR-((countUR > delayU)?delayU+1:0)];
double outUL = aUL[countUL-((countUL > delayU)?delayU+1:0)];
double outVL = aVL[countVL-((countVL > delayV)?delayV+1:0)];
double outWL = aWL[countWL-((countWL > delayW)?delayW+1:0)];
double outXL = aXL[countXL-((countXL > delayX)?delayX+1:0)];
double outYL = aYL[countYL-((countYL > delayY)?delayY+1:0)];
double outAR = aAR[countAR-((countAR > delayA)?delayA+1:0)];
double outFR = aFR[countFR-((countFR > delayF)?delayF+1:0)];
double outKR = aKR[countKR-((countKR > delayK)?delayK+1:0)];
double outPR = aPR[countPR-((countPR > delayP)?delayP+1:0)];
double outUR = aUR[countUR-((countUR > delayU)?delayU+1:0)];
//-------- five
earlyReflectionL = (earlyUL + earlyVL + earlyWL + earlyXL + earlyYL)*0.0008;
earlyReflectionR = (earlyAR + earlyFR + earlyKR + earlyPR + earlyUR)*0.0008;
//and take the final combined sum of outputs, corrected for Householder gain
feedbackAL = ((outAR*3.0) - ((outFR + outKR + outPR + outUR)*2.0)); feedbackSum = fabs(feedbackAL);
feedbackER = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackER);
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackBL);
feedbackJR = ((outFR*3.0) - ((outAR + outKR + outPR + outUR)*2.0)); feedbackSum += fabs(feedbackJR);
feedbackCL = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackCL);
feedbackOR = ((outKR*3.0) - ((outAR + outFR + outPR + outUR)*2.0)); feedbackSum += fabs(feedbackOR);
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0)); feedbackSum += fabs(feedbackDL);
feedbackTR = ((outPR*3.0) - ((outAR + outFR + outKR + outUR)*2.0)); feedbackSum += fabs(feedbackTR);
feedbackEL = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0)); feedbackSum += fabs(feedbackEL);
feedbackYR = ((outUR*3.0) - ((outAR + outFR + outKR + outPR)*2.0)); feedbackSum += fabs(feedbackYR);
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0008;
inputSampleR = (outAR + outFR + outKR + outPR + outUR)*0.0008;
//and take the final combined sum of outputs, corrected for Householder gain
inputSampleL += (earlyReflectionL * earlyLoudness);
inputSampleR += (earlyReflectionR * earlyLoudness);
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = inputSampleL;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = inputSampleR;
bez[bez_SampR] = 0.0;
}
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*0.125;
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*0.125;
inputSampleL = CBAL;
inputSampleR = CBAR;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*outputL = inputSampleL;
*outputR = inputSampleR;
//direct stereo out
inputL += 1;
inputR += 1;
outputL += 1;
outputR += 1;
}
return noErr;
}

View file

@ -0,0 +1 @@
_kCosmosEntry

352
plugins/MacAU/kCosmos/kCosmos.h Executable file
View file

@ -0,0 +1,352 @@
/*
* File: kCosmos.h
*
* Version: 1.0
*
* Created: 4/29/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "kCosmosVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __kCosmos_h__
#define __kCosmos_h__
#pragma mark ____kCosmos Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 1.0;
static const float kDefaultValue_ParamC = 0.5;
static const float kDefaultValue_ParamD = 0.5;
static const float kDefaultValue_ParamE = 0.0;
static const float kDefaultValue_ParamF = 0.5;
static CFStringRef kParameterAName = CFSTR("Regen");
static CFStringRef kParameterBName = CFSTR("Derez");
static CFStringRef kParameterCName = CFSTR("Filter");
static CFStringRef kParameterDName = CFSTR("EarlyRf");
static CFStringRef kParameterEName = CFSTR("Predlay");
static CFStringRef kParameterFName = CFSTR("Dry/Wet");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
//Add your parameters here...
kNumberOfParameters=6
};
const int predelay = 15000;
const int delayA = 857; const int delayB = 1433; const int delayC = 1597; const int delayD = 1789; const int delayE = 1987; const int delayF = 373; const int delayG = 883; const int delayH = 1471; const int delayI = 1601; const int delayJ = 1973; const int delayK = 191; const int delayL = 397; const int delayM = 941; const int delayN = 1483; const int delayO = 1663; const int delayP = 149; const int delayQ = 227; const int delayR = 593; const int delayS = 1061; const int delayT = 1549; const int delayU = 137; const int delayV = 167; const int delayW = 313; const int delayX = 641; const int delayY = 1153; //38 to 188 ms, 1538 seat hall
//1538-OGBP 2025-05-05 - kCosmos
#pragma mark ____kCosmos
class kCosmos : public AUEffectBase
{
public:
kCosmos(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~kCosmos () { delete mDebugDispatcher; }
#endif
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
UInt32 inFramesToProcess);
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings);
virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo);
virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable );
virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData);
virtual ComponentResult Initialize();
virtual bool SupportsTail () { return true; }
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
/*! @method Version */
virtual ComponentResult Version() { return kkCosmosVersion; }
private:
double eAL[delayA+5];
double eBL[delayB+5];
double eCL[delayC+5];
double eDL[delayD+5];
double eEL[delayE+5];
double eFL[delayF+5];
double eGL[delayG+5];
double eHL[delayH+5];
double eIL[delayI+5];
double eJL[delayJ+5];
double eKL[delayK+5];
double eLL[delayL+5];
double eML[delayM+5];
double eNL[delayN+5];
double eOL[delayO+5];
double ePL[delayP+5];
double eQL[delayQ+5];
double eRL[delayR+5];
double eSL[delayS+5];
double eTL[delayT+5];
double eUL[delayU+5];
double eVL[delayV+5];
double eWL[delayW+5];
double eXL[delayX+5];
double eYL[delayY+5];
double eAR[delayA+5];
double eBR[delayB+5];
double eCR[delayC+5];
double eDR[delayD+5];
double eER[delayE+5];
double eFR[delayF+5];
double eGR[delayG+5];
double eHR[delayH+5];
double eIR[delayI+5];
double eJR[delayJ+5];
double eKR[delayK+5];
double eLR[delayL+5];
double eMR[delayM+5];
double eNR[delayN+5];
double eOR[delayO+5];
double ePR[delayP+5];
double eQR[delayQ+5];
double eRR[delayR+5];
double eSR[delayS+5];
double eTR[delayT+5];
double eUR[delayU+5];
double eVR[delayV+5];
double eWR[delayW+5];
double eXR[delayX+5];
double eYR[delayY+5];
double aAL[delayA+5];
double aBL[delayB+5];
double aCL[delayC+5];
double aDL[delayD+5];
double aEL[delayE+5];
double aFL[delayF+5];
double aGL[delayG+5];
double aHL[delayH+5];
double aIL[delayI+5];
double aJL[delayJ+5];
double aKL[delayK+5];
double aLL[delayL+5];
double aML[delayM+5];
double aNL[delayN+5];
double aOL[delayO+5];
double aPL[delayP+5];
double aQL[delayQ+5];
double aRL[delayR+5];
double aSL[delayS+5];
double aTL[delayT+5];
double aUL[delayU+5];
double aVL[delayV+5];
double aWL[delayW+5];
double aXL[delayX+5];
double aYL[delayY+5];
double aAR[delayA+5];
double aBR[delayB+5];
double aCR[delayC+5];
double aDR[delayD+5];
double aER[delayE+5];
double aFR[delayF+5];
double aGR[delayG+5];
double aHR[delayH+5];
double aIR[delayI+5];
double aJR[delayJ+5];
double aKR[delayK+5];
double aLR[delayL+5];
double aMR[delayM+5];
double aNR[delayN+5];
double aOR[delayO+5];
double aPR[delayP+5];
double aQR[delayQ+5];
double aRR[delayR+5];
double aSR[delayS+5];
double aTR[delayT+5];
double aUR[delayU+5];
double aVR[delayV+5];
double aWR[delayW+5];
double aXR[delayX+5];
double aYR[delayY+5];
double aZL[predelay+5];
double aZR[predelay+5];
double feedbackAL;
double feedbackBL;
double feedbackCL;
double feedbackDL;
double feedbackEL;
double feedbackER;
double feedbackJR;
double feedbackOR;
double feedbackTR;
double feedbackYR;
int countAL;
int countBL;
int countCL;
int countDL;
int countEL;
int countFL;
int countGL;
int countHL;
int countIL;
int countJL;
int countKL;
int countLL;
int countML;
int countNL;
int countOL;
int countPL;
int countQL;
int countRL;
int countSL;
int countTL;
int countUL;
int countVL;
int countWL;
int countXL;
int countYL;
int countAR;
int countBR;
int countCR;
int countDR;
int countER;
int countFR;
int countGR;
int countHR;
int countIR;
int countJR;
int countKR;
int countLR;
int countMR;
int countNR;
int countOR;
int countPR;
int countQR;
int countRR;
int countSR;
int countTR;
int countUR;
int countVR;
int countWR;
int countXR;
int countYR;
int countZ;
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_InL,
bez_InR,
bez_UnInL,
bez_UnInR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
double firBufferL[32768];
double firBufferR[32768];
int firPosition;
double earlyReflectionL;
double earlyReflectionR;
double prevAL;
double prevBL;
double prevCL;
double prevDL;
double prevEL;
double prevER;
double prevJR;
double prevOR;
double prevTR;
double prevYR;
double derezA, derezB;
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

61
plugins/MacAU/kCosmos/kCosmos.r Executable file
View file

@ -0,0 +1,61 @@
/*
* File: kCosmos.r
*
* Version: 1.0
*
* Created: 4/29/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "kCosmosVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_kCosmos 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kCosmos~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_kCosmos
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE kCosmos_COMP_SUBTYPE
#define COMP_MANUF kCosmos_COMP_MANF
#define VERSION kkCosmosVersion
#define NAME "Airwindows: kCosmos"
#define DESCRIPTION "kCosmos AU"
#define ENTRY_POINT "kCosmosEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,147 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* kCosmos */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
188,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 768305223;
PBXWorkspaceStateSaveDate = 768305223;
};
perUserProjectItems = {
8BFB7A8A2DCB669400DC8AB2 /* PBXTextBookmark */ = 8BFB7A8A2DCB669400DC8AB2 /* PBXTextBookmark */;
8BFB7ABC2DCB686E00DC8AB2 /* PBXTextBookmark */ = 8BFB7ABC2DCB686E00DC8AB2 /* PBXTextBookmark */;
8BFB7ABD2DCB686E00DC8AB2 /* PBXBookmark */ = 8BFB7ABD2DCB686E00DC8AB2 /* PBXBookmark */;
8BFB7ABE2DCB686E00DC8AB2 /* PBXTextBookmark */ = 8BFB7ABE2DCB686E00DC8AB2 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* kCosmos.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1020, 14238}}";
sepNavSelRange = "{16713, 22017}";
sepNavVisRange = "{37936, 120}";
sepNavWindowFrame = "{{591, 69}, {1104, 809}}";
};
};
8BA05A690720730100365D66 /* kCosmosVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {975, 1296}}";
sepNavSelRange = "{2893, 0}";
sepNavVisRange = "{2769, 178}";
sepNavWindowFrame = "{{15, 98}, {1128, 775}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* kCosmos.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 5454}}";
sepNavSelRange = "{2766, 0}";
sepNavVisRange = "{2435, 1029}";
sepNavWindowFrame = "{{602, 43}, {838, 776}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BFB7A8A2DCB669400DC8AB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* kCosmos.h */;
name = "kCosmos.h: 343";
rLen = 0;
rLoc = 9908;
rType = 0;
vrLen = 92;
vrLoc = 9856;
};
8BFB7ABC2DCB686E00DC8AB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* kCosmosVersion.h */;
name = "kCosmosVersion.h: 54";
rLen = 0;
rLoc = 2893;
rType = 0;
vrLen = 178;
vrLoc = 2769;
};
8BFB7ABD2DCB686E00DC8AB2 /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BA05A660720730100365D66 /* kCosmos.cpp */;
};
8BFB7ABE2DCB686E00DC8AB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* kCosmos.cpp */;
name = "kCosmos.cpp: 385";
rLen = 22017;
rLoc = 16713;
rType = 0;
vrLen = 120;
vrLoc = 37936;
};
8D01CCC60486CAD60068D4B7 /* kCosmos */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

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

View file

@ -0,0 +1,58 @@
/*
* File: kCosmosVersion.h
*
* Version: 1.0
*
* Created: 4/29/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __kCosmosVersion_h__
#define __kCosmosVersion_h__
#ifdef DEBUG
#define kkCosmosVersion 0xFFFFFFFF
#else
#define kkCosmosVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define kCosmos_COMP_MANF 'Dthr'
#define kCosmos_COMP_SUBTYPE 'kcsm'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>3</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>${EXECUTABLE_NAME}</string>
<key>SourceVersion</key>
<string>590000</string>
</dict>
</plist>

View file

@ -0,0 +1,348 @@
/*
* File: ChimeyGuitar.cpp
*
* Version: 1.0
*
* Created: 5/8/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
ChimeyGuitar.cpp
=============================================================================*/
#include "ChimeyGuitar.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, ChimeyGuitar)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::ChimeyGuitar
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ChimeyGuitar::ChimeyGuitar(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
SetParameter(kParam_G, kDefaultValue_ParamG );
SetParameter(kParam_H, kDefaultValue_ParamH );
SetParameter(kParam_I, kDefaultValue_ParamI );
SetParameter(kParam_J, kDefaultValue_ParamJ );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
case kParam_F:
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamF;
break;
case kParam_G:
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamG;
break;
case kParam_H:
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamH;
break;
case kParam_I:
AUBase::FillInParameterName (outParameterInfo, kParameterIName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamI;
break;
case kParam_J:
AUBase::FillInParameterName (outParameterInfo, kParameterJName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamJ;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// ChimeyGuitar::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ChimeyGuitar::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____ChimeyGuitarEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::ChimeyGuitarKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ChimeyGuitar::ChimeyGuitarKernel::Reset()
{
for(int x=0; x<21; x++) {
for(int y=0; y<11; y++) {
angS[x][y] = 0.0;angA[x][y] = 0.0;
}
}
for(int y=0; y<11; y++) {
angG[y] = 0.0;
for (int x = 0; x < bez_total; x++) {bezComp[x][y] = 0.0;}
bezComp[bez_cycle][y] = 1.0;
}
bezRezA = bezRezB = 0.0002;
for(int count = 0; count < 36; count++) {
iirHPosition[count] = 0.0;
iirHAngle[count] = 0.0;
iirBPosition[count] = 0.0;
iirBAngle[count] = 0.0;
}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ChimeyGuitar::ChimeyGuitarKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ChimeyGuitar::ChimeyGuitarKernel::Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence )
{
UInt32 nSampleFrames = inFramesToProcess;
const Float32 *sourceP = inSourceP;
Float32 *destP = inDestP;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
int poles = (int)(pow(GetParameter( kParam_A ),2)*20.0);
angG[0] = sqrt(GetParameter( kParam_B )*2.0);
angG[2] = sqrt(GetParameter( kParam_C )*2.0);
angG[4] = sqrt(GetParameter( kParam_D )*2.0);
angG[6] = sqrt(GetParameter( kParam_E )*2.0);
angG[8] = sqrt(GetParameter( kParam_F )*2.0);
angG[1] = (angG[0]+angG[2])*0.5;
angG[3] = (angG[2]+angG[4])*0.5;
angG[5] = (angG[4]+angG[6])*0.5;
angG[7] = (angG[6]+angG[8])*0.5;
angG[9] = angG[8];
double hFreq = pow(GetParameter( kParam_G ),overallscale);
double lFreq = pow(GetParameter( kParam_H ),overallscale+3.0);
bezRezA = bezRezB; bezRezB = ((pow(GetParameter( kParam_I ),4.0)*0.5)+0.0002)/overallscale;
if (bezRezB > 1.0) bezRezB = 1.0;
double output = GetParameter( kParam_J );
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double temp = (double)nSampleFrames/inFramesToProcess;
double bezRez = (bezRezA*temp)+(bezRezB*(1.0-temp));
double CBAL = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSample; inputSample = 0.0;
for (int y = 0; y < 9; y++) {
angA[x][y] = (angA[x][y]*(1.0-fr)) + ((band-angS[x][y])*fr);
double temp = band; band = ((angS[x][y]+(angA[x][y]*fr)) * (1.0-fr))+(band*fr);
angS[x][y] = ((angS[x][y]+(angA[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSample += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycle][y] += bezRez;
bezComp[bez_SampL][y] += (fabs(inputSample) * bezRez);
if (bezComp[bez_cycle][y] > 1.0) {
bezComp[bez_cycle][y] -= 1.0;
bezComp[bez_CL][y] = bezComp[bez_BL][y];
bezComp[bez_BL][y] = bezComp[bez_AL][y];
bezComp[bez_AL][y] = bezComp[bez_SampL][y];
bezComp[bez_SampL][y] = 0.0;
}
double CBL = (bezComp[bez_CL][y]*(1.0-bezComp[bez_cycle][y]))+(bezComp[bez_BL][y]*bezComp[bez_cycle][y]);
double BAL = (bezComp[bez_BL][y]*(1.0-bezComp[bez_cycle][y]))+(bezComp[bez_AL][y]*bezComp[bez_cycle][y]);
CBAL += (bezComp[bez_BL][y]+(CBL*(1.0-bezComp[bez_cycle][y]))+(BAL*bezComp[bez_cycle][y]))*0.5;
inputSample *= 1.0-(fmin(CBAL*0.01,1.0));
}
inputSample += (band*angG[9]);
}
inputSample = sin(inputSample);
double lowSample = inputSample;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngle[count] = (iirBAngle[count]*(1.0-lFreq))+((lowSample-iirBPosition[count])*lFreq);
lowSample = ((iirBPosition[count]+(iirBAngle[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPosition[count] = ((iirBPosition[count]+(iirBAngle[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSample -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngle[count] = (iirHAngle[count]*(1.0-hFreq))+((inputSample-iirHPosition[count])*hFreq);
inputSample = ((iirHPosition[count]+(iirHAngle[count]*hFreq))*(1.0-hFreq))+(inputSample*hFreq);
iirHPosition[count] = ((iirHPosition[count]+(iirHAngle[count]*hFreq))*(1.0-hFreq))+(inputSample*hFreq);
} //the lowpass
inputSample *= output;
//begin 32 bit floating point dither
int expon; frexpf((float)inputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSample;
sourceP += inNumChannels; destP += inNumChannels;
}
}

View file

@ -0,0 +1,2 @@
_ChimeyGuitarEntry
_ChimeyGuitarFactory

View file

@ -0,0 +1,181 @@
/*
* File: ChimeyGuitar.h
*
* Version: 1.0
*
* Created: 5/8/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "ChimeyGuitarVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __ChimeyGuitar_h__
#define __ChimeyGuitar_h__
#pragma mark ____ChimeyGuitar Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.8;
static const float kDefaultValue_ParamC = 0.7;
static const float kDefaultValue_ParamD = 0.5;
static const float kDefaultValue_ParamE = 0.7;
static const float kDefaultValue_ParamF = 0.4;
static const float kDefaultValue_ParamG = 0.8;
static const float kDefaultValue_ParamH = 0.4;
static const float kDefaultValue_ParamI = 0.3;
static const float kDefaultValue_ParamJ = 1.0;
static CFStringRef kParameterAName = CFSTR("Compres");
static CFStringRef kParameterBName = CFSTR("Presnce");
static CFStringRef kParameterCName = CFSTR("High");
static CFStringRef kParameterDName = CFSTR("Mid");
static CFStringRef kParameterEName = CFSTR("Low");
static CFStringRef kParameterFName = CFSTR("Sub");
static CFStringRef kParameterGName = CFSTR("HSpeakr");
static CFStringRef kParameterHName = CFSTR("LSpeakr");
static CFStringRef kParameterIName = CFSTR("Speed");
static CFStringRef kParameterJName = CFSTR("Output");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
kParam_H =7,
kParam_I =8,
kParam_J =9,
//Add your parameters here...
kNumberOfParameters=10
};
#pragma mark ____ChimeyGuitar
class ChimeyGuitar : public AUEffectBase
{
public:
ChimeyGuitar(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~ChimeyGuitar () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new ChimeyGuitarKernel(this); }
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings);
virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo);
virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable );
virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData);
virtual ComponentResult Initialize();
virtual bool SupportsTail () { return true; }
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
/*! @method Version */
virtual ComponentResult Version() { return kChimeyGuitarVersion; }
protected:
class ChimeyGuitarKernel : public AUKernelBase // most of the real work happens here
{
public:
ChimeyGuitarKernel(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:
double angS[22][12];
double angA[22][12];
double angG[12];
double iirHPosition[37];
double iirHAngle[37];
double iirBPosition[37];
double iirBAngle[37];
enum {
bez_AL,
bez_BL,
bez_CL,
bez_InL,
bez_UnInL,
bez_SampL,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total][12];
double bezRezA, bezRezB;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: ChimeyGuitar.r
*
* Version: 1.0
*
* Created: 5/8/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "ChimeyGuitarVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_ChimeyGuitar 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ChimeyGuitar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_ChimeyGuitar
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE ChimeyGuitar_COMP_SUBTYPE
#define COMP_MANUF ChimeyGuitar_COMP_MANF
#define VERSION kChimeyGuitarVersion
#define NAME "Airwindows: ChimeyGuitar"
#define DESCRIPTION "ChimeyGuitar AU"
#define ENTRY_POINT "ChimeyGuitarEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,164 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* ChimeyGuitar */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
292,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
252,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 768434107;
PBXWorkspaceStateSaveDate = 768434107;
};
perUserProjectItems = {
8BD500992DCD4D9A0045813C /* PlistBookmark */ = 8BD500992DCD4D9A0045813C /* PlistBookmark */;
8BD5013C2DCD5EEA0045813C /* PBXTextBookmark */ = 8BD5013C2DCD5EEA0045813C /* PBXTextBookmark */;
8BD5016F2DCD5FBD0045813C /* PBXBookmark */ = 8BD5016F2DCD5FBD0045813C /* PBXBookmark */;
8BD5017B2DCD5FF00045813C /* PBXTextBookmark */ = 8BD5017B2DCD5FF00045813C /* PBXTextBookmark */;
8BD5017C2DCD5FF00045813C /* PBXTextBookmark */ = 8BD5017C2DCD5FF00045813C /* PBXTextBookmark */;
8BD501822DCD5FF00045813C /* PBXTextBookmark */ = 8BD501822DCD5FF00045813C /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* ChimeyGuitar.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1101, 6372}}";
sepNavSelRange = "{14655, 0}";
sepNavVisRange = "{14435, 262}";
sepNavWindowFrame = "{{753, 33}, {917, 803}}";
};
};
8BA05A690720730100365D66 /* ChimeyGuitarVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1038, 1224}}";
sepNavSelRange = "{2926, 0}";
sepNavVisRange = "{2744, 244}";
sepNavWindowFrame = "{{619, 75}, {917, 803}}";
};
};
8BC6025B073B072D006C4272 /* ChimeyGuitar.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 3258}}";
sepNavSelRange = "{6244, 245}";
sepNavVisRange = "{2730, 1209}";
sepNavWindowFrame = "{{802, 75}, {917, 803}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BD500992DCD4D9A0045813C /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ChimeyGuitar/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BD5013C2DCD5EEA0045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* ChimeyGuitarVersion.h */;
name = "ChimeyGuitarVersion.h: 54";
rLen = 0;
rLoc = 2926;
rType = 0;
vrLen = 244;
vrLoc = 2744;
};
8BD5016F2DCD5FBD0045813C /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BC6025B073B072D006C4272 /* ChimeyGuitar.h */;
};
8BD5017B2DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ChimeyGuitar.cpp */;
name = "ChimeyGuitar.cpp: 320";
rLen = 0;
rLoc = 14655;
rType = 0;
vrLen = 262;
vrLoc = 14435;
};
8BD5017C2DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ChimeyGuitar.cpp */;
name = "ChimeyGuitar.cpp: 320";
rLen = 0;
rLoc = 14655;
rType = 0;
vrLen = 262;
vrLoc = 14435;
};
8BD501822DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* ChimeyGuitar.h */;
name = "ChimeyGuitar.h: 162";
rLen = 245;
rLoc = 6244;
rType = 0;
vrLen = 1209;
vrLoc = 2730;
};
8D01CCC60486CAD60068D4B7 /* ChimeyGuitar */ = {
activeExec = 0;
};
}

View file

@ -0,0 +1,965 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
8BA05A6B0720730100365D66 /* ChimeyGuitar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ChimeyGuitar.cpp */; };
8BA05A6E0720730100365D66 /* ChimeyGuitarVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ChimeyGuitarVersion.h */; };
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
8BC6025C073B072D006C4272 /* ChimeyGuitar.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* ChimeyGuitar.h */; };
8BCB1CDE2DCD7A1E00175DC3 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C562DCD7A1E00175DC3 /* CAExtAudioFile.h */; };
8BCB1CDF2DCD7A1E00175DC3 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C572DCD7A1E00175DC3 /* CACFMachPort.h */; };
8BCB1CE02DCD7A1E00175DC3 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C582DCD7A1E00175DC3 /* CABool.h */; };
8BCB1CE12DCD7A1E00175DC3 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C592DCD7A1E00175DC3 /* CAComponent.cpp */; };
8BCB1CE22DCD7A1E00175DC3 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C5A2DCD7A1E00175DC3 /* CADebugger.h */; };
8BCB1CE32DCD7A1E00175DC3 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C5B2DCD7A1E00175DC3 /* CACFNumber.cpp */; };
8BCB1CE42DCD7A1E00175DC3 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C5C2DCD7A1E00175DC3 /* CAGuard.h */; };
8BCB1CE52DCD7A1E00175DC3 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C5D2DCD7A1E00175DC3 /* CAAtomic.h */; };
8BCB1CE62DCD7A1E00175DC3 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C5E2DCD7A1E00175DC3 /* CAStreamBasicDescription.h */; };
8BCB1CE72DCD7A1E00175DC3 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C5F2DCD7A1E00175DC3 /* CACFObject.h */; };
8BCB1CE82DCD7A1E00175DC3 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C602DCD7A1E00175DC3 /* CAStreamRangedDescription.h */; };
8BCB1CE92DCD7A1E00175DC3 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C612DCD7A1E00175DC3 /* CATokenMap.h */; };
8BCB1CEA2DCD7A1E00175DC3 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C622DCD7A1E00175DC3 /* CAComponent.h */; };
8BCB1CEB2DCD7A1E00175DC3 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C632DCD7A1E00175DC3 /* CAAudioBufferList.h */; };
8BCB1CEC2DCD7A1E00175DC3 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C642DCD7A1E00175DC3 /* CAAudioUnit.h */; };
8BCB1CED2DCD7A1E00175DC3 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C652DCD7A1E00175DC3 /* CAAUParameter.h */; };
8BCB1CEE2DCD7A1E00175DC3 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C662DCD7A1E00175DC3 /* CAException.h */; };
8BCB1CEF2DCD7A1E00175DC3 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C672DCD7A1E00175DC3 /* CAAUProcessor.cpp */; };
8BCB1CF02DCD7A1E00175DC3 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C682DCD7A1E00175DC3 /* CAAUProcessor.h */; };
8BCB1CF12DCD7A1E00175DC3 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C692DCD7A1E00175DC3 /* CAProcess.h */; };
8BCB1CF22DCD7A1E00175DC3 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C6A2DCD7A1E00175DC3 /* CACFDictionary.h */; };
8BCB1CF32DCD7A1E00175DC3 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C6B2DCD7A1E00175DC3 /* CAPThread.h */; };
8BCB1CF42DCD7A1E00175DC3 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C6C2DCD7A1E00175DC3 /* CAAUParameter.cpp */; };
8BCB1CF52DCD7A1E00175DC3 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C6D2DCD7A1E00175DC3 /* CAAudioTimeStamp.h */; };
8BCB1CF62DCD7A1E00175DC3 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C6E2DCD7A1E00175DC3 /* CAFilePathUtils.cpp */; };
8BCB1CF72DCD7A1E00175DC3 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C6F2DCD7A1E00175DC3 /* CAAudioValueRange.h */; };
8BCB1CF82DCD7A1E00175DC3 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C702DCD7A1E00175DC3 /* CAVectorUnitTypes.h */; };
8BCB1CF92DCD7A1E00175DC3 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C712DCD7A1E00175DC3 /* CAAudioChannelLayoutObject.cpp */; };
8BCB1CFA2DCD7A1E00175DC3 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C722DCD7A1E00175DC3 /* CAGuard.cpp */; };
8BCB1CFB2DCD7A1E00175DC3 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C732DCD7A1E00175DC3 /* CACFNumber.h */; };
8BCB1CFC2DCD7A1E00175DC3 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C742DCD7A1E00175DC3 /* CACFDistributedNotification.cpp */; };
8BCB1CFD2DCD7A1E00175DC3 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C752DCD7A1E00175DC3 /* CACFString.h */; };
8BCB1CFE2DCD7A1E00175DC3 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C762DCD7A1E00175DC3 /* CAAUMIDIMapManager.cpp */; };
8BCB1CFF2DCD7A1E00175DC3 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C772DCD7A1E00175DC3 /* CAComponentDescription.cpp */; };
8BCB1D002DCD7A1E00175DC3 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C782DCD7A1E00175DC3 /* CAHostTimeBase.h */; };
8BCB1D012DCD7A1E00175DC3 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C792DCD7A1E00175DC3 /* CADebugMacros.cpp */; };
8BCB1D022DCD7A1E00175DC3 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C7A2DCD7A1E00175DC3 /* CAAudioFileFormats.h */; };
8BCB1D032DCD7A1E00175DC3 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C7B2DCD7A1E00175DC3 /* CAAUMIDIMapManager.h */; };
8BCB1D042DCD7A1E00175DC3 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C7C2DCD7A1E00175DC3 /* CACFDictionary.cpp */; };
8BCB1D052DCD7A1E00175DC3 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C7D2DCD7A1E00175DC3 /* CAMutex.h */; };
8BCB1D062DCD7A1E00175DC3 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C7E2DCD7A1E00175DC3 /* CACFString.cpp */; };
8BCB1D072DCD7A1E00175DC3 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C7F2DCD7A1E00175DC3 /* CASettingsStorage.h */; };
8BCB1D082DCD7A1E00175DC3 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C802DCD7A1E00175DC3 /* CADebugPrintf.h */; };
8BCB1D092DCD7A1E00175DC3 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C812DCD7A1E00175DC3 /* CAXException.cpp */; };
8BCB1D0A2DCD7A1E00175DC3 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C822DCD7A1E00175DC3 /* CAAUMIDIMap.h */; };
8BCB1D0B2DCD7A1E00175DC3 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C832DCD7A1E00175DC3 /* AUParamInfo.h */; };
8BCB1D0C2DCD7A1E00175DC3 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C842DCD7A1E00175DC3 /* CABitOperations.h */; };
8BCB1D0D2DCD7A1E00175DC3 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C852DCD7A1E00175DC3 /* CACFPreferences.cpp */; };
8BCB1D0E2DCD7A1E00175DC3 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C862DCD7A1E00175DC3 /* CABundleLocker.h */; };
8BCB1D0F2DCD7A1E00175DC3 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C872DCD7A1E00175DC3 /* CAPropertyAddress.h */; };
8BCB1D102DCD7A1E00175DC3 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C882DCD7A1E00175DC3 /* CAXException.h */; };
8BCB1D112DCD7A1E00175DC3 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C892DCD7A1E00175DC3 /* CAAudioChannelLayout.cpp */; };
8BCB1D122DCD7A1E00175DC3 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C8A2DCD7A1E00175DC3 /* CAThreadSafeList.h */; };
8BCB1D132DCD7A1E00175DC3 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C8B2DCD7A1E00175DC3 /* CAAudioUnitOutputCapturer.h */; };
8BCB1D142DCD7A1E00175DC3 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C8C2DCD7A1E00175DC3 /* AUParamInfo.cpp */; };
8BCB1D152DCD7A1E00175DC3 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C8D2DCD7A1E00175DC3 /* CASharedLibrary.cpp */; };
8BCB1D162DCD7A1E00175DC3 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C8E2DCD7A1E00175DC3 /* CAAUMIDIMap.cpp */; };
8BCB1D172DCD7A1E00175DC3 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C8F2DCD7A1E00175DC3 /* CALogMacros.h */; };
8BCB1D182DCD7A1E00175DC3 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C902DCD7A1E00175DC3 /* CACFMessagePort.cpp */; };
8BCB1D192DCD7A1E00175DC3 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C912DCD7A1E00175DC3 /* CARingBuffer.h */; };
8BCB1D1A2DCD7A1E00175DC3 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C922DCD7A1E00175DC3 /* AUOutputBL.cpp */; };
8BCB1D1B2DCD7A1E00175DC3 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C932DCD7A1E00175DC3 /* CABufferList.h */; };
8BCB1D1C2DCD7A1E00175DC3 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C942DCD7A1E00175DC3 /* CASharedLibrary.h */; };
8BCB1D1D2DCD7A1E00175DC3 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C952DCD7A1E00175DC3 /* CACFData.h */; };
8BCB1D1E2DCD7A1E00175DC3 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C962DCD7A1E00175DC3 /* CAStreamRangedDescription.cpp */; };
8BCB1D1F2DCD7A1E00175DC3 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C972DCD7A1E00175DC3 /* CAPThread.cpp */; };
8BCB1D202DCD7A1E00175DC3 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C982DCD7A1E00175DC3 /* CAAutoDisposer.h */; };
8BCB1D212DCD7A1E00175DC3 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C992DCD7A1E00175DC3 /* CACFPreferences.h */; };
8BCB1D222DCD7A1E00175DC3 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C9A2DCD7A1E00175DC3 /* CAVectorUnit.cpp */; };
8BCB1D232DCD7A1E00175DC3 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C9B2DCD7A1E00175DC3 /* CAComponentDescription.h */; };
8BCB1D242DCD7A1E00175DC3 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C9C2DCD7A1E00175DC3 /* CADebugMacros.h */; };
8BCB1D252DCD7A1E00175DC3 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1C9D2DCD7A1E00175DC3 /* AUOutputBL.h */; };
8BCB1D262DCD7A1E00175DC3 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C9E2DCD7A1E00175DC3 /* CADebugPrintf.cpp */; };
8BCB1D272DCD7A1E00175DC3 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1C9F2DCD7A1E00175DC3 /* CARingBuffer.cpp */; };
8BCB1D282DCD7A1E00175DC3 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CA02DCD7A1E00175DC3 /* CACFPlugIn.h */; };
8BCB1D292DCD7A1E00175DC3 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CA12DCD7A1E00175DC3 /* CASettingsStorage.cpp */; };
8BCB1D2A2DCD7A1E00175DC3 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CA22DCD7A1E00175DC3 /* CAMixMap.h */; };
8BCB1D2B2DCD7A1E00175DC3 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CA32DCD7A1E00175DC3 /* CACFDistributedNotification.h */; };
8BCB1D2C2DCD7A1E00175DC3 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CA42DCD7A1E00175DC3 /* CAFilePathUtils.h */; };
8BCB1D2D2DCD7A1E00175DC3 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CA52DCD7A1E00175DC3 /* CATink.h */; };
8BCB1D2E2DCD7A1E00175DC3 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CA62DCD7A1E00175DC3 /* CAStreamBasicDescription.cpp */; };
8BCB1D2F2DCD7A1E00175DC3 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CA72DCD7A1E00175DC3 /* CAAudioChannelLayout.h */; };
8BCB1D302DCD7A1E00175DC3 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CA82DCD7A1E00175DC3 /* CAProcess.cpp */; };
8BCB1D312DCD7A1E00175DC3 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CA92DCD7A1E00175DC3 /* CAHostTimeBase.cpp */; };
8BCB1D322DCD7A1E00175DC3 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CAA2DCD7A1E00175DC3 /* CAPersistence.cpp */; };
8BCB1D332DCD7A1E00175DC3 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CAB2DCD7A1E00175DC3 /* CAAudioBufferList.cpp */; };
8BCB1D342DCD7A1E00175DC3 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CAC2DCD7A1E00175DC3 /* CAAudioTimeStamp.cpp */; };
8BCB1D352DCD7A1E00175DC3 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CAD2DCD7A1E00175DC3 /* CAVectorUnit.h */; };
8BCB1D362DCD7A1E00175DC3 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CAE2DCD7A1E00175DC3 /* CAByteOrder.h */; };
8BCB1D372DCD7A1E00175DC3 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CAF2DCD7A1E00175DC3 /* CACFArray.h */; };
8BCB1D382DCD7A1E00175DC3 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CB02DCD7A1E00175DC3 /* CAAtomicStack.h */; };
8BCB1D392DCD7A1E00175DC3 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CB12DCD7A1E00175DC3 /* CAReferenceCounted.h */; };
8BCB1D3A2DCD7A1E00175DC3 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CB22DCD7A1E00175DC3 /* CACFMachPort.cpp */; };
8BCB1D3B2DCD7A1E00175DC3 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CB32DCD7A1E00175DC3 /* CABufferList.cpp */; };
8BCB1D3C2DCD7A1E00175DC3 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CB42DCD7A1E00175DC3 /* CAMutex.cpp */; };
8BCB1D3D2DCD7A1E00175DC3 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CB52DCD7A1E00175DC3 /* CADebugger.cpp */; };
8BCB1D3E2DCD7A1E00175DC3 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CB62DCD7A1E00175DC3 /* CABundleLocker.cpp */; };
8BCB1D3F2DCD7A1E00175DC3 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CB72DCD7A1E00175DC3 /* CAAudioFileFormats.cpp */; };
8BCB1D402DCD7A1E00175DC3 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CB82DCD7A1E00175DC3 /* CAMath.h */; };
8BCB1D412DCD7A1E00175DC3 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CB92DCD7A1E00175DC3 /* CACFArray.cpp */; };
8BCB1D422DCD7A1E00175DC3 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CBA2DCD7A1E00175DC3 /* CACFMessagePort.h */; };
8BCB1D432DCD7A1E00175DC3 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CBB2DCD7A1E00175DC3 /* CAAudioValueRange.cpp */; };
8BCB1D442DCD7A1E00175DC3 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CBC2DCD7A1E00175DC3 /* CAAudioUnit.cpp */; };
8BCB1D452DCD7A1E00175DC3 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CC02DCD7A1E00175DC3 /* AUViewLocalizedStringKeys.h */; };
8BCB1D462DCD7A1E00175DC3 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CC22DCD7A1E00175DC3 /* ComponentBase.cpp */; };
8BCB1D472DCD7A1E00175DC3 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CC32DCD7A1E00175DC3 /* AUScopeElement.cpp */; };
8BCB1D482DCD7A1E00175DC3 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CC42DCD7A1E00175DC3 /* ComponentBase.h */; };
8BCB1D492DCD7A1E00175DC3 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CC52DCD7A1E00175DC3 /* AUBase.cpp */; };
8BCB1D4A2DCD7A1E00175DC3 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CC62DCD7A1E00175DC3 /* AUInputElement.h */; };
8BCB1D4B2DCD7A1E00175DC3 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CC72DCD7A1E00175DC3 /* AUBase.h */; };
8BCB1D4C2DCD7A1E00175DC3 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CC82DCD7A1E00175DC3 /* AUPlugInDispatch.h */; };
8BCB1D4D2DCD7A1E00175DC3 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CC92DCD7A1E00175DC3 /* AUDispatch.h */; };
8BCB1D4E2DCD7A1E00175DC3 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CCA2DCD7A1E00175DC3 /* AUOutputElement.cpp */; };
8BCB1D502DCD7A1E00175DC3 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CCC2DCD7A1E00175DC3 /* AUPlugInDispatch.cpp */; };
8BCB1D512DCD7A1E00175DC3 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CCD2DCD7A1E00175DC3 /* AUOutputElement.h */; };
8BCB1D522DCD7A1E00175DC3 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CCE2DCD7A1E00175DC3 /* AUDispatch.cpp */; };
8BCB1D532DCD7A1E00175DC3 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CCF2DCD7A1E00175DC3 /* AUScopeElement.h */; };
8BCB1D542DCD7A1E00175DC3 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CD02DCD7A1E00175DC3 /* AUInputElement.cpp */; };
8BCB1D552DCD7A1E00175DC3 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CD22DCD7A1E00175DC3 /* AUEffectBase.cpp */; };
8BCB1D562DCD7A1E00175DC3 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CD32DCD7A1E00175DC3 /* AUEffectBase.h */; };
8BCB1D572DCD7A1E00175DC3 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CD52DCD7A1E00175DC3 /* AUTimestampGenerator.h */; };
8BCB1D582DCD7A1E00175DC3 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CD62DCD7A1E00175DC3 /* AUBaseHelper.cpp */; };
8BCB1D592DCD7A1E00175DC3 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CD72DCD7A1E00175DC3 /* AUSilentTimeout.h */; };
8BCB1D5A2DCD7A1E00175DC3 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CD82DCD7A1E00175DC3 /* AUInputFormatConverter.h */; };
8BCB1D5B2DCD7A1E00175DC3 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CD92DCD7A1E00175DC3 /* AUTimestampGenerator.cpp */; };
8BCB1D5C2DCD7A1E00175DC3 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BCB1CDA2DCD7A1E00175DC3 /* AUBuffer.cpp */; };
8BCB1D5D2DCD7A1E00175DC3 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CDB2DCD7A1E00175DC3 /* AUMIDIDefs.h */; };
8BCB1D5E2DCD7A1E00175DC3 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CDC2DCD7A1E00175DC3 /* AUBuffer.h */; };
8BCB1D5F2DCD7A1E00175DC3 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BCB1CDD2DCD7A1E00175DC3 /* AUBaseHelper.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
8BA05A660720730100365D66 /* ChimeyGuitar.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ChimeyGuitar.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* ChimeyGuitar.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ChimeyGuitar.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* ChimeyGuitar.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ChimeyGuitar.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* ChimeyGuitarVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ChimeyGuitarVersion.h; sourceTree = "<group>"; };
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
8BC6025B073B072D006C4272 /* ChimeyGuitar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ChimeyGuitar.h; sourceTree = "<group>"; };
8BCB1C562DCD7A1E00175DC3 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8BCB1C572DCD7A1E00175DC3 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8BCB1C582DCD7A1E00175DC3 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8BCB1C592DCD7A1E00175DC3 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8BCB1C5A2DCD7A1E00175DC3 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8BCB1C5B2DCD7A1E00175DC3 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8BCB1C5C2DCD7A1E00175DC3 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8BCB1C5D2DCD7A1E00175DC3 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8BCB1C5E2DCD7A1E00175DC3 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8BCB1C5F2DCD7A1E00175DC3 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8BCB1C602DCD7A1E00175DC3 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8BCB1C612DCD7A1E00175DC3 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8BCB1C622DCD7A1E00175DC3 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8BCB1C632DCD7A1E00175DC3 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8BCB1C642DCD7A1E00175DC3 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8BCB1C652DCD7A1E00175DC3 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8BCB1C662DCD7A1E00175DC3 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8BCB1C672DCD7A1E00175DC3 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8BCB1C682DCD7A1E00175DC3 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8BCB1C692DCD7A1E00175DC3 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8BCB1C6A2DCD7A1E00175DC3 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8BCB1C6B2DCD7A1E00175DC3 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8BCB1C6C2DCD7A1E00175DC3 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8BCB1C6D2DCD7A1E00175DC3 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8BCB1C6E2DCD7A1E00175DC3 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8BCB1C6F2DCD7A1E00175DC3 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8BCB1C702DCD7A1E00175DC3 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8BCB1C712DCD7A1E00175DC3 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8BCB1C722DCD7A1E00175DC3 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8BCB1C732DCD7A1E00175DC3 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8BCB1C742DCD7A1E00175DC3 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8BCB1C752DCD7A1E00175DC3 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8BCB1C762DCD7A1E00175DC3 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8BCB1C772DCD7A1E00175DC3 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8BCB1C782DCD7A1E00175DC3 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8BCB1C792DCD7A1E00175DC3 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8BCB1C7A2DCD7A1E00175DC3 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8BCB1C7B2DCD7A1E00175DC3 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8BCB1C7C2DCD7A1E00175DC3 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8BCB1C7D2DCD7A1E00175DC3 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8BCB1C7E2DCD7A1E00175DC3 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8BCB1C7F2DCD7A1E00175DC3 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8BCB1C802DCD7A1E00175DC3 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8BCB1C812DCD7A1E00175DC3 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8BCB1C822DCD7A1E00175DC3 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8BCB1C832DCD7A1E00175DC3 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8BCB1C842DCD7A1E00175DC3 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8BCB1C852DCD7A1E00175DC3 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8BCB1C862DCD7A1E00175DC3 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8BCB1C872DCD7A1E00175DC3 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8BCB1C882DCD7A1E00175DC3 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8BCB1C892DCD7A1E00175DC3 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8BCB1C8A2DCD7A1E00175DC3 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8BCB1C8B2DCD7A1E00175DC3 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8BCB1C8C2DCD7A1E00175DC3 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8BCB1C8D2DCD7A1E00175DC3 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8BCB1C8E2DCD7A1E00175DC3 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8BCB1C8F2DCD7A1E00175DC3 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8BCB1C902DCD7A1E00175DC3 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8BCB1C912DCD7A1E00175DC3 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8BCB1C922DCD7A1E00175DC3 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8BCB1C932DCD7A1E00175DC3 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8BCB1C942DCD7A1E00175DC3 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8BCB1C952DCD7A1E00175DC3 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8BCB1C962DCD7A1E00175DC3 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8BCB1C972DCD7A1E00175DC3 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8BCB1C982DCD7A1E00175DC3 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8BCB1C992DCD7A1E00175DC3 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8BCB1C9A2DCD7A1E00175DC3 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8BCB1C9B2DCD7A1E00175DC3 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8BCB1C9C2DCD7A1E00175DC3 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8BCB1C9D2DCD7A1E00175DC3 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8BCB1C9E2DCD7A1E00175DC3 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8BCB1C9F2DCD7A1E00175DC3 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8BCB1CA02DCD7A1E00175DC3 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8BCB1CA12DCD7A1E00175DC3 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8BCB1CA22DCD7A1E00175DC3 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8BCB1CA32DCD7A1E00175DC3 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8BCB1CA42DCD7A1E00175DC3 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8BCB1CA52DCD7A1E00175DC3 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8BCB1CA62DCD7A1E00175DC3 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8BCB1CA72DCD7A1E00175DC3 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8BCB1CA82DCD7A1E00175DC3 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8BCB1CA92DCD7A1E00175DC3 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8BCB1CAA2DCD7A1E00175DC3 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8BCB1CAB2DCD7A1E00175DC3 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8BCB1CAC2DCD7A1E00175DC3 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8BCB1CAD2DCD7A1E00175DC3 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8BCB1CAE2DCD7A1E00175DC3 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8BCB1CAF2DCD7A1E00175DC3 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8BCB1CB02DCD7A1E00175DC3 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8BCB1CB12DCD7A1E00175DC3 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8BCB1CB22DCD7A1E00175DC3 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8BCB1CB32DCD7A1E00175DC3 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8BCB1CB42DCD7A1E00175DC3 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8BCB1CB52DCD7A1E00175DC3 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8BCB1CB62DCD7A1E00175DC3 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8BCB1CB72DCD7A1E00175DC3 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8BCB1CB82DCD7A1E00175DC3 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8BCB1CB92DCD7A1E00175DC3 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8BCB1CBA2DCD7A1E00175DC3 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8BCB1CBB2DCD7A1E00175DC3 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8BCB1CBC2DCD7A1E00175DC3 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8BCB1CC02DCD7A1E00175DC3 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8BCB1CC22DCD7A1E00175DC3 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8BCB1CC32DCD7A1E00175DC3 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8BCB1CC42DCD7A1E00175DC3 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8BCB1CC52DCD7A1E00175DC3 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8BCB1CC62DCD7A1E00175DC3 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8BCB1CC72DCD7A1E00175DC3 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8BCB1CC82DCD7A1E00175DC3 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8BCB1CC92DCD7A1E00175DC3 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8BCB1CCA2DCD7A1E00175DC3 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8BCB1CCB2DCD7A1E00175DC3 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8BCB1CCC2DCD7A1E00175DC3 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8BCB1CCD2DCD7A1E00175DC3 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8BCB1CCE2DCD7A1E00175DC3 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8BCB1CCF2DCD7A1E00175DC3 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8BCB1CD02DCD7A1E00175DC3 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8BCB1CD22DCD7A1E00175DC3 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8BCB1CD32DCD7A1E00175DC3 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8BCB1CD52DCD7A1E00175DC3 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8BCB1CD62DCD7A1E00175DC3 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8BCB1CD72DCD7A1E00175DC3 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8BCB1CD82DCD7A1E00175DC3 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8BCB1CD92DCD7A1E00175DC3 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8BCB1CDA2DCD7A1E00175DC3 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8BCB1CDB2DCD7A1E00175DC3 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8BCB1CDC2DCD7A1E00175DC3 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8BCB1CDD2DCD7A1E00175DC3 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8BCB1D602DCD7BA500175DC3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* ChimeyGuitar.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChimeyGuitar.component; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */,
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */,
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
089C166AFE841209C02AAC07 /* ChimeyGuitar */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = ChimeyGuitar;
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 = (
8BCB1C542DCD7A1E00175DC3 /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* ChimeyGuitar.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* ChimeyGuitar.h */,
8BA05A660720730100365D66 /* ChimeyGuitar.cpp */,
8BA05A670720730100365D66 /* ChimeyGuitar.exp */,
8BA05A680720730100365D66 /* ChimeyGuitar.r */,
8BA05A690720730100365D66 /* ChimeyGuitarVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
8BCB1C542DCD7A1E00175DC3 /* CA_SDK */ = {
isa = PBXGroup;
children = (
8BCB1C552DCD7A1E00175DC3 /* PublicUtility */,
8BCB1CBD2DCD7A1E00175DC3 /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8BCB1C552DCD7A1E00175DC3 /* PublicUtility */ = {
isa = PBXGroup;
children = (
8BCB1C562DCD7A1E00175DC3 /* CAExtAudioFile.h */,
8BCB1C572DCD7A1E00175DC3 /* CACFMachPort.h */,
8BCB1C582DCD7A1E00175DC3 /* CABool.h */,
8BCB1C592DCD7A1E00175DC3 /* CAComponent.cpp */,
8BCB1C5A2DCD7A1E00175DC3 /* CADebugger.h */,
8BCB1C5B2DCD7A1E00175DC3 /* CACFNumber.cpp */,
8BCB1C5C2DCD7A1E00175DC3 /* CAGuard.h */,
8BCB1C5D2DCD7A1E00175DC3 /* CAAtomic.h */,
8BCB1C5E2DCD7A1E00175DC3 /* CAStreamBasicDescription.h */,
8BCB1C5F2DCD7A1E00175DC3 /* CACFObject.h */,
8BCB1C602DCD7A1E00175DC3 /* CAStreamRangedDescription.h */,
8BCB1C612DCD7A1E00175DC3 /* CATokenMap.h */,
8BCB1C622DCD7A1E00175DC3 /* CAComponent.h */,
8BCB1C632DCD7A1E00175DC3 /* CAAudioBufferList.h */,
8BCB1C642DCD7A1E00175DC3 /* CAAudioUnit.h */,
8BCB1C652DCD7A1E00175DC3 /* CAAUParameter.h */,
8BCB1C662DCD7A1E00175DC3 /* CAException.h */,
8BCB1C672DCD7A1E00175DC3 /* CAAUProcessor.cpp */,
8BCB1C682DCD7A1E00175DC3 /* CAAUProcessor.h */,
8BCB1C692DCD7A1E00175DC3 /* CAProcess.h */,
8BCB1C6A2DCD7A1E00175DC3 /* CACFDictionary.h */,
8BCB1C6B2DCD7A1E00175DC3 /* CAPThread.h */,
8BCB1C6C2DCD7A1E00175DC3 /* CAAUParameter.cpp */,
8BCB1C6D2DCD7A1E00175DC3 /* CAAudioTimeStamp.h */,
8BCB1C6E2DCD7A1E00175DC3 /* CAFilePathUtils.cpp */,
8BCB1C6F2DCD7A1E00175DC3 /* CAAudioValueRange.h */,
8BCB1C702DCD7A1E00175DC3 /* CAVectorUnitTypes.h */,
8BCB1C712DCD7A1E00175DC3 /* CAAudioChannelLayoutObject.cpp */,
8BCB1C722DCD7A1E00175DC3 /* CAGuard.cpp */,
8BCB1C732DCD7A1E00175DC3 /* CACFNumber.h */,
8BCB1C742DCD7A1E00175DC3 /* CACFDistributedNotification.cpp */,
8BCB1C752DCD7A1E00175DC3 /* CACFString.h */,
8BCB1C762DCD7A1E00175DC3 /* CAAUMIDIMapManager.cpp */,
8BCB1C772DCD7A1E00175DC3 /* CAComponentDescription.cpp */,
8BCB1C782DCD7A1E00175DC3 /* CAHostTimeBase.h */,
8BCB1C792DCD7A1E00175DC3 /* CADebugMacros.cpp */,
8BCB1C7A2DCD7A1E00175DC3 /* CAAudioFileFormats.h */,
8BCB1C7B2DCD7A1E00175DC3 /* CAAUMIDIMapManager.h */,
8BCB1C7C2DCD7A1E00175DC3 /* CACFDictionary.cpp */,
8BCB1C7D2DCD7A1E00175DC3 /* CAMutex.h */,
8BCB1C7E2DCD7A1E00175DC3 /* CACFString.cpp */,
8BCB1C7F2DCD7A1E00175DC3 /* CASettingsStorage.h */,
8BCB1C802DCD7A1E00175DC3 /* CADebugPrintf.h */,
8BCB1C812DCD7A1E00175DC3 /* CAXException.cpp */,
8BCB1C822DCD7A1E00175DC3 /* CAAUMIDIMap.h */,
8BCB1C832DCD7A1E00175DC3 /* AUParamInfo.h */,
8BCB1C842DCD7A1E00175DC3 /* CABitOperations.h */,
8BCB1C852DCD7A1E00175DC3 /* CACFPreferences.cpp */,
8BCB1C862DCD7A1E00175DC3 /* CABundleLocker.h */,
8BCB1C872DCD7A1E00175DC3 /* CAPropertyAddress.h */,
8BCB1C882DCD7A1E00175DC3 /* CAXException.h */,
8BCB1C892DCD7A1E00175DC3 /* CAAudioChannelLayout.cpp */,
8BCB1C8A2DCD7A1E00175DC3 /* CAThreadSafeList.h */,
8BCB1C8B2DCD7A1E00175DC3 /* CAAudioUnitOutputCapturer.h */,
8BCB1C8C2DCD7A1E00175DC3 /* AUParamInfo.cpp */,
8BCB1C8D2DCD7A1E00175DC3 /* CASharedLibrary.cpp */,
8BCB1C8E2DCD7A1E00175DC3 /* CAAUMIDIMap.cpp */,
8BCB1C8F2DCD7A1E00175DC3 /* CALogMacros.h */,
8BCB1C902DCD7A1E00175DC3 /* CACFMessagePort.cpp */,
8BCB1C912DCD7A1E00175DC3 /* CARingBuffer.h */,
8BCB1C922DCD7A1E00175DC3 /* AUOutputBL.cpp */,
8BCB1C932DCD7A1E00175DC3 /* CABufferList.h */,
8BCB1C942DCD7A1E00175DC3 /* CASharedLibrary.h */,
8BCB1C952DCD7A1E00175DC3 /* CACFData.h */,
8BCB1C962DCD7A1E00175DC3 /* CAStreamRangedDescription.cpp */,
8BCB1C972DCD7A1E00175DC3 /* CAPThread.cpp */,
8BCB1C982DCD7A1E00175DC3 /* CAAutoDisposer.h */,
8BCB1C992DCD7A1E00175DC3 /* CACFPreferences.h */,
8BCB1C9A2DCD7A1E00175DC3 /* CAVectorUnit.cpp */,
8BCB1C9B2DCD7A1E00175DC3 /* CAComponentDescription.h */,
8BCB1C9C2DCD7A1E00175DC3 /* CADebugMacros.h */,
8BCB1C9D2DCD7A1E00175DC3 /* AUOutputBL.h */,
8BCB1C9E2DCD7A1E00175DC3 /* CADebugPrintf.cpp */,
8BCB1C9F2DCD7A1E00175DC3 /* CARingBuffer.cpp */,
8BCB1CA02DCD7A1E00175DC3 /* CACFPlugIn.h */,
8BCB1CA12DCD7A1E00175DC3 /* CASettingsStorage.cpp */,
8BCB1CA22DCD7A1E00175DC3 /* CAMixMap.h */,
8BCB1CA32DCD7A1E00175DC3 /* CACFDistributedNotification.h */,
8BCB1CA42DCD7A1E00175DC3 /* CAFilePathUtils.h */,
8BCB1CA52DCD7A1E00175DC3 /* CATink.h */,
8BCB1CA62DCD7A1E00175DC3 /* CAStreamBasicDescription.cpp */,
8BCB1CA72DCD7A1E00175DC3 /* CAAudioChannelLayout.h */,
8BCB1CA82DCD7A1E00175DC3 /* CAProcess.cpp */,
8BCB1CA92DCD7A1E00175DC3 /* CAHostTimeBase.cpp */,
8BCB1CAA2DCD7A1E00175DC3 /* CAPersistence.cpp */,
8BCB1CAB2DCD7A1E00175DC3 /* CAAudioBufferList.cpp */,
8BCB1CAC2DCD7A1E00175DC3 /* CAAudioTimeStamp.cpp */,
8BCB1CAD2DCD7A1E00175DC3 /* CAVectorUnit.h */,
8BCB1CAE2DCD7A1E00175DC3 /* CAByteOrder.h */,
8BCB1CAF2DCD7A1E00175DC3 /* CACFArray.h */,
8BCB1CB02DCD7A1E00175DC3 /* CAAtomicStack.h */,
8BCB1CB12DCD7A1E00175DC3 /* CAReferenceCounted.h */,
8BCB1CB22DCD7A1E00175DC3 /* CACFMachPort.cpp */,
8BCB1CB32DCD7A1E00175DC3 /* CABufferList.cpp */,
8BCB1CB42DCD7A1E00175DC3 /* CAMutex.cpp */,
8BCB1CB52DCD7A1E00175DC3 /* CADebugger.cpp */,
8BCB1CB62DCD7A1E00175DC3 /* CABundleLocker.cpp */,
8BCB1CB72DCD7A1E00175DC3 /* CAAudioFileFormats.cpp */,
8BCB1CB82DCD7A1E00175DC3 /* CAMath.h */,
8BCB1CB92DCD7A1E00175DC3 /* CACFArray.cpp */,
8BCB1CBA2DCD7A1E00175DC3 /* CACFMessagePort.h */,
8BCB1CBB2DCD7A1E00175DC3 /* CAAudioValueRange.cpp */,
8BCB1CBC2DCD7A1E00175DC3 /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8BCB1CBD2DCD7A1E00175DC3 /* AudioUnits */ = {
isa = PBXGroup;
children = (
8BCB1CBE2DCD7A1E00175DC3 /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8BCB1CBE2DCD7A1E00175DC3 /* AUPublic */ = {
isa = PBXGroup;
children = (
8BCB1CBF2DCD7A1E00175DC3 /* AUViewBase */,
8BCB1CC12DCD7A1E00175DC3 /* AUBase */,
8BCB1CD12DCD7A1E00175DC3 /* OtherBases */,
8BCB1CD42DCD7A1E00175DC3 /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8BCB1CBF2DCD7A1E00175DC3 /* AUViewBase */ = {
isa = PBXGroup;
children = (
8BCB1CC02DCD7A1E00175DC3 /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8BCB1CC12DCD7A1E00175DC3 /* AUBase */ = {
isa = PBXGroup;
children = (
8BCB1CC22DCD7A1E00175DC3 /* ComponentBase.cpp */,
8BCB1CC32DCD7A1E00175DC3 /* AUScopeElement.cpp */,
8BCB1CC42DCD7A1E00175DC3 /* ComponentBase.h */,
8BCB1CC52DCD7A1E00175DC3 /* AUBase.cpp */,
8BCB1CC62DCD7A1E00175DC3 /* AUInputElement.h */,
8BCB1CC72DCD7A1E00175DC3 /* AUBase.h */,
8BCB1CC82DCD7A1E00175DC3 /* AUPlugInDispatch.h */,
8BCB1CC92DCD7A1E00175DC3 /* AUDispatch.h */,
8BCB1CCA2DCD7A1E00175DC3 /* AUOutputElement.cpp */,
8BCB1CCB2DCD7A1E00175DC3 /* AUResources.r */,
8BCB1CCC2DCD7A1E00175DC3 /* AUPlugInDispatch.cpp */,
8BCB1CCD2DCD7A1E00175DC3 /* AUOutputElement.h */,
8BCB1CCE2DCD7A1E00175DC3 /* AUDispatch.cpp */,
8BCB1CCF2DCD7A1E00175DC3 /* AUScopeElement.h */,
8BCB1CD02DCD7A1E00175DC3 /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8BCB1CD12DCD7A1E00175DC3 /* OtherBases */ = {
isa = PBXGroup;
children = (
8BCB1CD22DCD7A1E00175DC3 /* AUEffectBase.cpp */,
8BCB1CD32DCD7A1E00175DC3 /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8BCB1CD42DCD7A1E00175DC3 /* Utility */ = {
isa = PBXGroup;
children = (
8BCB1CD52DCD7A1E00175DC3 /* AUTimestampGenerator.h */,
8BCB1CD62DCD7A1E00175DC3 /* AUBaseHelper.cpp */,
8BCB1CD72DCD7A1E00175DC3 /* AUSilentTimeout.h */,
8BCB1CD82DCD7A1E00175DC3 /* AUInputFormatConverter.h */,
8BCB1CD92DCD7A1E00175DC3 /* AUTimestampGenerator.cpp */,
8BCB1CDA2DCD7A1E00175DC3 /* AUBuffer.cpp */,
8BCB1CDB2DCD7A1E00175DC3 /* AUMIDIDefs.h */,
8BCB1CDC2DCD7A1E00175DC3 /* AUBuffer.h */,
8BCB1CDD2DCD7A1E00175DC3 /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8BCB1D0E2DCD7A1E00175DC3 /* CABundleLocker.h in Headers */,
8BCB1D2F2DCD7A1E00175DC3 /* CAAudioChannelLayout.h in Headers */,
8BCB1D252DCD7A1E00175DC3 /* AUOutputBL.h in Headers */,
8BCB1D002DCD7A1E00175DC3 /* CAHostTimeBase.h in Headers */,
8BCB1D482DCD7A1E00175DC3 /* ComponentBase.h in Headers */,
8BCB1D382DCD7A1E00175DC3 /* CAAtomicStack.h in Headers */,
8BCB1CF52DCD7A1E00175DC3 /* CAAudioTimeStamp.h in Headers */,
8BCB1D122DCD7A1E00175DC3 /* CAThreadSafeList.h in Headers */,
8BCB1CED2DCD7A1E00175DC3 /* CAAUParameter.h in Headers */,
8BCB1D5F2DCD7A1E00175DC3 /* AUBaseHelper.h in Headers */,
8BCB1D572DCD7A1E00175DC3 /* AUTimestampGenerator.h in Headers */,
8BCB1D082DCD7A1E00175DC3 /* CADebugPrintf.h in Headers */,
8BCB1D422DCD7A1E00175DC3 /* CACFMessagePort.h in Headers */,
8BCB1CF02DCD7A1E00175DC3 /* CAAUProcessor.h in Headers */,
8BCB1CEC2DCD7A1E00175DC3 /* CAAudioUnit.h in Headers */,
8BCB1D452DCD7A1E00175DC3 /* AUViewLocalizedStringKeys.h in Headers */,
8BCB1D2B2DCD7A1E00175DC3 /* CACFDistributedNotification.h in Headers */,
8BCB1CEA2DCD7A1E00175DC3 /* CAComponent.h in Headers */,
8BCB1CF82DCD7A1E00175DC3 /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* ChimeyGuitarVersion.h in Headers */,
8BCB1D2C2DCD7A1E00175DC3 /* CAFilePathUtils.h in Headers */,
8BCB1CEE2DCD7A1E00175DC3 /* CAException.h in Headers */,
8BCB1CE52DCD7A1E00175DC3 /* CAAtomic.h in Headers */,
8BCB1CE42DCD7A1E00175DC3 /* CAGuard.h in Headers */,
8BCB1D4A2DCD7A1E00175DC3 /* AUInputElement.h in Headers */,
8BCB1D212DCD7A1E00175DC3 /* CACFPreferences.h in Headers */,
8BCB1D362DCD7A1E00175DC3 /* CAByteOrder.h in Headers */,
8BCB1D192DCD7A1E00175DC3 /* CARingBuffer.h in Headers */,
8BCB1CE02DCD7A1E00175DC3 /* CABool.h in Headers */,
8BCB1D052DCD7A1E00175DC3 /* CAMutex.h in Headers */,
8BCB1D4B2DCD7A1E00175DC3 /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* ChimeyGuitar.h in Headers */,
8BCB1CFD2DCD7A1E00175DC3 /* CACFString.h in Headers */,
8BCB1D1C2DCD7A1E00175DC3 /* CASharedLibrary.h in Headers */,
8BCB1CE92DCD7A1E00175DC3 /* CATokenMap.h in Headers */,
8BCB1CDE2DCD7A1E00175DC3 /* CAExtAudioFile.h in Headers */,
8BCB1CF32DCD7A1E00175DC3 /* CAPThread.h in Headers */,
8BCB1D0F2DCD7A1E00175DC3 /* CAPropertyAddress.h in Headers */,
8BCB1D392DCD7A1E00175DC3 /* CAReferenceCounted.h in Headers */,
8BCB1D5E2DCD7A1E00175DC3 /* AUBuffer.h in Headers */,
8BCB1D402DCD7A1E00175DC3 /* CAMath.h in Headers */,
8BCB1D202DCD7A1E00175DC3 /* CAAutoDisposer.h in Headers */,
8BCB1CE72DCD7A1E00175DC3 /* CACFObject.h in Headers */,
8BCB1D072DCD7A1E00175DC3 /* CASettingsStorage.h in Headers */,
8BCB1D102DCD7A1E00175DC3 /* CAXException.h in Headers */,
8BCB1D2D2DCD7A1E00175DC3 /* CATink.h in Headers */,
8BCB1D5A2DCD7A1E00175DC3 /* AUInputFormatConverter.h in Headers */,
8BCB1D352DCD7A1E00175DC3 /* CAVectorUnit.h in Headers */,
8BCB1CF12DCD7A1E00175DC3 /* CAProcess.h in Headers */,
8BCB1CF72DCD7A1E00175DC3 /* CAAudioValueRange.h in Headers */,
8BCB1D0C2DCD7A1E00175DC3 /* CABitOperations.h in Headers */,
8BCB1D022DCD7A1E00175DC3 /* CAAudioFileFormats.h in Headers */,
8BCB1CFB2DCD7A1E00175DC3 /* CACFNumber.h in Headers */,
8BCB1D132DCD7A1E00175DC3 /* CAAudioUnitOutputCapturer.h in Headers */,
8BCB1D242DCD7A1E00175DC3 /* CADebugMacros.h in Headers */,
8BCB1D5D2DCD7A1E00175DC3 /* AUMIDIDefs.h in Headers */,
8BCB1D1D2DCD7A1E00175DC3 /* CACFData.h in Headers */,
8BCB1CE62DCD7A1E00175DC3 /* CAStreamBasicDescription.h in Headers */,
8BCB1D4C2DCD7A1E00175DC3 /* AUPlugInDispatch.h in Headers */,
8BCB1CE82DCD7A1E00175DC3 /* CAStreamRangedDescription.h in Headers */,
8BCB1D282DCD7A1E00175DC3 /* CACFPlugIn.h in Headers */,
8BCB1CEB2DCD7A1E00175DC3 /* CAAudioBufferList.h in Headers */,
8BCB1D032DCD7A1E00175DC3 /* CAAUMIDIMapManager.h in Headers */,
8BCB1D562DCD7A1E00175DC3 /* AUEffectBase.h in Headers */,
8BCB1CF22DCD7A1E00175DC3 /* CACFDictionary.h in Headers */,
8BCB1D532DCD7A1E00175DC3 /* AUScopeElement.h in Headers */,
8BCB1D232DCD7A1E00175DC3 /* CAComponentDescription.h in Headers */,
8BCB1D592DCD7A1E00175DC3 /* AUSilentTimeout.h in Headers */,
8BCB1D1B2DCD7A1E00175DC3 /* CABufferList.h in Headers */,
8BCB1D4D2DCD7A1E00175DC3 /* AUDispatch.h in Headers */,
8BCB1D512DCD7A1E00175DC3 /* AUOutputElement.h in Headers */,
8BCB1D172DCD7A1E00175DC3 /* CALogMacros.h in Headers */,
8BCB1D0B2DCD7A1E00175DC3 /* AUParamInfo.h in Headers */,
8BCB1D2A2DCD7A1E00175DC3 /* CAMixMap.h in Headers */,
8BCB1D372DCD7A1E00175DC3 /* CACFArray.h in Headers */,
8BCB1CDF2DCD7A1E00175DC3 /* CACFMachPort.h in Headers */,
8BCB1D0A2DCD7A1E00175DC3 /* CAAUMIDIMap.h in Headers */,
8BCB1CE22DCD7A1E00175DC3 /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* ChimeyGuitar */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ChimeyGuitar" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = ChimeyGuitar;
productInstallPath = "$(HOME)/Library/Bundles";
productName = ChimeyGuitar;
productReference = 8D01CCD20486CAD60068D4B7 /* ChimeyGuitar.component */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1420;
};
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ChimeyGuitar" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
en,
Base,
ja,
de,
fr,
);
mainGroup = 089C166AFE841209C02AAC07 /* ChimeyGuitar */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* ChimeyGuitar */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D01CCC90486CAD60068D4B7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BCB1D1A2DCD7A1E00175DC3 /* AUOutputBL.cpp in Sources */,
8BCB1D3F2DCD7A1E00175DC3 /* CAAudioFileFormats.cpp in Sources */,
8BCB1D312DCD7A1E00175DC3 /* CAHostTimeBase.cpp in Sources */,
8BCB1D092DCD7A1E00175DC3 /* CAXException.cpp in Sources */,
8BCB1D332DCD7A1E00175DC3 /* CAAudioBufferList.cpp in Sources */,
8BCB1CF62DCD7A1E00175DC3 /* CAFilePathUtils.cpp in Sources */,
8BCB1CF42DCD7A1E00175DC3 /* CAAUParameter.cpp in Sources */,
8BCB1D162DCD7A1E00175DC3 /* CAAUMIDIMap.cpp in Sources */,
8BCB1D432DCD7A1E00175DC3 /* CAAudioValueRange.cpp in Sources */,
8BCB1D522DCD7A1E00175DC3 /* AUDispatch.cpp in Sources */,
8BCB1D0D2DCD7A1E00175DC3 /* CACFPreferences.cpp in Sources */,
8BCB1D502DCD7A1E00175DC3 /* AUPlugInDispatch.cpp in Sources */,
8BCB1CEF2DCD7A1E00175DC3 /* CAAUProcessor.cpp in Sources */,
8BCB1D042DCD7A1E00175DC3 /* CACFDictionary.cpp in Sources */,
8BCB1D582DCD7A1E00175DC3 /* AUBaseHelper.cpp in Sources */,
8BCB1D3D2DCD7A1E00175DC3 /* CADebugger.cpp in Sources */,
8BCB1D112DCD7A1E00175DC3 /* CAAudioChannelLayout.cpp in Sources */,
8BCB1D142DCD7A1E00175DC3 /* AUParamInfo.cpp in Sources */,
8BCB1D322DCD7A1E00175DC3 /* CAPersistence.cpp in Sources */,
8BCB1D262DCD7A1E00175DC3 /* CADebugPrintf.cpp in Sources */,
8BCB1D5B2DCD7A1E00175DC3 /* AUTimestampGenerator.cpp in Sources */,
8BCB1D2E2DCD7A1E00175DC3 /* CAStreamBasicDescription.cpp in Sources */,
8BCB1CFE2DCD7A1E00175DC3 /* CAAUMIDIMapManager.cpp in Sources */,
8BCB1D292DCD7A1E00175DC3 /* CASettingsStorage.cpp in Sources */,
8BCB1D4E2DCD7A1E00175DC3 /* AUOutputElement.cpp in Sources */,
8BCB1CFA2DCD7A1E00175DC3 /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* ChimeyGuitar.cpp in Sources */,
8BCB1D3C2DCD7A1E00175DC3 /* CAMutex.cpp in Sources */,
8BCB1D552DCD7A1E00175DC3 /* AUEffectBase.cpp in Sources */,
8BCB1D3A2DCD7A1E00175DC3 /* CACFMachPort.cpp in Sources */,
8BCB1D492DCD7A1E00175DC3 /* AUBase.cpp in Sources */,
8BCB1D152DCD7A1E00175DC3 /* CASharedLibrary.cpp in Sources */,
8BCB1CFC2DCD7A1E00175DC3 /* CACFDistributedNotification.cpp in Sources */,
8BCB1CFF2DCD7A1E00175DC3 /* CAComponentDescription.cpp in Sources */,
8BCB1D062DCD7A1E00175DC3 /* CACFString.cpp in Sources */,
8BCB1D462DCD7A1E00175DC3 /* ComponentBase.cpp in Sources */,
8BCB1D272DCD7A1E00175DC3 /* CARingBuffer.cpp in Sources */,
8BCB1D472DCD7A1E00175DC3 /* AUScopeElement.cpp in Sources */,
8BCB1D442DCD7A1E00175DC3 /* CAAudioUnit.cpp in Sources */,
8BCB1D412DCD7A1E00175DC3 /* CACFArray.cpp in Sources */,
8BCB1D3E2DCD7A1E00175DC3 /* CABundleLocker.cpp in Sources */,
8BCB1D302DCD7A1E00175DC3 /* CAProcess.cpp in Sources */,
8BCB1D1E2DCD7A1E00175DC3 /* CAStreamRangedDescription.cpp in Sources */,
8BCB1D1F2DCD7A1E00175DC3 /* CAPThread.cpp in Sources */,
8BCB1CE12DCD7A1E00175DC3 /* CAComponent.cpp in Sources */,
8BCB1CF92DCD7A1E00175DC3 /* CAAudioChannelLayoutObject.cpp in Sources */,
8BCB1D342DCD7A1E00175DC3 /* CAAudioTimeStamp.cpp in Sources */,
8BCB1D3B2DCD7A1E00175DC3 /* CABufferList.cpp in Sources */,
8BCB1D182DCD7A1E00175DC3 /* CACFMessagePort.cpp in Sources */,
8BCB1D222DCD7A1E00175DC3 /* CAVectorUnit.cpp in Sources */,
8BCB1D542DCD7A1E00175DC3 /* AUInputElement.cpp in Sources */,
8BCB1D5C2DCD7A1E00175DC3 /* AUBuffer.cpp in Sources */,
8BCB1D012DCD7A1E00175DC3 /* CADebugMacros.cpp in Sources */,
8BCB1CE32DCD7A1E00175DC3 /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8BCB1D602DCD7BA500175DC3 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
3E4BA244089833B7007656EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = ChimeyGuitar.exp;
GCC_OPTIMIZATION_LEVEL = 0;
GENERATE_PKGINFO_FILE = YES;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_LDFLAGS = "-bundle";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = ChimeyGuitar;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
STRIP_STYLE = debugging;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = ChimeyGuitar.exp;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GENERATE_PKGINFO_FILE = YES;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_LDFLAGS = "-bundle";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = ChimeyGuitar;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = debugging;
WRAPPER_EXTENSION = component;
};
name = Release;
};
3E4BA248089833B7007656EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/CA_SDK/**";
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Debug;
};
3E4BA249089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/CA_SDK/**";
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ChimeyGuitar" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ChimeyGuitar" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA248089833B7007656EC /* Debug */,
3E4BA249089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

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

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View file

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

View file

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

View file

@ -0,0 +1,58 @@
/*
* File: ChimeyGuitarVersion.h
*
* Version: 1.0
*
* Created: 5/8/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __ChimeyGuitarVersion_h__
#define __ChimeyGuitarVersion_h__
#ifdef DEBUG
#define kChimeyGuitarVersion 0xFFFFFFFF
#else
#define kChimeyGuitarVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define ChimeyGuitar_COMP_MANF 'Dthr'
#define ChimeyGuitar_COMP_SUBTYPE 'cgtr'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>${PRODUCT_NAME:identifier} AU</string>
<key>factoryFunction</key>
<string>${PRODUCT_NAME:identifier}Factory</string>
<key>manufacturer</key>
<string>Dthr</string>
<key>name</key>
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
<key>subtype</key>
<string>cgtr</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

Binary file not shown.

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>3</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>${EXECUTABLE_NAME}</string>
<key>SourceVersion</key>
<string>590000</string>
</dict>
</plist>

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>${PRODUCT_NAME:identifier} AU</string>
<key>factoryFunction</key>
<string>${PRODUCT_NAME:identifier}Factory</string>
<key>manufacturer</key>
<string>Dthr</string>
<key>name</key>
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
<key>subtype</key>
<string>kcsm</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

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

Binary file not shown.

View file

@ -0,0 +1,819 @@
/*
* File: kCosmos.cpp
*
* Version: 1.0
*
* Created: 4/29/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
kCosmos.cpp
=============================================================================*/
#include "kCosmos.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, kCosmos)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::kCosmos
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kCosmos::kCosmos(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
case kParam_F:
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamF;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// state that plugin supports only stereo-in/stereo-out processing
UInt32 kCosmos::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// kCosmos::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____kCosmosEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::kCosmosKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kCosmos::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
for(int count = 0; count < delayA+2; count++) {eAL[count] = 0.0; eAR[count] = 0.0; aAL[count] = 0.0; aAR[count] = 0.0;}
for(int count = 0; count < delayB+2; count++) {eBL[count] = 0.0; eBR[count] = 0.0; aBL[count] = 0.0; aBR[count] = 0.0;}
for(int count = 0; count < delayC+2; count++) {eCL[count] = 0.0; eCR[count] = 0.0; aCL[count] = 0.0; aCR[count] = 0.0;}
for(int count = 0; count < delayD+2; count++) {eDL[count] = 0.0; eDR[count] = 0.0; aDL[count] = 0.0; aDR[count] = 0.0;}
for(int count = 0; count < delayE+2; count++) {eEL[count] = 0.0; eER[count] = 0.0; aEL[count] = 0.0; aER[count] = 0.0;}
for(int count = 0; count < delayF+2; count++) {eFL[count] = 0.0; eFR[count] = 0.0; aFL[count] = 0.0; aFR[count] = 0.0;}
for(int count = 0; count < delayG+2; count++) {eGL[count] = 0.0; eGR[count] = 0.0; aGL[count] = 0.0; aGR[count] = 0.0;}
for(int count = 0; count < delayH+2; count++) {eHL[count] = 0.0; eHR[count] = 0.0; aHL[count] = 0.0; aHR[count] = 0.0;}
for(int count = 0; count < delayI+2; count++) {eIL[count] = 0.0; eIR[count] = 0.0; aIL[count] = 0.0; aIR[count] = 0.0;}
for(int count = 0; count < delayJ+2; count++) {eJL[count] = 0.0; eJR[count] = 0.0; aJL[count] = 0.0; aJR[count] = 0.0;}
for(int count = 0; count < delayK+2; count++) {eKL[count] = 0.0; eKR[count] = 0.0; aKL[count] = 0.0; aKR[count] = 0.0;}
for(int count = 0; count < delayL+2; count++) {eLL[count] = 0.0; eLR[count] = 0.0; aLL[count] = 0.0; aLR[count] = 0.0;}
for(int count = 0; count < delayM+2; count++) {eML[count] = 0.0; eMR[count] = 0.0; aML[count] = 0.0; aMR[count] = 0.0;}
for(int count = 0; count < delayN+2; count++) {eNL[count] = 0.0; eNR[count] = 0.0; aNL[count] = 0.0; aNR[count] = 0.0;}
for(int count = 0; count < delayO+2; count++) {eOL[count] = 0.0; eOR[count] = 0.0; aOL[count] = 0.0; aOR[count] = 0.0;}
for(int count = 0; count < delayP+2; count++) {ePL[count] = 0.0; ePR[count] = 0.0; aPL[count] = 0.0; aPR[count] = 0.0;}
for(int count = 0; count < delayQ+2; count++) {eQL[count] = 0.0; eQR[count] = 0.0; aQL[count] = 0.0; aQR[count] = 0.0;}
for(int count = 0; count < delayR+2; count++) {eRL[count] = 0.0; eRR[count] = 0.0; aRL[count] = 0.0; aRR[count] = 0.0;}
for(int count = 0; count < delayS+2; count++) {eSL[count] = 0.0; eSR[count] = 0.0; aSL[count] = 0.0; aSR[count] = 0.0;}
for(int count = 0; count < delayT+2; count++) {eTL[count] = 0.0; eTR[count] = 0.0; aTL[count] = 0.0; aTR[count] = 0.0;}
for(int count = 0; count < delayU+2; count++) {eUL[count] = 0.0; eUR[count] = 0.0; aUL[count] = 0.0; aUR[count] = 0.0;}
for(int count = 0; count < delayV+2; count++) {eVL[count] = 0.0; eVR[count] = 0.0; aVL[count] = 0.0; aVR[count] = 0.0;}
for(int count = 0; count < delayW+2; count++) {eWL[count] = 0.0; eWR[count] = 0.0; aWL[count] = 0.0; aWR[count] = 0.0;}
for(int count = 0; count < delayX+2; count++) {eXL[count] = 0.0; eXR[count] = 0.0; aXL[count] = 0.0; aXR[count] = 0.0;}
for(int count = 0; count < delayY+2; count++) {eYL[count] = 0.0; eYR[count] = 0.0; aYL[count] = 0.0; aYR[count] = 0.0;}
for(int count = 0; count < predelay+2; count++) {aZL[count] = 0.0; aZR[count] = 0.0;}
feedbackAL = 0.0;
feedbackBL = 0.0;
feedbackCL = 0.0;
feedbackDL = 0.0;
feedbackEL = 0.0;
feedbackER = 0.0;
feedbackJR = 0.0;
feedbackOR = 0.0;
feedbackTR = 0.0;
feedbackYR = 0.0;
countAL = 1;
countBL = 1;
countCL = 1;
countDL = 1;
countEL = 1;
countFL = 1;
countGL = 1;
countHL = 1;
countIL = 1;
countJL = 1;
countKL = 1;
countLL = 1;
countML = 1;
countNL = 1;
countOL = 1;
countPL = 1;
countQL = 1;
countRL = 1;
countSL = 1;
countTL = 1;
countUL = 1;
countVL = 1;
countWL = 1;
countXL = 1;
countYL = 1;
countAR = 1;
countBR = 1;
countCR = 1;
countDR = 1;
countER = 1;
countFR = 1;
countGR = 1;
countHR = 1;
countIR = 1;
countJR = 1;
countKR = 1;
countLR = 1;
countMR = 1;
countNR = 1;
countOR = 1;
countPR = 1;
countQR = 1;
countRR = 1;
countSR = 1;
countTR = 1;
countUR = 1;
countVR = 1;
countWR = 1;
countXR = 1;
countYR = 1;
countZ = 1;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 1.0;
for(int count = 0; count < 32767; count++) {firBufferL[count] = 0.0; firBufferR[count] = 0.0;}
firPosition = 0;
earlyReflectionL = 0.0; earlyReflectionR = 0.0;
prevAL = 0.0;
prevBL = 0.0;
prevCL = 0.0;
prevDL = 0.0;
prevEL = 0.0;
prevER = 0.0;
prevJR = 0.0;
prevOR = 0.0;
prevTR = 0.0;
prevYR = 0.0;
derezA = derezB = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kCosmos::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus kCosmos::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer,
AudioBufferList & outBuffer,
UInt32 inFramesToProcess)
{
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
UInt32 nSampleFrames = inFramesToProcess;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
double regenMax = (1.0-pow(1.0-GetParameter( kParam_A ),3.0))*0.000321;
//start this but pad it in the loop by volume of output?
double feedbackSum = 0.0;
bool applyCream = (GetParameter( kParam_B ) > 0.9999);
double remainder = (overallscale-1.0)*0.0375;
derezA = derezB; derezB = GetParameter( kParam_B )/overallscale;
if (applyCream) derezB = 1.0 / ((int)(1.0/derezB));
else derezB /= (2.0/pow(overallscale,0.5-remainder));
//this hard-locks derez to exact subdivisions of 1.0
if (derezB < 0.0005) derezB = 0.0005; if (derezB > 1.0) derezB = 1.0;
double freq = GetParameter( kParam_C )*M_PI_2; if (freq < 0.5) freq = 0.5;
bool applyAvg = (GetParameter( kParam_C ) < 1.0);
double earlyLoudness = GetParameter( kParam_D );
int adjPredelay = predelay*GetParameter( kParam_E )*derezB;
double wet = GetParameter( kParam_F );
double fir[74]; fir[36] = 1.0;
for(int fip = 0; fip < 36; fip++) {
fir[fip] = (fip-36)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
}
for(int fip = 37; fip < 72; fip++) {
fir[fip] = (fip-36)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
} //setting up the filter which will run inside DeRez
while (nSampleFrames-- > 0) {
double inputSampleL = *inputL;
double inputSampleR = *inputR;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
double temp = (double)nSampleFrames/inFramesToProcess;
double derez = (derezA*temp)+(derezB*(1.0-temp));
bez[bez_cycle] += derez;
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
if (applyCream) bez[bez_cycle] = 0.0;
else bez[bez_cycle] -= 1.0;
//predelay
aZL[countZ] = bez[bez_SampL];
aZR[countZ] = bez[bez_SampR];
countZ++; if (countZ < 0 || countZ > adjPredelay) countZ = 0;
bez[bez_SampL] = aZL[countZ-((countZ > adjPredelay)?adjPredelay+1:0)];
bez[bez_SampR] = aZR[countZ-((countZ > adjPredelay)?adjPredelay+1:0)];
//end predelay
eAL[countAL] = bez[bez_SampL];
eBL[countBL] = bez[bez_SampL];
eCL[countCL] = bez[bez_SampL];
eDL[countDL] = bez[bez_SampL];
eEL[countEL] = bez[bez_SampL];
eER[countER] = bez[bez_SampR];
eJR[countJR] = bez[bez_SampR];
eOR[countOR] = bez[bez_SampR];
eTR[countTR] = bez[bez_SampR];
eYR[countYR] = bez[bez_SampR];
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBufferL[firp] = earlyReflectionL; earlyReflectionL = 0.0;
firBufferR[firp] = earlyReflectionR; earlyReflectionR = 0.0;
if (firp + 72 < 32767) {
for(int fip = 1; fip < 72; fip++) {
earlyReflectionL += firBufferL[firp+fip] * fir[fip];
earlyReflectionR += firBufferR[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < 72; fip++) {
earlyReflectionL += firBufferL[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
earlyReflectionR += firBufferR[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
earlyReflectionL *= 0.25; earlyReflectionR *= 0.25;
earlyReflectionL *= sqrt(freq); earlyReflectionR *= sqrt(freq);
firPosition--;//here's the brickwall FIR filter, running in front of the Householder matrix
feedbackSum *= 0.00001;
feedbackSum += fabs(earlyReflectionL);
feedbackSum += fabs(earlyReflectionR);
feedbackSum *= 0.00003;
double regen = fmax(regenMax - feedbackSum, 0.0);
if (applyAvg) regen *= 0.5;
else {
prevAL = prevBL = prevCL = prevDL = prevEL = 0.0;
prevER = prevJR = prevOR = prevTR = prevYR = 0.0;
}
aAL[countAL] = earlyReflectionL + ((feedbackAL+prevAL) * regen);
aBL[countBL] = earlyReflectionL + ((feedbackBL+prevBL) * regen);
aCL[countCL] = earlyReflectionL + ((feedbackCL+prevCL) * regen);
aDL[countDL] = earlyReflectionL + ((feedbackDL+prevDL) * regen);
aEL[countEL] = earlyReflectionL + ((feedbackEL+prevEL) * regen);
aER[countER] = earlyReflectionR + ((feedbackER+prevER) * regen);
aJR[countJR] = earlyReflectionR + ((feedbackJR+prevJR) * regen);
aOR[countOR] = earlyReflectionR + ((feedbackOR+prevOR) * regen);
aTR[countTR] = earlyReflectionR + ((feedbackTR+prevTR) * regen);
aYR[countYR] = earlyReflectionR + ((feedbackYR+prevYR) * regen);
prevAL = feedbackAL;
prevBL = feedbackBL;
prevCL = feedbackCL;
prevDL = feedbackDL;
prevEL = feedbackEL;
prevER = feedbackER;
prevJR = feedbackJR;
prevOR = feedbackOR;
prevTR = feedbackTR;
prevYR = feedbackYR;
countAL++; if (countAL < 0 || countAL > delayA) countAL = 0;
countBL++; if (countBL < 0 || countBL > delayB) countBL = 0;
countCL++; if (countCL < 0 || countCL > delayC) countCL = 0;
countDL++; if (countDL < 0 || countDL > delayD) countDL = 0;
countEL++; if (countEL < 0 || countEL > delayE) countEL = 0;
countER++; if (countER < 0 || countER > delayE) countER = 0;
countJR++; if (countJR < 0 || countJR > delayJ) countJR = 0;
countOR++; if (countOR < 0 || countOR > delayO) countOR = 0;
countTR++; if (countTR < 0 || countTR > delayT) countTR = 0;
countYR++; if (countYR < 0 || countYR > delayY) countYR = 0;
double earlyAL = eAL[countAL-((countAL > delayA)?delayA+1:0)];
double earlyBL = eBL[countBL-((countBL > delayB)?delayB+1:0)];
double earlyCL = eCL[countCL-((countCL > delayC)?delayC+1:0)];
double earlyDL = eDL[countDL-((countDL > delayD)?delayD+1:0)];
double earlyEL = eEL[countEL-((countEL > delayE)?delayE+1:0)];
double earlyER = eER[countER-((countER > delayE)?delayE+1:0)];
double earlyJR = eJR[countJR-((countJR > delayJ)?delayJ+1:0)];
double earlyOR = eOR[countOR-((countOR > delayO)?delayO+1:0)];
double earlyTR = eTR[countTR-((countTR > delayT)?delayT+1:0)];
double earlyYR = eYR[countYR-((countYR > delayY)?delayY+1:0)];
double outAL = aAL[countAL-((countAL > delayA)?delayA+1:0)];
double outBL = aBL[countBL-((countBL > delayB)?delayB+1:0)];
double outCL = aCL[countCL-((countCL > delayC)?delayC+1:0)];
double outDL = aDL[countDL-((countDL > delayD)?delayD+1:0)];
double outEL = aEL[countEL-((countEL > delayE)?delayE+1:0)];
double outER = aER[countER-((countER > delayE)?delayE+1:0)];
double outJR = aJR[countJR-((countJR > delayJ)?delayJ+1:0)];
double outOR = aOR[countOR-((countOR > delayO)?delayO+1:0)];
double outTR = aTR[countTR-((countTR > delayT)?delayT+1:0)];
double outYR = aYR[countYR-((countYR > delayY)?delayY+1:0)];
//-------- one
eFL[countFL] = ((earlyAL*3.0) - ((earlyBL + earlyCL + earlyDL + earlyEL)*2.0));
eGL[countGL] = ((earlyBL*3.0) - ((earlyAL + earlyCL + earlyDL + earlyEL)*2.0));
eHL[countHL] = ((earlyCL*3.0) - ((earlyAL + earlyBL + earlyDL + earlyEL)*2.0));
eIL[countIL] = ((earlyDL*3.0) - ((earlyAL + earlyBL + earlyCL + earlyEL)*2.0));
eJL[countJL] = ((earlyEL*3.0) - ((earlyAL + earlyBL + earlyCL + earlyDL)*2.0));
eDR[countDR] = ((earlyER*3.0) - ((earlyJR + earlyOR + earlyTR + earlyYR)*2.0));
eIR[countIR] = ((earlyJR*3.0) - ((earlyER + earlyOR + earlyTR + earlyYR)*2.0));
eNR[countNR] = ((earlyOR*3.0) - ((earlyER + earlyJR + earlyTR + earlyYR)*2.0));
eSR[countSR] = ((earlyTR*3.0) - ((earlyER + earlyJR + earlyOR + earlyYR)*2.0));
eXR[countXR] = ((earlyYR*3.0) - ((earlyER + earlyJR + earlyOR + earlyTR)*2.0));
aFL[countFL] = ((outAL*3.0) - ((outBL + outCL + outDL + outEL)*2.0));
aGL[countGL] = ((outBL*3.0) - ((outAL + outCL + outDL + outEL)*2.0));
aHL[countHL] = ((outCL*3.0) - ((outAL + outBL + outDL + outEL)*2.0));
aIL[countIL] = ((outDL*3.0) - ((outAL + outBL + outCL + outEL)*2.0));
aJL[countJL] = ((outEL*3.0) - ((outAL + outBL + outCL + outDL)*2.0));
aDR[countDR] = ((outER*3.0) - ((outJR + outOR + outTR + outYR)*2.0));
aIR[countIR] = ((outJR*3.0) - ((outER + outOR + outTR + outYR)*2.0));
aNR[countNR] = ((outOR*3.0) - ((outER + outJR + outTR + outYR)*2.0));
aSR[countSR] = ((outTR*3.0) - ((outER + outJR + outOR + outYR)*2.0));
aXR[countXR] = ((outYR*3.0) - ((outER + outJR + outOR + outTR)*2.0));
countFL++; if (countFL < 0 || countFL > delayF) countFL = 0;
countGL++; if (countGL < 0 || countGL > delayG) countGL = 0;
countHL++; if (countHL < 0 || countHL > delayH) countHL = 0;
countIL++; if (countIL < 0 || countIL > delayI) countIL = 0;
countJL++; if (countJL < 0 || countJL > delayJ) countJL = 0;
countDR++; if (countDR < 0 || countDR > delayD) countDR = 0;
countIR++; if (countIR < 0 || countIR > delayI) countIR = 0;
countNR++; if (countNR < 0 || countNR > delayN) countNR = 0;
countSR++; if (countSR < 0 || countSR > delayS) countSR = 0;
countXR++; if (countXR < 0 || countXR > delayX) countXR = 0;
double earlyFL = eFL[countFL-((countFL > delayF)?delayF+1:0)];
double earlyGL = eGL[countGL-((countGL > delayG)?delayG+1:0)];
double earlyHL = eHL[countHL-((countHL > delayH)?delayH+1:0)];
double earlyIL = eIL[countIL-((countIL > delayI)?delayI+1:0)];
double earlyJL = eJL[countJL-((countJL > delayJ)?delayJ+1:0)];
double earlyDR = eDR[countDR-((countDR > delayD)?delayD+1:0)];
double earlyIR = eIR[countIR-((countIR > delayI)?delayI+1:0)];
double earlyNR = eNR[countNR-((countNR > delayN)?delayN+1:0)];
double earlySR = eSR[countSR-((countSR > delayS)?delayS+1:0)];
double earlyXR = eXR[countXR-((countXR > delayX)?delayX+1:0)];
double outFL = aFL[countFL-((countFL > delayF)?delayF+1:0)];
double outGL = aGL[countGL-((countGL > delayG)?delayG+1:0)];
double outHL = aHL[countHL-((countHL > delayH)?delayH+1:0)];
double outIL = aIL[countIL-((countIL > delayI)?delayI+1:0)];
double outJL = aJL[countJL-((countJL > delayJ)?delayJ+1:0)];
double outDR = aDR[countDR-((countDR > delayD)?delayD+1:0)];
double outIR = aIR[countIR-((countIR > delayI)?delayI+1:0)];
double outNR = aNR[countNR-((countNR > delayN)?delayN+1:0)];
double outSR = aSR[countSR-((countSR > delayS)?delayS+1:0)];
double outXR = aXR[countXR-((countXR > delayX)?delayX+1:0)];
//-------- two
eKL[countKL] = ((earlyFL*3.0) - ((earlyGL + earlyHL + earlyIL + earlyJL)*2.0));
eLL[countLL] = ((earlyGL*3.0) - ((earlyFL + earlyHL + earlyIL + earlyJL)*2.0));
eML[countML] = ((earlyHL*3.0) - ((earlyFL + earlyGL + earlyIL + earlyJL)*2.0));
eNL[countNL] = ((earlyIL*3.0) - ((earlyFL + earlyGL + earlyHL + earlyJL)*2.0));
eOL[countOL] = ((earlyJL*3.0) - ((earlyFL + earlyGL + earlyHL + earlyIL)*2.0));
eCR[countCR] = ((earlyDR*3.0) - ((earlyIR + earlyNR + earlySR + earlyXR)*2.0));
eHR[countHR] = ((earlyIR*3.0) - ((earlyDR + earlyNR + earlySR + earlyXR)*2.0));
eMR[countMR] = ((earlyNR*3.0) - ((earlyDR + earlyIR + earlySR + earlyXR)*2.0));
eRR[countRR] = ((earlySR*3.0) - ((earlyDR + earlyIR + earlyNR + earlyXR)*2.0));
eWR[countWR] = ((earlyXR*3.0) - ((earlyDR + earlyIR + earlyNR + earlySR)*2.0));
aKL[countKL] = ((outFL*3.0) - ((outGL + outHL + outIL + outJL)*2.0));
aLL[countLL] = ((outGL*3.0) - ((outFL + outHL + outIL + outJL)*2.0));
aML[countML] = ((outHL*3.0) - ((outFL + outGL + outIL + outJL)*2.0));
aNL[countNL] = ((outIL*3.0) - ((outFL + outGL + outHL + outJL)*2.0));
aOL[countOL] = ((outJL*3.0) - ((outFL + outGL + outHL + outIL)*2.0));
aCR[countCR] = ((outDR*3.0) - ((outIR + outNR + outSR + outXR)*2.0));
aHR[countHR] = ((outIR*3.0) - ((outDR + outNR + outSR + outXR)*2.0));
aMR[countMR] = ((outNR*3.0) - ((outDR + outIR + outSR + outXR)*2.0));
aRR[countRR] = ((outSR*3.0) - ((outDR + outIR + outNR + outXR)*2.0));
aWR[countWR] = ((outXR*3.0) - ((outDR + outIR + outNR + outSR)*2.0));
countKL++; if (countKL < 0 || countKL > delayK) countKL = 0;
countLL++; if (countLL < 0 || countLL > delayL) countLL = 0;
countML++; if (countML < 0 || countML > delayM) countML = 0;
countNL++; if (countNL < 0 || countNL > delayN) countNL = 0;
countOL++; if (countOL < 0 || countOL > delayO) countOL = 0;
countCR++; if (countCR < 0 || countCR > delayC) countCR = 0;
countHR++; if (countHR < 0 || countHR > delayH) countHR = 0;
countMR++; if (countMR < 0 || countMR > delayM) countMR = 0;
countRR++; if (countRR < 0 || countRR > delayR) countRR = 0;
countWR++; if (countWR < 0 || countWR > delayW) countWR = 0;
double earlyKL = eKL[countKL-((countKL > delayK)?delayK+1:0)];
double earlyLL = eLL[countLL-((countLL > delayL)?delayL+1:0)];
double earlyML = eML[countML-((countML > delayM)?delayM+1:0)];
double earlyNL = eNL[countNL-((countNL > delayN)?delayN+1:0)];
double earlyOL = eOL[countOL-((countOL > delayO)?delayO+1:0)];
double earlyCR = eCR[countCR-((countCR > delayC)?delayC+1:0)];
double earlyHR = eHR[countHR-((countHR > delayH)?delayH+1:0)];
double earlyMR = eMR[countMR-((countMR > delayM)?delayM+1:0)];
double earlyRR = eRR[countRR-((countRR > delayR)?delayR+1:0)];
double earlyWR = eWR[countWR-((countWR > delayW)?delayW+1:0)];
double outKL = aKL[countKL-((countKL > delayK)?delayK+1:0)];
double outLL = aLL[countLL-((countLL > delayL)?delayL+1:0)];
double outML = aML[countML-((countML > delayM)?delayM+1:0)];
double outNL = aNL[countNL-((countNL > delayN)?delayN+1:0)];
double outOL = aOL[countOL-((countOL > delayO)?delayO+1:0)];
double outCR = aCR[countCR-((countCR > delayC)?delayC+1:0)];
double outHR = aHR[countHR-((countHR > delayH)?delayH+1:0)];
double outMR = aMR[countMR-((countMR > delayM)?delayM+1:0)];
double outRR = aRR[countRR-((countRR > delayR)?delayR+1:0)];
double outWR = aWR[countWR-((countWR > delayW)?delayW+1:0)];
//-------- three
ePL[countPL] = ((earlyKL*3.0) - ((earlyLL + earlyML + earlyNL + earlyOL)*2.0));
eQL[countQL] = ((earlyLL*3.0) - ((earlyKL + earlyML + earlyNL + earlyOL)*2.0));
eRL[countRL] = ((earlyML*3.0) - ((earlyKL + earlyLL + earlyNL + earlyOL)*2.0));
eSL[countSL] = ((earlyNL*3.0) - ((earlyKL + earlyLL + earlyML + earlyOL)*2.0));
eTL[countTL] = ((earlyOL*3.0) - ((earlyKL + earlyLL + earlyML + earlyNL)*2.0));
eBR[countBR] = ((earlyCR*3.0) - ((earlyHR + earlyMR + earlyRR + earlyWR)*2.0));
eGR[countGR] = ((earlyHR*3.0) - ((earlyCR + earlyMR + earlyRR + earlyWR)*2.0));
eLR[countLR] = ((earlyMR*3.0) - ((earlyCR + earlyHR + earlyRR + earlyWR)*2.0));
eQR[countQR] = ((earlyRR*3.0) - ((earlyCR + earlyHR + earlyMR + earlyWR)*2.0));
eVR[countVR] = ((earlyWR*3.0) - ((earlyCR + earlyHR + earlyMR + earlyRR)*2.0));
aPL[countPL] = ((outKL*3.0) - ((outLL + outML + outNL + outOL)*2.0));
aQL[countQL] = ((outLL*3.0) - ((outKL + outML + outNL + outOL)*2.0));
aRL[countRL] = ((outML*3.0) - ((outKL + outLL + outNL + outOL)*2.0));
aSL[countSL] = ((outNL*3.0) - ((outKL + outLL + outML + outOL)*2.0));
aTL[countTL] = ((outOL*3.0) - ((outKL + outLL + outML + outNL)*2.0));
aBR[countBR] = ((outCR*3.0) - ((outHR + outMR + outRR + outWR)*2.0));
aGR[countGR] = ((outHR*3.0) - ((outCR + outMR + outRR + outWR)*2.0));
aLR[countLR] = ((outMR*3.0) - ((outCR + outHR + outRR + outWR)*2.0));
aQR[countQR] = ((outRR*3.0) - ((outCR + outHR + outMR + outWR)*2.0));
aVR[countVR] = ((outWR*3.0) - ((outCR + outHR + outMR + outRR)*2.0));
countPL++; if (countPL < 0 || countPL > delayP) countPL = 0;
countQL++; if (countQL < 0 || countQL > delayQ) countQL = 0;
countRL++; if (countRL < 0 || countRL > delayR) countRL = 0;
countSL++; if (countSL < 0 || countSL > delayS) countSL = 0;
countTL++; if (countTL < 0 || countTL > delayT) countTL = 0;
countBR++; if (countBR < 0 || countBR > delayB) countBR = 0;
countGR++; if (countGR < 0 || countGR > delayG) countGR = 0;
countLR++; if (countLR < 0 || countLR > delayL) countLR = 0;
countQR++; if (countQR < 0 || countQR > delayQ) countQR = 0;
countVR++; if (countVR < 0 || countVR > delayV) countVR = 0;
double earlyPL = ePL[countPL-((countPL > delayP)?delayP+1:0)];
double earlyQL = eQL[countQL-((countQL > delayQ)?delayQ+1:0)];
double earlyRL = eRL[countRL-((countRL > delayR)?delayR+1:0)];
double earlySL = eSL[countSL-((countSL > delayS)?delayS+1:0)];
double earlyTL = eTL[countTL-((countTL > delayT)?delayT+1:0)];
double earlyBR = eBR[countBR-((countBR > delayB)?delayB+1:0)];
double earlyGR = eGR[countGR-((countGR > delayG)?delayG+1:0)];
double earlyLR = eLR[countLR-((countLR > delayL)?delayL+1:0)];
double earlyQR = eQR[countQR-((countQR > delayQ)?delayQ+1:0)];
double earlyVR = eVR[countVR-((countVR > delayV)?delayV+1:0)];
double outPL = aPL[countPL-((countPL > delayP)?delayP+1:0)];
double outQL = aQL[countQL-((countQL > delayQ)?delayQ+1:0)];
double outRL = aRL[countRL-((countRL > delayR)?delayR+1:0)];
double outSL = aSL[countSL-((countSL > delayS)?delayS+1:0)];
double outTL = aTL[countTL-((countTL > delayT)?delayT+1:0)];
double outBR = aBR[countBR-((countBR > delayB)?delayB+1:0)];
double outGR = aGR[countGR-((countGR > delayG)?delayG+1:0)];
double outLR = aLR[countLR-((countLR > delayL)?delayL+1:0)];
double outQR = aQR[countQR-((countQR > delayQ)?delayQ+1:0)];
double outVR = aVR[countVR-((countVR > delayV)?delayV+1:0)];
//-------- four
eUL[countUL] = ((earlyPL*3.0) - ((earlyQL + earlyRL + earlySL + earlyTL)*2.0));
eVL[countVL] = ((earlyQL*3.0) - ((earlyPL + earlyRL + earlySL + earlyTL)*2.0));
eWL[countWL] = ((earlyRL*3.0) - ((earlyPL + earlyQL + earlySL + earlyTL)*2.0));
eXL[countXL] = ((earlySL*3.0) - ((earlyPL + earlyQL + earlyRL + earlyTL)*2.0));
eYL[countYL] = ((earlyTL*3.0) - ((earlyPL + earlyQL + earlyRL + earlySL)*2.0));
eAR[countAR] = ((earlyBR*3.0) - ((earlyGR + earlyLR + earlyQR + earlyVR)*2.0));
eFR[countFR] = ((earlyGR*3.0) - ((earlyBR + earlyLR + earlyQR + earlyVR)*2.0));
eKR[countKR] = ((earlyLR*3.0) - ((earlyBR + earlyGR + earlyQR + earlyVR)*2.0));
ePR[countPR] = ((earlyQR*3.0) - ((earlyBR + earlyGR + earlyLR + earlyVR)*2.0));
eUR[countUR] = ((earlyVR*3.0) - ((earlyBR + earlyGR + earlyLR + earlyQR)*2.0));
aUL[countUL] = ((outPL*3.0) - ((outQL + outRL + outSL + outTL)*2.0));
aVL[countVL] = ((outQL*3.0) - ((outPL + outRL + outSL + outTL)*2.0));
aWL[countWL] = ((outRL*3.0) - ((outPL + outQL + outSL + outTL)*2.0));
aXL[countXL] = ((outSL*3.0) - ((outPL + outQL + outRL + outTL)*2.0));
aYL[countYL] = ((outTL*3.0) - ((outPL + outQL + outRL + outSL)*2.0));
aAR[countAR] = ((outBR*3.0) - ((outGR + outLR + outQR + outVR)*2.0));
aFR[countFR] = ((outGR*3.0) - ((outBR + outLR + outQR + outVR)*2.0));
aKR[countKR] = ((outLR*3.0) - ((outBR + outGR + outQR + outVR)*2.0));
aPR[countPR] = ((outQR*3.0) - ((outBR + outGR + outLR + outVR)*2.0));
aUR[countUR] = ((outVR*3.0) - ((outBR + outGR + outLR + outQR)*2.0));
countUL++; if (countUL < 0 || countUL > delayU) countUL = 0;
countVL++; if (countVL < 0 || countVL > delayV) countVL = 0;
countWL++; if (countWL < 0 || countWL > delayW) countWL = 0;
countXL++; if (countXL < 0 || countXL > delayX) countXL = 0;
countYL++; if (countYL < 0 || countYL > delayY) countYL = 0;
countAR++; if (countAR < 0 || countAR > delayA) countAR = 0;
countFR++; if (countFR < 0 || countFR > delayF) countFR = 0;
countKR++; if (countKR < 0 || countKR > delayK) countKR = 0;
countPR++; if (countPR < 0 || countPR > delayP) countPR = 0;
countUR++; if (countUR < 0 || countUR > delayU) countUR = 0;
double earlyUL = eUL[countUL-((countUL > delayU)?delayU+1:0)];
double earlyVL = eVL[countVL-((countVL > delayV)?delayV+1:0)];
double earlyWL = eWL[countWL-((countWL > delayW)?delayW+1:0)];
double earlyXL = eXL[countXL-((countXL > delayX)?delayX+1:0)];
double earlyYL = eYL[countYL-((countYL > delayY)?delayY+1:0)];
double earlyAR = eAR[countAR-((countAR > delayA)?delayA+1:0)];
double earlyFR = eFR[countFR-((countFR > delayF)?delayF+1:0)];
double earlyKR = eKR[countKR-((countKR > delayK)?delayK+1:0)];
double earlyPR = ePR[countPR-((countPR > delayP)?delayP+1:0)];
double earlyUR = eUR[countUR-((countUR > delayU)?delayU+1:0)];
double outUL = aUL[countUL-((countUL > delayU)?delayU+1:0)];
double outVL = aVL[countVL-((countVL > delayV)?delayV+1:0)];
double outWL = aWL[countWL-((countWL > delayW)?delayW+1:0)];
double outXL = aXL[countXL-((countXL > delayX)?delayX+1:0)];
double outYL = aYL[countYL-((countYL > delayY)?delayY+1:0)];
double outAR = aAR[countAR-((countAR > delayA)?delayA+1:0)];
double outFR = aFR[countFR-((countFR > delayF)?delayF+1:0)];
double outKR = aKR[countKR-((countKR > delayK)?delayK+1:0)];
double outPR = aPR[countPR-((countPR > delayP)?delayP+1:0)];
double outUR = aUR[countUR-((countUR > delayU)?delayU+1:0)];
//-------- five
earlyReflectionL = (earlyUL + earlyVL + earlyWL + earlyXL + earlyYL)*0.0008;
earlyReflectionR = (earlyAR + earlyFR + earlyKR + earlyPR + earlyUR)*0.0008;
//and take the final combined sum of outputs, corrected for Householder gain
feedbackAL = ((outAR*3.0) - ((outFR + outKR + outPR + outUR)*2.0)); feedbackSum = fabs(feedbackAL);
feedbackER = ((outUL*3.0) - ((outVL + outWL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackER);
feedbackBL = ((outVL*3.0) - ((outUL + outWL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackBL);
feedbackJR = ((outFR*3.0) - ((outAR + outKR + outPR + outUR)*2.0)); feedbackSum += fabs(feedbackJR);
feedbackCL = ((outWL*3.0) - ((outUL + outVL + outXL + outYL)*2.0)); feedbackSum += fabs(feedbackCL);
feedbackOR = ((outKR*3.0) - ((outAR + outFR + outPR + outUR)*2.0)); feedbackSum += fabs(feedbackOR);
feedbackDL = ((outXL*3.0) - ((outUL + outVL + outWL + outYL)*2.0)); feedbackSum += fabs(feedbackDL);
feedbackTR = ((outPR*3.0) - ((outAR + outFR + outKR + outUR)*2.0)); feedbackSum += fabs(feedbackTR);
feedbackEL = ((outYL*3.0) - ((outUL + outVL + outWL + outXL)*2.0)); feedbackSum += fabs(feedbackEL);
feedbackYR = ((outUR*3.0) - ((outAR + outFR + outKR + outPR)*2.0)); feedbackSum += fabs(feedbackYR);
inputSampleL = (outUL + outVL + outWL + outXL + outYL)*0.0008;
inputSampleR = (outAR + outFR + outKR + outPR + outUR)*0.0008;
//and take the final combined sum of outputs, corrected for Householder gain
inputSampleL += (earlyReflectionL * earlyLoudness);
inputSampleR += (earlyReflectionR * earlyLoudness);
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = inputSampleL;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = inputSampleR;
bez[bez_SampR] = 0.0;
}
double CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*0.125;
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*0.125;
inputSampleL = CBAL;
inputSampleR = CBAR;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*outputL = inputSampleL;
*outputR = inputSampleR;
//direct stereo out
inputL += 1;
inputR += 1;
outputL += 1;
outputR += 1;
}
return noErr;
}

View file

@ -0,0 +1,2 @@
_kCosmosEntry
_kCosmosFactory

View file

@ -0,0 +1,352 @@
/*
* File: kCosmos.h
*
* Version: 1.0
*
* Created: 4/29/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "kCosmosVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __kCosmos_h__
#define __kCosmos_h__
#pragma mark ____kCosmos Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 1.0;
static const float kDefaultValue_ParamC = 0.5;
static const float kDefaultValue_ParamD = 0.5;
static const float kDefaultValue_ParamE = 0.0;
static const float kDefaultValue_ParamF = 0.5;
static CFStringRef kParameterAName = CFSTR("Regen");
static CFStringRef kParameterBName = CFSTR("Derez");
static CFStringRef kParameterCName = CFSTR("Filter");
static CFStringRef kParameterDName = CFSTR("EarlyRf");
static CFStringRef kParameterEName = CFSTR("Predlay");
static CFStringRef kParameterFName = CFSTR("Dry/Wet");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
//Add your parameters here...
kNumberOfParameters=6
};
const int predelay = 15000;
const int delayA = 857; const int delayB = 1433; const int delayC = 1597; const int delayD = 1789; const int delayE = 1987; const int delayF = 373; const int delayG = 883; const int delayH = 1471; const int delayI = 1601; const int delayJ = 1973; const int delayK = 191; const int delayL = 397; const int delayM = 941; const int delayN = 1483; const int delayO = 1663; const int delayP = 149; const int delayQ = 227; const int delayR = 593; const int delayS = 1061; const int delayT = 1549; const int delayU = 137; const int delayV = 167; const int delayW = 313; const int delayX = 641; const int delayY = 1153; //38 to 188 ms, 1538 seat hall
//1538-OGBP 2025-05-05 - kCosmos
#pragma mark ____kCosmos
class kCosmos : public AUEffectBase
{
public:
kCosmos(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~kCosmos () { delete mDebugDispatcher; }
#endif
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
UInt32 inFramesToProcess);
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings);
virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo);
virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable );
virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData);
virtual ComponentResult Initialize();
virtual bool SupportsTail () { return true; }
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
/*! @method Version */
virtual ComponentResult Version() { return kkCosmosVersion; }
private:
double eAL[delayA+5];
double eBL[delayB+5];
double eCL[delayC+5];
double eDL[delayD+5];
double eEL[delayE+5];
double eFL[delayF+5];
double eGL[delayG+5];
double eHL[delayH+5];
double eIL[delayI+5];
double eJL[delayJ+5];
double eKL[delayK+5];
double eLL[delayL+5];
double eML[delayM+5];
double eNL[delayN+5];
double eOL[delayO+5];
double ePL[delayP+5];
double eQL[delayQ+5];
double eRL[delayR+5];
double eSL[delayS+5];
double eTL[delayT+5];
double eUL[delayU+5];
double eVL[delayV+5];
double eWL[delayW+5];
double eXL[delayX+5];
double eYL[delayY+5];
double eAR[delayA+5];
double eBR[delayB+5];
double eCR[delayC+5];
double eDR[delayD+5];
double eER[delayE+5];
double eFR[delayF+5];
double eGR[delayG+5];
double eHR[delayH+5];
double eIR[delayI+5];
double eJR[delayJ+5];
double eKR[delayK+5];
double eLR[delayL+5];
double eMR[delayM+5];
double eNR[delayN+5];
double eOR[delayO+5];
double ePR[delayP+5];
double eQR[delayQ+5];
double eRR[delayR+5];
double eSR[delayS+5];
double eTR[delayT+5];
double eUR[delayU+5];
double eVR[delayV+5];
double eWR[delayW+5];
double eXR[delayX+5];
double eYR[delayY+5];
double aAL[delayA+5];
double aBL[delayB+5];
double aCL[delayC+5];
double aDL[delayD+5];
double aEL[delayE+5];
double aFL[delayF+5];
double aGL[delayG+5];
double aHL[delayH+5];
double aIL[delayI+5];
double aJL[delayJ+5];
double aKL[delayK+5];
double aLL[delayL+5];
double aML[delayM+5];
double aNL[delayN+5];
double aOL[delayO+5];
double aPL[delayP+5];
double aQL[delayQ+5];
double aRL[delayR+5];
double aSL[delayS+5];
double aTL[delayT+5];
double aUL[delayU+5];
double aVL[delayV+5];
double aWL[delayW+5];
double aXL[delayX+5];
double aYL[delayY+5];
double aAR[delayA+5];
double aBR[delayB+5];
double aCR[delayC+5];
double aDR[delayD+5];
double aER[delayE+5];
double aFR[delayF+5];
double aGR[delayG+5];
double aHR[delayH+5];
double aIR[delayI+5];
double aJR[delayJ+5];
double aKR[delayK+5];
double aLR[delayL+5];
double aMR[delayM+5];
double aNR[delayN+5];
double aOR[delayO+5];
double aPR[delayP+5];
double aQR[delayQ+5];
double aRR[delayR+5];
double aSR[delayS+5];
double aTR[delayT+5];
double aUR[delayU+5];
double aVR[delayV+5];
double aWR[delayW+5];
double aXR[delayX+5];
double aYR[delayY+5];
double aZL[predelay+5];
double aZR[predelay+5];
double feedbackAL;
double feedbackBL;
double feedbackCL;
double feedbackDL;
double feedbackEL;
double feedbackER;
double feedbackJR;
double feedbackOR;
double feedbackTR;
double feedbackYR;
int countAL;
int countBL;
int countCL;
int countDL;
int countEL;
int countFL;
int countGL;
int countHL;
int countIL;
int countJL;
int countKL;
int countLL;
int countML;
int countNL;
int countOL;
int countPL;
int countQL;
int countRL;
int countSL;
int countTL;
int countUL;
int countVL;
int countWL;
int countXL;
int countYL;
int countAR;
int countBR;
int countCR;
int countDR;
int countER;
int countFR;
int countGR;
int countHR;
int countIR;
int countJR;
int countKR;
int countLR;
int countMR;
int countNR;
int countOR;
int countPR;
int countQR;
int countRR;
int countSR;
int countTR;
int countUR;
int countVR;
int countWR;
int countXR;
int countYR;
int countZ;
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_InL,
bez_InR,
bez_UnInL,
bez_UnInR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
double firBufferL[32768];
double firBufferR[32768];
int firPosition;
double earlyReflectionL;
double earlyReflectionR;
double prevAL;
double prevBL;
double prevCL;
double prevDL;
double prevEL;
double prevER;
double prevJR;
double prevOR;
double prevTR;
double prevYR;
double derezA, derezB;
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: kCosmos.r
*
* Version: 1.0
*
* Created: 4/29/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "kCosmosVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_kCosmos 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kCosmos~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_kCosmos
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE kCosmos_COMP_SUBTYPE
#define COMP_MANUF kCosmos_COMP_MANF
#define VERSION kkCosmosVersion
#define NAME "Airwindows: kCosmos"
#define DESCRIPTION "kCosmos AU"
#define ENTRY_POINT "kCosmosEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,147 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* kCosmos */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
188,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 768305223;
PBXWorkspaceStateSaveDate = 768305223;
};
perUserProjectItems = {
8BFB7A8A2DCB669400DC8AB2 /* PBXTextBookmark */ = 8BFB7A8A2DCB669400DC8AB2 /* PBXTextBookmark */;
8BFB7ABC2DCB686E00DC8AB2 /* PBXTextBookmark */ = 8BFB7ABC2DCB686E00DC8AB2 /* PBXTextBookmark */;
8BFB7ABD2DCB686E00DC8AB2 /* PBXBookmark */ = 8BFB7ABD2DCB686E00DC8AB2 /* PBXBookmark */;
8BFB7ABE2DCB686E00DC8AB2 /* PBXTextBookmark */ = 8BFB7ABE2DCB686E00DC8AB2 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* kCosmos.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1020, 14238}}";
sepNavSelRange = "{16713, 22017}";
sepNavVisRange = "{37936, 120}";
sepNavWindowFrame = "{{591, 69}, {1104, 809}}";
};
};
8BA05A690720730100365D66 /* kCosmosVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {975, 1296}}";
sepNavSelRange = "{2893, 0}";
sepNavVisRange = "{2769, 178}";
sepNavWindowFrame = "{{15, 98}, {1128, 775}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* kCosmos.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 5454}}";
sepNavSelRange = "{2766, 0}";
sepNavVisRange = "{2435, 1029}";
sepNavWindowFrame = "{{602, 43}, {838, 776}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BFB7A8A2DCB669400DC8AB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* kCosmos.h */;
name = "kCosmos.h: 343";
rLen = 0;
rLoc = 9908;
rType = 0;
vrLen = 92;
vrLoc = 9856;
};
8BFB7ABC2DCB686E00DC8AB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* kCosmosVersion.h */;
name = "kCosmosVersion.h: 54";
rLen = 0;
rLoc = 2893;
rType = 0;
vrLen = 178;
vrLoc = 2769;
};
8BFB7ABD2DCB686E00DC8AB2 /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BA05A660720730100365D66 /* kCosmos.cpp */;
};
8BFB7ABE2DCB686E00DC8AB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* kCosmos.cpp */;
name = "kCosmos.cpp: 385";
rLen = 22017;
rLoc = 16713;
rType = 0;
vrLen = 120;
vrLoc = 37936;
};
8D01CCC60486CAD60068D4B7 /* kCosmos */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,965 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
8B7E827A2DCB9207003C2C8C /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81F22DCB9207003C2C8C /* CAExtAudioFile.h */; };
8B7E827B2DCB9207003C2C8C /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81F32DCB9207003C2C8C /* CACFMachPort.h */; };
8B7E827C2DCB9207003C2C8C /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81F42DCB9207003C2C8C /* CABool.h */; };
8B7E827D2DCB9207003C2C8C /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E81F52DCB9207003C2C8C /* CAComponent.cpp */; };
8B7E827E2DCB9207003C2C8C /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81F62DCB9207003C2C8C /* CADebugger.h */; };
8B7E827F2DCB9207003C2C8C /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E81F72DCB9207003C2C8C /* CACFNumber.cpp */; };
8B7E82802DCB9207003C2C8C /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81F82DCB9207003C2C8C /* CAGuard.h */; };
8B7E82812DCB9207003C2C8C /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81F92DCB9207003C2C8C /* CAAtomic.h */; };
8B7E82822DCB9207003C2C8C /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81FA2DCB9207003C2C8C /* CAStreamBasicDescription.h */; };
8B7E82832DCB9207003C2C8C /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81FB2DCB9207003C2C8C /* CACFObject.h */; };
8B7E82842DCB9207003C2C8C /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81FC2DCB9207003C2C8C /* CAStreamRangedDescription.h */; };
8B7E82852DCB9207003C2C8C /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81FD2DCB9207003C2C8C /* CATokenMap.h */; };
8B7E82862DCB9207003C2C8C /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81FE2DCB9207003C2C8C /* CAComponent.h */; };
8B7E82872DCB9207003C2C8C /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E81FF2DCB9207003C2C8C /* CAAudioBufferList.h */; };
8B7E82882DCB9207003C2C8C /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82002DCB9207003C2C8C /* CAAudioUnit.h */; };
8B7E82892DCB9207003C2C8C /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82012DCB9207003C2C8C /* CAAUParameter.h */; };
8B7E828A2DCB9207003C2C8C /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82022DCB9207003C2C8C /* CAException.h */; };
8B7E828B2DCB9207003C2C8C /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82032DCB9207003C2C8C /* CAAUProcessor.cpp */; };
8B7E828C2DCB9207003C2C8C /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82042DCB9207003C2C8C /* CAAUProcessor.h */; };
8B7E828D2DCB9207003C2C8C /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82052DCB9207003C2C8C /* CAProcess.h */; };
8B7E828E2DCB9207003C2C8C /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82062DCB9207003C2C8C /* CACFDictionary.h */; };
8B7E828F2DCB9207003C2C8C /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82072DCB9207003C2C8C /* CAPThread.h */; };
8B7E82902DCB9207003C2C8C /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82082DCB9207003C2C8C /* CAAUParameter.cpp */; };
8B7E82912DCB9207003C2C8C /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82092DCB9207003C2C8C /* CAAudioTimeStamp.h */; };
8B7E82922DCB9207003C2C8C /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E820A2DCB9207003C2C8C /* CAFilePathUtils.cpp */; };
8B7E82932DCB9207003C2C8C /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E820B2DCB9207003C2C8C /* CAAudioValueRange.h */; };
8B7E82942DCB9207003C2C8C /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E820C2DCB9207003C2C8C /* CAVectorUnitTypes.h */; };
8B7E82952DCB9207003C2C8C /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E820D2DCB9207003C2C8C /* CAAudioChannelLayoutObject.cpp */; };
8B7E82962DCB9207003C2C8C /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E820E2DCB9207003C2C8C /* CAGuard.cpp */; };
8B7E82972DCB9207003C2C8C /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E820F2DCB9207003C2C8C /* CACFNumber.h */; };
8B7E82982DCB9207003C2C8C /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82102DCB9207003C2C8C /* CACFDistributedNotification.cpp */; };
8B7E82992DCB9207003C2C8C /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82112DCB9207003C2C8C /* CACFString.h */; };
8B7E829A2DCB9207003C2C8C /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82122DCB9207003C2C8C /* CAAUMIDIMapManager.cpp */; };
8B7E829B2DCB9207003C2C8C /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82132DCB9207003C2C8C /* CAComponentDescription.cpp */; };
8B7E829C2DCB9207003C2C8C /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82142DCB9207003C2C8C /* CAHostTimeBase.h */; };
8B7E829D2DCB9207003C2C8C /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82152DCB9207003C2C8C /* CADebugMacros.cpp */; };
8B7E829E2DCB9207003C2C8C /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82162DCB9207003C2C8C /* CAAudioFileFormats.h */; };
8B7E829F2DCB9207003C2C8C /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82172DCB9207003C2C8C /* CAAUMIDIMapManager.h */; };
8B7E82A02DCB9207003C2C8C /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82182DCB9207003C2C8C /* CACFDictionary.cpp */; };
8B7E82A12DCB9207003C2C8C /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82192DCB9207003C2C8C /* CAMutex.h */; };
8B7E82A22DCB9207003C2C8C /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E821A2DCB9207003C2C8C /* CACFString.cpp */; };
8B7E82A32DCB9207003C2C8C /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E821B2DCB9207003C2C8C /* CASettingsStorage.h */; };
8B7E82A42DCB9207003C2C8C /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E821C2DCB9207003C2C8C /* CADebugPrintf.h */; };
8B7E82A52DCB9207003C2C8C /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E821D2DCB9207003C2C8C /* CAXException.cpp */; };
8B7E82A62DCB9207003C2C8C /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E821E2DCB9207003C2C8C /* CAAUMIDIMap.h */; };
8B7E82A72DCB9207003C2C8C /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E821F2DCB9207003C2C8C /* AUParamInfo.h */; };
8B7E82A82DCB9207003C2C8C /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82202DCB9207003C2C8C /* CABitOperations.h */; };
8B7E82A92DCB9207003C2C8C /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82212DCB9207003C2C8C /* CACFPreferences.cpp */; };
8B7E82AA2DCB9207003C2C8C /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82222DCB9207003C2C8C /* CABundleLocker.h */; };
8B7E82AB2DCB9207003C2C8C /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82232DCB9207003C2C8C /* CAPropertyAddress.h */; };
8B7E82AC2DCB9207003C2C8C /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82242DCB9207003C2C8C /* CAXException.h */; };
8B7E82AD2DCB9207003C2C8C /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82252DCB9207003C2C8C /* CAAudioChannelLayout.cpp */; };
8B7E82AE2DCB9207003C2C8C /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82262DCB9207003C2C8C /* CAThreadSafeList.h */; };
8B7E82AF2DCB9207003C2C8C /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82272DCB9207003C2C8C /* CAAudioUnitOutputCapturer.h */; };
8B7E82B02DCB9207003C2C8C /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82282DCB9207003C2C8C /* AUParamInfo.cpp */; };
8B7E82B12DCB9207003C2C8C /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82292DCB9207003C2C8C /* CASharedLibrary.cpp */; };
8B7E82B22DCB9207003C2C8C /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E822A2DCB9207003C2C8C /* CAAUMIDIMap.cpp */; };
8B7E82B32DCB9207003C2C8C /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E822B2DCB9207003C2C8C /* CALogMacros.h */; };
8B7E82B42DCB9207003C2C8C /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E822C2DCB9207003C2C8C /* CACFMessagePort.cpp */; };
8B7E82B52DCB9207003C2C8C /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E822D2DCB9207003C2C8C /* CARingBuffer.h */; };
8B7E82B62DCB9207003C2C8C /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E822E2DCB9207003C2C8C /* AUOutputBL.cpp */; };
8B7E82B72DCB9207003C2C8C /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E822F2DCB9207003C2C8C /* CABufferList.h */; };
8B7E82B82DCB9207003C2C8C /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82302DCB9207003C2C8C /* CASharedLibrary.h */; };
8B7E82B92DCB9207003C2C8C /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82312DCB9207003C2C8C /* CACFData.h */; };
8B7E82BA2DCB9207003C2C8C /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82322DCB9207003C2C8C /* CAStreamRangedDescription.cpp */; };
8B7E82BB2DCB9207003C2C8C /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82332DCB9207003C2C8C /* CAPThread.cpp */; };
8B7E82BC2DCB9207003C2C8C /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82342DCB9207003C2C8C /* CAAutoDisposer.h */; };
8B7E82BD2DCB9207003C2C8C /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82352DCB9207003C2C8C /* CACFPreferences.h */; };
8B7E82BE2DCB9207003C2C8C /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82362DCB9207003C2C8C /* CAVectorUnit.cpp */; };
8B7E82BF2DCB9207003C2C8C /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82372DCB9207003C2C8C /* CAComponentDescription.h */; };
8B7E82C02DCB9207003C2C8C /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82382DCB9207003C2C8C /* CADebugMacros.h */; };
8B7E82C12DCB9207003C2C8C /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82392DCB9207003C2C8C /* AUOutputBL.h */; };
8B7E82C22DCB9207003C2C8C /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E823A2DCB9207003C2C8C /* CADebugPrintf.cpp */; };
8B7E82C32DCB9207003C2C8C /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E823B2DCB9207003C2C8C /* CARingBuffer.cpp */; };
8B7E82C42DCB9207003C2C8C /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E823C2DCB9207003C2C8C /* CACFPlugIn.h */; };
8B7E82C52DCB9207003C2C8C /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E823D2DCB9207003C2C8C /* CASettingsStorage.cpp */; };
8B7E82C62DCB9207003C2C8C /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E823E2DCB9207003C2C8C /* CAMixMap.h */; };
8B7E82C72DCB9207003C2C8C /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E823F2DCB9207003C2C8C /* CACFDistributedNotification.h */; };
8B7E82C82DCB9207003C2C8C /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82402DCB9207003C2C8C /* CAFilePathUtils.h */; };
8B7E82C92DCB9207003C2C8C /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82412DCB9207003C2C8C /* CATink.h */; };
8B7E82CA2DCB9207003C2C8C /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82422DCB9207003C2C8C /* CAStreamBasicDescription.cpp */; };
8B7E82CB2DCB9207003C2C8C /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82432DCB9207003C2C8C /* CAAudioChannelLayout.h */; };
8B7E82CC2DCB9207003C2C8C /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82442DCB9207003C2C8C /* CAProcess.cpp */; };
8B7E82CD2DCB9207003C2C8C /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82452DCB9207003C2C8C /* CAHostTimeBase.cpp */; };
8B7E82CE2DCB9207003C2C8C /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82462DCB9207003C2C8C /* CAPersistence.cpp */; };
8B7E82CF2DCB9207003C2C8C /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82472DCB9207003C2C8C /* CAAudioBufferList.cpp */; };
8B7E82D02DCB9207003C2C8C /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82482DCB9207003C2C8C /* CAAudioTimeStamp.cpp */; };
8B7E82D12DCB9207003C2C8C /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82492DCB9207003C2C8C /* CAVectorUnit.h */; };
8B7E82D22DCB9207003C2C8C /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E824A2DCB9207003C2C8C /* CAByteOrder.h */; };
8B7E82D32DCB9207003C2C8C /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E824B2DCB9207003C2C8C /* CACFArray.h */; };
8B7E82D42DCB9207003C2C8C /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E824C2DCB9207003C2C8C /* CAAtomicStack.h */; };
8B7E82D52DCB9207003C2C8C /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E824D2DCB9207003C2C8C /* CAReferenceCounted.h */; };
8B7E82D62DCB9207003C2C8C /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E824E2DCB9207003C2C8C /* CACFMachPort.cpp */; };
8B7E82D72DCB9207003C2C8C /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E824F2DCB9207003C2C8C /* CABufferList.cpp */; };
8B7E82D82DCB9207003C2C8C /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82502DCB9207003C2C8C /* CAMutex.cpp */; };
8B7E82D92DCB9207003C2C8C /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82512DCB9207003C2C8C /* CADebugger.cpp */; };
8B7E82DA2DCB9207003C2C8C /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82522DCB9207003C2C8C /* CABundleLocker.cpp */; };
8B7E82DB2DCB9207003C2C8C /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82532DCB9207003C2C8C /* CAAudioFileFormats.cpp */; };
8B7E82DC2DCB9207003C2C8C /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82542DCB9207003C2C8C /* CAMath.h */; };
8B7E82DD2DCB9207003C2C8C /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82552DCB9207003C2C8C /* CACFArray.cpp */; };
8B7E82DE2DCB9207003C2C8C /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82562DCB9207003C2C8C /* CACFMessagePort.h */; };
8B7E82DF2DCB9207003C2C8C /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82572DCB9207003C2C8C /* CAAudioValueRange.cpp */; };
8B7E82E02DCB9207003C2C8C /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82582DCB9207003C2C8C /* CAAudioUnit.cpp */; };
8B7E82E12DCB9207003C2C8C /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E825C2DCB9207003C2C8C /* AUViewLocalizedStringKeys.h */; };
8B7E82E22DCB9207003C2C8C /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E825E2DCB9207003C2C8C /* ComponentBase.cpp */; };
8B7E82E32DCB9207003C2C8C /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E825F2DCB9207003C2C8C /* AUScopeElement.cpp */; };
8B7E82E42DCB9207003C2C8C /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82602DCB9207003C2C8C /* ComponentBase.h */; };
8B7E82E52DCB9207003C2C8C /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82612DCB9207003C2C8C /* AUBase.cpp */; };
8B7E82E62DCB9207003C2C8C /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82622DCB9207003C2C8C /* AUInputElement.h */; };
8B7E82E72DCB9207003C2C8C /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82632DCB9207003C2C8C /* AUBase.h */; };
8B7E82E82DCB9207003C2C8C /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82642DCB9207003C2C8C /* AUPlugInDispatch.h */; };
8B7E82E92DCB9207003C2C8C /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82652DCB9207003C2C8C /* AUDispatch.h */; };
8B7E82EA2DCB9207003C2C8C /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82662DCB9207003C2C8C /* AUOutputElement.cpp */; };
8B7E82EC2DCB9207003C2C8C /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82682DCB9207003C2C8C /* AUPlugInDispatch.cpp */; };
8B7E82ED2DCB9207003C2C8C /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82692DCB9207003C2C8C /* AUOutputElement.h */; };
8B7E82EE2DCB9207003C2C8C /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E826A2DCB9207003C2C8C /* AUDispatch.cpp */; };
8B7E82EF2DCB9207003C2C8C /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E826B2DCB9207003C2C8C /* AUScopeElement.h */; };
8B7E82F02DCB9207003C2C8C /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E826C2DCB9207003C2C8C /* AUInputElement.cpp */; };
8B7E82F12DCB9207003C2C8C /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E826E2DCB9207003C2C8C /* AUEffectBase.cpp */; };
8B7E82F22DCB9207003C2C8C /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E826F2DCB9207003C2C8C /* AUEffectBase.h */; };
8B7E82F32DCB9207003C2C8C /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82712DCB9207003C2C8C /* AUTimestampGenerator.h */; };
8B7E82F42DCB9207003C2C8C /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82722DCB9207003C2C8C /* AUBaseHelper.cpp */; };
8B7E82F52DCB9207003C2C8C /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82732DCB9207003C2C8C /* AUSilentTimeout.h */; };
8B7E82F62DCB9207003C2C8C /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82742DCB9207003C2C8C /* AUInputFormatConverter.h */; };
8B7E82F72DCB9207003C2C8C /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82752DCB9207003C2C8C /* AUTimestampGenerator.cpp */; };
8B7E82F82DCB9207003C2C8C /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E82762DCB9207003C2C8C /* AUBuffer.cpp */; };
8B7E82F92DCB9207003C2C8C /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82772DCB9207003C2C8C /* AUMIDIDefs.h */; };
8B7E82FA2DCB9207003C2C8C /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82782DCB9207003C2C8C /* AUBuffer.h */; };
8B7E82FB2DCB9207003C2C8C /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7E82792DCB9207003C2C8C /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* kCosmos.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* kCosmos.cpp */; };
8BA05A6E0720730100365D66 /* kCosmosVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* kCosmosVersion.h */; };
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
8BC6025C073B072D006C4272 /* kCosmos.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* kCosmos.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
8B7E81F22DCB9207003C2C8C /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B7E81F32DCB9207003C2C8C /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B7E81F42DCB9207003C2C8C /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B7E81F52DCB9207003C2C8C /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B7E81F62DCB9207003C2C8C /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B7E81F72DCB9207003C2C8C /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B7E81F82DCB9207003C2C8C /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B7E81F92DCB9207003C2C8C /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B7E81FA2DCB9207003C2C8C /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B7E81FB2DCB9207003C2C8C /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B7E81FC2DCB9207003C2C8C /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B7E81FD2DCB9207003C2C8C /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B7E81FE2DCB9207003C2C8C /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B7E81FF2DCB9207003C2C8C /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B7E82002DCB9207003C2C8C /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B7E82012DCB9207003C2C8C /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B7E82022DCB9207003C2C8C /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B7E82032DCB9207003C2C8C /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B7E82042DCB9207003C2C8C /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B7E82052DCB9207003C2C8C /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B7E82062DCB9207003C2C8C /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B7E82072DCB9207003C2C8C /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B7E82082DCB9207003C2C8C /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B7E82092DCB9207003C2C8C /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B7E820A2DCB9207003C2C8C /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B7E820B2DCB9207003C2C8C /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B7E820C2DCB9207003C2C8C /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B7E820D2DCB9207003C2C8C /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B7E820E2DCB9207003C2C8C /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B7E820F2DCB9207003C2C8C /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B7E82102DCB9207003C2C8C /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B7E82112DCB9207003C2C8C /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B7E82122DCB9207003C2C8C /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B7E82132DCB9207003C2C8C /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B7E82142DCB9207003C2C8C /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B7E82152DCB9207003C2C8C /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B7E82162DCB9207003C2C8C /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B7E82172DCB9207003C2C8C /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B7E82182DCB9207003C2C8C /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B7E82192DCB9207003C2C8C /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B7E821A2DCB9207003C2C8C /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B7E821B2DCB9207003C2C8C /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B7E821C2DCB9207003C2C8C /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B7E821D2DCB9207003C2C8C /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B7E821E2DCB9207003C2C8C /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B7E821F2DCB9207003C2C8C /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B7E82202DCB9207003C2C8C /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B7E82212DCB9207003C2C8C /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B7E82222DCB9207003C2C8C /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B7E82232DCB9207003C2C8C /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B7E82242DCB9207003C2C8C /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B7E82252DCB9207003C2C8C /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B7E82262DCB9207003C2C8C /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B7E82272DCB9207003C2C8C /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B7E82282DCB9207003C2C8C /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B7E82292DCB9207003C2C8C /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B7E822A2DCB9207003C2C8C /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B7E822B2DCB9207003C2C8C /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B7E822C2DCB9207003C2C8C /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B7E822D2DCB9207003C2C8C /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B7E822E2DCB9207003C2C8C /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B7E822F2DCB9207003C2C8C /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B7E82302DCB9207003C2C8C /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B7E82312DCB9207003C2C8C /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B7E82322DCB9207003C2C8C /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B7E82332DCB9207003C2C8C /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B7E82342DCB9207003C2C8C /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B7E82352DCB9207003C2C8C /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B7E82362DCB9207003C2C8C /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B7E82372DCB9207003C2C8C /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B7E82382DCB9207003C2C8C /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B7E82392DCB9207003C2C8C /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B7E823A2DCB9207003C2C8C /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B7E823B2DCB9207003C2C8C /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B7E823C2DCB9207003C2C8C /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B7E823D2DCB9207003C2C8C /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B7E823E2DCB9207003C2C8C /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B7E823F2DCB9207003C2C8C /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B7E82402DCB9207003C2C8C /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B7E82412DCB9207003C2C8C /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B7E82422DCB9207003C2C8C /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B7E82432DCB9207003C2C8C /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B7E82442DCB9207003C2C8C /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B7E82452DCB9207003C2C8C /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B7E82462DCB9207003C2C8C /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B7E82472DCB9207003C2C8C /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B7E82482DCB9207003C2C8C /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B7E82492DCB9207003C2C8C /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B7E824A2DCB9207003C2C8C /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B7E824B2DCB9207003C2C8C /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B7E824C2DCB9207003C2C8C /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B7E824D2DCB9207003C2C8C /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B7E824E2DCB9207003C2C8C /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B7E824F2DCB9207003C2C8C /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B7E82502DCB9207003C2C8C /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B7E82512DCB9207003C2C8C /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B7E82522DCB9207003C2C8C /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B7E82532DCB9207003C2C8C /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B7E82542DCB9207003C2C8C /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B7E82552DCB9207003C2C8C /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B7E82562DCB9207003C2C8C /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B7E82572DCB9207003C2C8C /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B7E82582DCB9207003C2C8C /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B7E825C2DCB9207003C2C8C /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B7E825E2DCB9207003C2C8C /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B7E825F2DCB9207003C2C8C /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B7E82602DCB9207003C2C8C /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B7E82612DCB9207003C2C8C /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B7E82622DCB9207003C2C8C /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B7E82632DCB9207003C2C8C /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B7E82642DCB9207003C2C8C /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B7E82652DCB9207003C2C8C /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B7E82662DCB9207003C2C8C /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B7E82672DCB9207003C2C8C /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B7E82682DCB9207003C2C8C /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B7E82692DCB9207003C2C8C /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B7E826A2DCB9207003C2C8C /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B7E826B2DCB9207003C2C8C /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B7E826C2DCB9207003C2C8C /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B7E826E2DCB9207003C2C8C /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B7E826F2DCB9207003C2C8C /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B7E82712DCB9207003C2C8C /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B7E82722DCB9207003C2C8C /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B7E82732DCB9207003C2C8C /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B7E82742DCB9207003C2C8C /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B7E82752DCB9207003C2C8C /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B7E82762DCB9207003C2C8C /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B7E82772DCB9207003C2C8C /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B7E82782DCB9207003C2C8C /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B7E82792DCB9207003C2C8C /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B7E82FC2DCB92C8003C2C8C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8BA05A660720730100365D66 /* kCosmos.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = kCosmos.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* kCosmos.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = kCosmos.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* kCosmos.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = kCosmos.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* kCosmosVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kCosmosVersion.h; sourceTree = "<group>"; };
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
8BC6025B073B072D006C4272 /* kCosmos.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kCosmos.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* kCosmos.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kCosmos.component; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */,
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */,
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
089C166AFE841209C02AAC07 /* kCosmos */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = kCosmos;
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 = (
8B7E81F02DCB9207003C2C8C /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* kCosmos.component */,
);
name = Products;
sourceTree = "<group>";
};
8B7E81F02DCB9207003C2C8C /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B7E81F12DCB9207003C2C8C /* PublicUtility */,
8B7E82592DCB9207003C2C8C /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B7E81F12DCB9207003C2C8C /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B7E81F22DCB9207003C2C8C /* CAExtAudioFile.h */,
8B7E81F32DCB9207003C2C8C /* CACFMachPort.h */,
8B7E81F42DCB9207003C2C8C /* CABool.h */,
8B7E81F52DCB9207003C2C8C /* CAComponent.cpp */,
8B7E81F62DCB9207003C2C8C /* CADebugger.h */,
8B7E81F72DCB9207003C2C8C /* CACFNumber.cpp */,
8B7E81F82DCB9207003C2C8C /* CAGuard.h */,
8B7E81F92DCB9207003C2C8C /* CAAtomic.h */,
8B7E81FA2DCB9207003C2C8C /* CAStreamBasicDescription.h */,
8B7E81FB2DCB9207003C2C8C /* CACFObject.h */,
8B7E81FC2DCB9207003C2C8C /* CAStreamRangedDescription.h */,
8B7E81FD2DCB9207003C2C8C /* CATokenMap.h */,
8B7E81FE2DCB9207003C2C8C /* CAComponent.h */,
8B7E81FF2DCB9207003C2C8C /* CAAudioBufferList.h */,
8B7E82002DCB9207003C2C8C /* CAAudioUnit.h */,
8B7E82012DCB9207003C2C8C /* CAAUParameter.h */,
8B7E82022DCB9207003C2C8C /* CAException.h */,
8B7E82032DCB9207003C2C8C /* CAAUProcessor.cpp */,
8B7E82042DCB9207003C2C8C /* CAAUProcessor.h */,
8B7E82052DCB9207003C2C8C /* CAProcess.h */,
8B7E82062DCB9207003C2C8C /* CACFDictionary.h */,
8B7E82072DCB9207003C2C8C /* CAPThread.h */,
8B7E82082DCB9207003C2C8C /* CAAUParameter.cpp */,
8B7E82092DCB9207003C2C8C /* CAAudioTimeStamp.h */,
8B7E820A2DCB9207003C2C8C /* CAFilePathUtils.cpp */,
8B7E820B2DCB9207003C2C8C /* CAAudioValueRange.h */,
8B7E820C2DCB9207003C2C8C /* CAVectorUnitTypes.h */,
8B7E820D2DCB9207003C2C8C /* CAAudioChannelLayoutObject.cpp */,
8B7E820E2DCB9207003C2C8C /* CAGuard.cpp */,
8B7E820F2DCB9207003C2C8C /* CACFNumber.h */,
8B7E82102DCB9207003C2C8C /* CACFDistributedNotification.cpp */,
8B7E82112DCB9207003C2C8C /* CACFString.h */,
8B7E82122DCB9207003C2C8C /* CAAUMIDIMapManager.cpp */,
8B7E82132DCB9207003C2C8C /* CAComponentDescription.cpp */,
8B7E82142DCB9207003C2C8C /* CAHostTimeBase.h */,
8B7E82152DCB9207003C2C8C /* CADebugMacros.cpp */,
8B7E82162DCB9207003C2C8C /* CAAudioFileFormats.h */,
8B7E82172DCB9207003C2C8C /* CAAUMIDIMapManager.h */,
8B7E82182DCB9207003C2C8C /* CACFDictionary.cpp */,
8B7E82192DCB9207003C2C8C /* CAMutex.h */,
8B7E821A2DCB9207003C2C8C /* CACFString.cpp */,
8B7E821B2DCB9207003C2C8C /* CASettingsStorage.h */,
8B7E821C2DCB9207003C2C8C /* CADebugPrintf.h */,
8B7E821D2DCB9207003C2C8C /* CAXException.cpp */,
8B7E821E2DCB9207003C2C8C /* CAAUMIDIMap.h */,
8B7E821F2DCB9207003C2C8C /* AUParamInfo.h */,
8B7E82202DCB9207003C2C8C /* CABitOperations.h */,
8B7E82212DCB9207003C2C8C /* CACFPreferences.cpp */,
8B7E82222DCB9207003C2C8C /* CABundleLocker.h */,
8B7E82232DCB9207003C2C8C /* CAPropertyAddress.h */,
8B7E82242DCB9207003C2C8C /* CAXException.h */,
8B7E82252DCB9207003C2C8C /* CAAudioChannelLayout.cpp */,
8B7E82262DCB9207003C2C8C /* CAThreadSafeList.h */,
8B7E82272DCB9207003C2C8C /* CAAudioUnitOutputCapturer.h */,
8B7E82282DCB9207003C2C8C /* AUParamInfo.cpp */,
8B7E82292DCB9207003C2C8C /* CASharedLibrary.cpp */,
8B7E822A2DCB9207003C2C8C /* CAAUMIDIMap.cpp */,
8B7E822B2DCB9207003C2C8C /* CALogMacros.h */,
8B7E822C2DCB9207003C2C8C /* CACFMessagePort.cpp */,
8B7E822D2DCB9207003C2C8C /* CARingBuffer.h */,
8B7E822E2DCB9207003C2C8C /* AUOutputBL.cpp */,
8B7E822F2DCB9207003C2C8C /* CABufferList.h */,
8B7E82302DCB9207003C2C8C /* CASharedLibrary.h */,
8B7E82312DCB9207003C2C8C /* CACFData.h */,
8B7E82322DCB9207003C2C8C /* CAStreamRangedDescription.cpp */,
8B7E82332DCB9207003C2C8C /* CAPThread.cpp */,
8B7E82342DCB9207003C2C8C /* CAAutoDisposer.h */,
8B7E82352DCB9207003C2C8C /* CACFPreferences.h */,
8B7E82362DCB9207003C2C8C /* CAVectorUnit.cpp */,
8B7E82372DCB9207003C2C8C /* CAComponentDescription.h */,
8B7E82382DCB9207003C2C8C /* CADebugMacros.h */,
8B7E82392DCB9207003C2C8C /* AUOutputBL.h */,
8B7E823A2DCB9207003C2C8C /* CADebugPrintf.cpp */,
8B7E823B2DCB9207003C2C8C /* CARingBuffer.cpp */,
8B7E823C2DCB9207003C2C8C /* CACFPlugIn.h */,
8B7E823D2DCB9207003C2C8C /* CASettingsStorage.cpp */,
8B7E823E2DCB9207003C2C8C /* CAMixMap.h */,
8B7E823F2DCB9207003C2C8C /* CACFDistributedNotification.h */,
8B7E82402DCB9207003C2C8C /* CAFilePathUtils.h */,
8B7E82412DCB9207003C2C8C /* CATink.h */,
8B7E82422DCB9207003C2C8C /* CAStreamBasicDescription.cpp */,
8B7E82432DCB9207003C2C8C /* CAAudioChannelLayout.h */,
8B7E82442DCB9207003C2C8C /* CAProcess.cpp */,
8B7E82452DCB9207003C2C8C /* CAHostTimeBase.cpp */,
8B7E82462DCB9207003C2C8C /* CAPersistence.cpp */,
8B7E82472DCB9207003C2C8C /* CAAudioBufferList.cpp */,
8B7E82482DCB9207003C2C8C /* CAAudioTimeStamp.cpp */,
8B7E82492DCB9207003C2C8C /* CAVectorUnit.h */,
8B7E824A2DCB9207003C2C8C /* CAByteOrder.h */,
8B7E824B2DCB9207003C2C8C /* CACFArray.h */,
8B7E824C2DCB9207003C2C8C /* CAAtomicStack.h */,
8B7E824D2DCB9207003C2C8C /* CAReferenceCounted.h */,
8B7E824E2DCB9207003C2C8C /* CACFMachPort.cpp */,
8B7E824F2DCB9207003C2C8C /* CABufferList.cpp */,
8B7E82502DCB9207003C2C8C /* CAMutex.cpp */,
8B7E82512DCB9207003C2C8C /* CADebugger.cpp */,
8B7E82522DCB9207003C2C8C /* CABundleLocker.cpp */,
8B7E82532DCB9207003C2C8C /* CAAudioFileFormats.cpp */,
8B7E82542DCB9207003C2C8C /* CAMath.h */,
8B7E82552DCB9207003C2C8C /* CACFArray.cpp */,
8B7E82562DCB9207003C2C8C /* CACFMessagePort.h */,
8B7E82572DCB9207003C2C8C /* CAAudioValueRange.cpp */,
8B7E82582DCB9207003C2C8C /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B7E82592DCB9207003C2C8C /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B7E825A2DCB9207003C2C8C /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B7E825A2DCB9207003C2C8C /* AUPublic */ = {
isa = PBXGroup;
children = (
8B7E825B2DCB9207003C2C8C /* AUViewBase */,
8B7E825D2DCB9207003C2C8C /* AUBase */,
8B7E826D2DCB9207003C2C8C /* OtherBases */,
8B7E82702DCB9207003C2C8C /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B7E825B2DCB9207003C2C8C /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B7E825C2DCB9207003C2C8C /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B7E825D2DCB9207003C2C8C /* AUBase */ = {
isa = PBXGroup;
children = (
8B7E825E2DCB9207003C2C8C /* ComponentBase.cpp */,
8B7E825F2DCB9207003C2C8C /* AUScopeElement.cpp */,
8B7E82602DCB9207003C2C8C /* ComponentBase.h */,
8B7E82612DCB9207003C2C8C /* AUBase.cpp */,
8B7E82622DCB9207003C2C8C /* AUInputElement.h */,
8B7E82632DCB9207003C2C8C /* AUBase.h */,
8B7E82642DCB9207003C2C8C /* AUPlugInDispatch.h */,
8B7E82652DCB9207003C2C8C /* AUDispatch.h */,
8B7E82662DCB9207003C2C8C /* AUOutputElement.cpp */,
8B7E82672DCB9207003C2C8C /* AUResources.r */,
8B7E82682DCB9207003C2C8C /* AUPlugInDispatch.cpp */,
8B7E82692DCB9207003C2C8C /* AUOutputElement.h */,
8B7E826A2DCB9207003C2C8C /* AUDispatch.cpp */,
8B7E826B2DCB9207003C2C8C /* AUScopeElement.h */,
8B7E826C2DCB9207003C2C8C /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B7E826D2DCB9207003C2C8C /* OtherBases */ = {
isa = PBXGroup;
children = (
8B7E826E2DCB9207003C2C8C /* AUEffectBase.cpp */,
8B7E826F2DCB9207003C2C8C /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B7E82702DCB9207003C2C8C /* Utility */ = {
isa = PBXGroup;
children = (
8B7E82712DCB9207003C2C8C /* AUTimestampGenerator.h */,
8B7E82722DCB9207003C2C8C /* AUBaseHelper.cpp */,
8B7E82732DCB9207003C2C8C /* AUSilentTimeout.h */,
8B7E82742DCB9207003C2C8C /* AUInputFormatConverter.h */,
8B7E82752DCB9207003C2C8C /* AUTimestampGenerator.cpp */,
8B7E82762DCB9207003C2C8C /* AUBuffer.cpp */,
8B7E82772DCB9207003C2C8C /* AUMIDIDefs.h */,
8B7E82782DCB9207003C2C8C /* AUBuffer.h */,
8B7E82792DCB9207003C2C8C /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* kCosmos.h */,
8BA05A660720730100365D66 /* kCosmos.cpp */,
8BA05A670720730100365D66 /* kCosmos.exp */,
8BA05A680720730100365D66 /* kCosmos.r */,
8BA05A690720730100365D66 /* kCosmosVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B7E82AA2DCB9207003C2C8C /* CABundleLocker.h in Headers */,
8B7E82CB2DCB9207003C2C8C /* CAAudioChannelLayout.h in Headers */,
8B7E82C12DCB9207003C2C8C /* AUOutputBL.h in Headers */,
8B7E829C2DCB9207003C2C8C /* CAHostTimeBase.h in Headers */,
8B7E82E42DCB9207003C2C8C /* ComponentBase.h in Headers */,
8B7E82D42DCB9207003C2C8C /* CAAtomicStack.h in Headers */,
8B7E82912DCB9207003C2C8C /* CAAudioTimeStamp.h in Headers */,
8B7E82AE2DCB9207003C2C8C /* CAThreadSafeList.h in Headers */,
8B7E82892DCB9207003C2C8C /* CAAUParameter.h in Headers */,
8B7E82FB2DCB9207003C2C8C /* AUBaseHelper.h in Headers */,
8B7E82F32DCB9207003C2C8C /* AUTimestampGenerator.h in Headers */,
8B7E82A42DCB9207003C2C8C /* CADebugPrintf.h in Headers */,
8B7E82DE2DCB9207003C2C8C /* CACFMessagePort.h in Headers */,
8B7E828C2DCB9207003C2C8C /* CAAUProcessor.h in Headers */,
8B7E82882DCB9207003C2C8C /* CAAudioUnit.h in Headers */,
8B7E82E12DCB9207003C2C8C /* AUViewLocalizedStringKeys.h in Headers */,
8B7E82C72DCB9207003C2C8C /* CACFDistributedNotification.h in Headers */,
8B7E82862DCB9207003C2C8C /* CAComponent.h in Headers */,
8B7E82942DCB9207003C2C8C /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* kCosmosVersion.h in Headers */,
8B7E82C82DCB9207003C2C8C /* CAFilePathUtils.h in Headers */,
8B7E828A2DCB9207003C2C8C /* CAException.h in Headers */,
8B7E82812DCB9207003C2C8C /* CAAtomic.h in Headers */,
8B7E82802DCB9207003C2C8C /* CAGuard.h in Headers */,
8B7E82E62DCB9207003C2C8C /* AUInputElement.h in Headers */,
8B7E82BD2DCB9207003C2C8C /* CACFPreferences.h in Headers */,
8B7E82D22DCB9207003C2C8C /* CAByteOrder.h in Headers */,
8B7E82B52DCB9207003C2C8C /* CARingBuffer.h in Headers */,
8B7E827C2DCB9207003C2C8C /* CABool.h in Headers */,
8B7E82A12DCB9207003C2C8C /* CAMutex.h in Headers */,
8B7E82E72DCB9207003C2C8C /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* kCosmos.h in Headers */,
8B7E82992DCB9207003C2C8C /* CACFString.h in Headers */,
8B7E82B82DCB9207003C2C8C /* CASharedLibrary.h in Headers */,
8B7E82852DCB9207003C2C8C /* CATokenMap.h in Headers */,
8B7E827A2DCB9207003C2C8C /* CAExtAudioFile.h in Headers */,
8B7E828F2DCB9207003C2C8C /* CAPThread.h in Headers */,
8B7E82AB2DCB9207003C2C8C /* CAPropertyAddress.h in Headers */,
8B7E82D52DCB9207003C2C8C /* CAReferenceCounted.h in Headers */,
8B7E82FA2DCB9207003C2C8C /* AUBuffer.h in Headers */,
8B7E82DC2DCB9207003C2C8C /* CAMath.h in Headers */,
8B7E82BC2DCB9207003C2C8C /* CAAutoDisposer.h in Headers */,
8B7E82832DCB9207003C2C8C /* CACFObject.h in Headers */,
8B7E82A32DCB9207003C2C8C /* CASettingsStorage.h in Headers */,
8B7E82AC2DCB9207003C2C8C /* CAXException.h in Headers */,
8B7E82C92DCB9207003C2C8C /* CATink.h in Headers */,
8B7E82F62DCB9207003C2C8C /* AUInputFormatConverter.h in Headers */,
8B7E82D12DCB9207003C2C8C /* CAVectorUnit.h in Headers */,
8B7E828D2DCB9207003C2C8C /* CAProcess.h in Headers */,
8B7E82932DCB9207003C2C8C /* CAAudioValueRange.h in Headers */,
8B7E82A82DCB9207003C2C8C /* CABitOperations.h in Headers */,
8B7E829E2DCB9207003C2C8C /* CAAudioFileFormats.h in Headers */,
8B7E82972DCB9207003C2C8C /* CACFNumber.h in Headers */,
8B7E82AF2DCB9207003C2C8C /* CAAudioUnitOutputCapturer.h in Headers */,
8B7E82C02DCB9207003C2C8C /* CADebugMacros.h in Headers */,
8B7E82F92DCB9207003C2C8C /* AUMIDIDefs.h in Headers */,
8B7E82B92DCB9207003C2C8C /* CACFData.h in Headers */,
8B7E82822DCB9207003C2C8C /* CAStreamBasicDescription.h in Headers */,
8B7E82E82DCB9207003C2C8C /* AUPlugInDispatch.h in Headers */,
8B7E82842DCB9207003C2C8C /* CAStreamRangedDescription.h in Headers */,
8B7E82C42DCB9207003C2C8C /* CACFPlugIn.h in Headers */,
8B7E82872DCB9207003C2C8C /* CAAudioBufferList.h in Headers */,
8B7E829F2DCB9207003C2C8C /* CAAUMIDIMapManager.h in Headers */,
8B7E82F22DCB9207003C2C8C /* AUEffectBase.h in Headers */,
8B7E828E2DCB9207003C2C8C /* CACFDictionary.h in Headers */,
8B7E82EF2DCB9207003C2C8C /* AUScopeElement.h in Headers */,
8B7E82BF2DCB9207003C2C8C /* CAComponentDescription.h in Headers */,
8B7E82F52DCB9207003C2C8C /* AUSilentTimeout.h in Headers */,
8B7E82B72DCB9207003C2C8C /* CABufferList.h in Headers */,
8B7E82E92DCB9207003C2C8C /* AUDispatch.h in Headers */,
8B7E82ED2DCB9207003C2C8C /* AUOutputElement.h in Headers */,
8B7E82B32DCB9207003C2C8C /* CALogMacros.h in Headers */,
8B7E82A72DCB9207003C2C8C /* AUParamInfo.h in Headers */,
8B7E82C62DCB9207003C2C8C /* CAMixMap.h in Headers */,
8B7E82D32DCB9207003C2C8C /* CACFArray.h in Headers */,
8B7E827B2DCB9207003C2C8C /* CACFMachPort.h in Headers */,
8B7E82A62DCB9207003C2C8C /* CAAUMIDIMap.h in Headers */,
8B7E827E2DCB9207003C2C8C /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* kCosmos */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "kCosmos" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = kCosmos;
productInstallPath = "$(HOME)/Library/Bundles";
productName = kCosmos;
productReference = 8D01CCD20486CAD60068D4B7 /* kCosmos.component */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1420;
};
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "kCosmos" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
ja,
en,
Base,
fr,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* kCosmos */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* kCosmos */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D01CCC90486CAD60068D4B7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8B7E82B62DCB9207003C2C8C /* AUOutputBL.cpp in Sources */,
8B7E82DB2DCB9207003C2C8C /* CAAudioFileFormats.cpp in Sources */,
8B7E82CD2DCB9207003C2C8C /* CAHostTimeBase.cpp in Sources */,
8B7E82A52DCB9207003C2C8C /* CAXException.cpp in Sources */,
8B7E82CF2DCB9207003C2C8C /* CAAudioBufferList.cpp in Sources */,
8B7E82922DCB9207003C2C8C /* CAFilePathUtils.cpp in Sources */,
8B7E82902DCB9207003C2C8C /* CAAUParameter.cpp in Sources */,
8B7E82B22DCB9207003C2C8C /* CAAUMIDIMap.cpp in Sources */,
8B7E82DF2DCB9207003C2C8C /* CAAudioValueRange.cpp in Sources */,
8B7E82EE2DCB9207003C2C8C /* AUDispatch.cpp in Sources */,
8B7E82A92DCB9207003C2C8C /* CACFPreferences.cpp in Sources */,
8B7E82EC2DCB9207003C2C8C /* AUPlugInDispatch.cpp in Sources */,
8B7E828B2DCB9207003C2C8C /* CAAUProcessor.cpp in Sources */,
8B7E82A02DCB9207003C2C8C /* CACFDictionary.cpp in Sources */,
8B7E82F42DCB9207003C2C8C /* AUBaseHelper.cpp in Sources */,
8B7E82D92DCB9207003C2C8C /* CADebugger.cpp in Sources */,
8B7E82AD2DCB9207003C2C8C /* CAAudioChannelLayout.cpp in Sources */,
8B7E82B02DCB9207003C2C8C /* AUParamInfo.cpp in Sources */,
8B7E82CE2DCB9207003C2C8C /* CAPersistence.cpp in Sources */,
8B7E82C22DCB9207003C2C8C /* CADebugPrintf.cpp in Sources */,
8B7E82F72DCB9207003C2C8C /* AUTimestampGenerator.cpp in Sources */,
8B7E82CA2DCB9207003C2C8C /* CAStreamBasicDescription.cpp in Sources */,
8B7E829A2DCB9207003C2C8C /* CAAUMIDIMapManager.cpp in Sources */,
8B7E82C52DCB9207003C2C8C /* CASettingsStorage.cpp in Sources */,
8B7E82EA2DCB9207003C2C8C /* AUOutputElement.cpp in Sources */,
8B7E82962DCB9207003C2C8C /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* kCosmos.cpp in Sources */,
8B7E82D82DCB9207003C2C8C /* CAMutex.cpp in Sources */,
8B7E82F12DCB9207003C2C8C /* AUEffectBase.cpp in Sources */,
8B7E82D62DCB9207003C2C8C /* CACFMachPort.cpp in Sources */,
8B7E82E52DCB9207003C2C8C /* AUBase.cpp in Sources */,
8B7E82B12DCB9207003C2C8C /* CASharedLibrary.cpp in Sources */,
8B7E82982DCB9207003C2C8C /* CACFDistributedNotification.cpp in Sources */,
8B7E829B2DCB9207003C2C8C /* CAComponentDescription.cpp in Sources */,
8B7E82A22DCB9207003C2C8C /* CACFString.cpp in Sources */,
8B7E82E22DCB9207003C2C8C /* ComponentBase.cpp in Sources */,
8B7E82C32DCB9207003C2C8C /* CARingBuffer.cpp in Sources */,
8B7E82E32DCB9207003C2C8C /* AUScopeElement.cpp in Sources */,
8B7E82E02DCB9207003C2C8C /* CAAudioUnit.cpp in Sources */,
8B7E82DD2DCB9207003C2C8C /* CACFArray.cpp in Sources */,
8B7E82DA2DCB9207003C2C8C /* CABundleLocker.cpp in Sources */,
8B7E82CC2DCB9207003C2C8C /* CAProcess.cpp in Sources */,
8B7E82BA2DCB9207003C2C8C /* CAStreamRangedDescription.cpp in Sources */,
8B7E82BB2DCB9207003C2C8C /* CAPThread.cpp in Sources */,
8B7E827D2DCB9207003C2C8C /* CAComponent.cpp in Sources */,
8B7E82952DCB9207003C2C8C /* CAAudioChannelLayoutObject.cpp in Sources */,
8B7E82D02DCB9207003C2C8C /* CAAudioTimeStamp.cpp in Sources */,
8B7E82D72DCB9207003C2C8C /* CABufferList.cpp in Sources */,
8B7E82B42DCB9207003C2C8C /* CACFMessagePort.cpp in Sources */,
8B7E82BE2DCB9207003C2C8C /* CAVectorUnit.cpp in Sources */,
8B7E82F02DCB9207003C2C8C /* AUInputElement.cpp in Sources */,
8B7E82F82DCB9207003C2C8C /* AUBuffer.cpp in Sources */,
8B7E829D2DCB9207003C2C8C /* CADebugMacros.cpp in Sources */,
8B7E827F2DCB9207003C2C8C /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B7E82FC2DCB92C8003C2C8C /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
3E4BA244089833B7007656EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = kCosmos.exp;
GCC_OPTIMIZATION_LEVEL = 0;
GENERATE_PKGINFO_FILE = YES;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_LDFLAGS = "-bundle";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = kCosmos;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
STRIP_STYLE = debugging;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = kCosmos.exp;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GENERATE_PKGINFO_FILE = YES;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_LDFLAGS = "-bundle";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = kCosmos;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = debugging;
WRAPPER_EXTENSION = component;
};
name = Release;
};
3E4BA248089833B7007656EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/CA_SDK/**";
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Debug;
};
3E4BA249089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/CA_SDK/**";
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "kCosmos" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "kCosmos" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA248089833B7007656EC /* Debug */,
3E4BA249089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

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

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View file

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

View file

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

View file

@ -0,0 +1,58 @@
/*
* File: kCosmosVersion.h
*
* Version: 1.0
*
* Created: 4/29/25
*
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __kCosmosVersion_h__
#define __kCosmosVersion_h__
#ifdef DEBUG
#define kkCosmosVersion 0xFFFFFFFF
#else
#define kkCosmosVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define kCosmos_COMP_MANF 'Dthr'
#define kCosmos_COMP_SUBTYPE 'kcsm'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>3</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>${EXECUTABLE_NAME}</string>
<key>SourceVersion</key>
<string>590000</string>
</dict>
</plist>

View file

@ -0,0 +1,153 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* ChimeyGuitar */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
324,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 768434064;
PBXWorkspaceStateSaveDate = 768434064;
};
perUserProjectItems = {
8BD501652DCD5FB10045813C /* PBXBookmark */ = 8BD501652DCD5FB10045813C /* PBXBookmark */;
8BD501722DCD5FF00045813C /* PBXTextBookmark */ = 8BD501722DCD5FF00045813C /* PBXTextBookmark */;
8BD501732DCD5FF00045813C /* PBXBookmark */ = 8BD501732DCD5FF00045813C /* PBXBookmark */;
8BD501742DCD5FF00045813C /* PBXTextBookmark */ = 8BD501742DCD5FF00045813C /* PBXTextBookmark */;
8BD5017A2DCD5FF00045813C /* PBXTextBookmark */ = 8BD5017A2DCD5FF00045813C /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* ChimeyGuitar.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {966, 4248}}";
sepNavSelRange = "{577, 0}";
sepNavVisRange = "{0, 969}";
sepNavWindowFrame = "{{55, 46}, {895, 831}}";
};
};
245463B80991757100464AD3 /* ChimeyGuitar.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {705, 2376}}";
sepNavSelRange = "{3267, 0}";
sepNavVisRange = "{3160, 151}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{9653, 2414}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* ChimeyGuitarProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1119, 5292}}";
sepNavSelRange = "{2769, 0}";
sepNavVisRange = "{2351, 379}";
sepNavWindowFrame = "{{31, 60}, {1262, 818}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BD501652DCD5FB10045813C /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 2407DEB6089929BA00EB68BF /* ChimeyGuitar.cpp */;
};
8BD501722DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ChimeyGuitarProc.cpp */;
name = "ChimeyGuitarProc.cpp: 73";
rLen = 0;
rLoc = 2769;
rType = 0;
vrLen = 379;
vrLoc = 2351;
};
8BD501732DCD5FF00045813C /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 245463B80991757100464AD3 /* ChimeyGuitar.h */;
};
8BD501742DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* ChimeyGuitar.h */;
name = "ChimeyGuitar.h: 109";
rLen = 0;
rLoc = 3267;
rType = 0;
vrLen = 151;
vrLoc = 3160;
};
8BD5017A2DCD5FF00045813C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* ChimeyGuitar.cpp */;
name = "ChimeyGuitar.cpp: 24";
rLen = 0;
rLoc = 577;
rType = 0;
vrLen = 969;
vrLoc = 0;
};
8D01CCC60486CAD60068D4B7 /* ChimeyGuitar */ = {
activeExec = 0;
};
}

View file

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

View file

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

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,216 @@
/* ========================================
* ChimeyGuitar - ChimeyGuitar.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ChimeyGuitar_H
#include "ChimeyGuitar.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new ChimeyGuitar(audioMaster);}
ChimeyGuitar::ChimeyGuitar(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.8;
C = 0.7;
D = 0.5;
E = 0.7;
F = 0.4;
G = 0.8;
H = 0.4;
I = 0.3;
J = 1.0;
for(int x=0; x<21; x++) {
for(int y=0; y<11; y++) {
angSL[x][y] = 0.0;angAL[x][y] = 0.0;
angSR[x][y] = 0.0;angAR[x][y] = 0.0;
}
}
for(int y=0; y<11; y++) {
angG[y] = 0.0;
for (int x = 0; x < bez_total; x++) {bezComp[x][y] = 0.0;}
bezComp[bez_cycleL][y] = 1.0;
bezComp[bez_cycleR][y] = 1.0;
}
bezRezA = bezRezB = 0.0002;
for(int count = 0; count < 36; count++) {
iirHPositionL[count] = 0.0;
iirHAngleL[count] = 0.0;
iirBPositionL[count] = 0.0;
iirBAngleL[count] = 0.0;
iirHPositionR[count] = 0.0;
iirHAngleR[count] = 0.0;
iirBPositionR[count] = 0.0;
iirBAngleR[count] = 0.0;
}
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
ChimeyGuitar::~ChimeyGuitar() {}
VstInt32 ChimeyGuitar::getVendorVersion () {return 1000;}
void ChimeyGuitar::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void ChimeyGuitar::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
static float pinParameter(float data)
{
if (data < 0.0f) return 0.0f;
if (data > 1.0f) return 1.0f;
return data;
}
VstInt32 ChimeyGuitar::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
chunkData[4] = E;
chunkData[5] = F;
chunkData[6] = G;
chunkData[7] = H;
chunkData[8] = I;
chunkData[9] = J;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 ChimeyGuitar::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
D = pinParameter(chunkData[3]);
E = pinParameter(chunkData[4]);
F = pinParameter(chunkData[5]);
G = pinParameter(chunkData[6]);
H = pinParameter(chunkData[7]);
I = pinParameter(chunkData[8]);
J = pinParameter(chunkData[9]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void ChimeyGuitar::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
case kParamD: D = value; break;
case kParamE: E = value; break;
case kParamF: F = value; break;
case kParamG: G = value; break;
case kParamH: H = value; break;
case kParamI: I = value; break;
case kParamJ: J = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float ChimeyGuitar::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
case kParamD: return D; break;
case kParamE: return E; break;
case kParamF: return F; break;
case kParamG: return G; break;
case kParamH: return H; break;
case kParamI: return I; break;
case kParamJ: return J; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void ChimeyGuitar::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Compres", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Presnce", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "Sub", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "HSpeakr", kVstMaxParamStrLen); break;
case kParamH: vst_strncpy (text, "LSpeakr", kVstMaxParamStrLen); break;
case kParamI: vst_strncpy (text, "Speed", kVstMaxParamStrLen); break;
case kParamJ: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void ChimeyGuitar::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
case kParamG: float2string (G, text, kVstMaxParamStrLen); break;
case kParamH: float2string (H, text, kVstMaxParamStrLen); break;
case kParamI: float2string (I, text, kVstMaxParamStrLen); break;
case kParamJ: float2string (J, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void ChimeyGuitar::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamJ: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 ChimeyGuitar::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool ChimeyGuitar::getEffectName(char* name) {
vst_strncpy(name, "ChimeyGuitar", kVstMaxProductStrLen); return true;
}
VstPlugCategory ChimeyGuitar::getPlugCategory() {return kPlugCategEffect;}
bool ChimeyGuitar::getProductString(char* text) {
vst_strncpy (text, "airwindows ChimeyGuitar", kVstMaxProductStrLen); return true;
}
bool ChimeyGuitar::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,116 @@
/* ========================================
* ChimeyGuitar - ChimeyGuitar.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ChimeyGuitar_H
#define __ChimeyGuitar_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kParamD =3,
kParamE =4,
kParamF =5,
kParamG =6,
kParamH =7,
kParamI =8,
kParamJ =9,
kNumParameters = 10
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'cgtr'; //Change this to what the AU identity is!
class ChimeyGuitar :
public AudioEffectX
{
public:
ChimeyGuitar(audioMasterCallback audioMaster);
~ChimeyGuitar();
virtual bool getEffectName(char* name); // The plug-in name
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
virtual bool getVendorString(char* text); // Vendor info
virtual VstInt32 getVendorVersion(); // Version number
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
virtual void getProgramName(char *name); // read the name from the host
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
virtual VstInt32 getChunk (void** data, bool isPreset);
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
virtual VstInt32 canDo(char *text);
private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
float A;
float B;
float C;
float D;
float E;
float F;
float G;
float H;
float I;
float J;
double angSL[22][12];
double angAL[22][12];
double iirHPositionL[37];
double iirHAngleL[37];
double iirBPositionL[37];
double iirBAngleL[37];
double angSR[22][12];
double angAR[22][12];
double iirHPositionR[37];
double iirHAngleR[37];
double iirBPositionR[37];
double iirBAngleR[37];
double angG[12];
enum {
bez_AL,
bez_BL,
bez_CL,
bez_InL,
bez_UnInL,
bez_SampL,
bez_cycleL,
bez_AR,
bez_BR,
bez_CR,
bez_InR,
bez_UnInR,
bez_SampR,
bez_cycleR,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total][12];
double bezRezA, bezRezB;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,296 @@
/* ========================================
* ChimeyGuitar - ChimeyGuitar.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ChimeyGuitar_H
#include "ChimeyGuitar.h"
#endif
void ChimeyGuitar::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
int poles = (int)(pow(A,2)*20.0);
angG[0] = sqrt(B*2.0);
angG[2] = sqrt(C*2.0);
angG[4] = sqrt(D*2.0);
angG[6] = sqrt(E*2.0);
angG[8] = sqrt(F*2.0);
angG[1] = (angG[0]+angG[2])*0.5;
angG[3] = (angG[2]+angG[4])*0.5;
angG[5] = (angG[4]+angG[6])*0.5;
angG[7] = (angG[6]+angG[8])*0.5;
angG[9] = angG[8];
double hFreq = pow(G,overallscale);
double lFreq = pow(H,overallscale+3.0);
bezRezA = bezRezB; bezRezB = ((pow(I,4.0)*0.5)+0.0002)/overallscale;
if (bezRezB > 1.0) bezRezB = 1.0;
double output = J;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double temp = (double)sampleFrames/inFramesToProcess;
double bezRez = (bezRezA*temp)+(bezRezB*(1.0-temp));
double CBAL = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSampleL; inputSampleL = 0.0;
for (int y = 0; y < 9; y++) {
angAL[x][y] = (angAL[x][y]*(1.0-fr)) + ((band-angSL[x][y])*fr);
double temp = band; band = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
angSL[x][y] = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSampleL += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycleL][y] += bezRez;
bezComp[bez_SampL][y] += (fabs(inputSampleL) * bezRez);
if (bezComp[bez_cycleL][y] > 1.0) {
bezComp[bez_cycleL][y] -= 1.0;
bezComp[bez_CL][y] = bezComp[bez_BL][y];
bezComp[bez_BL][y] = bezComp[bez_AL][y];
bezComp[bez_AL][y] = bezComp[bez_SampL][y];
bezComp[bez_SampL][y] = 0.0;
}
double CBL = (bezComp[bez_CL][y]*(1.0-bezComp[bez_cycleL][y]))+(bezComp[bez_BL][y]*bezComp[bez_cycleL][y]);
double BAL = (bezComp[bez_BL][y]*(1.0-bezComp[bez_cycleL][y]))+(bezComp[bez_AL][y]*bezComp[bez_cycleL][y]);
CBAL += (bezComp[bez_BL][y]+(CBL*(1.0-bezComp[bez_cycleL][y]))+(BAL*bezComp[bez_cycleL][y]))*0.5;
inputSampleL *= 1.0-(fmin(CBAL*0.01,1.0));
}
inputSampleL += (band*angG[9]);
}
inputSampleL = sin(inputSampleL);
double lowSample = inputSampleL;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngleL[count] = (iirBAngleL[count]*(1.0-lFreq))+((lowSample-iirBPositionL[count])*lFreq);
lowSample = ((iirBPositionL[count]+(iirBAngleL[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPositionL[count] = ((iirBPositionL[count]+(iirBAngleL[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSampleL -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((inputSampleL-iirHPositionL[count])*hFreq);
inputSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(inputSampleL*hFreq);
iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(inputSampleL*hFreq);
} //the lowpass
inputSampleL *= output;
double CBAR = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSampleR; inputSampleR = 0.0;
for (int y = 0; y < 9; y++) {
angAR[x][y] = (angAR[x][y]*(1.0-fr)) + ((band-angSR[x][y])*fr);
double temp = band; band = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
angSR[x][y] = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSampleR += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycleR][y] += bezRez;
bezComp[bez_SampR][y] += (fabs(inputSampleR) * bezRez);
if (bezComp[bez_cycleR][y] > 1.0) {
bezComp[bez_cycleR][y] -= 1.0;
bezComp[bez_CR][y] = bezComp[bez_BR][y];
bezComp[bez_BR][y] = bezComp[bez_AR][y];
bezComp[bez_AR][y] = bezComp[bez_SampR][y];
bezComp[bez_SampR][y] = 0.0;
}
double CBR = (bezComp[bez_CR][y]*(1.0-bezComp[bez_cycleR][y]))+(bezComp[bez_BR][y]*bezComp[bez_cycleR][y]);
double BAR = (bezComp[bez_BR][y]*(1.0-bezComp[bez_cycleR][y]))+(bezComp[bez_AR][y]*bezComp[bez_cycleR][y]);
CBAR += (bezComp[bez_BR][y]+(CBR*(1.0-bezComp[bez_cycleR][y]))+(BAR*bezComp[bez_cycleR][y]))*0.5;
inputSampleR *= 1.0-(fmin(CBAR*0.01,1.0));
}
inputSampleR += (band*angG[9]);
}
inputSampleR = sin(inputSampleR);
lowSample = inputSampleR;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngleR[count] = (iirBAngleR[count]*(1.0-lFreq))+((lowSample-iirBPositionR[count])*lFreq);
lowSample = ((iirBPositionR[count]+(iirBAngleR[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPositionR[count] = ((iirBPositionR[count]+(iirBAngleR[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSampleR -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((inputSampleR-iirHPositionR[count])*hFreq);
inputSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(inputSampleR*hFreq);
iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(inputSampleR*hFreq);
} //the lowpass
inputSampleR *= output;
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}
void ChimeyGuitar::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
int poles = (int)(pow(A,2)*20.0);
angG[0] = sqrt(B*2.0);
angG[2] = sqrt(C*2.0);
angG[4] = sqrt(D*2.0);
angG[6] = sqrt(E*2.0);
angG[8] = sqrt(F*2.0);
angG[1] = (angG[0]+angG[2])*0.5;
angG[3] = (angG[2]+angG[4])*0.5;
angG[5] = (angG[4]+angG[6])*0.5;
angG[7] = (angG[6]+angG[8])*0.5;
angG[9] = angG[8];
double hFreq = pow(G,overallscale);
double lFreq = pow(H,overallscale+3.0);
bezRezA = bezRezB; bezRezB = ((pow(I,4.0)*0.5)+0.0002)/overallscale;
if (bezRezB > 1.0) bezRezB = 1.0;
double output = J;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double temp = (double)sampleFrames/inFramesToProcess;
double bezRez = (bezRezA*temp)+(bezRezB*(1.0-temp));
double CBAL = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSampleL; inputSampleL = 0.0;
for (int y = 0; y < 9; y++) {
angAL[x][y] = (angAL[x][y]*(1.0-fr)) + ((band-angSL[x][y])*fr);
double temp = band; band = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
angSL[x][y] = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSampleL += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycleL][y] += bezRez;
bezComp[bez_SampL][y] += (fabs(inputSampleL) * bezRez);
if (bezComp[bez_cycleL][y] > 1.0) {
bezComp[bez_cycleL][y] -= 1.0;
bezComp[bez_CL][y] = bezComp[bez_BL][y];
bezComp[bez_BL][y] = bezComp[bez_AL][y];
bezComp[bez_AL][y] = bezComp[bez_SampL][y];
bezComp[bez_SampL][y] = 0.0;
}
double CBL = (bezComp[bez_CL][y]*(1.0-bezComp[bez_cycleL][y]))+(bezComp[bez_BL][y]*bezComp[bez_cycleL][y]);
double BAL = (bezComp[bez_BL][y]*(1.0-bezComp[bez_cycleL][y]))+(bezComp[bez_AL][y]*bezComp[bez_cycleL][y]);
CBAL += (bezComp[bez_BL][y]+(CBL*(1.0-bezComp[bez_cycleL][y]))+(BAL*bezComp[bez_cycleL][y]))*0.5;
inputSampleL *= 1.0-(fmin(CBAL*0.01,1.0));
}
inputSampleL += (band*angG[9]);
}
inputSampleL = sin(inputSampleL);
double lowSample = inputSampleL;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngleL[count] = (iirBAngleL[count]*(1.0-lFreq))+((lowSample-iirBPositionL[count])*lFreq);
lowSample = ((iirBPositionL[count]+(iirBAngleL[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPositionL[count] = ((iirBPositionL[count]+(iirBAngleL[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSampleL -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngleL[count] = (iirHAngleL[count]*(1.0-hFreq))+((inputSampleL-iirHPositionL[count])*hFreq);
inputSampleL = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(inputSampleL*hFreq);
iirHPositionL[count] = ((iirHPositionL[count]+(iirHAngleL[count]*hFreq))*(1.0-hFreq))+(inputSampleL*hFreq);
} //the lowpass
inputSampleL *= output;
double CBAR = 0.0;
for (int x = 0; x < poles; x++) {
double fr = 0.9/overallscale;
double band = inputSampleR; inputSampleR = 0.0;
for (int y = 0; y < 9; y++) {
angAR[x][y] = (angAR[x][y]*(1.0-fr)) + ((band-angSR[x][y])*fr);
double temp = band; band = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
angSR[x][y] = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
inputSampleR += ((temp-band)*angG[y]);
fr *= 0.618033988749894;
bezComp[bez_cycleR][y] += bezRez;
bezComp[bez_SampR][y] += (fabs(inputSampleR) * bezRez);
if (bezComp[bez_cycleR][y] > 1.0) {
bezComp[bez_cycleR][y] -= 1.0;
bezComp[bez_CR][y] = bezComp[bez_BR][y];
bezComp[bez_BR][y] = bezComp[bez_AR][y];
bezComp[bez_AR][y] = bezComp[bez_SampR][y];
bezComp[bez_SampR][y] = 0.0;
}
double CBR = (bezComp[bez_CR][y]*(1.0-bezComp[bez_cycleR][y]))+(bezComp[bez_BR][y]*bezComp[bez_cycleR][y]);
double BAR = (bezComp[bez_BR][y]*(1.0-bezComp[bez_cycleR][y]))+(bezComp[bez_AR][y]*bezComp[bez_cycleR][y]);
CBAR += (bezComp[bez_BR][y]+(CBR*(1.0-bezComp[bez_cycleR][y]))+(BAR*bezComp[bez_cycleR][y]))*0.5;
inputSampleR *= 1.0-(fmin(CBAR*0.01,1.0));
}
inputSampleR += (band*angG[9]);
}
inputSampleR = sin(inputSampleR);
lowSample = inputSampleR;
for(int count = 0; count < (3.0+(lFreq*32.0)); count++) {
iirBAngleR[count] = (iirBAngleR[count]*(1.0-lFreq))+((lowSample-iirBPositionR[count])*lFreq);
lowSample = ((iirBPositionR[count]+(iirBAngleR[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
iirBPositionR[count] = ((iirBPositionR[count]+(iirBAngleR[count]*lFreq))*(1.0-lFreq))+(lowSample*lFreq);
inputSampleR -= (lowSample * (1.0/(3.0+(lFreq*32.0))) );
}
for(int count = 0; count < (3.0+(hFreq*32.0)); count++) {
iirHAngleR[count] = (iirHAngleR[count]*(1.0-hFreq))+((inputSampleR-iirHPositionR[count])*hFreq);
inputSampleR = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(inputSampleR*hFreq);
iirHPositionR[count] = ((iirHPositionR[count]+(iirHAngleR[count]*hFreq))*(1.0-hFreq))+(inputSampleR*hFreq);
} //the lowpass
inputSampleR *= output;
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

View file

@ -0,0 +1,108 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* kCosmos */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
324,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 768305205;
PBXWorkspaceStateSaveDate = 768305205;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* kCosmos.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1119, 4320}}";
sepNavSelRange = "{492, 0}";
sepNavVisRange = "{0, 2805}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* kCosmos.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {848, 5814}}";
sepNavSelRange = "{1182, 0}";
sepNavVisRange = "{6611, 597}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{9653, 2414}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* kCosmosProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1029, 27702}}";
sepNavSelRange = "{48365, 0}";
sepNavVisRange = "{25987, 1436}";
sepNavWindowFrame = "{{31, 42}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* kCosmos */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

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

View file

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

View file

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

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