Giter Club home page Giter Club logo

fluida.lv2's People

Contributors

brummer10 avatar danboid avatar spotlightkid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fluida.lv2's Issues

Drag'n drop .sf2 file doesn't works in Reaper

Hi

I'd love to be able to drag'n drop soundfont file onto Fluida (to be able to use my favorite file browser, that is definitively not build-in Fluida one ;))

Do you plan to add this ? I'd find this VERY useful !

Thanks

build fails

Linux Mint 20.2 (Ubuntu 20.04) 64-bit

brian@Esprimo-P400:/tmp$ git clone https://github.com/brummer10/Fluida.lv2.git
Klone nach 'Fluida.lv2' ...
remote: Enumerating objects: 188, done.
remote: Counting objects: 100% (188/188), done.
remote: Compressing objects: 100% (128/128), done.
remote: Total 188 (delta 121), reused 121 (delta 59), pack-reused 0
Empfange Objekte: 100% (188/188), 95.35 KiB | 508.00 KiB/s, fertig.
Löse Unterschiede auf: 100% (121/121), fertig.
brian@Esprimo-P400:/tmp$ cd Fluida.lv2
brian@Esprimo-P400:/tmp/Fluida.lv2$ git submodule init
Submodul 'libxputty' (https://github.com/brummer10/libxputty.git) für Pfad 'libxputty' in die Konfiguration eingetragen.
brian@Esprimo-P400:/tmp/Fluida.lv2$ git submodule update
Klone nach '/tmp/Fluida.lv2/libxputty' ...
Submodul-Pfad: 'libxputty': '5c69824ff8cdd6a81511fae34dfe684d263da267' ausgecheckt
brian@Esprimo-P400:/tmp/Fluida.lv2$ make
Submodule up to date
make[1]: Verzeichnis „/tmp/Fluida.lv2/libxputty“ wird betreten
make[2]: Verzeichnis „/tmp/Fluida.lv2/libxputty/Build“ wird betreten
cd ../xputty/resources/ && xxd -i directory_open.png > ../../Build/directory_open.c
cc -c directory_open.c -o directory_open.o
cd ../xputty/resources/ && xxd -i save.png > ../../Build/save.c
cc -c save.c -o save.o
cd ../xputty/resources/ && xxd -i choice.png > ../../Build/choice.c
cc -c choice.c -o choice.o
cd ../xputty/resources/ && xxd -i directory_select.png > ../../Build/directory_select.c
cc -c directory_select.c -o directory_select.o
cd ../xputty/resources/ && xxd -i approved.png > ../../Build/approved.c
cc -c approved.c -o approved.o
cd ../xputty/resources/ && xxd -i midikeyboard.png > ../../Build/midikeyboard.c
cc -c midikeyboard.c -o midikeyboard.o
cd ../xputty/resources/ && xxd -i colors.png > ../../Build/colors.c
cc -c colors.c -o colors.o
cd ../xputty/resources/ && xxd -i error.png > ../../Build/error.c
cc -c error.c -o error.o
cd ../xputty/resources/ && xxd -i gear.png > ../../Build/gear.c
cc -c gear.c -o gear.o
cd ../xputty/resources/ && xxd -i grid.png > ../../Build/grid.c
cc -c grid.c -o grid.o
cd ../xputty/resources/ && xxd -i settings.png > ../../Build/settings.c
cc -c settings.c -o settings.o
cd ../xputty/resources/ && xxd -i message.png > ../../Build/message.c
cc -c message.c -o message.o
cd ../xputty/resources/ && xxd -i image_directory.png > ../../Build/image_directory.c
cc -c image_directory.c -o image_directory.o
cd ../xputty/resources/ && xxd -i question.png > ../../Build/question.c
cc -c question.c -o question.o
cd ../xputty/resources/ && xxd -i cancel.png > ../../Build/cancel.c
cc -c cancel.c -o cancel.o
cd ../xputty/resources/ && xxd -i info.png > ../../Build/info.c
cc -c info.c -o info.o
cd ../xputty/resources/ && xxd -i exit.png > ../../Build/exit.c
cc -c exit.c -o exit.o
cd ../xputty/resources/ && xxd -i xputty_logo.png > ../../Build/xputty_logo.c
cc -c xputty_logo.c -o xputty_logo.o
cd ../xputty/resources/ && xxd -i file.png > ../../Build/file.c
cc -c file.c -o file.o
cd ../xputty/resources/ && xxd -i directory.png > ../../Build/directory.c
cc -c directory.c -o directory.o
cd ../xputty/resources/ && xxd -i warning.png > ../../Build/warning.c
cc -c warning.c -o warning.o
rm -f ../xputty/resources/xresources.h
for f in directory_open_png save_png choice_png directory_select_png approved_png midikeyboard_png colors_png error_png gear_png grid_png settings_png message_png image_directory_png question_png cancel_png info_png exit_png xputty_logo_png file_png directory_png warning_png; do \
	echo 'EXTLD('${f}')' >> ../xputty/resources/xresources.h ; \
done
cc -MMD -Wall -c ../xputty/xfilepicker.c -o xfilepicker.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xwidget_private.c -o xwidget_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xadjustment.c -o xadjustment.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xasprintf.c -o xasprintf.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xputty.c -o xputty.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xcolor.c -o xcolor.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xpngloader.c -o xpngloader.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xchildlist.c -o xchildlist.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xadjustment_private.c -o xadjustment_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xchildlist_private.c -o xchildlist_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xwidget.c -o xwidget.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xplayhead.c -o xplayhead.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xwaveview_private.c -o xwaveview_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistbox_private.c -o xlistbox_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlabel.c -o xlabel.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistview.c -o xlistview.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xknob_private.c -o xknob_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xbutton_private.c -o xbutton_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xplayhead_private.c -o xplayhead_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtooltip_private.c -o xtooltip_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xcombobox.c -o xcombobox.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtooltip.c -o xtooltip.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmultilistview.c -o xmultilistview.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xframe_private.c -o xframe_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtabbox.c -o xtabbox.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistview_private.c -o xlistview_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xvaluedisplay.c -o xvaluedisplay.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xframe.c -o xframe.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xslider.c -o xslider.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmenu.c -o xmenu.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmeter_private.c -o xmeter_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xcombobox_private.c -o xcombobox_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtuner.c -o xtuner.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmultilistview_private.c -o xmultilistview_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtabbox_private.c -o xtabbox_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xwaveview.c -o xwaveview.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xvaluedisplay_private.c -o xvaluedisplay_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistbox.c -o xlistbox.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xslider_private.c -o xslider_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xknob.c -o xknob.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmenu_private.c -o xmenu_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlabel_private.c -o xlabel_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmeter.c -o xmeter.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xbutton.c -o xbutton.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtuner_private.c -o xtuner_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xfile-dialog.c -o xfile-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xdirectory-dialog.c -o xdirectory-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xsavefile-dialoge.c -o xsavefile-dialoge.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xmidi_keyboard.c -o xmidi_keyboard.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xmessage-dialog.c -o xmessage-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmime.c -o xdgmime.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimecache.c -o xdgmimecache.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeparent.c -o xdgmimeparent.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeint.c -o xdgmimeint.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeicon.c -o xdgmimeicon.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeglob.c -o xdgmimeglob.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimealias.c -o xdgmimealias.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimemagic.c -o xdgmimemagic.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
ar rcs libxputty.a xfilepicker.o xwidget_private.o xadjustment.o xasprintf.o xputty.o xcolor.o xpngloader.o xchildlist.o xadjustment_private.o xchildlist_private.o xwidget.o xplayhead.o xwaveview_private.o xlistbox_private.o xlabel.o xlistview.o xknob_private.o xbutton_private.o xplayhead_private.o xtooltip_private.o xcombobox.o xtooltip.o xmultilistview.o xframe_private.o xtabbox.o xlistview_private.o xvaluedisplay.o xframe.o xslider.o xmenu.o xmeter_private.o xcombobox_private.o xtuner.o xmultilistview_private.o xtabbox_private.o xwaveview.o xvaluedisplay_private.o xlistbox.o xslider_private.o xknob.o xmenu_private.o xlabel_private.o xmeter.o xbutton.o xtuner_private.o xfile-dialog.o xdirectory-dialog.o xsavefile-dialoge.o xmidi_keyboard.o xmessage-dialog.o directory_open.o save.o choice.o directory_select.o approved.o midikeyboard.o colors.o error.o gear.o grid.o settings.o message.o image_directory.o question.o cancel.o info.o exit.o xputty_logo.o file.o directory.o warning.o xdgmime.o xdgmimecache.o xdgmimeparent.o xdgmimeint.o xdgmimeicon.o xdgmimeglob.o xdgmimealias.o xdgmimemagic.o
mkdir -p ../libxputty/include/
cp ../xputty/header/*.h ../libxputty/include/
cp ../xputty/header/widgets/*.h ../libxputty/include/
cp ../xputty/header/dialogs/*.h ../libxputty/include/
cp ../xputty/resources/xresources.h ../libxputty/include/
cp ../xputty/xdgmime/*.h ../libxputty/include/
cp -r ../xputty/lv2_plugin ../libxputty/
cp libxputty.a ../libxputty/
make[2]: Verzeichnis „/tmp/Fluida.lv2/libxputty/Build“ wird verlassen
make[1]: Verzeichnis „/tmp/Fluida.lv2/libxputty“ wird verlassen
make[1]: Verzeichnis „/tmp/Fluida.lv2/Fluida“ wird betreten
g++ -std=c++11  -D_FORTIFY_SOURCE=2 -I. -I./dsp -I./plugin -fPIC -DPIC -O2 -Wall -funroll-loops -fstack-protector -ffast-math -fomit-frame-pointer -fstrength-reduce `pkg-config --cflags --libs fluidsynth` -fdata-sections -Wl,--gc-sections -Wl,-z,relro,-z,now -Wl,--exclude-libs,ALL -msse3 -mfpmath=sse -mfxsr fluida.cpp XSynth.cpp -I.  -lm -pthread -lpthread -shared -lm -Wl,-z,noexecstack -Wl,--no-undefined -fvisibility=hidden `pkg-config --cflags --libs fluidsynth` -o Fluida.so
XSynth.cpp: In member function ‘void xsynth::XSynth::set_reverb_on(int)’:
XSynth.cpp:237:9: error: ‘fluid_synth_reverb_on’ was not declared in this scope; did you mean ‘fluid_synth_set_reverb_on’?
  237 |         fluid_synth_reverb_on(synth, -1, on);
      |         ^~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_reverb_on
XSynth.cpp: In member function ‘void xsynth::XSynth::set_reverb_levels()’:
XSynth.cpp:249:9: error: ‘fluid_synth_set_reverb_group_damp’ was not declared in this scope; did you mean ‘fluid_synth_set_reverb_damp’?
  249 |         fluid_synth_set_reverb_group_damp(synth, -1, reverb_damp);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_reverb_damp
XSynth.cpp:250:9: error: ‘fluid_synth_set_reverb_group_level’ was not declared in this scope; did you mean ‘fluid_synth_set_reverb_level’?
  250 |         fluid_synth_set_reverb_group_level(synth, -1, reverb_level);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_reverb_level
XSynth.cpp:251:9: error: ‘fluid_synth_set_reverb_group_roomsize’ was not declared in this scope; did you mean ‘fluid_synth_set_reverb_roomsize’?
  251 |         fluid_synth_set_reverb_group_roomsize(synth, -1, reverb_roomsize);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_reverb_roomsize
XSynth.cpp:252:9: error: ‘fluid_synth_set_reverb_group_width’ was not declared in this scope; did you mean ‘fluid_synth_set_reverb_width’?
  252 |         fluid_synth_set_reverb_group_width(synth, -1, reverb_width);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_reverb_width
XSynth.cpp: In member function ‘void xsynth::XSynth::set_chorus_on(int)’:
XSynth.cpp:262:9: error: ‘fluid_synth_chorus_on’ was not declared in this scope; did you mean ‘fluid_synth_set_chorus_on’?
  262 |         fluid_synth_chorus_on(synth, -1, on);
      |         ^~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_chorus_on
XSynth.cpp: In member function ‘void xsynth::XSynth::set_chorus_levels()’:
XSynth.cpp:274:9: error: ‘fluid_synth_set_chorus_group_depth’ was not declared in this scope; did you mean ‘fluid_synth_set_chorus_depth’?
  274 |         fluid_synth_set_chorus_group_depth(synth, -1, chorus_depth);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_chorus_depth
XSynth.cpp:275:9: error: ‘fluid_synth_set_chorus_group_level’ was not declared in this scope; did you mean ‘fluid_synth_set_chorus_level’?
  275 |         fluid_synth_set_chorus_group_level(synth, -1, chorus_level);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_chorus_level
XSynth.cpp:276:9: error: ‘fluid_synth_set_chorus_group_nr’ was not declared in this scope; did you mean ‘fluid_synth_set_chorus_on’?
  276 |         fluid_synth_set_chorus_group_nr(synth, -1, chorus_voices);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_chorus_on
XSynth.cpp:277:9: error: ‘fluid_synth_set_chorus_group_speed’ was not declared in this scope; did you mean ‘fluid_synth_set_chorus_speed’?
  277 |         fluid_synth_set_chorus_group_speed(synth, -1, chorus_speed);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_chorus_speed
XSynth.cpp:278:9: error: ‘fluid_synth_set_chorus_group_type’ was not declared in this scope; did you mean ‘fluid_synth_set_chorus_type’?
  278 |         fluid_synth_set_chorus_group_type(synth, -1, chorus_type);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         fluid_synth_set_chorus_type
make[1]: *** [Makefile:106: Fluida] Fehler 1
make[1]: Verzeichnis „/tmp/Fluida.lv2/Fluida“ wird verlassen
make: *** [Makefile:27: Fluida] Fehler 2

Segmentation fault (core dumped)

Current version will not run as a Reaper plugin. Immediately crashes with no log messages.
System: Fedora Jam 35
Fluida.lv2-0.7 built Jan 30, 2022

from dmesg:

reaper[23868]: segfault at 10 ip 00007fb310b9ea85 sp 00007ffeb18962c0 error 6 in Fluida_ui.so[7fb310b99000+37000]
[18383.602885] Code: 00 00 00 00 e8 fc a5 ff ff 48 89 c7 e8 f4 ac ff ff 48 8b bd f0 00 00 00 48 89 83 70 01 00 00 48 8b 9b f8 00 00 00 48 8b 73 18 <48> 89 46 10 48 83 c4 38 5b 5d 41 5c 41 5d 41 5e 41 5f e9 b0 63 00
[18749.538559] reaper[24706]: segfault at 10 ip 00007fd81e845a85 sp 00007ffed9cea090 error 6 in Fluida_ui.so[7fd81e840000+37000]
[18749.538565] Code: 00 00 00 00 e8 fc a5 ff ff 48 89 c7 e8 f4 ac ff ff 48 8b bd f0 00 00 00 48 89 83 70 01 00 00 48 8b 9b f8 00 00 00 48 8b 73 18 <48> 89 46 10 48 83 c4 38 5b 5d 41 5c 41 5d 41 5e 41 5f e9 b0 63 00
[18864.515449] reaper[24954]: segfault at 10 ip 00007f7f6cf43a85 sp 00007ffc4501f2d0 error 6 in Fluida_ui.so[7f7f6cf3e000+37000]
[18864.515458] Code: 00 00 00 00 e8 fc a5 ff ff 48 89 c7 e8 f4 ac ff ff 48 8b bd f0 00 00 00 48 89 83 70 01 00 00 48 8b 9b f8 00 00 00 48 8b 73 18 <48> 89 46 10 48 83 c4 38 5b 5d 41 5c 41 5d 41 5e 41 5f e9 b0 63 00

UI does not scale correctly

Tested on Linux Mint 21.3 (Cinnamon desktop), Reaper 7.07, Fluida 0.9.2.

The UI is not scaled correctly. Specifically,

  1. The piano roll and SF2 file path font size do not scale correctly with the rest of the UI.
  2. The preset drop down list in case of multi-instrument SF2s and the popup file browser windows do not scale at all. While the popup file browser has a scale dial, it only scaled the folder/file list, not the default path list on the left, OK/Cacel buttons and current path string.

The above two issues make the plugin unusable with 4K monitors and painful to use even on 1080p. Check attached screenshots.
1
2
3
4

Multi-instrument SF2s reset to instrument in index 0 in the UI when closing and reopening the plugin window in Reaper

Tested on Linux Mint 21.3 (Cinnamon desktop), Reaper 7.07, Fluida 0.9.2.

If you have a multi-insturment SF2 loaded in Fluida in Reaper, the instrument index in the GUI seems to mostly (but not always) revert to the one in index 0, even though the correct instrument keeps playing.

In the below video I'm using the "General User GS" SF2 ( https://schristiancollins.com/generaluser.php ), the "HonkyTonk" instrument. Most of the time when closing the plugin window and reopening, it reverts to the instrument at index 0 which is "Stereo Grand". Later in the video I show the same thing happening when choosing the instrument " Marimba".
https://imgur.com/a/wABaFvM

Unlike the issue mentioned here, #18 , for me it does not show None as current path, it shows the correct path to the SF2 file.

Fluida won't load instruments

Hi!

I'm trying to use Reaper 6.83 and Fluida on my Lubuntu 23.10 machine.

Fluida won't load any of the .sf2 instruments I've tried. When I select a file and click Load it takes me back to the main GUI without anything loaded. It still says None.

Thanks in advance!

Git head crashes Ardour 8.6 host

Hello, first of all thank you for your plugins.

I'm on Debian 12 / KDE / X11. I build Ardour with and without the gtk2 replacement "ytk" (which integrates a stripped-down gtk2), so this parameter could be ruled out for the following issue, I guess.

A build I had compiled shortly after your last commit in January now crashes Ardour (Ardour backtrace showed it, x42 confirmed this). Possibly this already could have happend before I stumbled over it last week.

I'd have to create a new BT in Ardour, the old one is lost. Or is there a "simple" way to debug Fluida.lv2?

regards

Please use -Wl,--no-undefined linker flag

Otherwise missing symbols are not detected, for example building here:

/home/falktx/.lv2/Fluida.lv2/Fluida.so: undefined symbol: fluid_audio_driver_register

My build of fluidsynth has the audio/midi drivers taken out, so they dont conflict ever with host stuff.

File browser cannot handle symlinks

I have a /Shared symlink to some common useful files inside an external disk, fluida file browser cannot enter this folder, I am guessing because it is a symlink.
That makes it a bit painful, because then I have to to manually go to /media/falktx/.../Personal/...etcetc

Which Fluidsynth version is used in recent released builds?

Using the 0.9.2 release, I seemed to have a microtuning issue that should’ve been fixed in Fluidsynth 2.2.2 a while ago. Which version of Fluidsynth is used?

I see it doesn’t seem to appear in the dependencies explicitly, so maybe an outdated version is installed on a machine where the builds are generated? I don’t know.

I used the Windows build.
The way to check the bug is there (if in other builds it’s not there) is loading a melodic sf2 instrument, and applying a tuning...

  • with many notes per octave, like 22edo: then higher notes will sound muffled (and have a slower playback, so possibly a slower attack too) compared to how a note of a close pitch sounds in 12edo; and the lower notes will sound harsher and have quicker playback than expected for a note of similar pitch when 12edo is used;
  • with few notes per octave, like 7edo: the opposite will happen, higher notes playing back quicker and being harsher, lower notes playing back slower and being too dull;
  • (non-evidence) but when just one sample is used per the whole instrument, this won’t change anything; also notes close to the tuning center (MIDI notes 60 or 69 in most cases) should always sound almost the same either way.

Contrary, when the tuning is applied as should be in Fluidsynth ≥ 2.2.2, a note’s target sample, and thus timbre, will depend only on its actual pitch and not on which MIDI note was received (samples get chosen by notes’ frequencies).

I’ll re-check if I heard what I heard if you don’t find anything suspicious (or the version of Fluidsynth used is recent enough).

Incorrect highlighting in instrument combobox when advancing instrument via click

After loading a sf2, clicking on the instrument name in the instrument dropdown (when not unfolded) advances the dropdown to the next instrument and the correct instrument is displayed. When I now click the dropdown arrow the wrong instrument is highlighted. When I now select an instrument from the dropdown, the highlight is correct again.

I think this might be due to different handlers for when clicking to advance to next instruments and selecting from the dropdown, though after an hour of reading code I have not found the specific eventhandlers for this in Fluida / libxputty.

This came across me when I shuffled through several soundfont and, after clicking through it for a bit, wanted to know what's in "the general vicinity of the current instrument" (as they often have a similar sound), but was then only shown the instrument from which I started my "journey".

Build error on Pop!_OS 22.04

Hi there - I installed the dependencies, but when I compile, I run across this error related to xwidgets.h, but I can't find any dev files to resolve. Thoughts about how to address? Thanks!

$ make
g++ -std=c++11 -D_FORTIFY_SOURCE=2 -I. -I./dsp -I./plugin -fPIC -DPIC -O2 -Wall -funroll-loops -fstack-protector -ffast-math -fomit-frame-pointer -fstrength-reduce pkg-config --cflags --libs fluidsynth -fdata-sections -Wl,--gc-sections -Wl,-z,relro,-z,now -Wl,--exclude-libs,ALL -msse3 -mfpmath=sse -mfxsr fluida.cpp XSynth.cpp -I. -lm -pthread -lpthread -shared -lm -Wl,-z,noexecstack -Wl,--no-undefined -fvisibility=hidden pkg-config --cflags --libs fluidsynth -o Fluida.so
cc -D_FORTIFY_SOURCE=2 -I. -I./dsp -I./plugin -fPIC -DPIC -O2 -Wall -funroll-loops -fstack-protector -ffast-math -fomit-frame-pointer -fstrength-reduce pkg-config --cflags --libs fluidsynth -fdata-sections -Wl,--gc-sections -Wl,-z,relro,-z,now -Wl,--exclude-libs,ALL -msse3 -mfpmath=sse -mfxsr -Wl,-z,nodelete fluida_ui.c -I../libxputty/libxputty/include/ -Wl,-z,noexecstack -Wl,--no-undefined -fvisibility=hidden -L. ../libxputty/libxputty/libxputty.a -shared pkg-config --cflags --libs cairo x11 -lm -o Fluida_ui.so
In file included from lv2_plugin.cc:22,
from fluida_ui.c:46:
lv2_plugin.h:26:10: fatal error: xwidgets.h: No such file or directory
26 | #include "xwidgets.h"
| ^~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:107: Fluida] Error 1

32bits build is failing

Hi brummer.

Trying to package it for LZK-3, the 32 bits build fails with:

make -j4 "INSTALL=install --strip-program=true"
make[1]: Entering directory '/build/fluida.lv2-0.5'
Submodule up to date
make[2]: Entering directory '/build/fluida.lv2-0.5'
make[2]: warning: -j1 forced in submake: resetting jobserver mode.
make[3]: Entering directory '/build/fluida.lv2-0.5/libxputty/Build'
cd ../xputty/resources/ && ld -r -b binary directory_open.png -o ../../Build/directory_open.o
cd ../xputty/resources/ && ld -r -b binary midikeyboard.png -o ../../Build/midikeyboard.o
cd ../xputty/resources/ && ld -r -b binary error.png -o ../../Build/error.o
cd ../xputty/resources/ && ld -r -b binary choice.png -o ../../Build/choice.o
cd ../xputty/resources/ && ld -r -b binary message.png -o ../../Build/message.o
cd ../xputty/resources/ && ld -r -b binary question.png -o ../../Build/question.o
cd ../xputty/resources/ && ld -r -b binary xputty_logo.png -o ../../Build/xputty_logo.o
cd ../xputty/resources/ && ld -r -b binary info.png -o ../../Build/info.o
cd ../xputty/resources/ && ld -r -b binary directory.png -o ../../Build/directory.o
cd ../xputty/resources/ && ld -r -b binary warning.png -o ../../Build/warning.o
rm -f ../xputty/resources/xresources.h
for f in directory_open_png midikeyboard_png error_png choice_png message_png question_png xputty_logo_png info_png directory_png warning_png; do \
	echo 'EXTLD('${f}')' >> ../xputty/resources/xresources.h ; \
done
cc -MMD -Wall -c ../xputty/xfilepicker.c -o xfilepicker.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xwidget_private.c -o xwidget_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xadjustment.c -o xadjustment.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xasprintf.c -o xasprintf.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xputty.c -o xputty.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xcolor.c -o xcolor.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xpngloader.c -o xpngloader.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xchildlist.c -o xchildlist.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xadjustment_private.c -o xadjustment_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xchildlist_private.c -o xchildlist_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xwidget.c -o xwidget.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
In file included from ../xputty/header/xwidget.h:26,
                 from ../xputty/xwidget.c:22:
../xputty/xwidget.c: In function 'create_window':
../xputty/xwidget.c:268:17: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'unsigned int' [-Wformat=]
     debug_print("size of Func_t = %lu\n", sizeof(w->func)/sizeof(void*));
                 ^~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../xputty/header/xputty.h:80:47: note: in definition of macro 'debug_print'
             ((void)((DEBUG) ? fprintf(stderr, __VA_ARGS__) : 0))
                                               ^~~~~~~~~~~
../xputty/xwidget.c: In function 'create_widget':
../xputty/xwidget.c:384:17: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'unsigned int' [-Wformat=]
     debug_print("size of Widget_t = %ld\n", sizeof(struct Widget_t));
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~
../xputty/header/xputty.h:80:47: note: in definition of macro 'debug_print'
             ((void)((DEBUG) ? fprintf(stderr, __VA_ARGS__) : 0))
                                               ^~~~~~~~~~~
cc -MMD -Wall -c ../xputty/widgets/xplayhead.c -o xplayhead.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtooltip.c -o xtooltip.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistbox_private.c -o xlistbox_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlabel.c -o xlabel.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistview.c -o xlistview.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xknob_private.c -o xknob_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xbutton_private.c -o xbutton_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xplayhead_private.c -o xplayhead_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmeter.c -o xmeter.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlabel_private.c -o xlabel_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistview_private.c -o xlistview_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xvaluedisplay.c -o xvaluedisplay.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xslider.c -o xslider.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmenu.c -o xmenu.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmeter_private.c -o xmeter_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xcombobox_private.c -o xcombobox_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtooltip_private.c -o xtooltip_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtuner.c -o xtuner.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xvaluedisplay_private.c -o xvaluedisplay_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistbox.c -o xlistbox.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xslider_private.c -o xslider_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xknob.c -o xknob.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmenu_private.c -o xmenu_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xbutton.c -o xbutton.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xcombobox.c -o xcombobox.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtuner_private.c -o xtuner_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xfile-dialog.c -o xfile-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xdirectory-dialog.c -o xdirectory-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xsavefile-dialoge.c -o xsavefile-dialoge.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xmidi_keyboard.c -o xmidi_keyboard.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xmessage-dialog.c -o xmessage-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmime.c -o xdgmime.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimecache.c -o xdgmimecache.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeparent.c -o xdgmimeparent.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeint.c -o xdgmimeint.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeicon.c -o xdgmimeicon.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeglob.c -o xdgmimeglob.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimealias.c -o xdgmimealias.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimemagic.c -o xdgmimemagic.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -Wl,-z,relro -fPIC `pkg-config --cflags --libs cairo x11` -lm
ar rcs libxputty.a xfilepicker.o xwidget_private.o xadjustment.o xasprintf.o xputty.o xcolor.o xpngloader.o xchildlist.o xadjustment_private.o xchildlist_private.o xwidget.o xplayhead.o xtooltip.o xlistbox_private.o xlabel.o xlistview.o xknob_private.o xbutton_private.o xplayhead_private.o xmeter.o xlabel_private.o xlistview_private.o xvaluedisplay.o xslider.o xmenu.o xmeter_private.o xcombobox_private.o xtooltip_private.o xtuner.o xvaluedisplay_private.o xlistbox.o xslider_private.o xknob.o xmenu_private.o xbutton.o xcombobox.o xtuner_private.o xfile-dialog.o xdirectory-dialog.o xsavefile-dialoge.o xmidi_keyboard.o xmessage-dialog.o directory_open.o midikeyboard.o error.o choice.o message.o question.o xputty_logo.o info.o directory.o warning.o xdgmime.o xdgmimecache.o xdgmimeparent.o xdgmimeint.o xdgmimeicon.o xdgmimeglob.o xdgmimealias.o xdgmimemagic.o
mkdir -p ../libxputty/include/
cp ../xputty/header/*.h ../libxputty/include/
cp ../xputty/header/widgets/*.h ../libxputty/include/
cp ../xputty/header/dialogs/*.h ../libxputty/include/
cp ../xputty/resources/xresources.h ../libxputty/include/
cp ../xputty/xdgmime/*.h ../libxputty/include/
cp -r ../xputty/lv2_plugin ../libxputty/
cp libxputty.a ../libxputty/
make[3]: Leaving directory '/build/fluida.lv2-0.5/libxputty/Build'
make[2]: Leaving directory '/build/fluida.lv2-0.5/libxputty'
make[2]: Entering directory '/build/fluida.lv2-0.5'
make[2]: warning: -j1 forced in submake: resetting jobserver mode.
g++ -g -O2 -fdebug-prefix-map=/build/fluida.lv2-0.5=. -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -I. -I./dsp -I./plugin -fPIC -DPIC -O2 -Wall -funroll-loops -fstack-protector -ffast-math -fomit-frame-pointer -fstrength-reduce `pkg-config --cflags --libs fluidsynth` -fdata-sections -Wl,--gc-sections -Wl,-z,relro,-z,now -Wl,--exclude-libs,ALL -msse3 -mfpmath=sse fluida.cpp XSynth.cpp -Wl,-z,relro -I. -shared -lm -Wl,-z,noexecstack -fvisibility=hidden `pkg-config --cflags --libs fluidsynth` -o Fluida.so
fluida.cpp: In constructor 'fluida::DenormalProtection::DenormalProtection()':
fluida.cpp:97:9: error: '__builtin_ia32_fxsave' was not declared in this scope
         __builtin_ia32_fxsave(&fxsave);
         ^~~~~~~~~~~~~~~~~~~~~
fluida.cpp:97:9: note: suggested alternative: '__builtin_ia32_xsave'
         __builtin_ia32_fxsave(&fxsave);
         ^~~~~~~~~~~~~~~~~~~~~
         __builtin_ia32_xsave
make[2]: *** [Makefile:100: Fluida] Error 1
make[2]: Leaving directory '/build/fluida.lv2-0.5/Fluida'
make[1]: *** [Makefile:26: Fluida] Error 2
make[1]: Leaving directory '/build/fluida.lv2-0.5'

Note that this is done in a pbuilder 32 bits chroot. The pbuilder 64 bits chroot build fine and the resulting LV2 is working great. I didn't have time yet to start a 32 bits version of the OS and try to make a simple CLI make (ie: no pbuilder chroot). I'll probably try on the next days if I found some time.

File selector suggestions

I'd like to see the fluida file selector get a few tweaks:

  • There doesn't currently seem to be a way to quickly jump to and browse the parent directory, either being able to click on a double dot icon or an up icon next to the path dialog.

  • If the places column is going to remain as-is, please add /usr/share/sounds/sf2 as one of the default paths as this is where Debian and Ubuntu store their soundfonts.

  • I'd rather see places replaced by a list of bookmarked paths. Users would be able to drag n' drop dirs into that column for quick access to specific paths.

  • It would be nice if the path dialog was editable so paths could be entered manually instead of having to use the mouse to browse to them.

Fluida loses GUI state on hide/show window; segfaults on second add

Let me start with this disclaimer: I'm not sure if this is a problem with my setup, with Fluida or with reaper. I can observe something similar when I'm using carla though.

I'm trying to use Fluida with reaper 6.71 + FluidR3_GM.sf2. I started out using a self compiled version of current master, but then went on to the prebuild version linked in the midi for a common baseline (most notably I compiled against libfluidsynth3, prebuild uses 2). I can add the plugin as a FX to a track, play the piano, hear sound, change instruments.

The moment I hide the gui (closing and reopening the FX window or changing to another plugin, then back to Fluida) Fluida loses its GUI state. It shows None as current path and current selected input, all knobs/buttons are back at starting position. I can still hear the preselected instrument. If I had the reverb turned on previously, I could now turn it on and then off again to get it off, but the old state is somewhere stuck in there. This is reproducible with my selfcompiled and the stock version of Fluida on my system.

Secondly, if I now remove the plugin and readd it to my FX chain, then reaper segfaults. This is the stacktrace I got from coredumpctl:

Stack trace of thread 24837:
#0  0x00007fafd77744e7 __strcmp_avx2 (libc.so.6 + 0x1554e7)
#1  0x00007fafd6798c09 g_str_equal (libglib-2.0.so.0 + 0x42c09)
#2  0x00007fafd679770a g_hash_table_lookup (libglib-2.0.so.0 + 0x4170a)
#3  0x00007fafd67babf4 g_intern_static_string (libglib-2.0.so.0 + 0x64bf4)
#4  0x00007fafc1567f8d n/a (libinstpatch-1.0.so.2 + 0x29f8d)
#5  0x00007fafc15682e5 ipatch_base_get_type (libinstpatch-1.0.so.2 + 0x2a2e5)
#6  0x00007fafc15c30a2 ipatch_init (libinstpatch-1.0.so.2 + 0x850a2)
#7  0x00007fafd53608b0 new_fluid_synth (libfluidsynth.so.2 + 0x378b0)
#8  0x00007fafd59b4e60 n/a (/home/seba/.lv2/Fluida.lv2/Fluida.so + 0xbe60)
ELF object binary architecture: AMD x86-64

Any idea what could be causing this?

Cannot change instrument when external MIDI keyboard w/ clock is connected

When I run Fluida.lv2 in BespokeSynth, Carla or reaper changing instruments works fine until I connect my MIDI keyboard (a "Novation Launchkey 37 MK3"), then I cannot change the instrument anymore. The instrument changes in the UI, but the instrument I hear does not change. It only changes once I have disconnected the midikeyboard (in my plugin host only, the keyboard remains plugged in via USB the whole time) and THEN choose a new instrument.

I could not reproduce this with a virtual midi keyboard or a self-made midi footswitch (they all don't provide a midi clock).

While trying to figure this out I took a look at the midi loop and one difference I can see is that my keyboard sends out a MIDI clock and that quite frequently, at least there are a lot of messages with type 0xF8 aka LV2_MIDI_MSG_CLOCK in Fluida_::run_dsp_() that otherwise seem to have a zero payload.

Turning off the MIDI clock in the settings of my keyboard seems to do the trick and instrument changing works again. I wonder though, is this is something that is a problem in Fluida that could be fixed there?

Instrument choice is not kept when plugin is reloaded in DAW (ardour, reaper)

I've loaded up Fluida.lv2 in ardour and reaper, chose an instrument (that is not the first instrument in the sf2). When saving the project, closing the DAW, reopening the DAW and then reloading the project the instrument choice of all Fluida.lv2 instances is set back to the first instrument.

In reaper this also happens to all Fluida.lv2 instances when the project is rendered to a soundfile, meaning only the first instrument can be used in the output format (but as this is a closed source app...).

Any idea what could be causing this?

lv2lint check errors for release v0.9

When I check the LV2 bundle of version 0.9 with lv2lint, I get the following errors:

$ lv2lint -Mpack -I bin/Fluida.lv2 https://github.com/brummer10/Fluida.lv2

lv2lint 0.16.2
Copyright (c) 2016-2021 Hanspeter Portner ([email protected])
Released under Artistic License 2.0 by Open Music Kontrollers
<https://github.com/brummer10/Fluida.lv2>
    [WARN]  Plugin Author Email
              foaf:mbox not found
              seeAlso: <http://lv2plug.in/ns/lv2core#project>
    [WARN]  Plugin Author Homepage
              foaf:homepage not found
              seeAlso: <http://lv2plug.in/ns/lv2core#project>
  <https://github.com/brummer10/Fluida.lv2#gain>
    [FAIL]  Parameter Range
              lv2:minimum not a float
              seeAlso: <http://lv2plug.in/ns/lv2core#minimum>
  <https://github.com/brummer10/Fluida.lv2#gain>
    [FAIL]  Parameter Range
              lv2:minimum not a float
              seeAlso: <http://lv2plug.in/ns/lv2core#minimum>
  <https://github.com/brummer10/Fluida_gui>
    [FAIL]  UI Symbols
              binary exports superfluous globally visible symbols: 
                * widget_get_scaled_png
                * _draw_combobox_button
                * _xdg_mime_cache_get_mime_type_for_file
                * have_key_in_matrix
                * os_grab_pointer
                * set_pattern
                * _button_released
                * os_is_directory
                * _xdg_mime_magic_get_buffer_extents
                * add_check_button
                * ... there is more, but the rest is being truncated
              seeAlso: <http://lv2plug.in/ns/lv2core#binary>

For the superfluous exported symbols, falkTX has this solution:

https://github.com/DISTRHO/DPF/blob/main/Makefile.plugins.mk#L318

The other error (not sure why it occurs twice) needs to be fixed in Fluida/Fluida.ttl, line 146.

File browser window does not set transient hint

If the host has the plugin GUI has "transient" to itself (that is, on top of the base host window), the file browser window can appear behind the host and plugin GUI, making it hard to find.
Please add the transient window id to the parent of the plugin UI (that is, the Window it embeds into), so Window managers can properly place/stack the window.

Instruments from MSB 001 onwards are not playable.

Let's take as a known example the soundfont GSM-V2.01.sf2, which contains:

- from 000 000 Piano 1 --> 000 127 Gun Shot."

Next we have

- 001 008 Pop Celesta --> 128 064 --SGM Drum Kits--

When we select any sound from this second group, no sound is heard.

imagen

[regression in 0.8] error: no such file or directory: '../libxputty/libxputty/libxputty.a'

cc -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -fno-omit-frame-pointer  -isystem /usr/local/include  -D_FORTIFY_SOURCE=2 -I. -I./dsp -I./plugin -fPIC -DPIC -O2 -Wall -funroll-loops -fstack-protector -ffast-math -fomit-frame-pointer -fstrength-reduce `pkg-config --cflags --libs fluidsynth` -fdata-sections -Wl,--gc-sections -Wl,-z,relro,-z,now -Wl,--exclude-libs,ALL  -Wl,-z,nodelete fluida_ui.c -I../libxputty/libxputty/include/ -Wl,-z,noexecstack -Wl,--no-undefined -fvisibility=hidden -L. ../libxputty/libxputty/libxputty.a -shared `pkg-config --cflags --libs cairo x11` -lm -o Fluida_ui.so
cc: error: no such file or directory: '../libxputty/libxputty/libxputty.a'
cc: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
gmake[2]: *** [Makefile:107: Fluida] Error 1

libxputty.a isn't built.

FreeBSD 13.1 STABLE

Invalid channel list causing crash with some .sf2s.

With some sf2 files (maybe broken?) the call to :
XSynth.cpp

Line 242 : int XSynth::get_instrument_for_channel(int channel)

will return -1 on:

Line 246: if (!preset) return -1;

On the host non-mixer-xt (I am the developer), the lv2 file is saved in .ttl format with
lilv_state_save(). The -1 value gets saved in the channel_list - Example:

 <https://github.com/brummer10/Fluida.lv2#channel_list> [
			a atom:Vector ;
			atom:childType atom:Int ;
			rdf:value (
				"0"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
				"-1"^^xsd:int
			)
		]

When attempting to restore the plugin state, the -1 channel value causes Fluida.lv2 to crash with a:

terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_M_create

or some other similar related error.

I patched with:

-- if (!preset) return -1;
++ if (!preset) return 0;

Which changed the -1 channel_list saving to 0 and stopped the plugin from crashing on re-load, with no
side effects that I could determine.

I also noticed that the calls to XSynth::get_instrument_for_channel() do not handle the -1 error
in any case. I'm not sure what the best solution is for the error conditions, but returning 0
seemed to work if no preset was found.

Anyhow you may know of a better solution...

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.