HISE crashes on export
-
@stmpn Before you can export you need to be able to compile HISE. Did you follow these steps? - https://github.com/christophhart/HISE?tab=readme-ov-file#osx
-
After some trial and error, I figured out the cause of the crash, but not yet the why.
For this project, I have a custom lookandfeel for the preset browser. As soon as I include("PresetBrowser.js") on the oninit; and go to export, the crash happens. If I comment out that line (essentially by passing the PresetBrowser.js) then HISE will export as usual.
This leads me to believe that something on the oninit is not playing nice with the PresetBrowser.js making HISE mad and refuse to export.
Any ideas?
-
-
@stmpn if you have various versions of your plug in try to export an early version, might be a corrupted later version, it happened to me, also if you have various Hise Versions installed make sure you are using the the same version that its set in the settings otherwise won't export either, I hope this help in something.
-
Thank you for taking the time to review the code below. You do a lot for the HISE community. You've helped me so much on this project. I really appreciate it!
This is the oninit code:
Content.makeFrontInterface(960, 600); include("PresetBrowser.js"); // load all Audio Files from the AudioFiles Folder into the Pool Engine.loadAudioFilesIntoPool(); //Sampler const var Sampler1 = Synth.getChildSynth("Sampler1"); //Sample maps array const var sampleMaps = Sampler.getSampleMapList(); //ComboBox const var cmbSampleBox = Content.getComponent("cmbSampleBox"); cmbSampleBox.set ("items", sampleMaps.join("\n")); inline function oncmbSampleBoxControl(component, value) { Sampler1.asSampler().loadSampleMap(sampleMaps[value-1]); }; Content.getComponent("cmbSampleBox").setControlCallback(oncmbSampleBoxControl);
This is the PresetBrowser.js
namespace PresetBrowser { const NUM_BANKS = 5; Engine.loadImageIntoPool("*"); const laf = Content.createLocalLookAndFeel(); for (i = 0; i < NUM_BANKS; i++) laf.loadImage("{PROJECT_FOLDER}bank" + (i + 1) + ".png", "bank" + (i + 1)); laf.registerFunction("drawPresetBrowserBackground", function(g, obj) { g.fillAll(0xff0e0e0e); }); laf.registerFunction("drawPresetBrowserColumnBackground", function(g, obj) { var a = obj.area; switch (obj.columnIndex) { case 0: // Bank g.fillAll(0xff0e0e0e); break; case 1: // Category g.fillAll(0xff0e0e0e); break; case 2: // Preset g.fillAll(0xff0e0e0e); break; } }); laf.registerFunction("drawPresetBrowserListItem", function(g, obj) { var a = obj.area; g.setColour(Colours.withAlpha(0xffffffff, obj.selected ? 0.9 + (obj.hover * 0.2): 0.3 + (obj.hover * 0.2))); if (obj.columnIndex == 0) // Bank { var imgName = "bank" + (obj.rowIndex + 1); g.drawImage(imgName, a, 0, 0); } else // Category and Preset { g.setFont("Arial", 14); g.drawAlignedText(obj.text.toUpperCase(), a, "centred"); } }); const fltPresetBrowser = Content.getComponent("fltPresetBrowser"); fltPresetBrowser.setLocalLookAndFeel(laf); const SCROLLBAR_PADDING = 10; laf.registerFunction('drawScrollbar', function(g, obj) { var a = obj.handle; var pa = [ a[0] + SCROLLBAR_PADDING, a[1] + SCROLLBAR_PADDING, a[2] - SCROLLBAR_PADDING, a[3] - SCROLLBAR_PADDING, ]; g.setColour(0xff141414); g.fillRoundedRectangle(pa, 5); }); }
-
Good looking out! I actually checked and was running a different version of HISE in the settings. I updated that to the new one and still no luck exporting.
Will try going back to older version of project and see if it can export as well.
-
@stmpn said in HISE crashes on export:
switch (obj.columnIndex) { case 0: // Bank g.fillAll(0xff0e0e0e); break; case 1: // Category g.fillAll(0xff0e0e0e); break; case 2: // Preset g.fillAll(0xff0e0e0e); break; }
These colours are all the same, why do you need a switch statement?
I don't see any obvious issues there. Try commenting out different functions in that file and see if you can narrow it down.
Are you using the develop branch? Make sure you only have one copy of HISE and the HISE source code on your system.
-
ok will try commenting out and see what happens.
I am using the latest build for HISE but not dev branch. I'm able to load developer branch into Xcode via Projuicer but Xcode won't build.
-
@stmpn said in HISE crashes on export:
I am using the latest build for HISE but not dev branch
You need to build HISE from the develop branch before you will be able to compile your project.
-
Finally, got HISE to start the export process without crashing.
Problem line of code was this:
Engine.loadImageIntoPool("*");
I deleted the above and everything works as expected, except now on export I am getting an IPP error. Will search the forum for resolutions as I know I've seen this error popup in the forum already.