FigBug / Wavetable

Wavetable synth
https://socalabs.com/synths/wavetable/
BSD 3-Clause "New" or "Revised" License
141 stars 10 forks source link

LV2 Ubuntu 22.04: crash on wavetable change #5

Closed BaraMGB closed 1 year ago

BaraMGB commented 1 year ago

I was able to build an LV2 at least. I had to set CMake version to 3.22 (the version in Ubuntu 22.04). Also I had to clone the modules by myself because of permission denied on git clone --recurse-submodule . Next problem was the missing vst2 dependencies. But LV2 works.

It crashes on changing wavetable with:

Thread 20 "JUCE ALSA" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffab7fe640 (LWP 15441)]
0x00007fff8979ede4 in std::vector<float, std::allocator<float> >::operator[](unsigned long) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
(gdb) bt
#0  0x00007fff8979ede4 in std::vector<float, std::allocator<float> >::operator[](unsigned long) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#1  0x00007fff89ca7924 in gin::BandLimitedLookupTable::process(float, float) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#2  0x00007fff89c9818a in gin::WTOscillator::processAdding(float, gin::WTOscillator::Params const&, juce::AudioBuffer<float>&) ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#3  0x00007fff897277bc in gin::VoicedStereoOscillator<gin::WTOscillator, gin::WTVoicedStereoOscillatorParams>::processAdding(float, gin::WTVoicedStereoOscillatorParams const&, juce::AudioBuffer<float>&) ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#4  0x00007fff89721b87 in WavetableVoice::renderNextBlock(juce::AudioBuffer<float>&, int, int) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#5  0x00007fff89be897c in juce::MPESynthesiser::renderNextSubBlock(juce::AudioBuffer<float>&, int, int) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#6  0x00007fff89c25285 in void juce::MPESynthesiserBase::renderNextBlock<float>(juce::AudioBuffer<float>&, juce::MidiBuffer const&, int, int) ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#7  0x00007fff89714003 in void gin::Synthesiser::renderNextBlock<float>(juce::AudioBuffer<float>&, juce::MidiBuffer const&, int, int) ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#8  0x00007fff89702d10 in WavetableAudioProcessor::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#9  0x00007fff896d6b73 in juce::lv2_client::LV2PluginInstance::run(unsigned int) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#10 0x00007fff896ceb40 in lv2_descriptor::{lambda(void*, unsigned int)#4}::operator()(void*, unsigned int) const ()
   from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#11 0x00007fff896ceb6a in lv2_descriptor::{lambda(void*, unsigned int)#4}::_FUN(void*, unsigned int) () from /home/baramgb/Projects/Wavetable/build/Wavetable_artefacts/LV2/Wavetable.lv2/libWavetable.so
#12 0x0000555555d4b359 in lilv_instance_run (sample_count=<optimized out>, instance=<optimized out>)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/juce/modules/juce_audio_processors/format_types/LV2_SDK/lilv/lilv/lilv.h:1948
#13 juce::lv2_host::Instance::run (sampleCount=<optimized out>, this=<optimized out>)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/juce/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp:835
#14 juce::lv2_host::LV2AudioPluginInstance::processBlockImpl (midi=..., audio=..., this=0x55555a56a3d0)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/juce/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp:4649
#15 juce::lv2_host::LV2AudioPluginInstance::processBlock (this=0x55555a56a3d0, audio=..., midi=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/juce/modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp:4431
#16 0x0000555555bd769f in tracktion::engine::ExternalPlugin::processPluginBlock (this=0x555557434fb0, fc=..., processedBypass=<optimized out>)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/plugins/external/tracktion_ExternalPlugin.cpp:1421
#17 0x0000555555be952f in tracktion::engine::ExternalPlugin::applyToBuffer (this=0x555557434fb0, fc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/plugins/external/tracktion_ExternalPlugin.cpp:1329
#18 0x0000555555bd3013 in tracktion::engine::Plugin::applyToBufferWithAutomation (this=this@entry=0x555557434fb0, pc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/plugins/tracktion_Plugin.cpp:699
#19 0x0000555555aee996 in tracktion::engine::PluginNode::process (this=0x555556bce1e0, pc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_PluginNode.cpp:207
#20 0x0000555555b80a9c in tracktion::graph::Node::process (this=0x555556bce1e0, numSamples=512, referenceSampleRange=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_graph/tracktion_graph/tracktion_Node.h:533
#21 0x000055555600a35b in tracktion::graph::LockFreeMultiThreadedNodePlayer::processNode (node=..., preparedNode=..., this=0x555556acd1e0)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_graph/tracktion_graph/tracktion_LockFreeMultiThreadedNodePlayer.cpp:435
#22 tracktion::graph::LockFreeMultiThreadedNodePlayer::processNextFreeNode (this=this@entry=0x555556acd1e0, preparedNode=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_graph/tracktion_graph/tracktion_LockFreeMultiThreadedNodePlayer.cpp:416
#23 0x000055555600a69b in tracktion::graph::LockFreeMultiThreadedNodePlayer::process (this=this@entry=0x555556acd1e0, pc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_graph/tracktion_graph/tracktion_LockFreeMultiThreadedNodePlayer.cpp:125
#24 0x0000555555aea3a7 in tracktion::engine::TracktionNodePlayer::processSubRange (proportion=..., pc=..., this=0x555556acd1b8)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_TracktionNodePlayer.h:221
#25 tracktion::engine::TracktionNodePlayer::processTempoChanges (pc=..., this=0x555556acd1b8)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_TracktionNodePlayer.h:191
#26 tracktion::engine::TracktionNodePlayer::processReferenceRange (referenceSampleRange=..., pc=..., this=0x555556acd1b8)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_TracktionNodePlayer.h:150
#27 tracktion::engine::TracktionNodePlayer::process (this=0x555556acd1b8, pc=...)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/graph/tracktion_TracktionNodePlayer.h:100
#28 0x0000555555b942a0 in tracktion::engine::EditPlaybackContext::NodePlaybackContext::process (this=0x555556accf90, allChannels=allChannels@entry=0x555556a19410, numChannels=numChannels@entry=32, 
    destNumSamples=destNumSamples@entry=512) at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/tracktion_EditPlaybackContext.cpp:347
#29 0x0000555555b38280 in tracktion::engine::EditPlaybackContext::fillNextNodeBlock (this=0x555556adcd90, allChannels=0x555556a19410, numChannels=32, numSamples=512) at /usr/include/c++/11/bits/unique_ptr.h:173
#30 0x0000555555b3a759 in tracktion::engine::DeviceManager::audioDeviceIOCallbackInternal (this=0x5555569d1920, inputChannelData=<optimized out>, numInputChannels=<optimized out>, 
    outputChannelData=0x555556a19410, totalNumOutputChannels=<optimized out>, numSamples=512)
    at /home/baramgb/Projects/NextSTudio/modules/tracktion_engine/modules/tracktion_engine/playback/tracktion_DeviceManager.cpp:1165

I hope this helps. On the standalone version it doesn't crash but needs some seconds to load the wavetable.

FigBug commented 1 year ago

Do you know what commit you were on when this crash happened? 483398d Or later?

FigBug commented 1 year ago

Fixed in 59a761fc691fd6b6b98a0d0d017bda34c7897de1