Convolution Reverb or Audioloop Player doesn't load file
-
OK last attempt before going through the horror of updating my OS:
If you run HISE in Debug mode inside of XCode, is it throwing an assertion if you try to load a audio file?
Maybe I can remote-debug my way out of this...
-
@Christoph-Hart well it looks like no one else has the time to do this so I will give it a go, so from first principles how would I do this?
- Assume I have opened Xcode from the projucer.....
-
Press on the play button on the top left (in the menu it's something like Product -> Build -> Debug).
It should build the binary and execute it with the debugger attached. (You might have to skip a few assertions during startup). Then try to load an audio file and if we're lucky, the execution stops and points at a code location that reveals what's wrong.
-
Well interesting in a frustrating sort of way...
So I ran Product>Build for>Testing
--- and ran the resulting image (called HISE Debug) that was in:
Hise Master>projects>standalone>Builds>MacOSX>build>Debug
--- I couldnt see any debugger anywhere.... I also ran the same thing pressing the "play button" - that built the image and then did noting (didnt even start it..)
But......
HISE Debug WILL load wav files into the Convolution reverb - I ctrl-clicked and selected a file - it loaded. I opened a project with a convolution reverb in it - it loaded the wav file on start up - I selected another reverb from the projects combo box and this loaded too, so script based loading is also working.
Just to be on the safe side I ran
I ran Product>Build for>Profiling
-- and ran the resulting image from:
Hise Master>projects>standalone>Builds>MacOSX>build>Release>
This WILL NOT open wav files in the convolution reverb.
-- Im not sure this helps that much, it might help me if you tell me I can (as a temp work around) build plug-ins using the debug version of Hise Standalone...
-
So, not only is it only happening in macOS mojave only, it's also just in the Release mode? Oh lord.
You absolutely must not ship the debug build of a plugin build with HISE. The performance is about 100x slower, all sorts of debugging functions might create drop outs at random occassions.
But you can of course use the Debug version of HISE to build it - the export will use the Release configuration anyway (so in your end user plugin you won't be able to load convolution reverbs either. Not sure if this helps with your problem.
-
A while back, I had an issue where Debug was working properly, and Release was not. I think it ended up being an optimization issue...
I could be way off, but try building the release version of HISE with Optimization disabled in the Projucer and see if that works:
-
@dustbro I had this also with something on Linux Mint, disabling optimization was a temporary fix I used.
-
@dustbro that looks like Visual Studio - so happening on Windows, not Mac? - of course I will try it.
-
@Lindon NOT happening on Windows. I was just showing you were the setting was
-
@dustbro thanks. - On more than one front... because:
@Christoph-Hart --- that seems to fix it. I re-compiled with optimisation set at its lowest(no optimisation) level -O0 ...and it now works.
-- what a relief, now I can get the customer off my back....
-
@dustbro thanks for the tip with the »no-optimisation« setting! loading loops and impulses works with this on mojave.
@Lindon thanks for your time figuring it out!!!
@Christoph-Hart after working with HISE for over a year on my day off for 12-hours every week I was so frustrated by this, that i bought kontakt. believe me, i had a quite a few of this ******-moments, and i´m not a guy that easily gives up. i really love what your doing and i love the project and all the guys/girls around here, but, at in the end i want to spend time creating instruments and not fiddling around with random-settings for hours/days just to get HISE to work (again). It was a pain to get it to work the first time on mac. It was a pain getting it kinda to work on windows. It was a pain trying to get it to work after I had to update my mac to handle my dayjob. and, believe me, I delayed that os-update as long as possible.
ok, with this off my chest: do you see any chance to get this heavyweight off the shoulders of the not-so-c++sy-users, like me?
I am thinking of a HISE-build-server:
- you connect your instruments github-repo
- you merge your dev-branch to release-branch
- which triggers automatic builds for any target platforms (windows, mac, and linux...)
- you receive the links to the builds
You would use it to build new HISE-updates, which would ensure that it works. No user would have to compile HISE or their own instruments ever again.
You said once in a post: »Life/time is too precious to rebuild the pool files on every compile« which made me smile. I think: Lifetime is too precious to setup build environments at all!
Christoph, what do you think? Can i help to set something like this up? Would it be possible with something like:
https://azure.microsoft.com/de-de/services/devops/pipelines/Cheers
Peter -
Christoph, what do you think?
Yes, having a "hosted" option for people who don't want to compile themselves is on our roadmap (will be part of the resurrection of the HISE Player).
I re-compiled with optimisation set at its lowest(no optimisation) level -O0 ...and it now works.
This is not a solution, you don't want to ship a product which is not optimised. I've just updated to Mojave and can reproduce the issue - it has something to do with new security settings that prevent unsigned apps from loading files. I am working on a fix right now.
-
OK, I need more time, this seems to be impossible to debug without contacting Apple about their new security policy.
In the meantime, you can deactivate Link Time Optimisation (which is the culprit). The binary won't be as fast as with it enabled, but it's 100x better than
O0
-
@Christoph-Hart Ok great. Now how do we "deactivate Link Time Optimisation"?
-
It's a setting in the Projucer:
-
@Christoph-Hart OK thanks
-
Finally:
https://github.com/christophhart/HISE/commit/6684de8628ffa631c04aaae702240590e7f0c4a7
That's a day of annoying work I'll never get back.
-
-
@Christoph-Hart -- so thats in the scriptnode branch right?
-
Yes. But as long as you don't actually use scriptnode (which is not 100% ready), the branch should be as stable as the master branch.