TTErr TTSvf::setMode(const TTValue& newValue) { TTSymbolPtr newMode = newValue; if (newMode == TT("lowpass")) { setProcessMethod(processLowpass); setCalculateMethod(calculateLowpass); } else if (newMode == TT("highpass")) { setProcessMethod(processHighpass); setCalculateMethod(calculateHighpass); } else if (newMode == TT("bandpass")) { setProcessMethod(processBandpass); setCalculateMethod(calculateBandpass); } else if (newMode == TT("notch")) { setProcessMethod(processNotch); setCalculateMethod(calculateNotch); } else if (newMode == TT("peak")) { setProcessMethod(processPeak); setCalculateMethod(calculatePeak); } else { logError("bad mode specified for TTSvf: %s", newMode->getCString()); return kTTErrInvalidValue; } mMode = newMode; return kTTErrNone; }
TTErr TTLogFunction::setBase(const TTValue& newValue) { mBase = newValue; k = 1. / log(mBase); l = mBase - 1.; if (mBase == 1) { setProcessMethod(processAudioBypass); setCalculateMethod(calculateValueBypass); } else{ setProcessMethod(processAudio); setCalculateMethod(calculateValue); } return kTTErrNone; }
TTErr TTExpFunction::setBase(const TTValue& newValue) { mBase = newValue; k = log(mBase); if (mBase != 1.0){ setProcessMethod(processAudio); setCalculateMethod(calculateValue); } else { setProcessMethod(processAudioBypass); // Avoid division by zero setCalculateMethod(calculateValueBypass); } return kTTErrNone; }