diff --git a/release-packaging/Classes/FluidBufOnsetSlice.sc b/release-packaging/Classes/FluidBufOnsetSlice.sc new file mode 100644 index 0000000..d038576 --- /dev/null +++ b/release-packaging/Classes/FluidBufOnsetSlice.sc @@ -0,0 +1,15 @@ +FluidBufOnsetSlice{ + *process { arg server, srcBufNum, startAt = 0, nFrames = -1, startChan = 0, nChans = -1, idxBufNum, function = 0, threshold = 0.1, debounce = 2, filterSize = 5, frameDelta = 0, winSize = 1024, hopSize = 256, fftSize = 1024, maxFFTSize = 16384; + + if(srcBufNum.isNil) {Error("Invalid Buffer % %".format(this.class.name, thisMethod.name)).throw}; + + server = server ? Server.default; + idxBufNum = idxBufNum ? -1; + + + //NB For wrapped versions of NRT classes, we set the params for maxima to + //whatever has been passed in language-side (e.g maxFFTSize still exists as a parameter for the server plugin, but makes less sense here: it just needs to be set to a legal value) + + server.sendMsg(\cmd, \BufOnsetSlice, srcBufNum, startAt, nFrames, startChan, nChans, idxBufNum, function, threshold, debounce, filterSize, frameDelta, winSize, hopSize, fftSize, maxFFTSize); +} +} diff --git a/release-packaging/Classes/FluidOnsetSlice.sc b/release-packaging/Classes/FluidOnsetSlice.sc new file mode 100644 index 0000000..166614e --- /dev/null +++ b/release-packaging/Classes/FluidOnsetSlice.sc @@ -0,0 +1,5 @@ +FluidOnsetSlice : UGen { + *ar { arg in = 0, function = 0, threshold = 0.1, debounce = 2, filterSize = 5, frameDelta = 0, winSize = 1024, hopSize = 256, fftSize = 1024, maFFTSize = 16384; + ^this.multiNew('audio', in.asAudioRateInput(this), function, threshold, debounce, filterSize, frameDelta, winSize, hopSize, fftSize, maFFTSize) + } +} diff --git a/release-packaging/Classes/FluidSpectralShape.sc b/release-packaging/Classes/FluidSpectralShape.sc new file mode 100644 index 0000000..6540709 --- /dev/null +++ b/release-packaging/Classes/FluidSpectralShape.sc @@ -0,0 +1,18 @@ +FluidSpectralShape : MultiOutUGen { + + *kr { arg in = 0, winSize = 1024, hopSize = 512, fftSize = -1, maxFFTSize = 16384; + ^this.multiNew('control', in, winSize, hopSize, fftSize, maxFFTSize); + } + + init {arg ...theInputs; + inputs = theInputs; + ^this.initOutputs(7,rate); + } + + checkInputs { + if (inputs.at(0).rate != 'audio', { + ^(" input 0 is not audio rate"); + }); + ^this.checkValidInputs; + } +} diff --git a/src/FluidBufOnsetSlice/FluidBufOnsetSlice.cpp b/src/FluidBufOnsetSlice/FluidBufOnsetSlice.cpp new file mode 100644 index 0000000..aa2b3d3 --- /dev/null +++ b/src/FluidBufOnsetSlice/FluidBufOnsetSlice.cpp @@ -0,0 +1,14 @@ + +// A tool from the FluCoMa project, funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 725899) + +#include +#include +#include + +static InterfaceTable *ft; + +PluginLoad(OfflineFluidDecompositionUGens) { + ft = inTable; + using namespace fluid::client; + makeSCWrapper("BufOnsetSlice", ft); +} diff --git a/src/FluidOnsetSlice/FluidOnsetSlice.cpp b/src/FluidOnsetSlice/FluidOnsetSlice.cpp new file mode 100644 index 0000000..f60f7a0 --- /dev/null +++ b/src/FluidOnsetSlice/FluidOnsetSlice.cpp @@ -0,0 +1,13 @@ + +// A tool from the FluCoMa project, funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 725899) + +#include +#include + +static InterfaceTable *ft; + +PluginLoad(FluidSTFTUGen) { + ft = inTable; + using namespace fluid::client; + makeSCWrapper("FluidOnsetSlice", ft); +} diff --git a/src/FluidSpectralShape/FluidSpectralShape.cpp b/src/FluidSpectralShape/FluidSpectralShape.cpp new file mode 100644 index 0000000..6668f16 --- /dev/null +++ b/src/FluidSpectralShape/FluidSpectralShape.cpp @@ -0,0 +1,13 @@ + +// A tool from the FluCoMa project, funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 725899) + +#include +#include + +static InterfaceTable *ft; + +PluginLoad(FluidSTFTUGen) { + ft = inTable; + using namespace fluid::client; + makeSCWrapper("FluidSpectralShape", ft); +}