//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Filter::NewFactoryPresetSet // //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OSStatus Filter::NewFactoryPresetSet (const AUPreset & inNewFactoryPreset) { SInt32 chosenPreset = inNewFactoryPreset.presetNumber; for(int i = 0; i < kNumberPresets; ++i) { if(chosenPreset == kPresets[i].presetNumber) { // set whatever state you need to based on this preset's selection // // Here we use a switch statement, but it would also be possible to // use chosenPreset as an index into an array (if you publish the preset // numbers as indices in the GetPresets() method) // switch(chosenPreset) { case kPreset_One: SetParameter(kFilterParam_CutoffFrequency, 200.0 ); SetParameter(kFilterParam_Resonance, -5.0 ); break; case kPreset_Two: SetParameter(kFilterParam_CutoffFrequency, 1000.0 ); SetParameter(kFilterParam_Resonance, 10.0 ); break; } SetAFactoryPresetAsCurrent (kPresets[i]); return noErr; } } return kAudioUnitErr_InvalidPropertyValue; }
OSStatus Tremolo::NewFactoryPresetSet(const AUPreset &inNewFactoryPreset) { SInt32 chosenPreset = inNewFactoryPreset.presetNumber; if (chosenPreset == kPreset_Slow || chosenPreset == kPreset_Fast) { for (int i = 0; i < kNumberPresets; ++i) { if (chosenPreset == kPresets[i].presetNumber) { switch (chosenPreset) { case kPreset_Slow: SetParameter(kParameter_Frequency, kParameter_Preset_Frequency_Slow); SetParameter(kParameter_Depth, kParameter_Preset_Depth_Slow); SetParameter(kParameter_Waveform, kParameter_Preset_Waveform_Slow); break; case kPreset_Fast: SetParameter(kParameter_Frequency, kParameter_Preset_Frequency_Fast); SetParameter(kParameter_Depth, kParameter_Preset_Depth_Fast); SetParameter(kParameter_Waveform, kParameter_Preset_Waveform_Fast); break; } SetAFactoryPresetAsCurrent(kPresets[i]); return noErr; } } } return kAudioUnitErr_InvalidProperty; }
OSStatus FullBacano::NewFactoryPresetSet ( // 1 const AUPreset &inNewFactoryPreset ) { SInt32 chosenPreset = inNewFactoryPreset.presetNumber; // 2 if ( // 3 chosenPreset == kPreset_Mera || chosenPreset == kPreset_NoTanBacano ) { for (int i = 0; i < kNumberPresets; ++i) { // 4 if (chosenPreset == kPresets[i].presetNumber) { switch (chosenPreset) { // 5 case kPreset_Mera: // 6 SetParameter ( // 7 kParameter_Frequency, kParameter_Preset_Frequency_Mera ); SetParameter ( // 8 kParameter_Bacaneria, kParameter_Preset_Bacaneria_Mera ); SetParameter ( // 9 kParameter_LaMondaEnElVolco, kParameter_Preset_LaMondaEnElVolco_Mera ); break; case kPreset_NoTanBacano: // 10 SetParameter ( kParameter_Frequency, kParameter_Preset_Frequency_NoTanBacano ); SetParameter ( kParameter_Bacaneria, kParameter_Preset_Bacaneria_NoTanBacano ); SetParameter ( kParameter_LaMondaEnElVolco, kParameter_Preset_LaMondaEnElVolco_NoTanBacano ); break; } SetAFactoryPresetAsCurrent ( // 11 kPresets [i] ); return noErr; // 12 } } } return kAudioUnitErr_InvalidProperty; // 13 }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Tremolo::Tremolo //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tremolo::Tremolo(AudioUnit component) : AUEffectBase(component) { CreateElements(); Globals()->UseIndexedParameters(kNumberOfParameters); SetParameter(kParameter_Frequency, kDefaultValue_Tremolo_Freq); SetParameter(kParameter_Depth, kDefaultValue_Tremolo_Depth); SetParameter(kParameter_Waveform, kDefaultValue_Tremolo_Waveform); SetAFactoryPresetAsCurrent(kPresets[kPreset_Default]); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher(this); #endif }
OSStatus SampleEffectUnit::NewFactoryPresetSet (const AUPreset & inNewFactoryPreset) { SInt32 chosenPreset = inNewFactoryPreset.presetNumber; for (int i = 0; i < kNumberPresets; ++i) { if (chosenPreset == kPresets[i].presetNumber) { // set whatever state you need to based on this preset's selection SetAFactoryPresetAsCurrent (kPresets[i]); return noErr; } } return kAudioUnitErr_InvalidPropertyValue; }
//----------------------------------------------------------------------------- OSStatus C700::NewFactoryPresetSet(const AUPreset &inNewFactoryPreset) { UInt32 chosenPreset = inNewFactoryPreset.presetNumber; if ( chosenPreset < (UInt32)NUM_PRESETS ) { mEfx->SelectPreset(chosenPreset); char cname[32]; CFStringGetCString(inNewFactoryPreset.presetName, cname, 32, kCFStringEncodingASCII); //mEfx->setProgramName(cname); SetAFactoryPresetAsCurrent(inNewFactoryPreset); for ( UInt32 i=0; i<kNumberOfParameters; i++ ) { Globals()->SetParameter(i, mEfx->GetParameter(i)); } return noErr; } return kAudioUnitErr_InvalidPropertyValue; }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // FullBacano::FullBacano //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FullBacano::FullBacano (AudioUnit component) : AUEffectBase (component) { /* ofstream logFile; logFile.open ("debugLog.raw"); logFile << "Writing this to a file.\n"; logFile.close(); */ CreateElements (); Globals () -> UseIndexedParameters (kNumberOfParameters); SetParameter ( // 1 kParameter_Frequency, kDefaultValue_FullBacano_Freq ); SetParameter ( // 2 kParameter_Bacaneria, kDefaultValue_FullBacano_Bacaneria ); SetParameter ( // 2 kParameter_Ganancia, kDefaultValue_FullBacano_Ganancia ); SetParameter ( // 3 kParameter_LaMondaEnElVolco, kDefaultValue_FullBacano_LaMondaEnElVolco ); // code for setting default values for the audio unit parameters SetAFactoryPresetAsCurrent ( // 1 kPresets [kPreset_Default] ); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher (this); #endif }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SampleEffectUnit::SampleEffectUnit // //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SampleEffectUnit::SampleEffectUnit(AudioUnit component) : AUEffectBase(component) { CreateElements(); if (!sLocalized) { // Because we are in a component, we need to load our bundle by identifier so we can access our localized strings // It is important that the string passed here exactly matches that in the Info.plist Identifier string CFBundleRef bundle = CFBundleGetBundleWithIdentifier( CFSTR("com.acme.audiounit.passthrough") ); if (bundle != NULL) { for (int i = 0; i < kNumberPresets; i++ ) { kPresets[i].presetName = CFCopyLocalizedStringFromTableInBundle( kPresets[i].presetName, // string to localize CFSTR("Localizable"), // strings file to search bundle, // bundle to search CFSTR("")); // no comment } kParameterValueStringsOne = CFCopyLocalizedStringFromTableInBundle(kParameterValueStringsOne, CFSTR("Localizable"), bundle, CFSTR("")); kParameterValueStringsTwo = CFCopyLocalizedStringFromTableInBundle(kParameterValueStringsTwo, CFSTR("Localizable"), bundle, CFSTR("")); kParameterValueStringsThree = CFCopyLocalizedStringFromTableInBundle(kParameterValueStringsThree, CFSTR("Localizable"), bundle, CFSTR("")); kParameterOneName = CFCopyLocalizedStringFromTableInBundle(kParameterOneName, CFSTR("Localizable"), bundle, CFSTR("")); kParameterTwoName = CFCopyLocalizedStringFromTableInBundle(kParameterTwoName, CFSTR("Localizable"), bundle, CFSTR("")); kParameterThree_IndexedName = CFCopyLocalizedStringFromTableInBundle(kParameterThree_IndexedName, CFSTR("Localizable"), bundle, CFSTR("")); kParameterFourName = CFCopyLocalizedStringFromTableInBundle(kParameterFourName, CFSTR("Localizable"), bundle, CFSTR("")); } sLocalized = true; //so never pass the test again... } // example of setting up params... SetParameter(kParam_One, kDefaultValue_ParamOne ); SetParameter(kParam_Two, kDefaultValue_ParamTwo ); SetParameter(kParam_Three_Indexed, kDefaultValue_ParamThree_Indexed ); SetParameter(kParam_Four, kDefaultValue_ParamFour ); SetAFactoryPresetAsCurrent (kPresets[kPresetDefaultIndex]); }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // TremoloUnit::TremoloUnit //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // The constructor for new TremoloUnit audio units TremoloUnit::TremoloUnit (AudioUnit component) : AUEffectBase (component) { // This method, defined in the AUBase superclass, ensures that the required audio unit // elements are created and initialized. CreateElements (); // Invokes the use of an STL vector for parameter access. // See AUBase/AUScopeElement.cpp Globals () -> UseIndexedParameters (kNumberOfParameters); // During instantiation, sets up the parameters according to their defaults. // The parameter defaults should correspond to the settings for the default preset. SetParameter ( kParameter_Frequency, kDefaultValue_Tremolo_Freq ); SetParameter ( kParameter_Depth, kDefaultValue_Tremolo_Depth ); SetParameter ( kParameter_Waveform, kDefaultValue_Tremolo_Waveform ); // Also during instantiation, sets the preset menu to indicate the default preset, // which corresponds to the default parameters. It's possible to set this so a // fresh audio unit indicates the wrong preset, so be careful to get it right. SetAFactoryPresetAsCurrent ( kPresets [kPreset_Default] ); #if AU_DEBUG_DISPATCHER mDebugDispatcher = new AUDebugDispatcher (this); #endif }
// This method takes a single argument of type AUPreset, a structure containing a factory // preset name and number. OSStatus TremoloUnit::NewFactoryPresetSet ( const AUPreset &inNewFactoryPreset ) { // Gets the number of the desired factory preset. SInt32 chosenPreset = inNewFactoryPreset.presetNumber; if ( // Tests whether the desired factory preset is defined. chosenPreset == kPreset_Slow || chosenPreset == kPreset_Fast ) { // This 'for' loop, and the 'if' statement that follows it, allow for noncontiguous preset // numbers. for (int i = 0; i < kNumberPresets; ++i) { if (chosenPreset == kPresets[i].presetNumber) { //Selects the appropriate case statement based on the factory preset number. switch (chosenPreset) { // The settings for the "Slow & Gentle" factory preset. case kPreset_Slow: SetParameter ( kParameter_Frequency, kParameter_Preset_Frequency_Slow ); SetParameter ( kParameter_Depth, kParameter_Preset_Depth_Slow ); SetParameter ( kParameter_Waveform, kParameter_Preset_Waveform_Slow ); break; // The settings for the "Fast & Hard" factory preset. case kPreset_Fast: SetParameter ( kParameter_Frequency, kParameter_Preset_Frequency_Fast ); SetParameter ( kParameter_Depth, kParameter_Preset_Depth_Fast ); SetParameter ( kParameter_Waveform, kParameter_Preset_Waveform_Fast ); break; } // Updates the preset menu in the generic view to display the new factory preset. SetAFactoryPresetAsCurrent ( kPresets [i] ); return noErr; } } } return kAudioUnitErr_InvalidProperty; }