Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Lv2 Options #5761

Merged
merged 13 commits into from
Dec 7, 2020
Merged

Conversation

JohannesLorenz
Copy link
Contributor

@JohannesLorenz JohannesLorenz commented Nov 1, 2020

This includes buf-size properties. Basically this just gives sample rate and block size to the plugin (the former is currently not useful, but also not harming, see the code comments why).

Reviewer hints:

  1. Let's wait for CI before review.
  2. The code currently assumes that the LMMS buffersize never changes, which is currently true in the LMMS code base. We could make this variable const, but it would make the initialization code of this variable a bit ugly to read. Or we could just comment this variable with // if you change this variable, you'll have to change Lv2 code. Any ideas?
  3. I did not add any LMMS_EXPORT to the new Lv2Options class. The CI ran through, so I guess it's OK.

Tester hints:

  1. Wait with final testing until review is done
  2. New plugins that could be worth testing see below.
  3. Check our Lv2 wiki page for installation of Lv2 and of the plugins.
  4. One thing to check is using a different buffersize in the LMMS options (and restarting LMMS). Do the plugins still sound the same?

New plugins (a few of them could be picked for testing):

3 Band EQ
Bitrot Crush
Bitrot Repeat
Bitrot Reverser
Bitrot Tapestop
Cycle Shifter
Dragonfly
Early Reflections
Kars
MVerb
MaBitcrush
MaFreeverb
MaGigaverb
MaPitchshift
Nekobi
Ping Pong Pan
ProM
Soul Force
Wolf Spectrum
ZaMaximX2
ZaMultiCompX2
ZamAutoSat
ZamComp
ZamDelay
ZamDynamicEQ
ZamEQ2
ZamGEQ31
ZamGate
ZamGrains
ZamPhono
ZamTube
glBars

@JohannesLorenz JohannesLorenz changed the title Implement LV2_OPTIONS__options feature Implement Lv2 Options Nov 1, 2020
@LmmsBot
Copy link

LmmsBot commented Nov 1, 2020

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

Linux

Windows

macOS

🤖
{"platform_name_to_artifacts": {"Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://11282-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.50%2Bg44afa8e-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/11282?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "Windows": [{"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://11281-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.50%2Bg44afa8e60-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/11281?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://11280-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.50%2Bg44afa8e60-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/11280?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/ejocodudq9tyxwva/artifacts/build/lmms-1.3.0-alpha-msvc2017-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/36638673"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/4ba5v89j8f14oa9d/artifacts/build/lmms-1.3.0-alpha-msvc2017-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/36638673"}], "macOS": [{"artifact": {"title": {"title": "", "platform_name": "macOS"}, "link": {"link": "https://11283-15778896-gh.circle-artifacts.com/0/lmms-1.3.0-alpha.1.50%2Bg44afa8e60-mac10.14.dmg"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/11283?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}]}, "commit_sha": "3a4fb5f08d65816cce9f272fcd6c236e5bc5b764"}

@JohannesLorenz JohannesLorenz marked this pull request as draft November 1, 2020 20:27
@JohannesLorenz
Copy link
Contributor Author

JohannesLorenz commented Nov 1, 2020

Ubuntu 16.04 CI fails because the macro LV2_BUF_SIZE__nominalBlockLength from 2015 is not known in this old version of Ubuntu yet. Should I put macros everywhere into the code where Lv2UridCache::Id::bufsz_nominalBlockLength is used, or somehow set the correspondig URID in the cache to 0 and use tricks wherever an URID 0 is used?

Edit: solved.

@zonkmachine
Copy link
Member

Host does not provide nominalBlockLength or maxBlockLength options
Segmentation fault (core dumped)

Got this with dpf-plugins-lv2 Kars. Is nominalBlockLength supposed to work now or was the fix to make it just build?

@JohannesLorenz
Copy link
Contributor Author

JohannesLorenz commented Nov 1, 2020

@zonkmachine This is strange. Likely not related to the fix. I got the first line, too, but then fixed something and it worked. Can you build Kars manually with debugging symbols (something like ./waf configure --debug --prefix=/path/to/install, then run lmms with LV2_PATH=... /path/to/lmms as described on the Lv2 wiki page) and check what happens when stepping inside lilv_plugin_instantiate? It should do those option checks almost immediatelly there.

Edit: I think PhysSong might have found the reason in the code.

src/core/lv2/Lv2Proc.cpp Outdated Show resolved Hide resolved
@JohannesLorenz
Copy link
Contributor Author

@zonkmachine It should work now with nominalBlockLength. The error should be fixed. Can you please confirm?

@zonkmachine
Copy link
Member

Well, I can't seem to be able to replicate the error. Not on the latest commit but neither on the one prior to it. I'm trying though. :)

@zonkmachine
Copy link
Member

I'm now running Nekobi and Kars to satisfaction. The 1.3 version in the Ubuntu repository is pretty broken (at least kars crash).
I'm running the latest from source here: https://github.com/DISTRHO/DPF-Plugins

@JohannesLorenz JohannesLorenz marked this pull request as ready for review November 6, 2020 05:48
@JohannesLorenz
Copy link
Contributor Author

@zonkmachine Do you expect them to be broken because of Ubuntu, or do you think that the LMMS interface is buggy? At least for me, they work, but if you can give steps to reproduce an issue, I could test on my machine.

@zonkmachine
Copy link
Member

Do you expect them to be broken because of Ubuntu, or do you think that the LMMS interface is buggy?

They were broken upstream from Ubuntu but have been fixed on latest master as linked in my previous post. I wouldn't bother with it as it's not on our side but if you want to test the issue you just add a note with plugin Kars of dpf in Ubuntu 20.04 and hit play. It has been patched in Ubuntu 20.10 .

@JohannesLorenz
Copy link
Contributor Author

OK, for Kars, I get crashes both in Ardour and LMMS, this one seems just buggy. This is not our bug.

@JohannesLorenz
Copy link
Contributor Author

I think this can now be reviewed (unless @PhysSong already claims to have done a complete review).

@JohannesLorenz JohannesLorenz added needs code review A functional code review is currently required for this PR needs style review A style review is currently required for this PR labels Nov 6, 2020
@zonkmachine
Copy link
Member

zonkmachine commented Nov 6, 2020

All plugins from the list of new plugins that I could test worked well. 👍
I assume that the ones for sound visualization aren't supposed to have their gui stuff working yet (Wolf Spectrum, glBars, ProM) They opened and the ones that have controls showed them and they could be manipulated.
I failed to build the bitrot stuff but I will have a second go at it soon.
ZamGrains doesn't seem to be in my version of the zam-plugins (Ubuntu 20.04 3.9~repack3-1build1).

@zonkmachine
Copy link
Member

I'm now doing some runs with the full debug code turned on.

Crash 1. ZamComp

Turning down the Knee knob to zero. Got more than once. Will try and build the Zam plugins from source and get some more info.

Logs

Click to expand

Thread 13 "Mixer::fifoWrit" received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7fffbd3ca700 (LWP 78920)]
0x00007fffde7c6e25 in ?? () from /usr/lib/lv2/ZamComp.lv2/ZamComp_dsp.so
(gdb) bt full
#0 0x00007fffde7c6e25 in () at /usr/lib/lv2/ZamComp.lv2/ZamComp_dsp.so
#1 0x00007fffde7c8dfe in () at /usr/lib/lv2/ZamComp.lv2/ZamComp_dsp.so
#2 0x000055555583af31 in lilv_instance_run(LilvInstance*, uint32_t) (instance=0x55555a208d40, sample_count=256) at /usr/include/lilv-0/lilv/lilv.h:1704
#3 0x000055555583c4ce in Lv2Proc::run(short) (this=0x55555a1f8ad0, frames=256) at /home/zonkmachine/builds/lmms/src/core/lv2/Lv2Proc.cpp:328
#4 0x000055555583269b in Lv2ControlBase::run(short) (this=0x7ffff2b13c08, frames=256) at /home/zonkmachine/builds/lmms/src/core/lv2/Lv2ControlBase.cpp:148
c = std::unique_ptr = {get() = 0x55555a1f8ad0}
__for_range = std::vector of length 1, capacity 1 = {std::unique_ptr = {get() = 0x55555a1f8ad0}}
__for_begin = std::unique_ptr = {get() = 0x55555a1f8ad0}
__for_end = std::unique_ptr = {get() = 0x0}
#5 0x00007fffbc0c1c30 in Lv2Effect::processAudioBuffer(std::array<float, 2ul>, short) (this=0x7ffff2b13660, buf=0x7ffff2a61860, frames=256)
at /home/zonkmachine/builds/lmms/plugins/Lv2Effect/Lv2Effect.cpp:79
outSum = 4.6355741902438153e-310
corrupt = 85
d = 0
w = 0
#6 0x000055555578f880 in EffectChain::processAudioBuffer(std::array<float, 2ul>
, short, bool)
(this=0x555559acb170, _buf=0x7ffff2a61860, _frames=256, hasInputNoise=false) at /home/zonkmachine/builds/lmms/src/core/EffectChain.cpp:199
it = 0x555559bd2030
moreEffects = true
#7 0x0000555555827d5a in AudioPort::processEffects() (this=0x7ffff2aa5990) at /home/zonkmachine/builds/lmms/src/core/audio/AudioPort.cpp:97
more = false
#8 0x00005555558286a2 in AudioPort::doProcessing() (this=0x7ffff2aa5990) at /home/zonkmachine/builds/lmms/src/core/audio/AudioPort.cpp:222
fpp = 256
me = false
#9 0x00005555557a5a05 in ThreadableJob::process() (this=0x7ffff2aa5990) at /home/zonkmachine/builds/lmms/include/ThreadableJob.h:74
expected = ThreadableJob::ProcessingState::Queued
#10 0x00005555557c623b in MixerWorkerThread::JobQueue::run() (this=0x555555ae5e00 MixerWorkerThread::globalJobQueue)
at /home/zonkmachine/builds/lmms/src/core/MixerWorkerThread.cpp:84
job = 0x7ffff2aa5990
i = 2
processedJob = true
#11 0x00005555557c64cb in MixerWorkerThread::startAndWaitForJobs() () at /home/zonkmachine/builds/lmms/src/core/MixerWorkerThread.cpp:157
#12 0x00005555557bddfe in Mixer::renderNextBuffer() (this=0x7fffec0032a0) at /home/zonkmachine/builds/lmms/src/core/Mixer.cpp:470
last_metro_pos = { = {m_ticks = -1, static s_ticksPerBar = 192}, m_timeLine = 0x0, m_currentFrame = 0, m_jumped = false}
song = 0x555555e83c80
currentPlayMode = Song::Mode_PlaySong
p = { = {m_ticks = 165, static s_ticksPerBar = 192}, m_timeLine = 0x5555594948d0, m_currentFrame = 103.25, m_jumped = false}
playModeSupportsMetronome = true
it_rem = {i = 0x7fffa80025f0}
fxMixer = 0x555555fd9f30
#13 0x00005555557c0735 in Mixer::fifoWriter::run() (this=0x555555cc66d0) at /home/zonkmachine/builds/lmms/src/core/Mixer.cpp:1274
buffer = 0x7fffa8005200
b = 0x555555fbe460
frames = 256

@zonkmachine
Copy link
Member

zonkmachine commented Nov 6, 2020

Crash 2. ZamTube (Upstream:Fixed)

On starting up lmms (empty project). Same there. Will try and build from source.
Edit: I need to manually remove ZamTube from the library in order to launch lmms.

Logs

Click to expand

Thread 1 "lmms" received signal SIGFPE, Arithmetic exception.
0x00007fffd410fdf0 in ?? () from /usr/lib/ladspa/ZamTube-ladspa.so
(gdb) bt
#0 0x00007fffd410fdf0 in () at /usr/lib/ladspa/ZamTube-ladspa.so
#1 0x00007fffd410f993 in () at /usr/lib/ladspa/ZamTube-ladspa.so
#2 0x00007fffd410fa40 in () at /usr/lib/ladspa/ZamTube-ladspa.so
#3 0x00007fffd4112720 in () at /usr/lib/ladspa/ZamTube-ladspa.so
#4 0x00007fffd4112fc4 in () at /usr/lib/ladspa/ZamTube-ladspa.so
#5 0x00007fffd4107461 in () at /usr/lib/ladspa/ZamTube-ladspa.so
#6 0x00007ffff7fe0b8a in call_init (l=, argc=argc@entry=2, argv=argv@entry=0x7fffffffdf38, env=env@entry=0x7fffffffdf50) at dl-init.c:72
#7 0x00007ffff7fe0c91 in call_init (env=0x7fffffffdf50, argv=0x7fffffffdf38, argc=2, l=) at dl-init.c:30
#8 _dl_init (main_map=0x555558fd4510, argc=2, argv=0x7fffffffdf38, env=0x7fffffffdf50) at dl-init.c:119
#9 0x00007ffff61cd915 in __GI__dl_catch_exception (exception=, operate=, args=) at dl-error-skeleton.c:182
#10 0x00007ffff7fe50bf in dl_open_worker (a=a@entry=0x7fffffffd4d0) at dl-open.c:758
#11 0x00007ffff61cd8b8 in __GI__dl_catch_exception (exception=, operate=, args=) at dl-error-skeleton.c:208
#12 0x00007ffff7fe45fa in _dl_open
(file=0x555558fd4468 "/usr/lib/ladspa/ZamTube-ladspa.so", mode=-2147483647, caller_dlopen=, nsid=-2, argc=2, argv=0x7fffffffdf38, env=0x7fffffffdf50) at dl-open.c:837
#13 0x00007ffff765434c in dlopen_doit (a=a@entry=0x7fffffffd6f0) at dlopen.c:66
#14 0x00007ffff61cd8b8 in __GI__dl_catch_exception (exception=exception@entry=0x7fffffffd690, operate=, args=)
at dl-error-skeleton.c:208
#15 0x00007ffff61cd983 in __GI__dl_catch_error
(objname=0x555555af92e0, errstring=0x555555af92e8, mallocedp=0x555555af92d8, operate=, args=) at dl-error-skeleton.c:227
#16 0x00007ffff7654b59 in _dlerror_run (operate=operate@entry=0x7ffff76542f0 <dlopen_doit>, args=args@entry=0x7fffffffd6f0) at dlerror.c:170
#17 0x00007ffff76543da in __dlopen (file=, mode=mode@entry=1) at dlopen.c:87
#18 0x00007ffff66da69f in QLibraryPrivate::load_sys() (this=this@entry=0x555558fd42d0) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:208
#19 0x00007ffff66d4610 in QLibraryPrivate::load() (this=0x555558fd42d0) at plugin/qlibrary.cpp:553
#20 QLibrary::load() (this=) at plugin/qlibrary.cpp:808
#21 0x00005555557b1258 in LadspaManager::LadspaManager() (this=0x555558edfa90) at /home/zonkmachine/builds/lmms/src/core/LadspaManager.cpp:84
#22 0x00005555557ae0fe in Ladspa2LMMS::Ladspa2LMMS() (this=0x555558edfa90) at /home/zonkmachine/builds/lmms/src/core/Ladspa2LMMS.cpp:30
#23 0x000055555579139e in LmmsCore::init(bool) (renderOnly=false) at /home/zonkmachine/builds/lmms/src/core/Engine.cpp:74
#24 0x0000555555886c6c in GuiApplication::GuiApplication() (this=0x555555c43d30) at /home/zonkmachine/builds/lmms/src/gui/GuiApplication.cpp:115

@JohannesLorenz
Copy link
Contributor Author

@zonkmachine The second error comes from LADSPA.

@zonkmachine
Copy link
Member

OK. It's upstream anyway. I think it's this one: zamaudio/zam-plugins#78
Building from latest source (8cd23d7) and it runs just fine.

Ubuntu version.
zam-plugins
3.9~repack3-1build1

Fixed in: 3.12 . Latest release 3.13

@zonkmachine
Copy link
Member

ZamComp still crashes though and I can't seem to get debug info from the manually built binaries.

@JohannesLorenz
Copy link
Contributor Author

I guess it does not crash Ardour?

@zonkmachine
Copy link
Member

I've never used Ardour. I had a steeper learning curve than lmms. At least for me.

@JohannesLorenz
Copy link
Contributor Author

If I read correctly, just starting ardour (which loads all lv2 plugins) would already crash it?

@zonkmachine
Copy link
Member

That's the 'Crash 2' above which has been solved upstream. This is 'Crash 1' above and is from ZamComp in use.

@zonkmachine
Copy link
Member

Now debugging with only FE_INVALID ON.

f0 = inf, f1 = inf !

(gdb) print *V
$2 = {period = 3352.98657, p = 5.28241825, pmax = 15417.3662, dp = 3.14120913, sin0 = -0.0628055632, 
sin1 = 0.0627901331,   sinx = -1.99999988, dc = -7.60072726e-06, detune = 1.50376987, p2 = 5.28305626,
pmax2 = 23186.5254, dp2 = 3.14152813,   sin02 = -0.0627798736, sin12 = 0.0627772808, sinx2 = -2,
dc2 = -5.05393518e-06, fc = 0.0211408753, ff = 0.0214786381, f0 = inf,   f1 = inf, f2 = 5.280599e-06,
saw = -3.58000398e-06, env = 0.0349829346, envd = 0.00553321838, envl = 2, fenv = 0.000415802002, 
  fenvd = 0.000207901001, fenvl = 2, lev = 0.0746011361, lev2 = 0.0746011361, target = 47.3017311,
note = 70}
(gdb) print *this
$1 = {<AudioEffectX> = {<AudioEffect> = {_vptr.AudioEffect = 0x7ffff056eab8
<vtable for mdaJX10+16>}, 
URI = 0x7ffff056c7e0 "http://drobilla.net/plugins/mda/JX10", uniqueID =
0x7ffff056c2e4 "mdaJX10", 
eventInput = 0x55555733d56c, midiEventType = 1, sampleRate = 44100, curProgram =
0, numInputs = 0,
numOutputs = 2, numParams = 24, numPrograms = 64},   programs = 0x5555574ab520,
Fs = 44100,
sustain = 0, activevoices = 0, voice = {{period = 3352.98657, p = 5.28241825,
pmax = 15417.3662,
dp = 3.14120913, sin0 = -0.0628055632, sin1 = 0.0627901331, sinx = -1.99999988,
dc = -7.60072726e-06,
detune = 1.50376987, p2 = 5.28305626, pmax2 = 23186.5254, dp2 = 3.14152813,
sin02 = -0.0627798736,
sin12 = 0.0627772808, sinx2 = -2, dc2 = -5.05393518e-06, fc = 0.0211408753, ff =
0.0214786381, f0 = inf, 
f1 = inf, f2 = 5.280599e-06, saw = -3.58000398e-06, env = 0.0349829346, envd =
0.00553321838, envl = 2,
fenv = 0.000415802002, fenvd = 0.000207901001, fenvl = 2, lev = 0.0746011361,
lev2 = 0.0746011361,
target = 47.3017311, note = 70}, {period = 4.59163468e-41, p = 0, pmax =
4.59163468e-41, dp = 1,
sin0 = 0, sin1 = 0, sinx = 0, dc = 0, detune = 0, p2 = 0, pmax2 = 0, dp2 = 1,
sin02 = 0, sin12 = 0, sinx2 = 0,
dc2 = -4.46861976e+18, fc = 4.59163468e-41, ff = 0, f0 = 0, f1 = 0, f2 = 0, saw
= 0, env = 0, envd = 0.99000001,
envl = 0, fenv = 0, fenvd = 0, fenvl = 0, lev = 4.59163468e-41, lev2 =
-4.46857578e+18, target = 4.59163468e-41,
note = 0}, {period = 4.59163468e-41, p = 0, pmax = 0, dp = 1, sin0 = 0, sin1 =
0, sinx = 0, dc = 0, detune = 0,
p2 = 0, pmax2 = 0, dp2 = 1, sin02 = 0, sin12 = -4.46864615e+18, sinx2 =
4.59163468e-41, dc2 = -4.46864175e+18,
fc = 4.59163468e-41, ff = 0, f0 = 0, f1 = 0, f2 = 0, saw = 0, env = 0, envd =
0.99000001, envl = 0, fenv = 0,
fenvd = 0, fenvl = 0, lev = 0, lev2 = 0, target = 0, note = 0}, {period = 0, p =
0, pmax = 0, dp = 1, sin0 = 0,
sin1 = 0, sinx = 0, dc = 0, detune = 0, p2 = 0, pmax2 = 0, dp2 = 1, sin02 =
4.59163468e-41, sin12 = 0, sinx2 = 0,
dc2 = 0, fc = 0, ff = 0, f0 = 0, f1 = 0, f2 = 0, saw = 0, env = 0, envd =
0.99000001, envl = 0, fenv = 0, fenvd = 0,
fenvl = 0, lev = 0, lev2 = 0, target = 0, note = 0}, {period = 0, p = 0, pmax =
0, dp = 1, sin0 = 0, sin1 = 0, sinx = 0,
dc = 0, detune = 0, p2 = 0, pmax2 = 0, dp2 = 1, sin02 = 0, sin12 = 0, sinx2 = 0,
dc2 = 0, fc = 0, ff = 0, f0 = 0, f1 = 0,
f2 = 0, saw = 0, env = 0, envd = 0.99000001, envl = 0, fenv = 0, fenvd = 0,
fenvl = 0, lev = 0, lev2 = 0, target = 0,
note = 0}, { period = 4.59163468e-41, p = 0, pmax = 4.59163468e-41, dp = 1, sin0
= 4.59163468e-41,
sin1 = 2.8469158e-39, sinx = 0, dc = 1.98302264e+14, detune = 3.0611365e-41, p2
= 0, pmax2 = 0, dp2 = 1,
sin02 = 3.0611365e-41, sin12 = 0, sinx2 = 0, dc2 = 0, fc = 0, ff =
1.98303203e+14, f0 = 0, f1 = 0, f2 = 0, saw = 0,
env = 0, envd = 0.99000001, envl = 0, fenv = 0, fenvd = 0, fenvl = 0, lev =
4.59163468e-41, lev2 = 0,
target = 1.26293425e-40, note = 0}, {period = 0, p = 0, pmax = 0,       dp = 1,
sin0 = 0, sin1 = 0, sinx = 0, dc = -4.45154875e+18, detune = 4.59163468e-41, p2
= 0, pmax2 = 3.0611365e-41, dp2 = 1, sin02 = 4.59163468e-41, sin12 =
-4.46883967e+18, sinx2 = 4.59163468e-41, dc2 = -4.46531903e+18, fc =
4.59163468e-41, 
ff = -1.0380256e+34, f0 = 0, f1 = 0, f2 = 0, saw = 0, env = 0, envd =
0.99000001, envl = 0, fenv = 0, fenvd = 0,
fenvl = 0, lev = 3.0611365e-41, lev2 = 1.98292466e+14, target = 3.0611365e-41,
note = 0}, {period = 0, p = 0,
pmax = 0, dp = 1, sin0 = 0, sin1 = 0, sinx = 0, dc = 0, detune = 0, p2 = 0,
pmax2 = 3.0611365e-41, dp2 = 1, sin02 = 0, sin12 = 0, sinx2 = 1.40129846e-45,
dc2 = 0, fc = 0, ff = 0, f0 = 0, f1 = 0, f2 = 0, saw = 0, env = 0, envd =
0.99000001, envl = 0, fenv = 0, fenvd = 0, fenvl = 0, lev = 0, lev2 =
1.98280655e+14, target = 3.0611365e-41, note = 0}}, semi = -7, 
  cent = -6.30000019, tune = 2697.02734, detune = 1.50376987, filtf =
3.21999979, fzip = 0, filtq = 0.159999982, filtlfo = 0, filtenv = -0.600000381,
filtvel = 0, filtwhl = 0, oscmix = 1, noisemix = 0, att = 0.00553321838,
dec = 0.000130474567, sus = 1, rel = 2.70009041e-05, fatt = 0.000207901001, fdec
= 0.00022405386,
fsus = 0.809999943, frel = 0.000743687153, lfo = 0.217974439, dlfo =
0.0242193844, modwhl = 0, press = 0,
pbend = 1, ipbend = 1, rezwhl = 1, volume = 0.000500000024, voltrim = 2.6400001,
vibrato = 0.00449999841,
pwmdep = 0.00449999841, lfoHz = 5.31216812, glide = 0.174975514, glidedisp =
-10.3505383, K = 8, lastnote = 70, veloff = 0, mode = 7, noise = 2419396312}

Backtrace

Click to expand
Thread 9 "MixerWorkerThre" received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7fffde623640 (LWP 63318)]
mdaJX10::processReplacing (this=0x5555573455a0, inputs=0x0, outputs=0x5555576c7f10, sampleFrames=256) at ../src/mdaJX10.cpp:566
566	            V->f1 -= V->ff * (V->f0 + fq * V->f1 - x - V->f2);
(gdb) bt full
#0  mdaJX10::processReplacing(float**, float**, int) (this=0x5555573455a0, inputs=0x0, outputs=0x5555576c7f10, sampleFrames=256)
    at ../src/mdaJX10.cpp:566
        V = 0x5555573455f4
        out1 = 0x555557b590e4
        out2 = 0x555557384d94
        frame = 256
        frames = 246
        v = 0
        o = 0
        e = 0.0240495689
        vib = 1.00097311
        pwm = 1.00097311
        pb = 1
        ipb = 1
        gl = 0.174975514
        x = -3.58000398e-06
        y = -0.0118832495
        hpf = 0.996999979
        min = 1
        w = -0
        ww = 0
        ff = 3.21999979
        fe = -0.600000381
        fq = 0.159999982
        fx = 1.83399999
        fz = 0.0160999987
        k = 31
        r = 1077219032
        ev = 0x55555733d594
        end = true
#1  0x00007ffff056b4f9 in lvz_run(LV2_Handle, uint32_t) (instance=0x555557afa300, sample_count=256) at ../lvz/wrapper.cpp:161
        plugin = 0x555557afa300
#2  0x0000555555838f47 in lilv_instance_run(LilvInstance*, uint32_t) (instance=0x555557afa040, sample_count=256)
    at /usr/include/lilv-0/lilv/lilv.h:1705
#3  0x000055555583a0d6 in Lv2Proc::run(short) (this=0x555557adf820, frames=256)
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/lv2/Lv2Proc.cpp:314
#4  0x000055555582ff5b in Lv2ControlBase::run(short) (this=0x7ffff2720ec8, frames=256)
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/lv2/Lv2ControlBase.cpp:148
        c = std::unique_ptr = {get() = 0x555557adf820}
        __for_range = std::vector of length 1, capacity 1 = {std::unique_ptr = {get() = 0x555557adf820}}
        __for_begin = std::unique_ptr = {get() = 0x555557adf820}
        __for_end = std::unique_ptr = {get() = 0x0}
#5  0x00007fffadcaef0d in Lv2Instrument::play(std::array*) (this=0x7ffff2720e60, buf=0x7ffff262c080)
    at /home/ubuntu/lmms/lmmsnew/lmms/plugins/Lv2Instrument/Lv2Instrument.cpp:165
        fpp = 256
#6  0x00005555557a4bbf in InstrumentPlayHandle::play(std::array*) (this=0x5555576973a0, _working_buffer=0x7ffff262c080)
    at /home/ubuntu/lmms/lmmsnew/lmms/include/InstrumentPlayHandle.h:65
        nphv = 
            {> = {}, {p = {static shared_null = {ref = {atomic = {_q_valu--Type  for more, q to quit, c to continue without paging--
e = {> = {static _S_alignment = 4, _M_i = -1}, }}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffc00065e0}, d = 0x7fffc00065e0}}
        nphsLeft = false
#7  0x00005555557d3c95 in PlayHandle::doProcessing() (this=0x5555576973a0)
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/PlayHandle.cpp:58
#8  0x00005555557a498d in ThreadableJob::process() (this=0x5555576973a0)
    at /home/ubuntu/lmms/lmmsnew/lmms/include/ThreadableJob.h:74
        expected = ThreadableJob::ProcessingState::Queued
#9  0x00005555557c4ab3 in MixerWorkerThread::JobQueue::run() (this=0x555555b52e00 )
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/MixerWorkerThread.cpp:84
        job = 0x5555576973a0
        i = 2
        processedJob = true
#10 0x00005555557c4dda in MixerWorkerThread::run() (this=0x7fffec006a50)
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/MixerWorkerThread.cpp:174
        mmThreadGuard = {}
        m = { = {d_ptr = {_q_value = {_M_b = {_M_p = 0x1}}}}, }
#11 0x00007ffff6470a41 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff7f96590 in start_thread (arg=0x7fffde623640) at pthread_create.c:463
        ret = 
        pd = 0x7fffde623640
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {140736924366400, -8487154120057305632, 140737488345614, 140737488345615, 0, 140736924366400, 8487084690379752928, 8487171734085944800}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#13 0x00007ffff60da223 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) 

@PhysSong
Copy link
Member

PhysSong commented Dec 3, 2020

I'm pretty sure that the value overflows first and then generates NaN from inf - inf.

@zonkmachine
Copy link
Member

Got something in DX10 and I don't think its ever behaved odd.

Thread 9 "MixerWorkerThre" received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7fffde623640 (LWP 67460)]
0x00007ffff056814c in mdaDX10::processReplacing (this=0x555557ea1e70, inputs=0x0, 
outputs=0x555557db2f30, sampleFrames=256)
    at ../src/mdaDX10.cpp:384
(gdb) print *this
$2 = {<AudioEffectX> = {<AudioEffect> = {_vptr.AudioEffect = 0x7ffff056cab0 <vtable for mdaDX10+16>}, 
    URI = 0x7ffff056a510 "http://drobilla.net/plugins/mda/DX10", uniqueID = 0x7ffff056a15e "mdaDX10",
eventInput = 0x555557d4c67c,     midiEventType = 7, sampleRate = 44100, curProgram = 0, numInputs = 0, numOutputs = 2, numParams = 16, numPrograms = 32}, 
  programs = 0x55555756f100, Fs = 44100, voice = {{env = 0, dmod = 0, mod0 = 0, mod1 = 0, menv = 0, mlev = 0, 
      mdec = 3.0611365e-41, car = 0, dcar = 0, cenv = 0, catt = 3.0611365e-41, cdec = 0.99000001, note = 1}, {env = 0, dmod = 0, 
      mod0 = 0, mod1 = 0, menv = -nan(0x7fffff), mlev = -nan(0x7fffff), mdec = -nan(0x7fffff), car = 0, dcar = 0, cenv = 0, 
      catt = 0, cdec = 0.99000001, note = 256}, {env = 0, dmod = 0, mod0 = 0, mod1 = 0, menv = 3.06043585e-41, 
      mlev = nan(0x70e817), mdec = 1.36109801e-38, car = 0, dcar = 0, cenv = 5.39499909e-43, catt = 0, cdec = 0.99000001, 
      note = 21845}, {env = 0, dmod = 0, mod0 = 0, mod1 = 0, menv = 0, mlev = 5.14292091e-39, mdec = 2.86847444e+13, car = 0, 
      dcar = 0, cenv = 3.0611365e-41, catt = 0, cdec = 0.99000001, note = 3145728}, {env = 0, dmod = 0, mod0 = 0, mod1 = 0, 
      menv = 0, mlev = 0, mdec = 0, car = 0, dcar = 0, cenv = 0, catt = 0, cdec = 0.99000001, note = 0}, {env = 0, dmod = 0, 
      mod0 = 0, mod1 = 0, menv = 0, mlev = 0, mdec = 0, car = 0, dcar = 0, cenv = 0, catt = 1.79366203e-43, cdec = 0.99000001, 
      note = 46098017}, {env = 0, dmod = 0, mod0 = 0, mod1 = 0, menv = 0, mlev = 5.98800985e+13, mdec = 3.0611365e-41, car = 0, 
      dcar = 0, cenv = 2.86847444e+13, catt = 3.0611365e-41, cdec = 0.99000001, note = 21845}, {env = 0, dmod = 0, mod0 = 0, 
      mod1 = 0, menv = -nan(0x7fffff), mlev = -nan(0x7fffff), mdec = -nan(0x7fffff), car = 0, dcar = 0, cenv = -nan(0x7fffff), 
      catt = -nan(0x7fffff), cdec = 0.99000001, note = 0}}, sustain = 0, activevoices = 6, K = 0, tune = 0.000370784517, 
  rati = 28, ratf = 0.0216482002, ratio = 44.016304, catt = 0.0653614402, cdec = 0.999981463, crel = 0.999629021, 
  depth = 1.058e-05, dept2 = 4.99999999e-07, mdec = 3.38554382e-05, mrel = 5.60283661e-06, lfo0 = 0.18223381, lfo1 = 0.977708459, 
  dlfo = 0.061047677, modwhl = 0, MW = 0, pbend = 1, velsens = 0.899999976, volume = 0.00350000011, vibrato = 0, 
  rich = -0.0994269848, modmix = 0}
(gdb) 

Backtrace

Click to expand
Thread 9 "MixerWorkerThre" received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7fffde623640 (LWP 67460)]
0x00007ffff056814c in mdaDX10::processReplacing (this=0x555557ea1e70, inputs=0x0, outputs=0x555557db2f30, sampleFrames=256)
    at ../src/mdaDX10.cpp:384
384	      if(voice[v].menv < SILENCE) voice[v].menv = voice[v].mlev = 0.0f;
(gdb) bt full
#0  0x00007ffff056814c in mdaDX10::processReplacing(float**, float**, int)
    (this=0x555557ea1e70, inputs=0x0, outputs=0x555557db2f30, sampleFrames=256) at ../src/mdaDX10.cpp:384
        out1 = 0x555557db2ab0
        out2 = 0x555557db2f20
        frame = 256
        frames = -1
        v = 1
        o = 0
        x = 1.21173107e+14
        e = 0
        mw = 0
        w = -0.0994269848
        m = 0
        k = 47
        ev = 0x555557d4c6d4
        end = true
#1  0x00007ffff05697a5 in lvz_run(LV2_Handle, uint32_t) (instance=0x555557db25f0, sample_count=256) at ../lvz/wrapper.cpp:161
        plugin = 0x555557db25f0
#2  0x000055555584cf67 in lilv_instance_run(LilvInstance*, uint32_t) (instance=0x55555807f550, sample_count=256)
    at /usr/include/lilv-0/lilv/lilv.h:1705
#3  0x000055555584e304 in Lv2Proc::run(short) (this=0x555557e004b0, frames=256)
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/lv2/Lv2Proc.cpp:331
#4  0x0000555555843f7b in Lv2ControlBase::run(short) (this=0x7ffff27200e8, frames=256)
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/lv2/Lv2ControlBase.cpp:148
        c = std::unique_ptr = {get() = 0x555557e004b0}
        __for_range = std::vector of length 1, capacity 1 = {std::unique_ptr = {get() = 0x555557e004b0}}
        __for_begin = std::unique_ptr = {get() = 0x555557e004b0}
        __for_end = std::unique_ptr = {get() = 0x0}
#5  0x00007fffadf48f0d in Lv2Instrument::play(std::array*) (this=0x7ffff2720080, buf=0x7ffff2627880)
    at /home/ubuntu/lmms/lmmsnew/lmms/plugins/Lv2Instrument/Lv2Instrument.cpp:165
        fpp = 256
#6  0x00005555557b8bdf in InstrumentPlayHandle::play(std::array*) (this=0x55555756fc10, _working_buffer=0x7ffff2627880)
    at /home/ubuntu/lmms/lmmsnew/lmms/include/InstrumentPlayHandle.h:65
        nphv = 
            {> = {}, {p = {static shared_null = {ref = {atomic = {_q_value = {> = {static _S_alignment = 4, _M_i = -1}, }}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffc00061b0}, d = 0x7fffc00061b0}}
        nphsLeft = false
#7  0x00005555557e7cb5 in PlayHandle::doProcessing() (this=0x55555756fc10)
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/PlayHandle.cpp:58
#8  0x00005555557b89ad in ThreadableJob::process() (this=0x55555756fc10)
    at /home/ubuntu/lmms/lmmsnew/lmms/include/ThreadableJob.h:74
        expected = ThreadableJob::ProcessingState::Queued
#9  0x00005555557d8ad3 in MixerWorkerThread::JobQueue::run() (this=0x555555b70e00 )
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/MixerWorkerThread.cpp:84
        job = 0x55555756fc10
        i = 3
        processedJob = true
#10 0x00005555557d8dfa in MixerWorkerThread::run() (this=0x555555ea00c0)
    at /home/ubuntu/lmms/lmmsnew/lmms/src/core/MixerWorkerThread.cpp:174
        mmThreadGuard = {}
--Type  for more, q to quit, c to continue without paging--c
        m = { = {d_ptr = {_q_value = {_M_b = {_M_p = 0x1}}}}, }
#11 0x00007ffff6470a41 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff7f96590 in start_thread (arg=0x7fffde623640) at pthread_create.c:463
        ret = 
        pd = 0x7fffde623640
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736924366400, -7973295109907870941, 140737488345630, 140737488345631, 0, 140736924366400, 7973225752165681955, 7973277504083659555}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#13 0x00007ffff60da223 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) frame 0
#0  0x00007ffff056814c in mdaDX10::processReplacing (this=0x555557ea1e70, inputs=0x0, outputs=0x555557db2f30, sampleFrames=256)
    at ../src/mdaDX10.cpp:384
384	      if(voice[v].menv < SILENCE) voice[v].menv = voice[v].mlev = 0.0f;

@PhysSong
Copy link
Member

PhysSong commented Dec 3, 2020

Can you try printing voice[v]?

@zonkmachine
Copy link
Member

zonkmachine commented Dec 3, 2020

I had to redo the crash but here is the second print voice[v]

https://gitlab.com/drobilla/mda-lv2/-/blob/master/src/mdaDX10.cpp

gdb) print voice[v]
$1 = {env = 0, dmod = 0, mod0 = 0, mod1 = 0, menv = -nan(0x7fffff), mlev = 3.13890856e-43,
mdec = 0, car = 0, dcar = 0, cenv = 0,   catt = 3.06043585e-41, cdec = 0.99000001, note = 32767}

@zonkmachine
Copy link
Member

==16974== Thread 12 Mixer::fifoWrite:
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x183BA25D: mdaJX10::processReplacing(float**, float**, int) (mdaJX10.cpp:563)
==16974==    by 0x183BC2C9: lvz_run (wrapper.cpp:161)
==16974==    by 0x401E28: lilv_instance_run (lilv.h:1704)
==16974==    by 0x4031C9: Lv2Proc::run(short) (Lv2Proc.cpp:331)
==16974==    by 0x3F8F04: Lv2ControlBase::run(short) (Lv2ControlBase.cpp:148)
==16974==    by 0x321D1E0E: Lv2Instrument::play(std::array*) (Lv2Instrument.cpp:165)
==16974==    by 0x36C10A: InstrumentPlayHandle::play(std::array*) (InstrumentPlayHandle.h:65)
==16974==    by 0x39BA54: PlayHandle::doProcessing() (PlayHandle.cpp:58)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3840EF: Mixer::renderNextBuffer() (Mixer.cpp:440)

$ valgrind --smc-check=all --error-limit=no --leak-check=no ../target/bin/lmms

Click to expand
==16974== Memcheck, a memory error detector
==16974== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==16974== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==16974== Command: ../target/bin/lmms
==16974== 
*** WEAK-JACK: initializing
*** WEAK-JACK: OK. (0)
qt5ct: using qt5ct plugin
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0xD2EB32C: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD7C4801: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7D8813: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7E3B9D: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7E4B7B: g_signal_emit_by_name (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7CCE75: g_object_set_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7CD763: g_object_set (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD1F1B89: ??? (in /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/libqgtk2style.so)
==16974==    by 0xD1F2F92: ??? (in /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/libqgtk2style.so)
==16974==    by 0x4A72A79: qLoadPlugin (qfactoryloader_p.h:108)
==16974==    by 0x4A72A79: QStyleFactory::create(QString const&) (qstylefactory.cpp:105)
==16974==    by 0x4A9A15F: QProxyStyle::QProxyStyle(QString const&) (qproxystyle.cpp:135)
==16974==    by 0xD1C240E: Qt5CTProxyStyle::Qt5CTProxyStyle(QString const&) (in /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/libqt5ct-style.so)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x73DAD64: g_utf8_offset_to_pointer (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0xD2EEB83: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF2A3: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF5E3: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD7C4801: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7D8961: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7E3B9D: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7E40D2: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD48369E: gtk_widget_realize (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD484A47: gtk_widget_set_parent (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD31DEFA: gtk_fixed_put (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD7C4801: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x73DADA3: g_utf8_offset_to_pointer (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0xD2EEB83: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF2A3: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF5E3: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD7C4801: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7D8961: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7E3B9D: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD7E40D2: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974==    by 0xD48369E: gtk_widget_realize (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD484A47: gtk_widget_set_parent (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD31DEFA: gtk_fixed_put (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD7C4801: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6400.3)
==16974== 
Notice: could not set realtime priority.
qt5ct: palette support is disabled
qt5ct: custom style sheet is disabled
error: failed to open file /home/zonkmachine/.lv2/lib/manifest.ttl (No such file or directory)
...
  If you want to ignore the blacklist (dangerous!), please set
  environment variable "LMMS_IGNORE_BLACKLIST" to nonempty.
no more csLADSPA plugins
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x6A8E565: pa_shm_cleanup (in /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-13.99.so)
==16974==    by 0x6A8E7A1: pa_shm_create_rw (in /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-13.99.so)
==16974==    by 0x6A7E4B6: pa_mempool_new (in /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-13.99.so)
==16974==    by 0x517A9B1: pa_context_new_with_proplist (in /usr/lib/x86_64-linux-gnu/libpulse.so.0.21.2)
==16974==    by 0x67B2B48: pa_simple_new (in /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0.1.1)
==16974==    by 0x50A61A2: ??? (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x5078E36: SDL_AudioInit (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x5077AF3: SDL_InitSubSystem (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x5077B88: SDL_Init (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x3F7492: AudioSdl::AudioSdl(bool&, Mixer*) (AudioSdl.cpp:53)
==16974==    by 0x385710: Mixer::tryAudioDevices() (Mixer.cpp:965)
==16974==    by 0x383426: Mixer::initDevices() (Mixer.cpp:215)
==16974== 
Cannot load library /home/zonkmachine/builds/lmms/target/lib/lmms/libcarlarack.so: (libcarlabase.so: cannot open shared object file: No such file or directory)
Cannot load library /home/zonkmachine/builds/lmms/target/lib/lmms/libcarlabase.so: (libcarla_native-plugin.so: cannot open shared object file: No such file or directory)
Cannot load library /home/zonkmachine/builds/lmms/target/lib/lmms/libcarlapatchbay.so: (libcarlabase.so: cannot open shared object file: No such file or directory)
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x73DAD64: g_utf8_offset_to_pointer (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0xD2EEB83: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF2A3: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF3B7: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD69EE98: ??? (in /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.32)
==16974==    by 0x73A7E8D: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x73A823F: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x73A82E2: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x61555E3: QEventDispatcherGlib::processEvents(QFlags) (qeventdispatcher_glib.cpp:422)
==16974==    by 0x60FDAA0: QCoreApplication::processEvents(QFlags, int) (qcoreapplication.cpp:1334)
==16974==    by 0x4BAD487: waitForWindowExposed (qsplashscreen.cpp:250)
==16974==    by 0x4BAD487: QSplashScreen::finish(QWidget*) (qsplashscreen.cpp:274)
==16974==    by 0x452513: GuiApplication::GuiApplication() (GuiApplication.cpp:158)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x73DADA3: g_utf8_offset_to_pointer (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0xD2EEB83: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF2A3: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF3B7: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD69EE98: ??? (in /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.32)
==16974==    by 0x73A7E8D: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x73A823F: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x73A82E2: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x61555E3: QEventDispatcherGlib::processEvents(QFlags) (qeventdispatcher_glib.cpp:422)
==16974==    by 0x60FDAA0: QCoreApplication::processEvents(QFlags, int) (qcoreapplication.cpp:1334)
==16974==    by 0x4BAD487: waitForWindowExposed (qsplashscreen.cpp:250)
==16974==    by 0x4BAD487: QSplashScreen::finish(QWidget*) (qsplashscreen.cpp:274)
==16974==    by 0x452513: GuiApplication::GuiApplication() (GuiApplication.cpp:158)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x73DAD64: g_utf8_offset_to_pointer (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0xD2EEB83: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF3D4: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD69EE98: ??? (in /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.32)
==16974==    by 0x73A7E8D: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x73A823F: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x73A82E2: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x61555E3: QEventDispatcherGlib::processEvents(QFlags) (qeventdispatcher_glib.cpp:422)
==16974==    by 0x60FDAA0: QCoreApplication::processEvents(QFlags, int) (qcoreapplication.cpp:1334)
==16974==    by 0x4BAD487: waitForWindowExposed (qsplashscreen.cpp:250)
==16974==    by 0x4BAD487: QSplashScreen::finish(QWidget*) (qsplashscreen.cpp:274)
==16974==    by 0x452513: GuiApplication::GuiApplication() (GuiApplication.cpp:158)
==16974==    by 0x2EC2AA: main (main.cpp:831)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x73DADA3: g_utf8_offset_to_pointer (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0xD2EEB83: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD2EF3D4: ??? (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.32)
==16974==    by 0xD69EE98: ??? (in /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.32)
==16974==    by 0x73A7E8D: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x73A823F: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x73A82E2: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.3)
==16974==    by 0x61555E3: QEventDispatcherGlib::processEvents(QFlags) (qeventdispatcher_glib.cpp:422)
==16974==    by 0x60FDAA0: QCoreApplication::processEvents(QFlags, int) (qcoreapplication.cpp:1334)
==16974==    by 0x4BAD487: waitForWindowExposed (qsplashscreen.cpp:250)
==16974==    by 0x4BAD487: QSplashScreen::finish(QWidget*) (qsplashscreen.cpp:274)
==16974==    by 0x452513: GuiApplication::GuiApplication() (GuiApplication.cpp:158)
==16974==    by 0x2EC2AA: main (main.cpp:831)
==16974== 
==16974== Thread 12 Mixer::fifoWrite:
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x183BA25D: mdaJX10::processReplacing(float**, float**, int) (mdaJX10.cpp:563)
==16974==    by 0x183BC2C9: lvz_run (wrapper.cpp:161)
==16974==    by 0x401E28: lilv_instance_run (lilv.h:1704)
==16974==    by 0x4031C9: Lv2Proc::run(short) (Lv2Proc.cpp:331)
==16974==    by 0x3F8F04: Lv2ControlBase::run(short) (Lv2ControlBase.cpp:148)
==16974==    by 0x321D1E0E: Lv2Instrument::play(std::array*) (Lv2Instrument.cpp:165)
==16974==    by 0x36C10A: InstrumentPlayHandle::play(std::array*) (InstrumentPlayHandle.h:65)
==16974==    by 0x39BA54: PlayHandle::doProcessing() (PlayHandle.cpp:58)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3840EF: Mixer::renderNextBuffer() (Mixer.cpp:440)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38D573: MixHelpers::isSilent(std::array const*, int) (MixHelpers.cpp:70)
==16974==    by 0x516A87: InstrumentTrack::processAudioBuffer(std::array*, short, NotePlayHandle*) (InstrumentTrack.cpp:193)
==16974==    by 0x321D1E5D: Lv2Instrument::play(std::array*) (Lv2Instrument.cpp:170)
==16974==    by 0x36C10A: InstrumentPlayHandle::play(std::array*) (InstrumentPlayHandle.h:65)
==16974==    by 0x39BA54: PlayHandle::doProcessing() (PlayHandle.cpp:58)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3840EF: Mixer::renderNextBuffer() (Mixer.cpp:440)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38D5AC: MixHelpers::isSilent(std::array const*, int) (MixHelpers.cpp:70)
==16974==    by 0x516A87: InstrumentTrack::processAudioBuffer(std::array*, short, NotePlayHandle*) (InstrumentTrack.cpp:193)
==16974==    by 0x321D1E5D: Lv2Instrument::play(std::array*) (Lv2Instrument.cpp:170)
==16974==    by 0x36C10A: InstrumentPlayHandle::play(std::array*) (InstrumentPlayHandle.h:65)
==16974==    by 0x39BA54: PlayHandle::doProcessing() (PlayHandle.cpp:58)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3840EF: Mixer::renderNextBuffer() (Mixer.cpp:440)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974== 
==16974== Thread 9 MixerWorkerThrea:
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38D573: MixHelpers::isSilent(std::array const*, int) (MixHelpers.cpp:70)
==16974==    by 0x3EE739: AudioPort::doProcessing() (AudioPort.cpp:123)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C9E4: MixerWorkerThread::run() (MixerWorkerThread.cpp:174)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38D5AC: MixHelpers::isSilent(std::array const*, int) (MixHelpers.cpp:70)
==16974==    by 0x3EE739: AudioPort::doProcessing() (AudioPort.cpp:123)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C9E4: MixerWorkerThread::run() (MixerWorkerThread.cpp:174)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Thread 12 Mixer::fifoWrite:
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x318941: float qAbs(float const&) (qglobal.h:581)
==16974==    by 0x384629: Mixer::getPeakValues(std::array*, int) const (Mixer.cpp:544)
==16974==    by 0x35E655: FxChannel::doProcessing() (FxMixer.cpp:176)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3600D4: FxMixer::masterMix(std::array*) (FxMixer.cpp:648)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x318941: float qAbs(float const&) (qglobal.h:581)
==16974==    by 0x384659: Mixer::getPeakValues(std::array*, int) const (Mixer.cpp:545)
==16974==    by 0x35E655: FxChannel::doProcessing() (FxMixer.cpp:176)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3600D4: FxMixer::masterMix(std::array*) (FxMixer.cpp:648)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38466A: Mixer::getPeakValues(std::array*, int) const (Mixer.cpp:546)
==16974==    by 0x35E655: FxChannel::doProcessing() (FxMixer.cpp:176)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3600D4: FxMixer::masterMix(std::array*) (FxMixer.cpp:648)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38467F: Mixer::getPeakValues(std::array*, int) const (Mixer.cpp:551)
==16974==    by 0x35E655: FxChannel::doProcessing() (FxMixer.cpp:176)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3600D4: FxMixer::masterMix(std::array*) (FxMixer.cpp:648)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x318DA5: float const& qMax(float const&, float const&) (qglobal.h:596)
==16974==    by 0x35E693: FxChannel::doProcessing() (FxMixer.cpp:177)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3600D4: FxMixer::masterMix(std::array*) (FxMixer.cpp:648)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x318DA5: float const& qMax(float const&, float const&) (qglobal.h:596)
==16974==    by 0x35E6DB: FxChannel::doProcessing() (FxMixer.cpp:178)
==16974==    by 0x36BED8: ThreadableJob::process() (ThreadableJob.h:74)
==16974==    by 0x38C6B0: MixerWorkerThread::JobQueue::run() (MixerWorkerThread.cpp:84)
==16974==    by 0x38C940: MixerWorkerThread::startAndWaitForJobs() (MixerWorkerThread.cpp:157)
==16974==    by 0x3600D4: FxMixer::masterMix(std::array*) (FxMixer.cpp:648)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38E95B: MixHelpers::AddSanitizedMultipliedOp::operator()(std::array&, std::array const&) const (MixHelpers.cpp:246)
==16974==    by 0x38E4FB: void MixHelpers::run(std::array*, std::array const*, int, MixHelpers::AddSanitizedMultipliedOp const&) (MixHelpers.cpp:47)
==16974==    by 0x38E1E0: MixHelpers::addSanitizedMultiplied(std::array*, std::array const*, float, int) (MixHelpers.cpp:261)
==16974==    by 0x360280: FxMixer::masterMix(std::array*) (FxMixer.cpp:666)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38E97E: MixHelpers::AddSanitizedMultipliedOp::operator()(std::array&, std::array const&) const (MixHelpers.cpp:246)
==16974==    by 0x38E4FB: void MixHelpers::run(std::array*, std::array const*, int, MixHelpers::AddSanitizedMultipliedOp const&) (MixHelpers.cpp:47)
==16974==    by 0x38E1E0: MixHelpers::addSanitizedMultiplied(std::array*, std::array const*, float, int) (MixHelpers.cpp:261)
==16974==    by 0x360280: FxMixer::masterMix(std::array*) (FxMixer.cpp:666)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38E9F0: MixHelpers::AddSanitizedMultipliedOp::operator()(std::array&, std::array const&) const (MixHelpers.cpp:247)
==16974==    by 0x38E4FB: void MixHelpers::run(std::array*, std::array const*, int, MixHelpers::AddSanitizedMultipliedOp const&) (MixHelpers.cpp:47)
==16974==    by 0x38E1E0: MixHelpers::addSanitizedMultiplied(std::array*, std::array const*, float, int) (MixHelpers.cpp:261)
==16974==    by 0x360280: FxMixer::masterMix(std::array*) (FxMixer.cpp:666)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x38EA13: MixHelpers::AddSanitizedMultipliedOp::operator()(std::array&, std::array const&) const (MixHelpers.cpp:247)
==16974==    by 0x38E4FB: void MixHelpers::run(std::array*, std::array const*, int, MixHelpers::AddSanitizedMultipliedOp const&) (MixHelpers.cpp:47)
==16974==    by 0x38E1E0: MixHelpers::addSanitizedMultiplied(std::array*, std::array const*, float, int) (MixHelpers.cpp:261)
==16974==    by 0x360280: FxMixer::masterMix(std::array*) (FxMixer.cpp:666)
==16974==    by 0x3842EB: Mixer::renderNextBuffer() (Mixer.cpp:474)
==16974==    by 0x386BAA: Mixer::fifoWriter::run() (Mixer.cpp:1259)
==16974==    by 0x5F359D1: QThreadPrivate::start(void*) (qthread_unix.cpp:361)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Thread 10:
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x3E55AC: Mixer::clip(float) (Mixer.h:266)
==16974==    by 0x3E5101: AudioDevice::convertToS16(std::array const*, short, float, short*, bool) (AudioDevice.cpp:241)
==16974==    by 0x3F78F6: AudioSdl::sdlAudioCallback(unsigned char*, int) (AudioSdl.cpp:288)
==16974==    by 0x3F77BC: AudioSdl::sdlAudioCallback(void*, unsigned char*, int) (AudioSdl.cpp:224)
==16974==    by 0x507864B: ??? (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x5081F3B: ??? (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x50C1BAE: ??? (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x3E55C4: Mixer::clip(float) (Mixer.h:270)
==16974==    by 0x3E5101: AudioDevice::convertToS16(std::array const*, short, float, short*, bool) (AudioDevice.cpp:241)
==16974==    by 0x3F78F6: AudioSdl::sdlAudioCallback(unsigned char*, int) (AudioSdl.cpp:288)
==16974==    by 0x3F77BC: AudioSdl::sdlAudioCallback(void*, unsigned char*, int) (AudioSdl.cpp:224)
==16974==    by 0x507864B: ??? (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x5081F3B: ??? (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x50C1BAE: ??? (in /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4)
==16974==    by 0x487A608: start_thread (pthread_create.c:477)
==16974==    by 0x66E0292: clone (clone.S:95)
==16974== 
==16974== Thread 1:
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x44F65E: FxMixerView::updateFaders() (FxMixerView.cpp:604)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974==    by 0x60FD939: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1088)
==16974==    by 0x61548AF: QTimerInfoList::activateTimers() (qtimerinfo_unix.cpp:643)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD19: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:274)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F69E: FxMixerView::updateFaders() (FxMixerView.cpp:606)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD3C: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:278)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F69E: FxMixerView::updateFaders() (FxMixerView.cpp:606)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD58: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:283)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F69E: FxMixerView::updateFaders() (FxMixerView.cpp:606)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD5E: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:283)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F69E: FxMixerView::updateFaders() (FxMixerView.cpp:606)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD80: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:286)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F69E: FxMixerView::updateFaders() (FxMixerView.cpp:606)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFDB9: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:294)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F69E: FxMixerView::updateFaders() (FxMixerView.cpp:606)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x44F767: FxMixerView::updateFaders() (FxMixerView.cpp:615)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974==    by 0x60FD939: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1088)
==16974==    by 0x61548AF: QTimerInfoList::activateTimers() (qtimerinfo_unix.cpp:643)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD19: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:274)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F7A7: FxMixerView::updateFaders() (FxMixerView.cpp:617)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD3C: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:278)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F7A7: FxMixerView::updateFaders() (FxMixerView.cpp:617)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD58: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:283)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F7A7: FxMixerView::updateFaders() (FxMixerView.cpp:617)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD5E: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:283)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F7A7: FxMixerView::updateFaders() (FxMixerView.cpp:617)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD80: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:286)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F7A7: FxMixerView::updateFaders() (FxMixerView.cpp:617)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFDB9: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:294)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F7A7: FxMixerView::updateFaders() (FxMixerView.cpp:617)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x44F6FE: FxMixerView::updateFaders() (FxMixerView.cpp:610)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974==    by 0x60FD939: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1088)
==16974==    by 0x61548AF: QTimerInfoList::activateTimers() (qtimerinfo_unix.cpp:643)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD19: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:274)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F734: FxMixerView::updateFaders() (FxMixerView.cpp:612)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD3C: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:278)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F734: FxMixerView::updateFaders() (FxMixerView.cpp:612)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD58: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:283)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F734: FxMixerView::updateFaders() (FxMixerView.cpp:612)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD5E: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:283)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F734: FxMixerView::updateFaders() (FxMixerView.cpp:612)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD80: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:286)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F734: FxMixerView::updateFaders() (FxMixerView.cpp:612)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFDB9: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:294)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F734: FxMixerView::updateFaders() (FxMixerView.cpp:612)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x44F807: FxMixerView::updateFaders() (FxMixerView.cpp:621)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974==    by 0x60FD939: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1088)
==16974==    by 0x61548AF: QTimerInfoList::activateTimers() (qtimerinfo_unix.cpp:643)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD19: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:274)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F83D: FxMixerView::updateFaders() (FxMixerView.cpp:623)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD3C: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:278)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F83D: FxMixerView::updateFaders() (FxMixerView.cpp:623)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD58: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:283)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F83D: FxMixerView::updateFaders() (FxMixerView.cpp:623)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD5E: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:283)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F83D: FxMixerView::updateFaders() (FxMixerView.cpp:623)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFD80: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:286)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F83D: FxMixerView::updateFaders() (FxMixerView.cpp:623)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x4DFDB9: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:294)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F83D: FxMixerView::updateFaders() (FxMixerView.cpp:623)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974==    by 0x4A080EF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3446)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x318DA5: float const& qMax(float const&, float const&) (qglobal.h:596)
==16974==    by 0x4DFE1B: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:296)
==16974==    by 0x4DFE8E: Fader::setPeak_L(float) (Fader.cpp:305)
==16974==    by 0x44F734: FxMixerView::updateFaders() (FxMixerView.cpp:612)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974== 
==16974== Conditional jump or move depends on uninitialised value(s)
==16974==    at 0x318DA5: float const& qMax(float const&, float const&) (qglobal.h:596)
==16974==    by 0x4DFE1B: Fader::setPeak(float, float&, float&, QElapsedTimer&) (Fader.cpp:296)
==16974==    by 0x4DFED4: Fader::setPeak_R(float) (Fader.cpp:312)
==16974==    by 0x44F83D: FxMixerView::updateFaders() (FxMixerView.cpp:623)
==16974==    by 0x2F7B84: FxMixerView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_FxMixerView.cpp:80)
==16974==    by 0x61292FF: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3804)
==16974==    by 0x2FC72C: MainWindow::periodicUpdate() (moc_MainWindow.cpp:316)
==16974==    by 0x4676F7: MainWindow::timerEvent(QTimerEvent*) (MainWindow.cpp:1406)
==16974==    by 0x6129CF4: QObject::event(QEvent*) (qobject.cpp:1283)
==16974==    by 0x4A4125C: QWidget::event(QEvent*) (qwidget.cpp:9409)
==16974==    by 0x4B56147: QMainWindow::event(QEvent*) (qmainwindow.cpp:1339)
==16974==    by 0x49FEA65: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3700)
==16974== 
==16974== 
==16974== HEAP SUMMARY:
==16974==     in use at exit: 3,346,295 bytes in 32,313 blocks
==16974==   total heap usage: 1,985,038 allocs, 1,952,725 frees, 492,912,590 bytes allocated
==16974== 
==16974== For a detailed leak analysis, rerun with: --leak-check=full
==16974== 
==16974== Use --track-origins=yes to see where uninitialised values come from
==16974== For lists of detected and suppressed errors, rerun with: -s
==16974== ERROR SUMMARY: 3509404 errors from 55 contexts (suppressed: 0 from 0)

@JohannesLorenz
Copy link
Contributor Author

Unfortunately, I don't get this valgrind message. @zonkmachine Can you try loading the effect in ardour/jalv/any other lv2 host and see if you get it, there?

@zonkmachine
Copy link
Member

Unfortunately, I don't get this valgrind message. @zonkmachine Can you try loading the effect in ardour/jalv/any other lv2 host and see if you get it, there?

Right now that will have to wait. I'm going through the plugins from the list above again and with the latest AppImage and they work just fine. As JX10 was already available and we don't see any new issues apart from the ones already fixed or that are on the plugin side, I think this should be merged. Or, since I've seen all these issues, someone else should try this out who can give some fresh input.

@PhysSong
Copy link
Member

PhysSong commented Dec 7, 2020

mdaJX10::processReplacing(float**, float**, int) (mdaJX10.cpp:563)

It is:

            if(V->ff > fx) V->ff = fx; //stability limit

Which means V->ff is not initialized.

@zonkmachine Can you change line 156 like this and try to reproduce the bug again?

-    voice[v].f0   = voice[v].f1    = voice[v].f2    = 0.0f;
+    voice[v].f0   = voice[v].f1    = voice[v].f2    = voice[v].ff    = 0.0f;

@zonkmachine
Copy link
Member

@zonkmachine Can you change line 156 like this and try to reproduce the bug again?

Cool! It looks like it worked. Now I get some other complaints but I think we can deal with that somewhere else. I'll look into that later.

@JohannesLorenz
Copy link
Contributor Author

@zonkmachine I guess you mean it's generally ready to merge?

@PhysSong Do you want to send an issue report to the MDA repo? The honor should be yours.

@zonkmachine
Copy link
Member

Yes. I think it's ready to merge. It's also easier to test the plugins from this PR further if they're in master.

@JohannesLorenz JohannesLorenz merged commit 2f66449 into LMMS:master Dec 7, 2020
@PhysSong
Copy link
Member

PhysSong commented Dec 8, 2020

@PhysSong Do you want to send an issue report to the MDA repo? The honor should be yours.

Where should I report that?

@zonkmachine
Copy link
Member

Where should I report that?

I think this is the main repo: https://gitlab.com/drobilla/mda-lv2

@zonkmachine zonkmachine removed the needs testing This pull request needs more testing label Dec 8, 2020
@zonkmachine
Copy link
Member

I just hit the fork button on that gitlab repo and as it turns out, Ḯm the first one. That's just sad. I found some uninitialized variables on the DX10 and was thinking I'd pull something. @PhysSong If you want me to include the JX10 fix I can do that but creating a GilLab account was the most painfree thing so far on the internet. You can just log in with GitHub and then set a password.

@zonkmachine
Copy link
Member

The fixes in mda-lv2 that was proposed here has been incorporated in mda-lv2 1.2.6
https://gitlab.com/drobilla/mda-lv2/-/releases/v1.2.6

IanCaio pushed a commit to IanCaio/lmms that referenced this pull request Mar 28, 2021
Implement `LV2_OPTIONS__options` feature and some buf-size properties.

The code currently assumes that the LMMS buffersize never changes, which
is currently true in the LMMS code base.
devnexen pushed a commit to devnexen/lmms that referenced this pull request Apr 10, 2021
Implement `LV2_OPTIONS__options` feature and some buf-size properties.

The code currently assumes that the LMMS buffersize never changes, which
is currently true in the LMMS code base.
sdasda7777 pushed a commit to sdasda7777/lmms that referenced this pull request Jun 28, 2022
Implement `LV2_OPTIONS__options` feature and some buf-size properties.

The code currently assumes that the LMMS buffersize never changes, which
is currently true in the LMMS code base.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

6 participants