fluidLoops - soundfont player + 4track looper

FYI It works just fine for me having all necessary files in the patch folder, and not using any installer.

Cf. here, from @WyrdAl

1 Like

on Organelle M?

No idea about Organelle M, only have one kidney left :<


I dont see why it would be any different on Organelle Mm! Any given patch will look to its source directory first for abstractions/externals/libraries. Sooo… I just dont dirty my OS install with stray libraries and keep everything patch by patch.

This is slightly redundant I know, but the space taken up in a patch is so negligible its just really the best way. Not sure why it hasnt always been done like this!

And not having to have people install this and that is nice :slight_smile:

But also I guess if Organelle M is a different architecture/OS, there will need to be separate externals libraries compiled for it? Kinda stinks just for the eventual confusions and troubleshootings, but not tooo bad.

And yes ditto I am no where near able to get the M so cant really test.


generally this is not true, you would compile for arm7 and its good to go on the organelle-1 and organelle-m - thats why the C&G patches work unchanged.
similarly, Orac, which I created my own external for, similarly works fine on both organelle-1 and m.

so generally, the answer is it should work - and we will need to look at individual cases as to why this is not the case.

absolutely, this is how it should be done - as it makes it easier for end-users, and also different versions of externals for different patches can ‘co-exist’

back on topic of this patch, and more generally fluidsynth~ , I’ll try to find some time to take a look and see if there is an issue with a dependency missing on the organelle-m, and how we can best solve any related issues with it.

EDIT: saw afterwards…

yep, this definitely looks like the correct approach - will take a look to if this works on the organelle-m, and if not, why not.

1 Like

ok, I have it (and fluid~) working on the organelle-m, and a process which means users will not have to bother with the previous fluid installer on the organelle-1 - win win :slight_smile:

simple answer:

@varicela , we’d need 2 small changes…

a) download this zip file and put its contents in the fluidloops patch directory - this contains the fluidsynth library and fluid~

(this is what we should do for all fluid~ patches in the future)

b) in your patch you refer to fluidPlayer - it should be fluidplayer
this is because whilst on usb sticks its not case sensitive, it is on sdcards (for both organelle-1 and organelle-m) … and your file is called fluidplayer.pd, so it needs to match.

slightly longer answer.

k, Id hope to take @WyrdAl files, and it would work… but it didn’t , as @shreeswifty had noted, it depends on ncursesw 6 , and we have ncursesw 5.9 - and this is hard linked into libfluidsynth.so
this is a pain, since potentially that means we need different versions of libfluidsynth.so for 1 and M

BUT I then downloaded the libfluidsynth thats compiled for the raspbian and found that that (correctly) does not link to ncurses at all…
(ncurses is a terminal lib, no reason for a sound library to link it in :wink: )

so what Ive done it taken that libfluidsynth.so and use that… which should work find on both 1 and M.

(so @WyrdAl you might also want to take this as well, from above zip file for your project to make it work on the M)

@oweno , I think we should take down the fluid installer, to at least make it not run on the organelle-m.
not sure where its best to host the above zip file, for developers to pick up as needed.
(my guess is once a few patches start using it, others will copy it from other patches)


Uploaded version 1.1 with these changes.
Also added damp pedal support :slight_smile:
Thanks everybody for your time!

PD: @thetechnobear Any idea is Supercollider patches (and the installer) are working on Organelle M?
Just asking, because I’m currently learning SC, so probably will drop a few patches in the future.

cool, 1.1 works ‘out of the box’ on organelle-m :+1:

for organelle-1, users need to install supercollider as per this:

for organelle-m, SC is not installed and the SC_Install will not work on the organelle-m
… but we can sort this out, reasonably easily - as we can just use apt to install it from raspbian.

(hopefully we can include the supercollider in next OS image for both o1 and om, as i think its an interesting future for organelle - and one when I get time I want to explore a bit deeper)

the good news is once SC is installed, on both organelle-1 and organelle-m they should both launch fine as discussed in the above thread.

1 Like

I’ve taken the old installer down… I think it is best for any patches using fluidsynth to include the binaries in their patch folder. This will require updating older patches that use this object, but it is for the better.

I put the pdfluidsynth files here for now…

Thanks @varicela for the patch, it is cool!


So supercollider just isnt installed? heh :slight_smile:

~music/fw_dir/mother.scd exists, so it’s clearly just a matter of time.

Until then, a quick-and-dirty of how you got everything working would be appreciated by at least one person

you should pretty much be able to do

sudo apt-get install supercollider 

but I do need to test it :slight_smile:

FluidLoops does not work on my Organelle v1. It works on my Organelle M, but I get no sound out of the v1.

You are right. I just tested the latest version of this patch on a friend’s Organelle 1, that never used the old fluidsynth~ installer, and I’m not get any sound.
Any ideas @thetechnobear?

hmm, i’ll try on a ‘fresh’ organelle image, as it worked on my orgnalle… perhaps something is missing.

ok, i can replicate on a fresh organelle-1 , so looks like Ive got some ‘extras’ on my dev organelle, which is why it works fine for me.

unfortunately, no simple fix…

for now what you can do is copy @WyrdAl libfluidsynth.so.1 from here

this will make it work on the organelle-1, but it when wont work on the organelle-m :frowning:

moving forward…

so theres 2 libraries missing…
libpulsesimple - which could be installed,
the second is libreadline.so.7 - this one is a bit tricky, since Ive hacked this on my dev organelle-1 since I know from past experience installing this from arch linux causes no end of problems! (= unbootable organelle)
hmm, not sure what to do… these both need to be present in /usr/lib , putting in the current directory will not work…

I see 3 options:

a) we can add the relevant bits to the organelle-1 in the next OS update.
(the two missing libs) as we may well trip over a similar issue for other libraries/externals in the future.

b) create a proper pacman package for fluidsynth, and install it for the next OS, as we have done for supercollider - but where does that end… there are 100s of apps, why is fluid any different :frowning:

c) patches start shipping different version of libs for organelle-1 and organelle-m
this has 2 ‘problems’
most patch developers don’t know how to create zop files which are really need to do this.
(since it will install the correct one depending on which organelle is being installed on)
most patch developers dont have access to an organelle-1 and m, so are unlikely to test/install on both and so identify the issue - and no how to resolve it.

not sure really… what do you think @oweno?

were these installed by the original installer (the one I took down), or is it that the libfluidsynth in the original installer didn’t require them?

I think for patches that depend on other libraries, there is really no other way than including versions for each Organelle and having the zop detect and install the correct one. It is true that most devs don’t bother with zop format, but patches that use 3rd party libraries are also a rarity.

are any other patches that do this kind of thing? fluidsynth is really the only one I can think of…

but maybe the ‘installer’ patch approach is actually best… thinking of fluidsynth as an example, there are many patches that utilize the fluidsynth object, and it would be a (minor) pain to have to make a zop that checks and installs every time you want to use that object. so you have one installer that adds extra functionality and it comes in zop, then anyone can make patches without having to bother with creating a zop.

Great! Replacing libfluidsynth.so.1 with the one in the link you provided worked! Fluid loops now works on my Organelle v1.

1 Like

ok, i’ll look at packing it in a pacman package then - then we can create an installer like SC, and consider if putting into OS is an idea…

There is an example of these zop files? Tried to undertand the OS update and the supercollider zop installer but there is to much going on.
I will like to make a zop file for this patch, until the next os update.
(Tried to zip both version on patchstorage, but apparently it was to heavy)

Does the python script for creating the txt files need to be run from the actual organelle, or is it fine to just run on my computer?

I’m trying to run it and getting this back…

WARNING:root:unknown chunk []
Traceback (most recent call last):
File “/Users/Josh/Desktop/fluidLoops/parseSoundfonts.py”, line 21, in
sf2 = Sf2File(sf2_file)
File “/usr/local/lib/python2.7/site-packages/sf2utils/sf2parse.py”, line 120, in init
File “/usr/local/lib/python2.7/site-packages/sf2utils/sf2parse.py”, line 166, in simplify_tree
if len(self._raw) == 0:
TypeError: object of type ‘NoneType’ has no len()

I made sure to install sf2utils, so I assume it isn’t that.