Exemplo n.º 1
0
OSStatus			SinSynth::GetParameterInfo(		AudioUnitScope					inScope,
                                               AudioUnitParameterID			inParameterID,
                                               AudioUnitParameterInfo &		outParameterInfo)
{
	if (inParameterID != kGlobalVolumeParam) return kAudioUnitErr_InvalidParameter;
	if (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope;
    
	outParameterInfo.flags = SetAudioUnitParameterDisplayType (0, kAudioUnitParameterFlag_DisplaySquareRoot);
    outParameterInfo.flags += kAudioUnitParameterFlag_IsWritable;
	outParameterInfo.flags += kAudioUnitParameterFlag_IsReadable;
    
	AUBase::FillInParameterName (outParameterInfo, kGlobalVolumeName, false);
	outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain;
	outParameterInfo.minValue = 0;
	outParameterInfo.maxValue = 1.0;
	outParameterInfo.defaultValue = 1.0;
	return noErr;
}
Exemplo n.º 2
0
OSStatus AKSampler_Plugin::GetParameterInfo(    AudioUnitScope          inScope,
                                                AudioUnitParameterID    inParameterID,
                                                AudioUnitParameterInfo& outParameterInfo)
{
	if (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope;

    outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable;

    switch (inParameterID) {
        case kMasterVolumeFraction:
            outParameterInfo.flags += SetAudioUnitParameterDisplayType (0, kAudioUnitParameterFlag_DisplaySquareRoot);
            AUBase::FillInParameterName (outParameterInfo, paramName[kMasterVolumeFraction], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 1.0;
            outParameterInfo.defaultValue = 1.0;
            break;
            
        case kPitchOffsetSemitones:
            AUBase::FillInParameterName (outParameterInfo, paramName[kPitchOffsetSemitones], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_RelativeSemiTones;
            outParameterInfo.minValue = -24.0;
            outParameterInfo.maxValue = 24.0;
            outParameterInfo.defaultValue = 0.0;
            break;
    
        case kVibratoDepthSemitones:
            AUBase::FillInParameterName (outParameterInfo, paramName[kVibratoDepthSemitones], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_RelativeSemiTones;
            outParameterInfo.minValue = 0.0;
            outParameterInfo.maxValue = 24.0;
            outParameterInfo.defaultValue = 0.0;
            break;
            
        case kLoopThruRelease:
            AUBase::FillInParameterName (outParameterInfo, paramName[kLoopThruRelease], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Boolean;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 1.0;
            outParameterInfo.defaultValue = 0.0;
            break;

        case kMonophonic:
            AUBase::FillInParameterName (outParameterInfo, paramName[kMonophonic], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Boolean;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 1.0;
            outParameterInfo.defaultValue = 0.0;
            break;

        case kLegato:
            AUBase::FillInParameterName (outParameterInfo, paramName[kLegato], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Boolean;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 1.0;
            outParameterInfo.defaultValue = 0.0;
            break;

        case kGlideRate:
            AUBase::FillInParameterName (outParameterInfo, paramName[kGlideRate], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Seconds;
            outParameterInfo.minValue = 0.0;
            outParameterInfo.maxValue = 10.0;
            outParameterInfo.defaultValue = 0.0;
            break;

        case kFilterEnable:
            AUBase::FillInParameterName (outParameterInfo, paramName[kFilterEnable], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Boolean;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 1.0;
            outParameterInfo.defaultValue = 0.0;
            break;
            
        case kFilterCutoffHarmonic:
            outParameterInfo.flags += SetAudioUnitParameterDisplayType (0, kAudioUnitParameterFlag_DisplayLogarithmic);
            AUBase::FillInParameterName (outParameterInfo, paramName[kFilterCutoffHarmonic], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
            outParameterInfo.minValue = 1.0;
            outParameterInfo.maxValue = 1000.0;
            outParameterInfo.defaultValue = 1000.0;
            break;
    
        case kFilterCutoffEgStrength:
            outParameterInfo.flags += SetAudioUnitParameterDisplayType (0, kAudioUnitParameterFlag_DisplayLogarithmic);
            AUBase::FillInParameterName (outParameterInfo, paramName[kFilterCutoffEgStrength], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
            outParameterInfo.minValue = 0.0;
            outParameterInfo.maxValue = 100.0;
            outParameterInfo.defaultValue = 20.0;
            break;

        case kFilterResonanceDb:
            AUBase::FillInParameterName (outParameterInfo, paramName[kFilterResonanceDb], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Decibels;
            outParameterInfo.minValue = -20.0;
            outParameterInfo.maxValue = 20.0;
            outParameterInfo.defaultValue = 0.0;
            break;
            
        case kAmpEgAttackTimeSeconds:
            AUBase::FillInParameterName (outParameterInfo, paramName[kAmpEgAttackTimeSeconds], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Seconds;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 10.0;
            outParameterInfo.defaultValue = 0.0;
            break;
    
        case kAmpEgDecayTimeSeconds:
            AUBase::FillInParameterName (outParameterInfo, paramName[kAmpEgDecayTimeSeconds], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Seconds;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 10.0;
            outParameterInfo.defaultValue = 0.0;
            break;
            
        case kAmpEgSustainFraction:
            AUBase::FillInParameterName (outParameterInfo, paramName[kAmpEgSustainFraction], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 1.0;
            outParameterInfo.defaultValue = 1.0;
            break;
    
        case kAmpEgReleaseTimeSeconds:
            AUBase::FillInParameterName (outParameterInfo, paramName[kAmpEgReleaseTimeSeconds], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Seconds;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 10.0;
            outParameterInfo.defaultValue = 0.0;
            break;
    
        case kFilterEgAttackTimeSeconds:
            AUBase::FillInParameterName (outParameterInfo, paramName[kFilterEgAttackTimeSeconds], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Seconds;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 10.0;
            outParameterInfo.defaultValue = 0.0;
            break;
    
        case kFilterEgDecayTimeSeconds:
            AUBase::FillInParameterName (outParameterInfo, paramName[kFilterEgDecayTimeSeconds], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Seconds;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 10.0;
            outParameterInfo.defaultValue = 0.0;
            break;
    
        case kFilterEgSustainFraction:
            outParameterInfo.flags += SetAudioUnitParameterDisplayType (0, kAudioUnitParameterFlag_DisplayExponential);
            AUBase::FillInParameterName (outParameterInfo, paramName[kFilterEgSustainFraction], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 1.0;
            outParameterInfo.defaultValue = 1.0;
            break;
            
        case kFilterEgReleaseTimeSeconds:
            AUBase::FillInParameterName (outParameterInfo, paramName[kFilterEgReleaseTimeSeconds], false);
            outParameterInfo.unit = kAudioUnitParameterUnit_Seconds;
            outParameterInfo.minValue = 0;
            outParameterInfo.maxValue = 10.0;
            outParameterInfo.defaultValue = 0.0;
            break;
            
        default:
            return kAudioUnitErr_InvalidParameter;
    }
    
	return noErr;
}
Exemplo n.º 3
0
OSStatus MT32Synth::GetParameterInfo(AudioUnitScope inScope,
                                     AudioUnitParameterID inParameterID,
                                     AudioUnitParameterInfo & outParameterInfo)
{

    if (inParameterID == kGlobalVolumeParam) {
        if (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope;
        
        outParameterInfo.flags = SetAudioUnitParameterDisplayType (0, kAudioUnitParameterFlag_DisplaySquareRoot);
        outParameterInfo.flags += kAudioUnitParameterFlag_IsWritable;
        outParameterInfo.flags += kAudioUnitParameterFlag_IsReadable;
        
        AUBase::FillInParameterName (outParameterInfo, kGlobalVolumeName, false);
        outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain;
        outParameterInfo.minValue = 0;
        outParameterInfo.maxValue = 5.0;
        outParameterInfo.defaultValue = 1.0;
        return noErr;
    } else if (inParameterID == kInstrumentParam) {
        if (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope;
        
        outParameterInfo.flags = kAudioUnitParameterFlag_ValuesHaveStrings;
        outParameterInfo.flags += kAudioUnitParameterFlag_IsWritable;
        outParameterInfo.flags += kAudioUnitParameterFlag_IsReadable;
        
        AUBase::FillInParameterName (outParameterInfo, kInstrumentName, false);
        outParameterInfo.unit = kAudioUnitParameterUnit_Indexed;
        outParameterInfo.minValue = 0;
        outParameterInfo.maxValue = 127.0;
        outParameterInfo.defaultValue = 0.0;        
        
        return noErr;
    } else if (inParameterID == kReverbEnabledParam) {
        if (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope;
        
        outParameterInfo.flags += kAudioUnitParameterFlag_IsWritable;
        outParameterInfo.flags += kAudioUnitParameterFlag_IsReadable;
        
        AUBase::FillInParameterName (outParameterInfo, kReverbEnabledParamName, false);
        outParameterInfo.unit = kAudioUnitParameterUnit_Boolean;
        outParameterInfo.minValue = 0;
        outParameterInfo.maxValue = 1.0;
        outParameterInfo.defaultValue = 1.0;
        
        return noErr;
    } else if (inParameterID == kReverbGainParam) {
        if (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope;
        
        outParameterInfo.flags += kAudioUnitParameterFlag_IsWritable;
        outParameterInfo.flags += kAudioUnitParameterFlag_IsReadable;
        
        AUBase::FillInParameterName (outParameterInfo, kReverbGainParamName, false);
        outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain;
        outParameterInfo.minValue = 0;
        outParameterInfo.maxValue = 5.0;
        outParameterInfo.defaultValue = 1.0;
        
        return noErr;
    } else {
        return noErr;
    }
}