NEW! Plugin Scanner 'sandbox'.

MusE is a MIDI/Audio sequencer with recording and editing capabilities, aiming to be a complete multitrack virtual studio for Linux. http://muse-sequencer.org/

Moderators: khz, MattKingUSA, spamatica

Tim E. Real
Established Member
Posts: 82
Joined: Sat Sep 15, 2012 12:36 am

NEW! Plugin Scanner 'sandbox'.

Postby Tim E. Real » Wed Oct 17, 2018 10:55 pm

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: 280
Joined: Thu Sep 01, 2011 9:07 pm

Re: NEW! Plugin Scanner 'sandbox'.

Postby finotti » Thu Oct 18, 2018 2:04 pm

Thanks for that!

So just get the latest GIT version, correct?

Tim E. Real
Established Member
Posts: 82
Joined: Sat Sep 15, 2012 12:36 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby Tim E. Real » Thu Oct 18, 2018 5:13 pm

Yes, git master.

alex stone
Established Member
Posts: 125
Joined: Fri Jun 06, 2008 7:39 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby alex stone » Sat Oct 20, 2018 8:47 am

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: 131
Joined: Mon Feb 08, 2010 10:38 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby spamatica » Sat Oct 20, 2018 11:40 am

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

alex stone
Established Member
Posts: 125
Joined: Fri Jun 06, 2008 7:39 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby alex stone » Sat Oct 20, 2018 12:27 pm

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: 82
Joined: Sat Sep 15, 2012 12:36 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby Tim E. Real » Sat Oct 20, 2018 4:37 pm

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: 125
Joined: Fri Jun 06, 2008 7:39 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby alex stone » Sat Oct 20, 2018 5:21 pm

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: 82
Joined: Sat Sep 15, 2012 12:36 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby Tim E. Real » Sat Oct 20, 2018 5:58 pm

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: 280
Joined: Thu Sep 01, 2011 9:07 pm

Re: NEW! Plugin Scanner 'sandbox'.

Postby finotti » Sun Oct 21, 2018 2:12 am

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: 82
Joined: Sat Sep 15, 2012 12:36 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby Tim E. Real » Sun Oct 21, 2018 5:54 pm

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: 280
Joined: Thu Sep 01, 2011 9:07 pm

Re: NEW! Plugin Scanner 'sandbox'.

Postby finotti » Sun Oct 21, 2018 10:08 pm

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: 82
Joined: Sat Sep 15, 2012 12:36 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby Tim E. Real » Mon Oct 22, 2018 4:48 pm

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: 125
Joined: Fri Jun 06, 2008 7:39 am

Re: NEW! Plugin Scanner 'sandbox'.

Postby alex stone » Tue Oct 23, 2018 10:41 am

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: 280
Joined: Thu Sep 01, 2011 9:07 pm

Re: NEW! Plugin Scanner 'sandbox'.

Postby finotti » Tue Oct 23, 2018 3:42 pm

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.
You do not have the required permissions to view the files attached to this post.


Return to “MusE Sequencer”

Who is online

Users browsing this forum: No registered users and 1 guest