lmms icon indicating copy to clipboard operation
lmms copied to clipboard

Implement Lv2 Worker

Open JohannesLorenz opened this issue 3 years ago • 21 comments

Open for code review, build errors fixed.

This enables a lot of new interesting synths:

amsynth 
drumkv1 
Black Pearl Drumkit 
Black Pearl Drumkit Multi 
Red Zeppelin Drumkit 
Red Zeppelin Drumkit Multi 
setBfree DSP Tonewheel Organ 
LV2 Convolution Mono 
LV2 Convolution Mono=>Stereo 
LV2 Convolution Stereo 
Midi Event Map 
x42 - IR Convolver Mono 
x42 - IR Convolver Mono => Stereo 
x42 - IR Convolver Stereo 
x42 - Preset Convolver Mono 
x42 - Preset Convolver Mono => Stereo 
x42 - Preset Convolver Stereo 
GxAmplifier-X 
GxAmplifier-Stereo-X 
GxCabinet 
Gxdetune 
Exampler 
Mephisto Audio 1x1 
Mephisto Audio 2x2 
Moony C1 x C1 
Moony C2 x C2 
Moony C4 x C4 
padthv1 
samplv1 
sfizz 
sfizz 
liquidsfz 
synthv1 
Dragonfly Hall Reverb 
Wolf Shaper 
Ninjas 2 
Dragonfly Plate Reverb 
Dragonfly Room Reverb 
ZaMultiComp 
ZamHeadX2 
ZamVerb

Closes #6460 .

JohannesLorenz avatar Aug 10 '22 19:08 JohannesLorenz

:robot: Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request, click me to make them magically appear! :tophat:

Windows

Linux

:robot:
{"platform_name_to_artifacts": {"Windows": [{"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://output.circle-artifacts.com/output/job/ef0317b0-81db-404a-94f9-6c933f51e7e6/artifacts/0/lmms-1.3.0-alpha.1.226+gfeebe2f00-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17972?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://output.circle-artifacts.com/output/job/02c20f6b-1c81-4ec1-aa2e-af67eb4abde1/artifacts/0/lmms-1.3.0-alpha.1.226+gfeebe2f00-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17968?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://output.circle-artifacts.com/output/job/c7bdff44-6020-4424-979a-a0408ff5cbfc/artifacts/0/lmms-1.3.0-alpha.1.226+gfeebe2f00-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17971?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}]}, "commit_sha": "ddbc9ffc9f357e0b387056274da4b388cc35292f"}

LmmsBot avatar Aug 10 '22 19:08 LmmsBot

So far mostly working well. I get an easily reproducible crash with guitarix plugins GxCabinet and GxAmplifier-X. GxAmplifier-Stereo -X has also acted up but it's not as obvious and reproducible.

Method to reproduce: load GxCabinet press play turn knob Cab Model... crash!

bt full

Thread 42 "lmms" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff1affd640 (LWP 32785)]
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140733646362176) at ./nptl/pthread_kill.c:44
44	./nptl/pthread_kill.c: No such file or directory.
(gdb) bt full
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140733646362176) at ./nptl/pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = 0x7fff1affd640

                    old_mask = {__val = {13493696961133113727, 13509500211699174145, 13512580399037183187, 13511761288644300553, 13510763769604825563, 13500095173919460032, 13487053870794403414, 13483641987426942079, 13491533908229453330, 13494314023382807329, 13464535894130224947, 13332876768329887496, 4196211348700518608, 4227464515760925052, 4261347985212734972, 4280251454843642132}}
        ret = <optimized out>
#1  __pthread_kill_internal (signo=6, threadid=140733646362176) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140733646362176, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007ffff5e5c476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#4  0x00007ffff5e427f3 in __GI_abort () at ./stdlib/abort.c:79
        save_stage = 1

                  act = {__sigaction_handler = {sa_handler = 0xbaa2d1e0ba7d7fe9, sa_sigaction = 0xbaa2d1e0ba7d7fe9}, sa_mask = {__val = {13500438732641715970, 13525133098091034921, 13517787428411312144, 13477773722074991901, 13437433009806505266, 13464734532064318085, 13473834120366885108, 0, 224, 0, 224, 63259075420, 208, 63254743103, 208, 13487029213384090153}}, sa_flags = -1154431387, sa_restorer = 0x3}

                    sigs = {__val = {32, 13473252985523162976, 13440490579846692192, 13441748219279223821, 13478750346088803975, 13490465457805543172, 13473485669672557121, 13422672182167928162, 13430421857939905950, 13450367582990935455, 13431293057703427977, 13414688263159004388, 13450592226956647809, 13478197454950848734, 13476593001200507472, 13446580615840742602}}
#5  0x00007ffff5ea36f6 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff5ff5b8c "%s\n") at ../sysdeps/posix/libc_fatal.c:155
        ap = {{gp_offset = 24, fp_offset = 0, overflow_arg_area = 0x7fff1affc4b0, reg_save_area = 0x7fff1affc440}}
        fd = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
#6  0x00007ffff5ebad7c in malloc_printerr (str=str@entry=0x7ffff5ff8768 "double free or corruption (fasttop)") at ./malloc/malloc.c:5664
#7  0x00007ffff5ebca4a in _int_free (av=0x7fff14000030, p=0x7fff14002a50, have_lock=0) at ./malloc/malloc.c:4539
        idx = 4
        old = <optimized out>
        old2 = <optimized out>
        size = <optimized out>
        fb = 0x7fff14000060
        nextchunk = <optimized out>
        nextsize = <optimized out>
        nextinuse = <optimized out>
        prevsize = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        bck = <optimized out>
        fwd = <optimized out>
        __PRETTY_FUNCTION__ = "_int_free"
#8  0x00007ffff5ebf4d3 in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3391
        ar_ptr = <optimized out>
        p = <optimized out>
        err = 0
#9  0x00007ffff6fd96a8 in  () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#10 0x00007ffff6fda558 in  () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#11 0x00007ffff6fdaad4 in fftwf_mkplan_d () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#12 0x00007ffff7030240 in  () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#13 0x00007ffff702f45a in  () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#14 0x00007ffff6fda6ae in  () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#15 0x00007ffff70ca1ed in fftwf_mkapiplan () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#16 0x00007ffff70d1778 in fftwf_plan_many_dft_c2r () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#17 0x00007ffff70d0c99 in fftwf_plan_dft_c2r () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#18 0x00007ffff70d0ba7 in fftwf_plan_dft_c2r_1d () at /lib/x86_64-linux-gnu/libfftw3f.so.3
#19 0x00007fff8be08b5d in Convlevel::configure(int, unsigned int, unsigned int, unsigned int, unsigned int) () at /lib/x86_64-linux-gnu/libzita-convolver.so.4
#20 0x00007fff8be0b2dc in Convproc::configure(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, float) ()
    at /lib/x86_64-linux-gnu/libzita-convolver.so.4
#21 0x00007fffe82532ee in  () at /usr/lib/lv2/gx_cabinet.lv2/gx_cabinet.so
#22 0x00007fffe8253055 in  () at /usr/lib/lv2/gx_cabinet.lv2/gx_cabinet.so
#23 0x00007fffe825273d in  () at /usr/lib/lv2/gx_cabinet.lv2/gx_cabinet.so
#24 0x00005555558b144d in lmms::Lv2Worker::workerFunc() (this=0x555556519190) at /home/zonkmachine/builds/lmms/src/core/lv2/Lv2Worker.cpp:144

                  buf = std::vector of length 110592, capacity 28311552 = {0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000'...}
        size = 110592
        __PRETTY_FUNCTION__ = "void* lmms::Lv2Worker::workerFunc()"
#25 0x00005555558b37d6 in std::__invoke_impl<void*, void* (lmms::Lv2Worker::*)(), lmms::Lv2Worker*>(std::__invoke_memfun_deref, void* (lmms::Lv2Worker::*&&)(), lmms::Lv2Worker*--Type <RET> for more, q to quit, c to continue without paging--
&&) (__f=@0x55555d6a0920: (void *(lmms::Lv2Worker::*)(class lmms::Lv2Worker * const)) 0x5555558b12e2 <lmms::Lv2Worker::workerFunc()>, __t=@0x55555d6a0918: 0x555556519190)
    at /usr/include/c++/11/bits/invoke.h:74
#26 0x00005555558b372a in std::__invoke<void* (lmms::Lv2Worker::*)(), lmms::Lv2Worker*>(void* (lmms::Lv2Worker::*&&)(), lmms::Lv2Worker*&&)
    (__fn=@0x55555d6a0920: (void *(lmms::Lv2Worker::*)(class lmms::Lv2Worker * const)) 0x5555558b12e2 <lmms::Lv2Worker::workerFunc()>) at /usr/include/c++/11/bits/invoke.h:96
#27 0x00005555558b368b in std::thread::_Invoker<std::tuple<void* (lmms::Lv2Worker::*)(), lmms::Lv2Worker*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>)
    (this=0x55555d6a0918) at /usr/include/c++/11/bits/std_thread.h:253
#28 0x00005555558b3642 in std::thread::_Invoker<std::tuple<void* (lmms::Lv2Worker::*)(), lmms::Lv2Worker*> >::operator()() (this=0x55555d6a0918)
    at /usr/include/c++/11/bits/std_thread.h:260
#29 0x00005555558b3622 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void* (lmms::Lv2Worker::*)(), lmms::Lv2Worker*> > >::_M_run() (this=0x55555d6a0910)
    at /usr/include/c++/11/bits/std_thread.h:211
#30 0x00007ffff62252c3 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#31 0x00007ffff5eaeb43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>

                      unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488340112, -6658768421911494657, 140733646362176, 0, 140737319200848, 140737488340464, 6658986126740586495, 6658755339764269055}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#32 0x00007ffff5f40a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

zonkmachine avatar Aug 14 '22 16:08 zonkmachine

Tested: works

amsynth Black Pearl Drumkit Red Zeppelin Drumkit Dragonfly Hall Reverb Dragonfly Plate Reverb Dragonfly Room Reverb ZaMultiComp ZamHeadX2 ZamVerb setBfree DSP Tonewheel Organ - acceptable default sound but no control over the parameters.

Won't show up in lmms

with no debug message on loading. Will crash Zrythm but seem to work just fine in Ardour. padthv1 samplv1 synthv1 drumkv1

No functionality without gui

LV2 Convolution Mono LV2 Convolution Mono=>Stereo LV2 Convolution Stereo x42 - IR Convolver Mono x42 - IR Convolver Mono => Stereo x42 - IR Convolver Stereo x42 - Preset Convolver Mono x42 - Preset Convolver Mono => Stereo x42 - Preset Convolver Stereo Wolf Shaper

Not tested. Most likely depends on a gui

sfizz (not tested, pretty sure it needs the gui) Mephisto Audio 1x1 Mephisto Audio 2x2 Ninjas 2

Won't load: no audio output channel

Midi Event Map Moony C1 x C1 Moony C2 x C2 Moony C4 x C4 From the Moony documentation: "The Moony plugins can handle LV2 control and atom event ports, only. They do not handle LV2 audio ports. "

Won't load: incompatible number of channels

Black Pearl Drumkit Multi Red Zeppelin Drumkit Multi

Crashes

GxCabinet GxAmplifier-X GxAmplifier-Stereo-X Gxdetune

Unknown plugin

Exampler

zonkmachine avatar Aug 14 '22 20:08 zonkmachine

Thanks a lot for testing @zonkmachine !

I can't confirm because I have neither of these 3 effects (though I do have many Gx... effects). From the backtrace it looks like it's freeing already freed memory, but if the plugin itself is freeing something, it's probably not LMMS' fault. It would be interesting to have a valgrind trace though, as well of the error itself and what's preceding it. The ultimate proof whether it's an LMMS issue might be loading it in jalv/ardout/audacity/... and see if it crashes there.

About the list: It looks like you've included it already in the separate PR, is that correct?

JohannesLorenz avatar Aug 17 '22 17:08 JohannesLorenz

I have neither of these 3 effects (though I do have many Gx... effects).

In ubuntu the package is guitarix-lv2.

The ultimate proof whether it's an LMMS issue might be loading it in jalv/ardout/audacity/... and see if it crashes there.

Works just fine in ardour and audacity. The control is a drop down menu.

zonkmachine avatar Aug 18 '22 21:08 zonkmachine

About the list: It looks like you've included it already in the separate PR, is that correct?

The Guitarix plugins that crash? Not yet, I'm not done testing them.

zonkmachine avatar Aug 18 '22 22:08 zonkmachine

Thanks for the reports and for helping with getting GxCabinet compiled. I'll debug this in the next days, to see if the error(s) come from LMMS or from Gx.

JohannesLorenz avatar Aug 19 '22 22:08 JohannesLorenz

Due to the bug mentioned above, I'll convert this PR into a draft, for now.

JohannesLorenz avatar Aug 25 '22 18:08 JohannesLorenz

I started lmms for another branch than lv2-worker that I had been testing previously and it looks like lmms tries to load GxCabinet anyway, even though I now lack worker support. Interestingly I also got more data from this crash than lv2-worker and I don't know why that is.

bt full

[New Thread 0x7fff4a7fc640 (LWP 128055)]
Missing feature work:schedule.
using block size: 256
mlock 37407 bytes
using block size: 256
mlock 37407 bytes

Thread 37 "AudioEngine::fi" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff4a7fc640 (LWP 128055)]
0x00007fffe8230b2b in GxCabinet::run_dsp_mono (n_samples=256, this=0x55555cb58320) at ../src/LV2/gx_cabinet.lv2/gxcabinet.cpp:330
330	      schedule->schedule_work(schedule->handle, sizeof(bool), &doit);
(gdb) bt full
#0  0x00007fffe8230b2b in GxCabinet::run_dsp_mono(unsigned int) (n_samples=256, this=0x55555cb58320) at ../src/LV2/gx_cabinet.lv2/gxcabinet.cpp:330

                  buf = {0, 0, 2.75152524e-06, 2.19756785e-05, 7.39677271e-05, 0.000174674293, 0.000339525344, 0.000583271962, 0.000919828832, 0.00136212632, 0.00192196982, 0.00260991161, 0.00343513209, 0.00440533319, 0.00552665209, 0.00680357916, 0.00823890045, 0.00983364694, 0.0115870731, 0.0134966299, 0.0155579979, 0.0177650657, 0.0201100055, 0.0225833189, 0.025173882, 0.0278690644, 0.0306548104, 0.0335157588, 0.0364353657, 0.0393960439, 0.0423793197, 0.0453659706, 0.0483362488, 0.0512699299, 0.0541466549, 0.0569459908, 0.0596476272, 0.0622316264, 0.0646785274, 0.0669695809, 0.069086872, 0.0710135326, 0.0727338716, 0.0742335543, 0.0756053776, 0.0769507438, 0.0782691464, 0.0795601681, 0.0808233544, 0.0820582584, 0.0832644701, 0.0844415724, 0.0855891481, 0.0867068246, 0.0877941996, 0.0888509229, 0.0898765922, 0.0908709019, 0.0918334872, 0.0927640349, 0.0936621949, 0.0945276842, 0.095360212, 0.096159488, 0.0969252363, 0.0976571813, 0.098355107, 0.0990187526, 0.0996479094, 0.100242347, 0.100801885, 0.101326309, 0.10181547, 0.102269173, 0.102687292, 0.103069678, 0.103416212, 0.103726745, 0.104001231, 0.104239531, 0.104441591, 0.104607344, 0.104736745, 0.104829729, 0.104886301, 0.104906425, 0.104890116, 0.104837388, 0.104748249, 0.104622722, 0.104460888, 0.104262799, 0.104028508, 0.103758149, 0.103451774, 0.103109539, 0.102731518, 0.102317892, 0.101868778, 0.101384372, 0.100864805, 0.100310311, 0.0997210518, 0.0990972593, 0.0984391198, 0.0977469236, 0.0970208645, 0.0962612331, 0.0954682827, 0.0946423039, 0.0937835798, 0.0928924233, 0.0919691324, 0.0910140574, 0.0900275037, 0.0890098438, 0.0879614353, 0.0868826583, 0.085773848, 0.0846354216, 0.083467789, 0.082271345, 0.0810465291, 0.0797937214, 0.078513436, 0.0772060677, 0.0758721083, 0.0745119676, 0.0731262043, 0.0717152357, 0.0702796131, 0.0688197613, 0.0673362687, 0.0658296272, 0.0643003583, 0.0627489686, 0.0611760691, 0.0595821552, 0.0579678155, 0.0563335605, 0.0546800308, 0.0530077592, 0.0513173565, 0.0496093705, 0.0478844494, 0.0461431667, 0.0443861336, 0.0426139459, 0.0408272557, 0.0390266702, 0.0372128151, 0.0353863053, 0.0335478112, 0.0316979662, 0.0298373979, 0.0279667415, 0.0260866955, 0.0241978839, 0.0223009679, 0.0203965865, 0.0184854437, 0.0165681895, 0.0146454833, 0.0127179716, 0.010786375, 0.00885133818, 0.0069135353, 0.00497361459, 0.00303230062, 0.00109024264, -0.000851885066, -0.00279343245, -0.00473367516, -0.00667196512, -0.00860762969, -0.0105400207, -0.0124684162, -0.0143921757, -0.0163106564, -0.0182231367, -0.0201289859, -0.0220275372, -0.023918163, -0.0258001555, -0.0276728831, -0.0295357034, -0.0313879922, -0.0332290605, -0.0350582935, -0.036875058, -0.0386787467, -0.0404686928, -0.0422443002, -0.0440049358, -0.0457500443, -0.0474789552, -0.0491911061, -0.0508858897, -0.0525627583, -0.054221075...}
#1  GxCabinet::run(void*, unsigned int) (instance=0x55555cb58320, n_samples=256) at ../src/LV2/gx_cabinet.lv2/gxcabinet.cpp:477
#2  0x00005555558914ab in lilv_instance_run(LilvInstance*, uint32_t) (instance=0x55555c989d80, sample_count=256) at /usr/include/lilv-0/lilv/lilv.h:1948
#3  0x0000555555892864 in lmms::Lv2Proc::run(short) (this=0x55555c83f200, frames=256) at /home/zonkmachine/builds/lmms/src/core/lv2/Lv2Proc.cpp:334
#4  0x000055555588966a in lmms::Lv2ControlBase::run(short) (this=0x7ffff27c1650, frames=256) at /home/zonkmachine/builds/lmms/src/core/lv2/Lv2ControlBase.cpp:151
        c = std::unique_ptr<lmms::Lv2Proc> = {get() = 0x55555c83f200}

                    __for_range = std::vector of length 2, capacity 2 = {std::unique_ptr<lmms::Lv2Proc> = {get() = 0x55555c83f200}, std::unique_ptr<lmms::Lv2Proc> = {get() = 0x55555cb63800}}
        __for_begin = std::unique_ptr<lmms::Lv2Proc> = {get() = 0x55555c83f200}
        __for_end = std::unique_ptr<lmms::Lv2Proc> = {get() = 0x0}
#5  0x00007fffacafee9c in lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>*, short) (this=0x7ffff27c1080, buf=0x55555682f820, frames=256)
    at /home/zonkmachine/builds/lmms/plugins/Lv2Effect/Lv2Effect.cpp:79
        outSum = 4.6355766130935217e-310
        corrupt = 85
        d = 0
        w = 0

zonkmachine avatar Aug 27 '22 20:08 zonkmachine

@zonkmachine What exactly were the steps to reproduce this? I still get

Lv2 plugin "GxCabinet" (URI: http://guitarix.sourceforge.net/plugins/gx_cabinet#CABINET ) can not be loaded:
  -  required feature not supported : http://lv2plug.in/ns/ext/worker#schedule

using master.

JohannesLorenz avatar Aug 28 '22 19:08 JohannesLorenz

@zonkmachine What exactly were the steps to reproduce this?

I was on this branch, testing away under gdb. Then switched to the the arp randomness branch and fired it up, again under gdb. I have the option to automatically load last project checked so that is what happened. I always close down gdb when switching branches. Can't replicate... ghost in the machine!?

zonkmachine avatar Aug 28 '22 20:08 zonkmachine

If this truly is not supposed to be able to do I'm open to the idea that this is a false memory and that I was still on the old branch and it loaded and crashed and I then interpreted things wildly wrong. That could have happened...

zonkmachine avatar Aug 28 '22 20:08 zonkmachine

Rendering one note with a test program having a GxAmplifier-X gave some output in valgrind. Full log at the bottom.

==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x1D60ADD3: run_dsp_mono (gxamp.cpp:503)
==48681==    by 0x1D60ADD3: GxPluginMono::run(void*, unsigned int) (gxamp.cpp:699)
==48681==    by 0x4428EE: lilv_instance_run (lilv.h:1948)
==48681==    by 0x443D53: lmms::Lv2Proc::run(short) (Lv2Proc.cpp:336)
==48681==    by 0x43A96B: lmms::Lv2ControlBase::run(short) (Lv2ControlBase.cpp:151)
==48681==    by 0x1CF0BE3B: lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>*, short) (Lv2Effect.cpp:79)
==48681==    by 0x3AA18F: lmms::EffectChain::processAudioBuffer(std::array<float, 2ul>*, short, bool) (EffectChain.cpp:201)
==48681==    by 0x432D05: lmms::AudioPort::processEffects() (AudioPort.cpp:99)
==48681==    by 0x43365F: lmms::AudioPort::doProcessing() (AudioPort.cpp:224)
==48681==    by 0x360748: lmms::ThreadableJob::process() (ThreadableJob.h:77)
==48681==    by 0x35FFF5: lmms::AudioEngineWorkerThread::JobQueue::run() (AudioEngineWorkerThread.cpp:88)
==48681==    by 0x3602F6: lmms::AudioEngineWorkerThread::startAndWaitForJobs() (AudioEngineWorkerThread.cpp:161)
==48681==    by 0x358265: lmms::AudioEngine::renderNextBuffer() (AudioEngine.cpp:425)

valgrind --smc-check=all --error-limit=no --leak-check=no

Click to expand
$ valgrind --smc-check=all --error-limit=no --leak-check=no ./lmms --render ~/Documents/lmms/projects/issues/workergxcrash-03.mmp -o testfile.wav
==48681== Memcheck, a memory error detector
==48681== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==48681== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==48681== Command: ./lmms --render /home/zonkmachine/Documents/lmms/projects/issues/workergxcrash-03.mmp -o testfile.wav
==48681== 
*** WEAK-JACK: initializing
*** WEAK-JACK: OK. (0)
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AA89: ???
==48681==    by 0x9BACE27: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AA89: ???
==48681==    by 0x9BB5BA7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AA89: ???
==48681==    by 0x9BB6827: ???
==48681== 
Notice: could not set realtime priority.
VST sync support disabled in your configuration
error: failed to open file /home/zonkmachine/.lv2/README/manifest.ttl (Not a directory)
lilv_world_load_file(): error: Error loading file `file:///home/zonkmachine/.lv2/README/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///home/zonkmachine/.lv2/README/manifest.ttl
error: failed to open file /home/zonkmachine/.lv2/Wolpertinger.so/manifest.ttl (Not a directory)
lilv_world_load_file(): error: Error loading file `file:///home/zonkmachine/.lv2/Wolpertinger.so/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///home/zonkmachine/.lv2/Wolpertinger.so/manifest.ttl
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_clubdrive.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_clubdrive.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_sd2lead.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_sd2lead.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_CreamMachine.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_CreamMachine.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_voodoo.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_voodoo.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_vstb.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_vstb.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_boobtube.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_boobtube.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_epic.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_epic.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_plexi.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_plexi.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_maestro_fz1b.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_maestro_fz1b.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_ultracab.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_ultracab.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_SunFace.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_SunFace.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_sfp.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_sfp.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_hyperion.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_hyperion.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_TubeDistortion.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_TubeDistortion.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_saturate.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_saturate.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_sd1sim.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_sd1sim.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_tonemachine.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_tonemachine.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_shakatube.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_shakatube.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_bottlerocket.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_bottlerocket.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_AxisFace.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_AxisFace.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_blueamp.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_blueamp.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_supersonic.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_supersonic.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_voxbass.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_voxbass.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_guvnor.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_guvnor.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_valvecaster.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_valvecaster.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_ampegsvt.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_ampegsvt.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_sloopyblue.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_sloopyblue.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/rezonateur.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/rezonateur.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_KnightFuzz.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_KnightFuzz.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_timray.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_timray.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_eternity.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_eternity.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_maestro_fz1s.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_maestro_fz1s.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_MicroAmp.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_MicroAmp.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_hotbox.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_hotbox.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_vmk2d.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_vmk2d.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_DOP250.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_DOP250.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/rezonateur-stereo.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/rezonateur-stereo.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_bajatubedriver.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_bajatubedriver.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_slowgear.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_slowgear.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_uvox.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_uvox.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_Heathkit.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_Heathkit.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_luna.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_luna.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_quack.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_quack.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_liquiddrive.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_liquiddrive.lv2/ (ignored)
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///home/zonkmachine/.lv2/gx_vfm.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/lib/lv2/gx_vfm.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///usr/lib/lv2/gx_jcm800pre_st.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/local/lib/lv2/gx_jcm800pre_st.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///usr/lib/lv2/gx_mbcompressor.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/local/lib/lv2/gx_mbcompressor.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///usr/lib/lv2/gx_hfb.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/local/lib/lv2/gx_hfb.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///usr/lib/lv2/gx_mbecho.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/local/lib/lv2/gx_mbecho.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///usr/lib/lv2/gx_mole.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/local/lib/lv2/gx_mole.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///usr/lib/lv2/gx_mbdistortion.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/local/lib/lv2/gx_mbdistortion.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///usr/lib/lv2/gx_fuzz.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/local/lib/lv2/gx_fuzz.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_add_plugin(): warning: Duplicate plugin 
lilv_world_add_plugin(): warning: ... found in file:///usr/lib/lv2/gx_livelooper.lv2/
lilv_world_add_plugin(): warning: ... and      file:///usr/local/lib/lv2/gx_livelooper.lv2/ (ignored)
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
lilv_world_load_bundle(): warning: Replacing version 40.0 of  from 
lilv_world_load_bundle(): note: New version 43.0 found in 
Lv2 plugin SUMMARY: 574 of 716  loaded in 81592 msecs.
For details about not loaded plugins, please set
  environment variable "LMMS_LV2_DEBUG" to nonempty.
Lv2 Plugins blacklisted: 10 of 716 
  If you want to ignore the blacklist (dangerous!), please set
  environment variable "LMMS_IGNORE_BLACKLIST" to nonempty.
Loading project...
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x145BAA17: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B985C7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B64C87: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB3CB637: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB7D1C77: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x102DF987: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x12EAC1D7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B62A27: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B67357: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB822887: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0xB822887: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB7D7057: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0xB7D7057: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB7D98C7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0xB7D98C7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16C38587: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x16C38587: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16C52487: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x16C52487: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x1026DE47: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x1026DE47: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB44F727: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x12A842C7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16BFD917: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B71817: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B73087: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x16B73087: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B795B7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B7A4F7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x16B7A4F7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B98697: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16BD98E7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16BDF887: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x16BDF887: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16C05D77: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x16C05D77: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16C1BB97: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x16C1BB97: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16C52587: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486AC05: ???
==48681==    by 0x16C52587: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16C10EC7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x11AA3B57: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB7F3917: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x11A8F367: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16B6D177: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x10238CC7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x14372477: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x1555BDC7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x1465A5F7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x1465A8E7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E42647: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x1160BCB7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x145AEDC7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x119D9597: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x119EC957: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x11A800D7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x11A80FE7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x11A82307: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x15401C47: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x12ABC537: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x144164E7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x153FF947: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x153FFFE7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x154A4A37: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x169DF347: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E3C2D7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB2F4BC7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0xB31F347: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E3FEC7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E407E7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E41097: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E430A7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E43247: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E43BE7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E440D7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E44987: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E4E1D7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E4EC97: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E4F417: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E4F5B7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E4FE87: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E52DA7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E55097: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E553A7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x16AEAB87: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x115B2D47: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E57F27: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E5B1E7: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x18E5B807: ???
==48681== 
==48681== Conditional jump or move depends on uninitialised value(s)
==48681==    at 0x486ABFA: ???
==48681==    by 0x155FD727: ???
==48681== 
==48681== Invalid read of size 8
==48681==    at 0x40286C0: strncmp (strcmp.S:170)
==48681==    by 0x400668D: is_dst (dl-load.c:216)
==48681==    by 0x400810E: _dl_dst_count (dl-load.c:253)
==48681==    by 0x400810E: expand_dynamic_string_token (dl-load.c:395)
==48681==    by 0x40082B7: fillin_rpath.isra.0 (dl-load.c:483)
==48681==    by 0x4008602: decompose_rpath (dl-load.c:654)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:696)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:677)
==48681==    by 0x400ABF5: _dl_map_object (dl-load.c:2165)
==48681==    by 0x4003494: openaux (dl-deps.c:64)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x4003C7B: _dl_map_object_deps (dl-deps.c:248)
==48681==    by 0x400EA0E: dl_open_worker_begin (dl-open.c:592)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400DF99: dl_open_worker (dl-open.c:782)
==48681==  Address 0x11cb9e81 is 1 bytes inside a block of size 8 alloc'd
==48681==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==48681==    by 0x40271FF: malloc (rtld-malloc.h:56)
==48681==    by 0x40271FF: strdup (strdup.c:42)
==48681==    by 0x4008594: decompose_rpath (dl-load.c:629)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:696)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:677)
==48681==    by 0x400ABF5: _dl_map_object (dl-load.c:2165)
==48681==    by 0x4003494: openaux (dl-deps.c:64)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x4003C7B: _dl_map_object_deps (dl-deps.c:248)
==48681==    by 0x400EA0E: dl_open_worker_begin (dl-open.c:592)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400DF99: dl_open_worker (dl-open.c:782)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400E34D: _dl_open (dl-open.c:883)
==48681== 
==48681== Invalid read of size 8
==48681==    at 0x40286C8: strncmp (strcmp.S:172)
==48681==    by 0x400668D: is_dst (dl-load.c:216)
==48681==    by 0x400810E: _dl_dst_count (dl-load.c:253)
==48681==    by 0x400810E: expand_dynamic_string_token (dl-load.c:395)
==48681==    by 0x40082B7: fillin_rpath.isra.0 (dl-load.c:483)
==48681==    by 0x4008602: decompose_rpath (dl-load.c:654)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:696)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:677)
==48681==    by 0x400ABF5: _dl_map_object (dl-load.c:2165)
==48681==    by 0x4003494: openaux (dl-deps.c:64)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x4003C7B: _dl_map_object_deps (dl-deps.c:248)
==48681==    by 0x400EA0E: dl_open_worker_begin (dl-open.c:592)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400DF99: dl_open_worker (dl-open.c:782)
==48681==  Address 0x11cb9e89 is 1 bytes after a block of size 8 alloc'd
==48681==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==48681==    by 0x40271FF: malloc (rtld-malloc.h:56)
==48681==    by 0x40271FF: strdup (strdup.c:42)
==48681==    by 0x4008594: decompose_rpath (dl-load.c:629)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:696)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:677)
==48681==    by 0x400ABF5: _dl_map_object (dl-load.c:2165)
==48681==    by 0x4003494: openaux (dl-deps.c:64)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x4003C7B: _dl_map_object_deps (dl-deps.c:248)
==48681==    by 0x400EA0E: dl_open_worker_begin (dl-open.c:592)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400DF99: dl_open_worker (dl-open.c:782)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400E34D: _dl_open (dl-open.c:883)
==48681== 
==48681== Invalid read of size 8
==48681==    at 0x40286C0: strncmp (strcmp.S:170)
==48681==    by 0x400668D: is_dst (dl-load.c:216)
==48681==    by 0x4007F79: _dl_dst_substitute (dl-load.c:295)
==48681==    by 0x40082B7: fillin_rpath.isra.0 (dl-load.c:483)
==48681==    by 0x4008602: decompose_rpath (dl-load.c:654)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:696)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:677)
==48681==    by 0x400ABF5: _dl_map_object (dl-load.c:2165)
==48681==    by 0x4003494: openaux (dl-deps.c:64)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x4003C7B: _dl_map_object_deps (dl-deps.c:248)
==48681==    by 0x400EA0E: dl_open_worker_begin (dl-open.c:592)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400DF99: dl_open_worker (dl-open.c:782)
==48681==  Address 0x11cb9e81 is 1 bytes inside a block of size 8 alloc'd
==48681==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==48681==    by 0x40271FF: malloc (rtld-malloc.h:56)
==48681==    by 0x40271FF: strdup (strdup.c:42)
==48681==    by 0x4008594: decompose_rpath (dl-load.c:629)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:696)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:677)
==48681==    by 0x400ABF5: _dl_map_object (dl-load.c:2165)
==48681==    by 0x4003494: openaux (dl-deps.c:64)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x4003C7B: _dl_map_object_deps (dl-deps.c:248)
==48681==    by 0x400EA0E: dl_open_worker_begin (dl-open.c:592)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400DF99: dl_open_worker (dl-open.c:782)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400E34D: _dl_open (dl-open.c:883)
==48681== 
==48681== Invalid read of size 8
==48681==    at 0x40286C8: strncmp (strcmp.S:172)
==48681==    by 0x400668D: is_dst (dl-load.c:216)
==48681==    by 0x4007F79: _dl_dst_substitute (dl-load.c:295)
==48681==    by 0x40082B7: fillin_rpath.isra.0 (dl-load.c:483)
==48681==    by 0x4008602: decompose_rpath (dl-load.c:654)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:696)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:677)
==48681==    by 0x400ABF5: _dl_map_object (dl-load.c:2165)
==48681==    by 0x4003494: openaux (dl-deps.c:64)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x4003C7B: _dl_map_object_deps (dl-deps.c:248)
==48681==    by 0x400EA0E: dl_open_worker_begin (dl-open.c:592)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400DF99: dl_open_worker (dl-open.c:782)
==48681==  Address 0x11cb9e89 is 1 bytes after a block of size 8 alloc'd
==48681==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==48681==    by 0x40271FF: malloc (rtld-malloc.h:56)
==48681==    by 0x40271FF: strdup (strdup.c:42)
==48681==    by 0x4008594: decompose_rpath (dl-load.c:629)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:696)
==48681==    by 0x400ABF5: cache_rpath (dl-load.c:677)
==48681==    by 0x400ABF5: _dl_map_object (dl-load.c:2165)
==48681==    by 0x4003494: openaux (dl-deps.c:64)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x4003C7B: _dl_map_object_deps (dl-deps.c:248)
==48681==    by 0x400EA0E: dl_open_worker_begin (dl-open.c:592)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400DF99: dl_open_worker (dl-open.c:782)
==48681==    by 0x694AC27: _dl_catch_exception (dl-error-skeleton.c:208)
==48681==    by 0x400E34D: _dl_open (dl-open.c:883)
==48681== 
using block size: 256
mlock 696463 bytes

==48681== Mismatched free() / delete / delete [] ==48681== at 0x484B8AF: operator delete(void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==48681== by 0x1D62220B: GxSimpleConvolver::configure(int, float*, unsigned int) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D60B9DC: init_dsp_mono (gxamp.cpp:435) ==48681== by 0x1D60B9DC: GxPluginMono::instantiate(LV2_Descriptor const*, double, char const*, LV2_Feature const* const*) (gxamp.cpp:680) ==48681== by 0x542E342: lilv_plugin_instantiate (instance.c:76) ==48681== by 0x4441E6: lmms::Lv2Proc::initPlugin() (Lv2Proc.cpp:406) ==48681== by 0x44329E: lmms::Lv2Proc::Lv2Proc(LilvPluginImpl const*, lmms::Model*) (Lv2Proc.cpp:169) ==48681== by 0x43B21C: std::_MakeUniqlmms::Lv2Proc::__single_object std::make_unique<lmms::Lv2Proc, LilvPluginImpl const*&, lmms::Model*&>(LilvPluginImpl const*&, lmms::Model*&) (unique_ptr.h:962) ==48681== by 0x43A22E: lmms::Lv2ControlBase::Lv2ControlBase(lmms::Model*, QString const&) (Lv2ControlBase.cpp:60) ==48681== by 0x1CF0E38B: lmms::Lv2FxControls::Lv2FxControls(lmms::Lv2Effect*, QString const&) (Lv2FxControls.cpp:39) ==48681== by 0x1CF0BC75: lmms::Lv2Effect::Lv2Effect(lmms::Model*, lmms::Plugin::Descriptor::SubPluginFeatures::Key const*) (Lv2Effect.cpp:62) ==48681== by 0x1CF0C12D: lmms_plugin_main (Lv2Effect.cpp:112) ==48681== by 0x3ED73E: lmms::Plugin::instantiate(QString const&, lmms::Model*, void*) (Plugin.cpp:239) ==48681== Address 0x12648c00 is 0 bytes inside a block of size 3,676 alloc'd ==48681== at 0x484A2F3: operator new[](unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==48681== by 0x1D6234B3: gx_resample::BufferResampler::process(int, int, float*, int, int*) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D622230: GxSimpleConvolver::configure(int, float*, unsigned int) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D60B9DC: init_dsp_mono (gxamp.cpp:435) ==48681== by 0x1D60B9DC: GxPluginMono::instantiate(LV2_Descriptor const*, double, char const*, LV2_Feature const* const*) (gxamp.cpp:680) ==48681== by 0x542E342: lilv_plugin_instantiate (instance.c:76) ==48681== by 0x4441E6: lmms::Lv2Proc::initPlugin() (Lv2Proc.cpp:406) ==48681== by 0x44329E: lmms::Lv2Proc::Lv2Proc(LilvPluginImpl const*, lmms::Model*) (Lv2Proc.cpp:169) ==48681== by 0x43B21C: std::_MakeUniqlmms::Lv2Proc::__single_object std::make_unique<lmms::Lv2Proc, LilvPluginImpl const*&, lmms::Model*&>(LilvPluginImpl const*&, lmms::Model*&) (unique_ptr.h:962) ==48681== by 0x43A22E: lmms::Lv2ControlBase::Lv2ControlBase(lmms::Model*, QString const&) (Lv2ControlBase.cpp:60) ==48681== by 0x1CF0E38B: lmms::Lv2FxControls::Lv2FxControls(lmms::Lv2Effect*, QString const&) (Lv2FxControls.cpp:39) ==48681== by 0x1CF0BC75: lmms::Lv2Effect::Lv2Effect(lmms::Model*, lmms::Plugin::Descriptor::SubPluginFeatures::Key const*) (Lv2Effect.cpp:62) ==48681== by 0x1CF0C12D: lmms_plugin_main (Lv2Effect.cpp:112) ==48681== ==48681== Mismatched free() / delete / delete [] ==48681== at 0x484B8AF: operator delete(void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==48681== by 0x1D62220B: GxSimpleConvolver::configure(int, float*, unsigned int) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D60BA45: init_dsp_mono (gxamp.cpp:442) ==48681== by 0x1D60BA45: GxPluginMono::instantiate(LV2_Descriptor const*, double, char const*, LV2_Feature const* const*) (gxamp.cpp:680) ==48681== by 0x542E342: lilv_plugin_instantiate (instance.c:76) ==48681== by 0x4441E6: lmms::Lv2Proc::initPlugin() (Lv2Proc.cpp:406) ==48681== by 0x44329E: lmms::Lv2Proc::Lv2Proc(LilvPluginImpl const*, lmms::Model*) (Lv2Proc.cpp:169) ==48681== by 0x43B21C: std::_MakeUniqlmms::Lv2Proc::__single_object std::make_unique<lmms::Lv2Proc, LilvPluginImpl const*&, lmms::Model*&>(LilvPluginImpl const*&, lmms::Model*&) (unique_ptr.h:962) ==48681== by 0x43A22E: lmms::Lv2ControlBase::Lv2ControlBase(lmms::Model*, QString const&) (Lv2ControlBase.cpp:60) ==48681== by 0x1CF0E38B: lmms::Lv2FxControls::Lv2FxControls(lmms::Lv2Effect*, QString const&) (Lv2FxControls.cpp:39) ==48681== by 0x1CF0BC75: lmms::Lv2Effect::Lv2Effect(lmms::Model*, lmms::Plugin::Descriptor::SubPluginFeatures::Key const*) (Lv2Effect.cpp:62) ==48681== by 0x1CF0C12D: lmms_plugin_main (Lv2Effect.cpp:112) ==48681== by 0x3ED73E: lmms::Plugin::instantiate(QString const&, lmms::Model*, void*) (Plugin.cpp:239) ==48681== Address 0x11dbb460 is 0 bytes inside a block of size 708 alloc'd ==48681== at 0x484A2F3: operator new[](unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==48681== by 0x1D6234B3: gx_resample::BufferResampler::process(int, int, float*, int, int*) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D622230: GxSimpleConvolver::configure(int, float*, unsigned int) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D60BA45: init_dsp_mono (gxamp.cpp:442) ==48681== by 0x1D60BA45: GxPluginMono::instantiate(LV2_Descriptor const*, double, char const*, LV2_Feature const* const*) (gxamp.cpp:680) ==48681== by 0x542E342: lilv_plugin_instantiate (instance.c:76) ==48681== by 0x4441E6: lmms::Lv2Proc::initPlugin() (Lv2Proc.cpp:406) ==48681== by 0x44329E: lmms::Lv2Proc::Lv2Proc(LilvPluginImpl const*, lmms::Model*) (Lv2Proc.cpp:169) ==48681== by 0x43B21C: std::_MakeUniqlmms::Lv2Proc::__single_object std::make_unique<lmms::Lv2Proc, LilvPluginImpl const*&, lmms::Model*&>(LilvPluginImpl const*&, lmms::Model*&) (unique_ptr.h:962) ==48681== by 0x43A22E: lmms::Lv2ControlBase::Lv2ControlBase(lmms::Model*, QString const&) (Lv2ControlBase.cpp:60) ==48681== by 0x1CF0E38B: lmms::Lv2FxControls::Lv2FxControls(lmms::Lv2Effect*, QString const&) (Lv2FxControls.cpp:39) ==48681== by 0x1CF0BC75: lmms::Lv2Effect::Lv2Effect(lmms::Model*, lmms::Plugin::Descriptor::SubPluginFeatures::Key const*) (Lv2Effect.cpp:62) ==48681== by 0x1CF0C12D: lmms_plugin_main (Lv2Effect.cpp:112) ==48681== using block size: 256 mlock 696463 bytes Done |- | 0% | ==48681== Thread 9 lmms::ProjectRen: ==48681== Conditional jump or move depends on uninitialised value(s) ==48681== at 0x1D60ADD3: run_dsp_mono (gxamp.cpp:503) ==48681== by 0x1D60ADD3: GxPluginMono::run(void*, unsigned int) (gxamp.cpp:699) ==48681== by 0x4428EE: lilv_instance_run (lilv.h:1948) ==48681== by 0x443D53: lmms::Lv2Proc::run(short) (Lv2Proc.cpp:336) ==48681== by 0x43A96B: lmms::Lv2ControlBase::run(short) (Lv2ControlBase.cpp:151) ==48681== by 0x1CF0BE3B: lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>, short) (Lv2Effect.cpp:79) ==48681== by 0x3AA18F: lmms::EffectChain::processAudioBuffer(std::array<float, 2ul>, short, bool) (EffectChain.cpp:201) ==48681== by 0x432D05: lmms::AudioPort::processEffects() (AudioPort.cpp:99) ==48681== by 0x43365F: lmms::AudioPort::doProcessing() (AudioPort.cpp:224) ==48681== by 0x360748: lmms::ThreadableJob::process() (ThreadableJob.h:77) ==48681== by 0x35FFF5: lmms::AudioEngineWorkerThread::JobQueue::run() (AudioEngineWorkerThread.cpp:88) ==48681== by 0x3602F6: lmms::AudioEngineWorkerThread::startAndWaitForJobs() (AudioEngineWorkerThread.cpp:161) ==48681== by 0x358265: lmms::AudioEngine::renderNextBuffer() (AudioEngine.cpp:425) ==48681== ==48681== ==48681== More than 100 errors detected. Subsequent errors ==48681== will still be recorded, but in less detail than before. ==48681== Mismatched free() / delete / delete [] ==48681== at 0x484B8AF: operator delete(void*) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==48681== by 0x1D622347: GxSimpleConvolver::update(int, float*, unsigned int) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D60BFA6: GxPluginMono::do_work_mono() (gxamp.cpp:372) ==48681== by 0x1D60BC6C: GxPluginMono::work(void*, LV2_Worker_Status ()(void, unsigned int, void const*), void*, unsigned int, void const*) (gxamp.cpp:588) ==48681== by 0x45E159: lmms::Lv2Worker::scheduleWork(unsigned int, void const*) (Lv2Worker.cpp:165) ==48681== by 0x45D9C9: lmms::staticScheduleWork(void*, unsigned int, void const*) (Lv2Worker.cpp:45) ==48681== by 0x1D60B0B7: run_dsp_mono (gxamp.cpp:537) ==48681== by 0x1D60B0B7: GxPluginMono::run(void*, unsigned int) (gxamp.cpp:699) ==48681== by 0x4428EE: lilv_instance_run (lilv.h:1948) ==48681== by 0x443D53: lmms::Lv2Proc::run(short) (Lv2Proc.cpp:336) ==48681== by 0x43A96B: lmms::Lv2ControlBase::run(short) (Lv2ControlBase.cpp:151) ==48681== by 0x1CF0BE3B: lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>, short) (Lv2Effect.cpp:79) ==48681== by 0x3AA18F: lmms::EffectChain::processAudioBuffer(std::array<float, 2ul>, short, bool) (EffectChain.cpp:201) ==48681== Address 0x16ff7950 is 0 bytes inside a block of size 3,296 alloc'd ==48681== at 0x484A2F3: operator new[](unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==48681== by 0x1D6234B3: gx_resample::BufferResampler::process(int, int, float*, int, int*) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D622388: GxSimpleConvolver::update(int, float*, unsigned int) (in /usr/local/lib/lv2/gx_amp.lv2/gx_amp.so) ==48681== by 0x1D60BFA6: GxPluginMono::do_work_mono() (gxamp.cpp:372) ==48681== by 0x1D60BC6C: GxPluginMono::work(void*, LV2_Worker_Status ()(void, unsigned int, void const*), void*, unsigned int, void const*) (gxamp.cpp:588) ==48681== by 0x45E159: lmms::Lv2Worker::scheduleWork(unsigned int, void const*) (Lv2Worker.cpp:165) ==48681== by 0x45D9C9: lmms::staticScheduleWork(void*, unsigned int, void const*) (Lv2Worker.cpp:45) ==48681== by 0x1D60B0B7: run_dsp_mono (gxamp.cpp:537) ==48681== by 0x1D60B0B7: GxPluginMono::run(void*, unsigned int) (gxamp.cpp:699) ==48681== by 0x4428EE: lilv_instance_run (lilv.h:1948) ==48681== by 0x443D53: lmms::Lv2Proc::run(short) (Lv2Proc.cpp:336) ==48681== by 0x43A96B: lmms::Lv2ControlBase::run(short) (Lv2ControlBase.cpp:151) ==48681== by 0x1CF0BE3B: lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>*, short) (Lv2Effect.cpp:79) ==48681== |--------------------------------------------------| 98% / PERFLOG | Project Render | 7.30user, 0.07system 7.17elapsed munlock 696463 bytes munlock 696463 bytes

lmms: /home/zonkmachine/builds/lmms/src/3rdparty/rpmalloc/rpmalloc/rpmalloc/rpmalloc.c:1328: _rpmalloc_span_finalize: Assertion `(span->list_size == span->used_count) && "Memory leak detected"' failed. ==48681== ==48681== Process terminating with default action of signal 6 (SIGABRT) ==48681== at 0x686CA7C: __pthread_kill_implementation (pthread_kill.c:44) ==48681== by 0x686CA7C: __pthread_kill_internal (pthread_kill.c:78) ==48681== by 0x686CA7C: pthread_kill@@GLIBC_2.34 (pthread_kill.c:89) ==48681== by 0x6818475: raise (raise.c:26) ==48681== by 0x67FE7F2: abort (abort.c:79) ==48681== by 0x67FE71A: __assert_fail_base.cold (assert.c:92) ==48681== by 0x680FE95: __assert_fail (assert.c:101) ==48681== by 0x5A92FB: _rpmalloc_span_finalize (rpmalloc.c:1328) ==48681== by 0x5AB1BD: _rpmalloc_heap_finalize (rpmalloc.c:2003) ==48681== by 0x5AA050: _rpmalloc_heap_global_finalize (rpmalloc.c:1566) ==48681== by 0x5AD9C5: rpmalloc_finalize (rpmalloc.c:2893) ==48681== by 0x3D74CA: lmms::MemoryManagerGlobalGuard::~MemoryManagerGlobalGuard() (MemoryManager.cpp:41) ==48681== by 0x681B494: __run_exit_handlers (exit.c:113) ==48681== by 0x681B60F: exit (exit.c:143) ==48681== ==48681== HEAP SUMMARY: ==48681== in use at exit: 1,387,041 bytes in 7,298 blocks ==48681== total heap usage: 4,101,811 allocs, 4,094,513 frees, 591,687,727 bytes allocated ==48681== ==48681== For a detailed leak analysis, rerun with: --leak-check=full ==48681== ==48681== Use --track-origins=yes to see where uninitialised values come from ==48681== For lists of detected and suppressed errors, rerun with: -s ==48681== ERROR SUMMARY: 109 errors from 101 contexts (suppressed: 0 from 0) Aborted (core dumped) $

zonkmachine avatar Sep 04 '22 23:09 zonkmachine

Rendering one note with a test program having a GxAmplifier-X gave some output in valgrind

This one comes with multiple Gx effects. I think though that it's not our fault (do you get this valgrind issue with jalv?).

JohannesLorenz avatar Sep 05 '22 19:09 JohannesLorenz

do you get this valgrind issue with jalv?)

Unfortunately my skills with Jack is nonexisting so jalv is off limits for me right now.

zonkmachine avatar Sep 14 '22 18:09 zonkmachine

@zonkmachine I fixed various issues related to combo boxes now.

As for your GxAmplifier-X issue, I can't replicate because Arch Linux has bugs with valgrind - does it still occur for you?

The only remaining issue that I still can reproduce is this:

  • Draw 1 bar in the LMMS main window, with 4 x 1/4 note (constant playing)
  • Add GxCabinet
  • Play the bar in loop mode (repeatedly)
  • Change GxCabinet's "Cab mode" mutliple times

If you change the "Cab mode" quick enough, LMMS crashes for me. If you change with 5-10 seconds in between, it works. However, I think this is a Gx issue, not an LMMS issue - Can you replicate this with ardour/jalv?

JohannesLorenz avatar Sep 18 '22 12:09 JohannesLorenz

@zonkmachine I fixed various issues related to combo boxes now.

:+1:

As for your GxAmplifier-X issue, I can't replicate because Arch Linux has bugs with valgrind - does it still occur for you?

Yes.

The only remaining issue that I still can reproduce is this:

* Draw 1 bar in the LMMS main window, with 4 x 1/4 note (constant playing)

* Add GxCabinet

* Play the bar in loop mode (repeatedly)

* Change GxCabinet's "Cab mode" mutliple times

If you change the "Cab mode" quick enough, LMMS crashes for me. If you change with 5-10 seconds in between, it works. However, I think this is a Gx issue, not an LMMS issue - Can you replicate this with ardour/jalv?

Yes, that's the crash I've been talking about I think. I've not been able to replicate this with ardour or zrythm. I don't do jalv.

I see other issues with the plugin though that doesn't make it crash. There's noise when I turn the Presence and Cabinet knobs. This is also there on Ardour.

If you're confident with the PR I think you should go ahead and merge it anyway. I have seen no issues on any of the other new plugins available with this one.

zonkmachine avatar Sep 18 '22 12:09 zonkmachine

As for your GxAmplifier-X issue, I can't replicate because Arch Linux has bugs with valgrind - does it still occur for you?

Yes.

Can you please give me the steps to reproduce it?

JohannesLorenz avatar Sep 19 '22 20:09 JohannesLorenz

Sure! Open this one, press play, open the window, and play with the Cab Model drop down menu. gxamplifierx.mmp.zip

zonkmachine avatar Sep 19 '22 21:09 zonkmachine

Could reproduce the issue, but it looks similar to the GxCabinet issue... I guess it's an internal plugin issue (not LMMS related).

I'd say let's undraft this and request a code-review.

JohannesLorenz avatar Sep 21 '22 19:09 JohannesLorenz

Hints for code-review:

  • The commits do different things and the commit history is very clean. It's probably easier to review commit by commit
  • The Worker implementation is almost copied from the jalv code
  • Issues with the scripted checks are already fixed on master, so they can be ignored here

JohannesLorenz avatar Sep 21 '22 19:09 JohannesLorenz

@PhysSong From my view, all comments are solved. May I ask you for checking the changes?

JohannesLorenz avatar Oct 22 '22 22:10 JohannesLorenz

PS. The Gx versions of the moddevices pitchshifters don't test for LV2_BUF_SIZE__powerOf2BlockLength, it's a quick hack to allow those plugins in DAW's that doesn't provide that test. Pretty much all DAW's that is.

zonkmachine avatar Oct 24 '22 01:10 zonkmachine

PS. The Gx versions of the moddevices pitchshifters don't test for LV2_BUF_SIZE__powerOf2BlockLength, it's a quick hack to allow those plugins in DAW's that doesn't provide that test. Pretty much all DAW's that is.

OK, that's the problem of those other DAWs then, I guess? :grin:

JohannesLorenz avatar Oct 24 '22 01:10 JohannesLorenz

OK, that's the problem of those other DAWs then, I guess?

Yes indeed.

One observation. Some larger buffer sizes that are not a power of 2 still allows the pitchshifter plugins. 1792 frames for instance. The warning message pops up just fine but I can both load and use those plugins (tested: capo and 2voices). As I understand it they were only tested to work on a platform with just 64, 128, 256 and 512 as buffer size options to begin with. I'll test this more tomorrow.

zonkmachine avatar Oct 24 '22 01:10 zonkmachine

I did a testrun and the logic seem to break down after a buffer size of 512.

pow 2 = does the pow 2 message show. <=32 = does the <=32 message show. Capo = Is Capo selectable. GxCapo = Is GxCapo selectable. x = Yes. - = no. ! = incorrect

buffer	pow 2	<=32	Capo	GxCapo
----------------------------------------
32	x	x	-	-
64	x	-	x	x
96	-	-	-	x
128	x	-	x	x
160	-	-	-	x
192	-	-	-	x
224	-	-	-	x
256	x	-	x	x
512	x	-	x	x
768	-	-	x!	x
1024	x	-	x	x
1280	-	-	x!	x
1536	-	-	x!	x
1792	-	-	x!	x
2048	x	-	x	x
2304	-	-	x!	x
2560	-	-	x!	x
2816	-	-	x!	x
3072	-	-	x!	x
3328	-	-	x!	x
3584	-	-	x!	x
3840	-	-	x!	x
4096	x	-	x	x

@@ -152,6 +153,9 @@ Lv2Manager::Lv2Manager() :
        m_supportedFeatureURIs.insert(LV2_BUF_SIZE__boundedBlockLength);
        // block length is only changed initially in AudioEngine CTOR
        m_supportedFeatureURIs.insert(LV2_BUF_SIZE__fixedBlockLength);
+       fpp_t fpp = Engine::audioEngine()->framesPerPeriod();
+       if((fpp & (fpp - 1)) == 0)  // <=> ffp is power of 2 (for ffp > 0)
+               m_supportedFeatureURIs.insert(LV2_BUF_SIZE__powerOf2BlockLength);

This looks correct but I've read discouraging words on doing bitwise logic on a signed integer and ffp_t is an int16_t However, I tried to change ffp to a uint and the result is the same.

zonkmachine avatar Oct 24 '22 16:10 zonkmachine

The behavior of the mod-pitchshifter plugins being selectable on the wrong buffer size from the last post is already there on e38765680d2fa8a4dfd0a1bce95fa92d0e02a104, even if I cherry-pick that commit on master.

zonkmachine avatar Oct 24 '22 21:10 zonkmachine

Issue caused by https://github.com/LMMS/lmms/pull/2237 / 65467eb66c0ab9c7bdd66de6be208bb283ab8d7d

m_framesPerPeriod is clamped to DEFAULT_BUFFER_SIZE in:

https://github.com/LMMS/lmms/blob/6088ac6102cc0a0c9552ebe123db8cd9ae8c2e41/src/core/AudioEngine.cpp#L132

zonkmachine avatar Oct 30 '22 12:10 zonkmachine

Issue caused by #2237 / 65467eb

That commit was actually just refactoring. "Guilty" commit is from 2007 16a61bf8fef83849518a1f9b0fac918092596143 . @jasp00, do you still remember why you limited the buffersize to 256 there, even if the user chooses higher values in the UI?

JohannesLorenz avatar Oct 30 '22 20:10 JohannesLorenz

do you still remember why you limited the buffersize to 256 there, even if the user chooses higher values in the UI?

If I remember correctly, the whole buffer is not limited, it is chunked; if you choose 1024, the buffer is 4 chunks of 256. This was because of granularity: actions like automation changes were done once per chunk, so you needed a small value, but not too small to overload the CPU.

jasp00 avatar Oct 31 '22 18:10 jasp00