From 6e44926cf63de05cbf6a35c7772ba988fde8856e Mon Sep 17 00:00:00 2001 From: Owen Green Date: Fri, 17 Sep 2021 13:19:59 +0100 Subject: [PATCH] Better FluidStats class and basic example for help --- release-packaging/Classes/FluidStats.sc | 30 ++++-------- .../HelpSource/Classes/FluidStats.schelp | 47 +++++++++++++++++++ 2 files changed, 55 insertions(+), 22 deletions(-) create mode 100644 release-packaging/HelpSource/Classes/FluidStats.schelp diff --git a/release-packaging/Classes/FluidStats.sc b/release-packaging/Classes/FluidStats.sc index 5447e36..a6a3187 100644 --- a/release-packaging/Classes/FluidStats.sc +++ b/release-packaging/Classes/FluidStats.sc @@ -2,22 +2,22 @@ FluidStats : MultiOutUGen { var FluidCorpusManipulation +related:: Classes/FluidBufStats, Classes/FluidStandardize + +DESCRIPTION:: +Computes the rolling mean and sample standard deviation over a given window for multichannel kr inputs. + +This UGen does not perform multichannel expansion because (like link::Classes/BufWr::) it takes an array as input. + +CLASSMETHODS:: + +METHOD:: kr +Run the UGen + +ARGUMENT:: inputsArray +An array (or just one) kr input stream. + +ARGUMENT:: size +The size of the history window to use + +returns:: A 2D array of kr outputs code::[[means][standard deviations]]:: + +INSTANCEMETHODS:: + +PRIVATE:: numOutputs, initOutputs, init, channels,checkInputs + +EXAMPLES:: + +code:: +( +~gaussianNoise = { |a,b| + var mag = (-2 * a.abs.log).sqrt; + var f = 2 * pi * b.abs; + [mag * f.cos, mag * f.sin] +} + + + +{ + var src = ~gaussianNoise.value(WhiteNoise.kr,WhiteNoise.kr); + var stats = FluidStats.kr(src,20); + stats[0].poll(label:'means'); + stats[1].poll(label:'standard deviations'); +}.play +) +::