NEW! Plugin Scanner 'sandbox'.

MusE is a DAW for Linux with both MIDI and Audio editing. https://muse-sequencer.github.io

Moderators: MattKingUSA, khz, spamatica

Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

NEW! Plugin Scanner 'sandbox'.

Post by Tim E. Real »

In the MusE git master now:

* NEW! Safe Plugin Scanner 'sandbox':

- MusE should NEVER crash due to plugin scanning at startup now!

- All LADSPA, MESS, DSSI, and LinuxVST plugins are each scanned
in a separate QProcess program upon MusE startup.
Those that fail are NOT INCLUDED for further use.
Currently the QProcess communicates back to muse via
an xml-encoded text on stdout.
But this could change to shared memory.
(Hint hint: Grow into an actual plugin run-time sandbox host!)

- All items in globaldefs.h that were in the global namespace
are now part of MusECore namespace, including MIDI_CHANNELS
which was a #define.

- Added command-line option -S (Don't load MESS plugins).

- Fixed crash in Deicsonze: Failure to initialize lfoDelayIndex.

Tested OK with LADSPA, MESS, DSSI, and LinuxVST - including VST 'shell' plugins (Tested Zebralette OK).
Tested with 'bad' CSound csladspa.so, as reported in another thread: MusE ignores it and does not crash now! Yay.

Enjoy.
Tim.
finotti
Established Member
Posts: 528
Joined: Thu Sep 01, 2011 9:07 pm
Has thanked: 86 times
Been thanked: 23 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by finotti »

Thanks for that!

So just get the latest GIT version, correct?
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by Tim E. Real »

Yes, git master.
alex stone
Established Member
Posts: 350
Joined: Fri Jun 06, 2008 7:39 am
Has thanked: 61 times
Been thanked: 53 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by alex stone »

Tim, pulled from Git this morning, and the build failed with the following error:

Scanning dependencies of target plugin_scan_module
[ 12%] Building CXX object muse/CMakeFiles/plugin_scan_module.dir/plugin_scan.o
/home/alex/github/muse/muse3/muse/plugin_scan.cpp: In function ‘bool MusECore::pluginScan(const QString&, MusECore::PluginScanList&, bool)’:
/home/alex/github/muse/muse3/muse/plugin_scan.cpp:343:32: error: ‘BINDIR’ was not declared in this scope
const QString prog = QString(BINDIR) + QString("/muse_plugin_scan");
^~~~~~
/home/alex/github/muse/muse3/muse/plugin_scan.cpp:343:32: note: suggested alternative: ‘EISDIR’
const QString prog = QString(BINDIR) + QString("/muse_plugin_scan");
^~~~~~
EISDIR
muse/CMakeFiles/plugin_scan_module.dir/build.make:61: recipe for target 'muse/CMakeFiles/plugin_scan_module.dir/plugin_scan.o' failed
make[2]: *** [muse/CMakeFiles/plugin_scan_module.dir/plugin_scan.o] Error 1
CMakeFiles/Makefile2:745: recipe for target 'muse/CMakeFiles/plugin_scan_module.dir/all' failed
make[1]: *** [muse/CMakeFiles/plugin_scan_module.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2


Any clues?

Alex.
spamatica
Established Member
Posts: 573
Joined: Mon Feb 08, 2010 10:38 am
Has thanked: 80 times
Been thanked: 97 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by spamatica »

Hi Alex,

Could you try removing the build dir and running cmake again?
The BINDIR definition should reside in config.h in the build dir. This file is copied by cmake into the build dir.

Great addition btw Tim, this is has been for a long time on my wish list. Haven't had time to test it yet though..

/Robert
MusE DAW
alex stone
Established Member
Posts: 350
Joined: Fri Jun 06, 2008 7:39 am
Has thanked: 61 times
Been thanked: 53 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by alex stone »

spamatica wrote:Hi Alex,

Could you try removing the build dir and running cmake again?
The BINDIR definition should reside in config.h in the build dir. This file is copied by cmake into the build dir.

Great addition btw Tim, this is has been for a long time on my wish list. Haven't had time to test it yet though..

/Robert
All good now, thanks for the heads up.

Alex.
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by Tim E. Real »

Yes the BINDIR is a new addition that was required to properly find and run the scanner executable.

Also, I made some major changes yesterday, including moving some folders, so there are less undefined symbols and
so that Deicsonze and SimpleDrums MESS synths would build correctly.

Unfortunately I screwed it up and had to make more major changes again several hours later.

The end result is that if you pull again today, you (and even I) have to completely rebuild otherwise errors will occur.

Let me know if there's any trouble, I have an uneasy feeling that there might be...

Greetings Robert, nice to hear you again!

Tim.
alex stone
Established Member
Posts: 350
Joined: Fri Jun 06, 2008 7:39 am
Has thanked: 61 times
Been thanked: 53 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by alex stone »

Tim,

So far so good. There are quite a few plugins that fail, and a lot seem to be because of extension problems. Tomorrow i'll rebuild using firstly the inbuilt lv2 libs, and the system libs, and compare the two. I have a feeling there are some extensions missing that aren't in Dave's repo for LV2. I know Falktx has built some and there may be more.

But your system is working for DSSI, MESS, LV2, LADSPA, and native linux VST. I have not had to start muse3 with options for excluding plugins, something i'm pleased about.

Thanks for doing this, and can i suggest a "rescan" option, that enables the user to rescan everything, including the failures. As i fix missing extensions and suchlike, some of those failures may load correctly the next time around. Maybe in the Global Settings menu tab for plugin paths? Seems a logical place to put it.

Alex.
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by Tim E. Real »

If I may suggest as well using Dave's most recent git code.
He made some changes for a bug we reported concerning linuxsampler (that was your bug Alex I think),
and I reported that all seems OK now but I am waiting to hear back from him now about a new release and so on.
Try your linuxsampler with the complete suite of git LV2 versions especially lilv. Hopefully should work now.
Linuxsampler works fine here now.
finotti
Established Member
Posts: 528
Joined: Thu Sep 01, 2011 9:07 pm
Has thanked: 86 times
Been thanked: 23 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by finotti »

OK, I've tried to compile today: I've done a clone (git clone https://github.com/muse-sequencer/muse.git), then entered the muse3 directory and ran the compile_muse.sh script (which always worked in the past). But it fails to compile:

Code: Select all

[snip]
Scanning dependencies of target lv2_support
[ 14%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/collections.o
[ 14%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/instance.o
[ 14%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/lib.o
[ 14%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/node.o
[ 14%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/plugin.o
[ 15%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/pluginclass.o
[ 15%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/port.o
[ 15%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/query.o
[ 15%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/scalepoint.o
[ 15%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/state.o
[ 15%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/ui.o
[ 15%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/util.o
[ 15%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/world.o
[ 16%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lilv-0.22.0/src/zix/tree.o
[ 16%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/lv2-1.12.0/lv2/lv2plug.in/ns/ext/atom/atom-test.o
[ 16%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/serd-0.22.0/src/env.o
[ 16%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/serd-0.22.0/src/node.o
[ 16%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/serd-0.22.0/src/reader.o
[ 16%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/serd-0.22.0/src/string.o
[ 16%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/serd-0.22.0/src/uri.o
[ 16%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/serd-0.22.0/src/writer.o
[ 17%] Building C object muse/lv2Support/CMakeFiles/lv2_support.dir/sord-0.14.0/src/sord.o
/home/finotti/src/muse/muse/muse3/muse/lv2Support/sord-0.14.0/src/sord.c: In function ‘sord_new_literal_counted’:
/home/finotti/src/muse/muse/muse3/muse/lv2Support/sord-0.14.0/src/sord.c:1063:3: error: ‘strncpy’ specified bound 16 equals destination size [-Werror=stringop-truncation]
   strncpy(key.meta.lit.lang, lang, sizeof(key.meta.lit.lang));
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [muse/lv2Support/CMakeFiles/lv2_support.dir/build.make:314: muse/lv2Support/CMakeFiles/lv2_support.dir/sord-0.14.0/src/sord.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2173: muse/lv2Support/CMakeFiles/lv2_support.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
Any suggestions?
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by Tim E. Real »

Hi, yes I had seen this error a few weeks ago but had forgotten all about it since I
installed the LV2 suite externally.

To get you up and running, please install the suite of LV2 programs from your distro's package manager,
that's lv2, lilv, serd, sord and sratom. Remember you want to install the so-called 'development' packages.

If your distro does not have them you'll need to build them from source.

Then re-configure and re-build muse. A notice at the end of configuration tells you whether it is
using our internal LV2 support or the system installed LV2 suite:
"Building and linking internal LV2 support libraries (lv2, lilv, sord etc.)"
or
"Linking system LV2 support libraries (lv2, lilv, sord etc.)"

Be sure that our cmake flag ENABLE_LV2_SUPPLIED is false which is the default.

Tim.
finotti
Established Member
Posts: 528
Joined: Thu Sep 01, 2011 9:07 pm
Has thanked: 86 times
Been thanked: 23 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by finotti »

Tim E. Real wrote:Hi, yes I had seen this error a few weeks ago but had forgotten all about it since I
installed the LV2 suite externally.

To get you up and running, please install the suite of LV2 programs from your distro's package manager,
that's lv2, lilv, serd, sord and sratom. Remember you want to install the so-called 'development' packages.

[snip]
Yes, that worked! Thanks! And, indeed, the VST I had for SFZero that used to make muse crash on start now did not. Thanks for your work!

As a side note, and it might just be a bunch of harmless messages, but I had quite a few plugin errors on start:

Code: Select all

$ muse3 
Config File </home/finotti/.config/MusE/MusE.cfg>
LOCALE en_US
Denormal protection enabled.
Select audio device from configuration : 0
User JackAudio backend - backend selected through configuration
MusE:initJackAudio: jack_get_version() returned zeros. Setting version major to 1.
Using Jack

pluginScan: process exit code not zero
Plugins: *FAILED* pluginScan(/usr/lib/dssi/linuxsampler.so)

Initializing Native VST support. Using VESTIGE compatibility implementation.
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed

pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/home/finotti/.vst/DigitsLinux_2_1/DigitsVST_32.so)

XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed
XML: level = 0
XML Parse Error at line 0 col 2

pluginScan: readPluginScan failed

pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/local/lib/vst/lsp-plugins-lxvst-1.1.4-x86_64/lsp-plugins-vst-core-1.1.4-x86_64.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/avldrums.lv2.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/balance.lv2.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/b_reverb.lv2.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/carla.vst/libcarla_interposer-jack-x11.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/carla.vst/libcarla_native-plugin.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/carla.vst/carla-bridge-lv2.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/carla.vst/libcarla_interposer-x11.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/carla.vst/libcarla_interposer-safe.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/carla.vst/libcarla_utils.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/fat1.lv2.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/fil4.lv2.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/b_overdrive.lv2.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/b_synth.lv2.so)


pluginScan: process exit code not zero
scanVstNativeLib: *FAILED* pluginScan(/usr/lib/vst/b_whirl.lv2.so)


pluginScan: process exit code not zero
scanDSSILib: *FAILED* pluginScan(/usr/lib/dssi/linuxsampler.so)

         LV2: zynadd: Required feature: http://home.gna.org/lv2dynparam/rtmempool/v1: not supported!
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZaMaximX2.lv2/presets.ttl'
error: /usr/lib/lv2/ZaMultiComp.lv2/presets.ttl:118:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZaMultiComp.lv2/presets.ttl'
error: /usr/lib/lv2/ZaMultiComp.lv2/presets.ttl:118:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZaMultiComp.lv2/presets.ttl'
error: /usr/lib/lv2/ZaMultiCompX2.lv2/presets.ttl:118:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZaMultiCompX2.lv2/presets.ttl'
error: /usr/lib/lv2/ZaMultiCompX2.lv2/presets.ttl:118:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZaMultiCompX2.lv2/presets.ttl'
error: /usr/lib/lv2/ZamComp.lv2/presets.ttl:38:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZamComp.lv2/presets.ttl'
error: /usr/lib/lv2/ZamComp.lv2/presets.ttl:38:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZamComp.lv2/presets.ttl'
error: /usr/lib/lv2/ZamComp.lv2/presets.ttl:38:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZamComp.lv2/presets.ttl'
error: /usr/lib/lv2/ZamCompX2.lv2/presets.ttl:42:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZamCompX2.lv2/presets.ttl'
error: /usr/lib/lv2/ZamCompX2.lv2/presets.ttl:42:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZamCompX2.lv2/presets.ttl'
error: /usr/lib/lv2/ZamCompX2.lv2/presets.ttl:42:4: missing ';' or '.'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZamCompX2.lv2/presets.ttl'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZamGate.lv2/presets.ttl'
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZamGateX2.lv2/presets.ttl'
JACK: buffersize changed 1024
starting with template /usr/local/share/muse-3.0/templates/default.med
JACK: buffersize changed 1024
initMidiAlsa: alsaSeq already exited, ignoring
I haven't tried it carefully yet, though, so I am not sure there is any real problem.
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by Tim E. Real »

Awesome thanks for testing.
The number of rejects seems a bit excessive. I suspect some plugins may be 32-bit and others 64-bit.
That DSSI linuxsampler reject is puzzling too.

Can you please run with the -D command-line switch to reveal intimate debugging info?
There will be LOTS of output, so if you just want to focus on a few of the rejects that's fine.

I found a few oddities in our vst code which may have affected your results, so I'm making some more changes. Hang in there...

Thanks.
Tim.
alex stone
Established Member
Posts: 350
Joined: Fri Jun 06, 2008 7:39 am
Has thanked: 61 times
Been thanked: 53 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by alex stone »

Finotti,

A lot of those plugin errors mirror what i got too.

As for the linuxsampler dssi failure, i get that too.

Tim, this might sound dumb, but is it possible the dssi scan is looking for "linuxsampler-dssi.so" not "linuxsampler.so", and that's why it fails?

Good to see all of this getting an update!

Thanks,

Alex.
finotti
Established Member
Posts: 528
Joined: Thu Sep 01, 2011 9:07 pm
Has thanked: 86 times
Been thanked: 23 times

Re: NEW! Plugin Scanner 'sandbox'.

Post by finotti »

Tim E. Real wrote:Awesome thanks for testing.
The number of rejects seems a bit excessive. I suspect some plugins may be 32-bit and others 64-bit.
That DSSI linuxsampler reject is puzzling too.

Can you please run with the -D command-line switch to reveal intimate debugging info?
There will be LOTS of output, so if you just want to focus on a few of the rejects that's fine.

I found a few oddities in our vst code which may have affected your results, so I'm making some more changes. Hang in there...

Thanks.
Tim.
Sorry about the delay!

The output of "muse -D" is attached. But note that Jack was not running at the time. (I am away from the my home computer, so I just ran this remotely.) If this is a problem, let me know and I can make another one with Jack running.
Attachments
muse_debug.txt.gz
(40.71 KiB) Downloaded 64 times
Post Reply