//-------------------------------------------------------------------------------- OSStatus BS2B::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo & outParameterInfo) { OSStatus status = noErr; outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable; switch (inParameterID) { case kParam_Level_Feed: FillInParameterName(outParameterInfo, CFSTR("Crossfeed level"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Decibels; outParameterInfo.minValue = BS2B_MINFEED/10.0; outParameterInfo.maxValue = BS2B_MAXFEED/10.0; outParameterInfo.defaultValue = 4.5; break; case kParam_Level_Fcut: FillInParameterName(outParameterInfo, CFSTR("Cutoff frequency"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Hertz; outParameterInfo.minValue = BS2B_MINFCUT; outParameterInfo.maxValue = BS2B_MAXFCUT; outParameterInfo.defaultValue = 700; break; default: status = kAudioUnitErr_InvalidParameter; break; } return status; }
OSStatus Talkbox::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo & outParameterInfo) { OSStatus status = noErr; outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable; switch(inParameterID) { case _WET: FillInParameterName(outParameterInfo, CFSTR("Wet"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 100.0; outParameterInfo.defaultValue = 50.0; break; case _DRY: FillInParameterName(outParameterInfo, CFSTR("Dry"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 100.0; outParameterInfo.defaultValue = 0.0; break; case _SWAP: FillInParameterName(outParameterInfo, CFSTR("Input Swap"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Boolean; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = 0.0; break; case _QUAL: FillInParameterName(outParameterInfo, CFSTR("Quality"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 10.0; outParameterInfo.maxValue = 100.0; outParameterInfo.defaultValue = 100.0; break; default: status = kAudioUnitErr_InvalidParameter; break; } return status; }
//-------------------------------------------------------------------------------- OSStatus Ring::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo & outParameterInfo) { OSStatus status = noErr; outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable; switch (inParameterID) { case kParam_Freq: FillInParameterName(outParameterInfo, CFSTR("frequency"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Hertz; outParameterInfo.minValue = 0.1f; outParameterInfo.maxValue = 16000.0f; outParameterInfo.defaultValue = 1000.0f; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplaySquareRoot; break; case kParam_Fine: FillInParameterName(outParameterInfo, CFSTR("fine tune"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 0.0f; break; case kParam_Feedback: FillInParameterName(outParameterInfo, CFSTR("feedback"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 95.0f; outParameterInfo.defaultValue = 0.0f; break; default: status = kAudioUnitErr_InvalidParameter; break; } return status; }
//-------------------------------------------------------------------------------- OSStatus DubDelay::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo & outParameterInfo) { OSStatus status = noErr; outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable; switch (inParameterID) { case kParam_Delay: FillInParameterName(outParameterInfo, CFSTR("delay"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Milliseconds; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = kMaxDelayTime * 1000.0f; outParameterInfo.defaultValue = 500.0f; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplaySquareRoot; break; case kParam_Feedback: FillInParameterName(outParameterInfo, CFSTR("feedback"), false); #ifdef USE_SOPHIA_PARAMETERS outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; #else outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; outParameterInfo.unitName = CFSTR("sat <-> limit"); outParameterInfo.minValue = -110.0f; #endif outParameterInfo.maxValue = 110.0f; outParameterInfo.defaultValue = 44.0f; break; #ifdef USE_SOPHIA_PARAMETERS case kParam_FeedbackMode: FillInParameterName(outParameterInfo, CFSTR("feedback mode"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = (float) (kNumFeedbackModes - 1); outParameterInfo.defaultValue = (float) kFeedbackMode_Limit; break; #endif case kParam_FeedbackTone: FillInParameterName(outParameterInfo, CFSTR("feedback tone"), false); outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit; outParameterInfo.unitName = CFSTR("low <-> high"); outParameterInfo.minValue = -100.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = -20.0f; break; case kParam_LFODepth: FillInParameterName(outParameterInfo, CFSTR("LFO depth"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 0.0f; break; case kParam_LFORate: FillInParameterName(outParameterInfo, CFSTR("LFO rate"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Hertz; outParameterInfo.minValue = 0.01f; outParameterInfo.maxValue = 10.0f; outParameterInfo.defaultValue = 3.0f; // outParameterInfo.flags |= kAudioUnitParameterFlag_DisplayLogarithmic; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplaySquareRoot; break; case kParam_WetMix: FillInParameterName(outParameterInfo, CFSTR("FX mix"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 33.0f; break; case kParam_Output: FillInParameterName(outParameterInfo, CFSTR("output"), false); outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 2.0f; outParameterInfo.defaultValue = 1.0f; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplayCubeRoot; break; default: status = kAudioUnitErr_InvalidParameter; break; } return status; }
//-------------------------------------------------------------------------------- OSStatus Stereo::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo & outParameterInfo) { OSStatus status = noErr; outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable; switch (inParameterID) { case kParam_Width: FillInParameterName(outParameterInfo, CFSTR("Width"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 56.0f; break; case kParam_Mode: FillInParameterName(outParameterInfo, CFSTR("Mode"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = kNumModes - 1; outParameterInfo.defaultValue = kMode_Comb; break; case kParam_Delay: FillInParameterName(outParameterInfo, CFSTR("Delay"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Milliseconds; outParameterInfo.minValue = 0.453514739229025f; outParameterInfo.maxValue = (kBufferSize_Seconds * 0.5f) * 1000.0f; outParameterInfo.defaultValue = 9.17442176870748f;//0.43f; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplaySquareRoot; break; case kParam_Balance: FillInParameterName(outParameterInfo, CFSTR("Balance"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Pan; outParameterInfo.minValue = -100.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 0.0f; break; case kParam_Mod: FillInParameterName(outParameterInfo, CFSTR("Mod"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Milliseconds; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = (kBufferSize_Seconds * 0.5f) * 1000.0f; outParameterInfo.defaultValue = 0.0f; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplaySquareRoot; break; case kParam_Rate: FillInParameterName(outParameterInfo, CFSTR("Rate"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Hertz; //powf(10.0f, 2.0f - (3.0f * value)) outParameterInfo.minValue = 0.01f;//100.0f outParameterInfo.maxValue = 10.0f;//0.1f outParameterInfo.defaultValue = 0.316227766017f;//3.16227766017f outParameterInfo.flags |= kAudioUnitParameterFlag_DisplayLogarithmic; break; default: status = kAudioUnitErr_InvalidParameter; break; } return status; }
//-------------------------------------------------------------------------------- OSStatus Tracker::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo & outParameterInfo) { OSStatus status = noErr; outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable; switch (inParameterID) { case kParam_Mode: FillInParameterName(outParameterInfo, CFSTR("mode"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; outParameterInfo.minValue = 0; outParameterInfo.maxValue = kNumModes - 1; outParameterInfo.defaultValue = kMode_Sine; break; case kParam_Dynamics: FillInParameterName(outParameterInfo, CFSTR("dynamics"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 100.0f; break; case kParam_Mix: FillInParameterName(outParameterInfo, CFSTR("mix"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 100.0f; break; case kParam_Tracking: FillInParameterName(outParameterInfo, CFSTR("glide"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 97.0f; break; case kParam_Transpose: FillInParameterName(outParameterInfo, CFSTR("transpose"), false); outParameterInfo.unit = kAudioUnitParameterUnit_RelativeSemiTones; outParameterInfo.minValue = -36.0f; outParameterInfo.maxValue = 36.0f; outParameterInfo.defaultValue = 0.0f; break; case kParam_Maximum: FillInParameterName(outParameterInfo, CFSTR("maximum"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Hertz; outParameterInfo.minValue = 40.0f; outParameterInfo.maxValue = 6309.0f; outParameterInfo.defaultValue = 2290.0f; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplayLogarithmic; break; case kParam_Trigger: FillInParameterName(outParameterInfo, CFSTR("trigger"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Decibels; outParameterInfo.minValue = -60.0f; outParameterInfo.maxValue = 0.0f; outParameterInfo.defaultValue = -30.0f; break; case kParam_Output: FillInParameterName(outParameterInfo, CFSTR("output"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Decibels; outParameterInfo.minValue = -20.0f; outParameterInfo.maxValue = 20.0f; outParameterInfo.defaultValue = 0.0f; break; case kParam_ChannelLink: FillInParameterName(outParameterInfo, CFSTR("channel link"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Boolean; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 1.0f; outParameterInfo.defaultValue = 0.0f; break; default: status = kAudioUnitErr_InvalidParameter; break; } return status; }
OSStatus Combo::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo & outParameterInfo) { OSStatus status = noErr; outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable; switch(inParameterID) { case _MODEL: FillInParameterName(outParameterInfo, CFSTR("Speaker"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; outParameterInfo.minValue = 0; outParameterInfo.maxValue = 6; outParameterInfo.defaultValue = 6; break; case _HPF: FillInParameterName(outParameterInfo, CFSTR("HighPass"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Hertz; outParameterInfo.minValue = 20.0; outParameterInfo.maxValue = 2000.0; outParameterInfo.defaultValue = 100.0; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplayLogarithmic; break; case _DRIVE: FillInParameterName(outParameterInfo, CFSTR("Drive"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0; outParameterInfo.maxValue = 100.0; outParameterInfo.defaultValue = 50.0; break; case _HARD: FillInParameterName(outParameterInfo, CFSTR("Density"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = -1.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = 0.0; break; case _BIAS: FillInParameterName(outParameterInfo, CFSTR("Bias"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Generic; outParameterInfo.minValue = -1.0; outParameterInfo.maxValue = 1.0; outParameterInfo.defaultValue = 0.0; break; case _OUTPUT: FillInParameterName(outParameterInfo, CFSTR("Output"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Decibels; outParameterInfo.minValue = -20.0; outParameterInfo.maxValue = 20.0; outParameterInfo.defaultValue = 0.0; break; default: status = kAudioUnitErr_InvalidParameter; break; } return status; }
//-------------------------------------------------------------------------------- OSStatus SubSynth::GetParameterInfo(AudioUnitScope inScope, AudioUnitParameterID inParameterID, AudioUnitParameterInfo & outParameterInfo) { OSStatus status = noErr; outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable; switch (inParameterID) { case kParam_Type: FillInParameterName(outParameterInfo, CFSTR("Type"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = kNumModes - 1; outParameterInfo.defaultValue = kMode_Distort; break; case kParam_Level: FillInParameterName(outParameterInfo, CFSTR("Level"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 30.0f; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplayCubeRoot; break; //0.0726f * GetSampleRate() * powf(10.0f, -2.5f + (1.5f * fParam3)) // 10 - 320 Hz case kParam_Tune: FillInParameterName(outParameterInfo, CFSTR("Tune"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Hertz; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 1.0f; outParameterInfo.defaultValue = 0.6f; outParameterInfo.flags |= kAudioUnitParameterFlag_ValuesHaveStrings; break; case kParam_DryMix: FillInParameterName(outParameterInfo, CFSTR("Dry Mix"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Percent; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 100.0f; outParameterInfo.defaultValue = 100.0f; outParameterInfo.flags |= kAudioUnitParameterFlag_DisplayCubeRoot; break; case kParam_Threshold: FillInParameterName(outParameterInfo, CFSTR("Threshold"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Decibels; outParameterInfo.minValue = -60.0f; outParameterInfo.maxValue = 0.0f; outParameterInfo.defaultValue = -24.0f; break; //rls = 1.0f - powf(10.0f, -2.0f - (3.0f * fParam6)) //-301.03f / (GetSampleRate() * log10f(rls)) // 1 - 1569 ms case kParam_Release: FillInParameterName(outParameterInfo, CFSTR("Release"), false); outParameterInfo.unit = kAudioUnitParameterUnit_Milliseconds; outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 1.0f; outParameterInfo.defaultValue = 0.65f; outParameterInfo.flags |= kAudioUnitParameterFlag_ValuesHaveStrings; break; default: status = kAudioUnitErr_InvalidParameter; break; } return status; }