BowelyzerAnalyzer{ var Synth.new( name, [ inputChannel: input, sendReplyFreq: controls.at(\sendReplyFreq), amplitudeAttackTime: controls.at(\amplitudeAttackTime), amplitudeReleaseTime: controls.at(\amplitudeReleaseTime), hfHainsworth: controls.at(\hfhainsworth), hfFoote: controls.at(\hfFoote), hfThreshold: controls.at(\hfThreshold), hfWaitTime: controls.at(\hfWaitTime), pitchInitFreq: controls.at(\pitchInitFreq), pitchMinFreq: controls.at(\pitchMinFreq), pitchMaxFreq: controls.at(\pitchMaxFreq), pitchExecFreq: controls.at(\pitchExecFreq), pitchMaxBinsPerOctave: controls.at(\pitchMaxBinsPerOctave), pitchMedian: controls.at(\pitchMedian), pitchAmpThreshold: controls.at(\pitchAmpThreshold), pitchPeakThreshold: controls.at(\pitchPeakThreshold), pitchDownSample: controls.at(\pitchDownSample) ], analyzerGroup ).register; ); },{ synths.add(name -> Synth.newPaused( name, [ inputChannel: input, sendReplyFreq: controls.at(\sendReplyFreq), amplitudeAttackTime: controls.at(\amplitudeAttackTime), amplitudeReleaseTime: controls.at(\amplitudeReleaseTime), hfHainsworth: controls.at(\hfhainsworth), hfFoote: controls.at(\hfFoote), hfThreshold: controls.at(\hfThreshold), hfWaitTime: controls.at(\hfWaitTime), pitchInitFreq: controls.at(\pitchInitFreq), pitchMinFreq: controls.at(\pitchMinFreq), pitchMaxFreq: controls.at(\pitchMaxFreq), pitchExecFreq: controls.at(\pitchExecFreq), pitchMaxBinsPerOctave: controls.at(\pitchMaxBinsPerOctave), pitchMedian: controls.at(\pitchMedian), pitchAmpThreshold: controls.at(\pitchAmpThreshold), pitchPeakThreshold: controls.at(\pitchPeakThreshold), pitchDownSample: controls.at(\pitchDownSample) ], analyzerGroup ).register; ); }); } // set a synth control by provoding its name, its control name and control value setSynthControl{ arg name, controlName, controlValue; synths.at(name).set(controlName, controlValue); } // start a synth by name startAnalysisSynth{ arg name; synths.at(name).run(true); } // stop a synth by name stopAnalysisSynth{ arg name; synths.at(name).run(false); } // free a synth by name freeAnalysisSynth{ arg name; ("Freeing Synth: "++name).postln; synths.at(name).free; } startAllAnalysisSynths{ analyzerGroup.run(true); } stopAllAnalysisSynths{ analyzerGroup.run(false); } }