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.

  • 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.

    0_1525015947519_Download Latest.png

  • Attached is the crash report for version 1.6.0. The newest version seems to crash faster than even the older one.

    Crash report: 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.

  • 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.

Log in to reply