HISE crashes on Windows when opening project created on macOS
We build an Instrument on macOS and we're nearly finished; just started testing on different hosts and platforms.
I had a Win7 license lying around, installed VS2017, IPP2019 and build the latest HISE successfuly. After that I created a little Demo-Instrument and compiled it without any trouble.
Now HISE.exe crashes when I try to open our project created on macOS. I can read "Interface: All callbacks successfuly parsed" in the console and thats it.
I'm not familiar with debugging and symbolicating, so thats what Visual Studio spits out:
Ausnahmefehler bei 0x00000001402E16D8 in HISE.exe: 0xC000001D: Illegal Instruction
Christoph Hart last edited by
HISE.exe: 0xC000001D: Illegal Instruction
might be related to the issue @dustbro is having. Which CPU model are you using on your Windows machine?
Apparently something is fishy with a subset of AMD CPUs (and I just have Intel CPUs in all my machines so I didn't notice it).
It's an ancient AMD Turion 64 X2 TL-64.
Christoph Hart last edited by
Ah, there's your problem
Remote debugging this is very hard, so I somehow have to find a way to get my hands on an old AMD system in order to fix this. If you have a computer running Windows with an Intel i5 or higher, you should be fine though.
@Christoph-Hart Jumping on this a fair bit later... I'm having the same issue but in reverse. Getting immediate crashes when trying to load a project made in Windows (AMD again, but Ryzen 7), into an older iMac running Catalina on an i7... As far as I am aware I am running the same build of develop branch 2.1. Was there ever a simple fix for this or is it a bigger compatibility issue between my machines?
@BM_FORUM Could be an issue with your project. Try a more basic project and see if that works. Also be absolutely sure you are using the latest develop branch on both systems.
@d-healey Right it seems to be an issue with the project specifically. I just created a simple sine wave & keyboard floating tile project on both WIN & MAC and they both worked fine on the other... So I exported the snippet from the main project and that confirmed without trying to load any samples etc... that it won't open on Mac.
Here's some detail about the crash (attached report as PDF), and specifically thread 5 (I've posted this below, but full report attached) in this report to my eyes appears to be the issue... Which appears to be about audio processing and modulators. Is there any further trouble shoots I could try here that jumps to mind?
(Both OS running develop 2.1 (650))
Thread 5 Crashed:: com.apple.audio.IOThread.client 0 libvDSP.dylib 0x00007fff367e60c0 0x7fff367e4000 + 8384 1 com.hartinstruments.HISEStandalone 0x000000010df3fa77 hise::GlobalTimeVariantModulator::calculateBlock(int, int) + 855 2 com.hartinstruments.HISEStandalone 0x000000010de779c2 hise::TimeVariantModulator::render(float*, float*, int, int) + 162 3 com.hartinstruments.HISEStandalone 0x000000010de77891 hise::ModulatorChain::ModChainWithBuffer::calculateMonophonicModulationValues(int, int) + 257 4 com.hartinstruments.HISEStandalone 0x000000010de748be hise::ModulatorSynth::preVoiceRendering(int, int) + 62 5 com.hartinstruments.HISEStandalone 0x000000010de7448b hise::ModulatorSynth::renderNextBlockWithModulators(juce::AudioBuffer<float>&, hise::HiseEventBuffer const&) + 363 6 com.hartinstruments.HISEStandalone 0x000000010de7d13f hise::ModulatorSynthChain::renderNextBlockWithModulators(juce::AudioBuffer<float>&, hise::HiseEventBuffer const&) + 239 7 com.hartinstruments.HISEStandalone 0x000000010de7d13f hise::ModulatorSynthChain::renderNextBlockWithModulators(juce::AudioBuffer<float>&, hise::HiseEventBuffer const&) + 239 8 com.hartinstruments.HISEStandalone 0x000000010dde47a1 hise::MainController::processBlockCommon(juce::AudioBuffer<float>&, juce::MidiBuffer&) + 12017 9 com.hartinstruments.HISEStandalone 0x000000010ebad975 juce::AudioProcessorPlayer::audioDeviceIOCallback(float const**, int, float**, int, int) + 2421 10 com.hartinstruments.HISEStandalone 0x000000010eb2752d juce::AudioDeviceManager::CallbackHandler::audioDeviceIOCallback(float const**, int, float**, int, int) + 525 11 com.hartinstruments.HISEStandalone 0x000000010eb20ffa juce::CoreAudioClasses::CoreAudioInternal::audioIOProc(unsigned int, AudioTimeStamp const*, AudioBufferList const*, AudioTimeStamp const*, AudioBufferList*, AudioTimeStamp const*, void*) + 282 12 com.apple.audio.CoreAudio 0x00007fff38fd8aaa invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 5639 13 com.apple.audio.CoreAudio 0x00007fff3910bc22 HALB_IOThread::Entry(void*) + 72 14 libsystem_pthread.dylib 0x00007fff73cb3109 _pthread_start + 148 15 libsystem_pthread.dylib 0x00007fff73caeb8b thread_start + 15
@BM_FORUM Run a debug build of HISE in xcode and see if it gives you any pointers, I don't see anything I can recognise in that crash report.
@d-healey It's crashing the debug version out too as soon as it loads... It gets past loading all the sampleMaps in and all the way to finishing the code off and then crashes without warning. The report is the same, unless there is some other report stored somewhere in debug mode when loading?
I also copied just the script side of things and whilst I could input it, I don't think it compiled very far in HISE because of all the missing sliders and panels etc... But didn't crash.
Don't really know what else to do here, is there a way of copying individually the interface controls settings (sliders with names etc... and their parameter settings), then the module section for containers and samplers etc... then I can copy them in one at a time until it crashes perhaps? Though I doubt that is possible...
@d-healey Thinking about it, I suppose it'll just be a case of saving variations where it's increasingly stripped back on Windows and see when it starts to pull through OK... I'll see where that gets me!
@d-healey It's crashing the debug version out too as soon as it loads...
But are you running the debug version from within xcode so that it shows you were the crash/error is occurring?
@d-healey Okay this is what I'm getting, so I think perhaps there's an issue with the JUCE files that are packaged with HISE? Which perhaps wouldn't be an issue is I just grabbed JUCE directly, but when I tried that a day or so ago it didn't allow for the 'indie' level changes until my licence reflects that (splashscreen etc...).
Of course that's only an assumption, maybe something else has gone wrong here... For additional information, I slimmed down the original projects initial load by purging all the samples before saving on Win and attempting again in Mac in an attempt to remove some of the initial weight of loading... Anyway, here's a screen shot of what happened when trying to open this project via an xCode build:
an issue with the JUCE files that are packaged with HISE? Which perhaps wouldn't be an issue is I just grabbed JUCE directly,
HISE uses the same files that come with JUCE. It's just not the latest version of JUCE.
It looks like the problem occurs during sample loading. Remove everything to do with sample loading and see if the problem is still there.
@d-healey The plot thickens by the minute here... So now, with all sample maps removed and samplers switched to off, it does indeed load. But if I try to either switch on a sampler, or unpurge a sampler it crashes immediately. This is with no sample map loaded, so no actual samples to unpurge or load in...
Creating a new project, and loading in a sample map from this project, I can purge and unpurge with no issue so it must be linked to a scripting issue somehow but there's really not a huge amount going on aside from basic controls and various volume controls/keyswitches. I even cleared out the entire noteOn and noteOff sections leaving only the interface script to the same effect. Here's a short vid with it doing the crash. With no samples even loaded... Just a sampler that I change to unpurged and then switch on...
P.s - Just after posting this I also took the entire script out (interface, onNote, noteOff) leaving only the GUI elements that were made in the interface editor. Other than that it was clear, and still did this... very weird. Given the exact same sample data works fine in a clean instrument. Perhaps its a audio settings thing, but I can't see it for love nor money!
@BM_FORUM EDIT: Further to all this, I now have it where I am able to get the entire thing functioning from a sample playback perspective, minus the script. So something is obviously bugging it out somewhere. So I'll just begin introducing one element at a time until I find the culprit... If I ever do! Bit of a ghost this one.
dustbro last edited by
@BM_FORUM com.apple.audio.CoreAudio would make me think sound card issue