From 266fa5f746497336f4617717b2530bc4b4b90c19 Mon Sep 17 00:00:00 2001 From: Gerard Date: Tue, 19 Feb 2019 14:53:32 +0000 Subject: [PATCH] add FluidOnsetSlice --- release-packaging/Classes/FluidOnsetSlice.sc | 5 +++++ src/FluidOnsetSlice/CMakeLists.txt | 20 +++++++++++++++++++ src/FluidOnsetSlice/FluidOnsetSlice.cpp | 13 ++++++++++++ src/FluidOnsetSlice/test.scd | 21 ++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 release-packaging/Classes/FluidOnsetSlice.sc create mode 100755 src/FluidOnsetSlice/CMakeLists.txt create mode 100644 src/FluidOnsetSlice/FluidOnsetSlice.cpp create mode 100644 src/FluidOnsetSlice/test.scd diff --git a/release-packaging/Classes/FluidOnsetSlice.sc b/release-packaging/Classes/FluidOnsetSlice.sc new file mode 100644 index 0000000..8dcfc0d --- /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, winSize = 1024, hopSize = 256, frameDelta = 0, fftSize = 1024, maFFTSize = 16384; + ^this.multiNew('audio', in.asAudioRateInput(this), function, threshold, debounce, filterSize, winSize, hopSize, frameDelta, fftSize, maFFTSize) + } +} diff --git a/src/FluidOnsetSlice/CMakeLists.txt b/src/FluidOnsetSlice/CMakeLists.txt new file mode 100755 index 0000000..3693881 --- /dev/null +++ b/src/FluidOnsetSlice/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.3) +get_filename_component(PLUGIN ${CMAKE_CURRENT_LIST_DIR} NAME_WE) +message("Configuring ${PLUGIN}") +set(FILENAME ${PLUGIN}.cpp) + +add_library( + ${PLUGIN} + MODULE + ${FILENAME} +) + +target_include_directories( + ${PLUGIN} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../../include +) + +target_link_libraries( + ${PLUGIN} PRIVATE FLUID_DECOMPOSITION +) + +include(${CMAKE_CURRENT_LIST_DIR}/../../scripts/target_post.cmake) diff --git a/src/FluidOnsetSlice/FluidOnsetSlice.cpp b/src/FluidOnsetSlice/FluidOnsetSlice.cpp new file mode 100644 index 0000000..27a2746 --- /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>(ft, "FluidOnsetSlice"); +} diff --git a/src/FluidOnsetSlice/test.scd b/src/FluidOnsetSlice/test.scd new file mode 100644 index 0000000..b82344e --- /dev/null +++ b/src/FluidOnsetSlice/test.scd @@ -0,0 +1,21 @@ +s.reboot; + +b = Buffer.read(s,"../../release-packaging/AudioFiles/Tremblay-AaS-SynthTwoVoices-M.wav".resolveRelative); + +// basic param (the process add a latency of (blockSize + padding - order) samples +{var sig = PlayBuf.ar(1,b.bufnum,loop:1); [FluidTransientSlice.ar(sig)*0.5, DelayN.ar(sig, 1, ((256 + 128 - 20)/ s.sampleRate))]}.play + +// sexier params +{var sig = PlayBuf.ar(1,b.bufnum,loop:1); [FluidTransientSlice.ar(sig,order:80,debounce:2205)*0.5, DelayN.ar(sig, 1, ((256 + 128 - 80)/ s.sampleRate))]}.play + +// more musical trans-trigged autopan +( +{ + var sig, trig, syncd, pan; + sig = PlayBuf.ar(1,b.bufnum,loop:1); + trig = FluidTransientSlice.ar(sig,order:10,debounce:2205); + syncd = DelayN.ar(sig, 1, ((256 + 128 - 10)/ s.sampleRate)); + pan = TRand.ar(-1,1,trig); + Pan2.ar(syncd,pan); +}.play +) \ No newline at end of file