Chaining fluid processes at the command line

Merry Christmas,

Using the reaper bindings I have been chaining several FluComA processes together to extract things of interest from source audio.

I wanted to test this idea out in a more straightforward way, as calling many ReaScripts gets quite cumbersome, and in some cases I was doing things like nmfing on specific nmf components then pulling the transients from that and nmfing those. Essentially, this little python module allows you to concoct ‘chains’ of FluCoMa processes and process the chain in one go. It also keeps a trace of all the stages of the process so you can see how the process works at each checkpoint.

It’s not really intended for others to use but I thought I would share it anyway as its really super simple at the interface level.

1 Like

I’m back online, and really look forward to play with this in the next days!

I guess I have not yet configured the environment as needed. I followed the install procedure from the readme.
When starting the first test, I’m receiving these errors:

from fluidchain.core import FluidChain
from fluidchain.objects import FluidNMF, FluidHPSS, FluidTransients

chain = FluidChain()

Define your ‘links’

… nmf = FluidNMF()

transients = FluidTransients()
hpss = FluidHPSS()

Now we create the chain

… chain.source(‘/Users/hans/Desktop/FluidChain/Awm9459-04-o-fune-cis5.wav’)

chain.outpath(‘/Users/hans/Desktop/FluidChain/results/’)
chain.add(hpss)
chain.add(transients)
chain.add(nmf)
chain.run()
Processing hpss
Traceback (most recent call last):
File “”, line 1, in
File “/Users/hans/Downloads/FluidChain-master/fluidchain/fluidchain/core.py”, line 28, in run
link.process()
File “/Users/hans/Downloads/FluidChain-master/fluidchain/fluidchain/objects.py”, line 11, in process
subprocess.call(command)
File “/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py”, line 339, in call
with Popen(*popenargs, **kwargs) as p:
File “/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py”, line 800, in init
restore_signals, start_new_session)
File “/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py”, line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: ‘fluid-hpss’: ‘fluid-hpss’

Python assumes that the command line tools are somewhere in your shell’s path.

This explains it better than I can :slight_smile: https://www.architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/

1 Like

ok this is very fun and potentially very powerful.

I’ve installed with something else

  1. download
  2. cd in FluidChain/fluidchain
  3. run python setup.py install

then it works like a charm. You can even edit process parameters by doing (for instance nmf.components = 3

Thanks a lot for sharing!

Thanks for checking it out :slight_smile:

As every Fluid[Processor] is a Python class, their parameters can be addressed through the dot notation.

For example:

transients.skew
transients.window

If you dig into the classes themselves they are very simple - I will probably finish off by implementing all of the other ones sooner or later. I envisage this being really cool for when audiotransport~ comes to the command line and lots of different hybrids can be made, and even parameters can be generated programatically :slight_smile:

1 Like