Monolith bug? crashes host
-
I've been trying to track down compilation errors for a while now. Sometimes my projects open correctly in host software, sometimes they don't.. and I think I have pinpointed monolith as the culprit. I created a very simple project containing 1 sample and one control knob. Everything exports correctly and it works in all Hosts. If I right click the sample map -> save as XML + -> save as monolith, the newly compiled project crashes my vst hosts. (this is the correct way to make a monolith, right?)
I created a debug version of the Test project and here's what I find in the Call Stack of VS2017:TEST_Debug_x64.dll!juce::File::parseAbsolutePath(const juce::String & p) Line 134 at c:\program files\hise-master\juce\modules\juce_core\files\juce_file.cpp(134) TEST_Debug_x64.dll!juce::File::File(const juce::String & fullPathName) Line 29 at c:\program files\hise-master\juce\modules\juce_core\files\juce_file.cpp(29) TEST_Debug_x64.dll!juce::File::getChildFile(juce::StringRef relativePath) Line 466 at c:\program files\hise-master\juce\modules\juce_core\files\juce_file.cpp(466) TEST_Debug_x64.dll!hise::HiseSettings::Data::getFileForSetting(const juce::Identifier & id) Line 368 at c:\program files\hise-master\hi_core\hi_core\hisesettings.cpp(368) TEST_Debug_x64.dll!hise::HiseSettings::Data::loadSettingsFromFile(const juce::Identifier & id) Line 395 at c:\program files\hise-master\hi_core\hi_core\hisesettings.cpp(395) TEST_Debug_x64.dll!hise::HiseSettings::Data::loadDataFromFiles() Line 384 at c:\program files\hise-master\hi_core\hi_core\hisesettings.cpp(384) TEST_Debug_x64.dll!hise::HiseSettings::Data::Data(hise::MainController * mc_) Line 360 at c:\program files\hise-master\hi_core\hi_core\hisesettings.cpp(360) TEST_Debug_x64.dll!hise::GlobalSettingManager::initData(hise::MainController * mc) Line 109 at c:\program files\hise-master\hi_core\hi_core\standaloneprocessor.h(109) TEST_Debug_x64.dll!hise::FrontendProcessor::FrontendProcessor(juce::ValueTree & synthData, juce::AudioDeviceManager * manager, juce::AudioProcessorPlayer * callback_, juce::ValueTree * imageData_, juce::ValueTree * impulseData, juce::ValueTree * externalFiles, juce::ValueTree * __formal) Line 121 at c:\program files\hise-master\hi_frontend\frontend\frontendprocessor.cpp(121) TEST_Debug_x64.dll!createPluginFilter() Line 12 at c:\users\me\documents\test\binaries\source\plugin.cpp(12) TEST_Debug_x64.dll!createPluginFilterOfType(juce::AudioProcessor::WrapperType type) Line 165 at c:\program files\hise-master\juce\modules\juce_audio_plugin_client\utility\juce_pluginutilities.cpp(165) TEST_Debug_x64.dll!`anonymous namespace'::pluginEntryPoint(__int64(*)(VstEffectInterface *, int, int, __int64, void *, float) audioMaster) Line 2128 at c:\program files\hise-master\juce\modules\juce_audio_plugin_client\vst\juce_vst_wrapper.cpp(2128) TEST_Debug_x64.dll!VSTPluginMain(__int64(*)(VstEffectInterface *, int, int, __int64, void *, float) audioMaster) Line 2201 at c:\program files\hise-master\juce\modules\juce_audio_plugin_client\vst\juce_vst_wrapper.cpp(2201)
@Christoph-Hart I also just noticed that if I use the Tools -> Convert all samples to monolith + samplemap, it only creates the monolith. No sample map is created.
-
I should also add that I'm using VST multichannel version 1.5.1 650
-
If I "continue" past the errors, the plug will load. Once I trigger that sample, I get this list of errors:
TEST_Debug_x64.dll!hise::ModulatorSamplerVoice::calculateBlock(int startSample, int numSamples) Line 100 at c:\program files\hise-master\hi_sampler\sampler\modulatorsamplervoice.cpp(100) TEST_Debug_x64.dll!hise::ModulatorSynthVoice::renderNextBlock(juce::AudioBuffer<float> & outputBuffer, int startSample, int numSamples) Line 1264 at c:\program files\hise-master\hi_dsp\modules\modulatorsynth.cpp(1264) TEST_Debug_x64.dll!hise::ModulatorSynth::renderVoice(int startSample, int numThisTime) Line 478 at c:\program files\hise-master\hi_dsp\modules\modulatorsynth.cpp(478) TEST_Debug_x64.dll!hise::ModulatorSynth::renderNextBlockWithModulators(juce::AudioBuffer<float> & outputBuffer, const hise::HiseEventBuffer & inputMidiBuffer) Line 377 at c:\program files\hise-master\hi_dsp\modules\modulatorsynth.cpp(377) TEST_Debug_x64.dll!hise::ModulatorSampler::renderNextBlockWithModulators(juce::AudioBuffer<float> & outputAudio, const hise::HiseEventBuffer & inputMidi) Line 296 at c:\program files\hise-master\hi_sampler\sampler\modulatorsampler.h(296) TEST_Debug_x64.dll!hise::ModulatorSynthChain::renderNextBlockWithModulators(juce::AudioBuffer<float> & buffer, const hise::HiseEventBuffer & inputMidiBuffer) Line 251 at c:\program files\hise-master\hi_dsp\modules\modulatorsynthchain.cpp(251) TEST_Debug_x64.dll!hise::MainController::processBlockCommon(juce::AudioBuffer<float> & buffer, juce::MidiBuffer & midiMessages) Line 728 at c:\program files\hise-master\hi_core\hi_core\maincontroller.cpp(728) TEST_Debug_x64.dll!hise::DelayedRenderer::processWrapped(juce::AudioBuffer<float> & buffer, juce::MidiBuffer & midiMessages) Line 851 at c:\program files\hise-master\hi_core\hi_core\maincontrollerhelpers.cpp(851) TEST_Debug_x64.dll!hise::FrontendProcessor::processBlock(juce::AudioBuffer<float> & buffer, juce::MidiBuffer & midiMessages) Line 45 at c:\program files\hise-master\hi_frontend\frontend\frontendprocessor.cpp(45) TEST_Debug_x64.dll!JuceVSTWrapper::internalProcessReplacing<float>(float * * inputs, float * * outputs, int numSamples, JuceVSTWrapper::VstTempBuffers<float> & tmpBuffers) Line 466 at c:\program files\hise-master\juce\modules\juce_audio_plugin_client\vst\juce_vst_wrapper.cpp(466) TEST_Debug_x64.dll!JuceVSTWrapper::processReplacing(float * * inputs, float * * outputs, int sampleFrames) Line 525 at c:\program files\hise-master\juce\modules\juce_audio_plugin_client\vst\juce_vst_wrapper.cpp(525) TEST_Debug_x64.dll!JuceVSTWrapper::processReplacingCB(VstEffectInterface * vstInterface, float * * inputs, float * * outputs, int sampleFrames) Line 530 at c:\program files\hise-master\juce\modules\juce_audio_plugin_client\vst\juce_vst_wrapper.cpp(530) `
-
It Crashes on a Mac as well, when doing a Batch conversion - Convert all Samples option. It works for a while then crashes in between.
-
Bump!
Any updates?
-
I need more info to find the issue here. This conversion dialogue is not build for robustness so it's likely that there's some crash when the input doesn't match the expectation.
Ideally you would run it in Debug mode in Xcode and give me the crash location, then I can help.
-
Crash Attached here: https://www.dropbox.com/s/ykcu3t9d4a5gn71/OSX Crash Batch Conversion.txt?dl=0
-
Please try again with the recent version. 1.5.0 is 5 months old and it's no use debugging a deprecated version.
-
You should probably remove the ability to Download the Latest Version verbiage from the website, as that is not quite accurate. It would be good to have a way to download the latest after you build.
-
Attached is the crash report for version 1.6.0. The newest version seems to crash faster than even the older one.
Crash report: https://www.dropbox.com/s/uok256xole4utkh/Newest Crash.txt?dl=0
-
Can you try it with the Debug version? The crash log doesn't contain any symbols, which is weird, because even the Release version of HISE should have the symbols enabled.
Running it in Xcode should also point you directly to the faulty line.
-
Attached is the Debug Crash Log
-
Still nothing on this. Can't do Batch convert with HLAC with a large amount of samples. I was able to get non HLAC to work, but have not been able to convert batch without crashing it.
-
So far nothing has been done with this and still cannot consistently do a Batch convert without crashing. I have to do things one by one, which is extremely tedious with thousands of samples.