|
|
|
|
@ -1,13 +1,13 @@
|
|
|
|
|
FluidPCA : FluidModelObject{
|
|
|
|
|
|
|
|
|
|
var <>numDimensions;
|
|
|
|
|
var <>numDimensions, <>whiten;
|
|
|
|
|
|
|
|
|
|
*new {|server, numDimensions = 2|
|
|
|
|
|
^super.new(server,[numDimensions]).numDimensions_(numDimensions);
|
|
|
|
|
*new {|server, numDimensions = 2, whiten = 0|
|
|
|
|
|
^super.new(server,[numDimensions, whiten]).numDimensions_(numDimensions).whiten_(whiten);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
prGetParams{
|
|
|
|
|
^[this.id, numDimensions];
|
|
|
|
|
^[this.id, numDimensions, whiten];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fitMsg{|dataSet|
|
|
|
|
|
@ -55,7 +55,7 @@ FluidPCA : FluidModelObject{
|
|
|
|
|
numDimensions = numDimensions ? this.numDimensions;
|
|
|
|
|
this.numDimensions_(numDimensions);
|
|
|
|
|
|
|
|
|
|
^FluidPCAQuery.kr(trig ,this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), this.numDimensions);
|
|
|
|
|
^FluidPCAQuery.kr(trig ,this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), this.numDimensions, this.whiten);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inverseTransformPointMsg{|sourceBuffer, destBuffer|
|
|
|
|
|
@ -74,9 +74,9 @@ FluidPCA : FluidModelObject{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FluidPCAQuery : FluidRTMultiOutUGen {
|
|
|
|
|
*kr{ |trig, model, inputBuffer,outputBuffer,numDimensions|
|
|
|
|
|
*kr{ |trig, model, inputBuffer,outputBuffer,numDimensions, whiten|
|
|
|
|
|
^this.multiNew('control',trig, model.asUGenInput,
|
|
|
|
|
numDimensions,
|
|
|
|
|
numDimensions, whiten,
|
|
|
|
|
inputBuffer.asUGenInput, outputBuffer.asUGenInput)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -84,4 +84,4 @@ FluidPCAQuery : FluidRTMultiOutUGen {
|
|
|
|
|
inputs = theInputs;
|
|
|
|
|
^this.initOutputs(1, rate);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|