HISE Compatibility with Windows 11 and Cubase 12
-
@Casey-Kolb I would add something like
Engine.setErrorCallback(function(message, isCritical) { if(message.length == 0) { myPanel.set("visible", false); return; } myPanel.set("visible", true); myPanel.data.text = message; myPanel.repaint(); });
then you can show this however you like - no need to overlay everything.
-
@Christoph-Hart That looks like a good solution!
-
Engine.setErrorCallback(function(message, isCritical)
This isn't in the API yet is it?
-
-
@Christoph-Hart Excellent!
-
Does
Engine.showErrorMessage()
trigger the callback too? -
@d-healey sure.
-
@Christoph-Hart Not working as expected. The first time there is an error it triggers but won't after that:
HiseSnippet 844.3ocsU88iZbCD1K2sUkMsQMR8O.KdZQ5BBZulDoSQkdbbsnFtfJWi5aQ97NbXcdsWY68ZQQ4+47Peucr2EXIgDUgZPHDyu+7mmY7LilCVq1PhZe8pBfD8UwyWobKGsjITjIWPhdX7Tl0AFZkpyWUvrVHiDEczO6UD09XR3y69wyYRlhCaUQHuRK3vKD4B2VsyF9qBo7RVFbsHug2mNbBWqFok5RDOGE2mTv32wtEth4cqULI5KFmIbZybGyAVRzwmqyVMeo9OUU9+JgUbiD7BCHywDUo9RsLyiXuVxnkBY1r0maKAyxrsrvQUrv2FOUjI1neKa7MACzsQzjOhZsK7NZG3MnI752.d6ARQMfzwUP5Qwy4FQgaqEOddP7DEd4rfgzdSnT4Ko0eGEORidnb8xY2AWZPgMQj9j98Ogh+z8rjDj5sNJrj9b5X0sBEzia.7bL1XzlegoxjfIs6YsSRfk8rfKneDSJuAujRWTp3NgVkJg6A4IzbDh3MW2j2jzFAfUKgdEFgxk1AoFWGrhuMjrDgRhEitNATs57RmSqF3wsQKS457BsBOAmPumIKqxoXAMsVpc6Z7ZQlNfpoUEOsy0KEVJ9kQCE8D5o95hG10bxsfaz5zm1otvc55Oe0keyI78wU2yZ.4qzN3kpz.zRdaB88MsXwdsUmp.ytGy9wCymJvTUY9MfoIw3cD6Y1sQL9i2H1bNgWwJMbTqlnDtWV.pO1zColJw+86Stf4X9t2ZcneEfwI7PH5B3dbUPUub63K.6cNcQv2Z9GmtcAqOrtSuhuIhLe.0jO4u1rufBCWsQX3MCsr6gIpYF.u77i.B6TcNlWlAcKpE4CGovgYcVoj41cB2uVq1.x16LV4GcTVgaUy0d+uM1+eEhOJdlvwWteL1ZOXDuS9bfw5kkec73EK.taK.ON9x+3yylQxuoKcB0sSYNi.6EhupLeN9dAGvpqTfz2siW19PCx88xdFXNnxBB+C9o13.ubTswAqMRxYbi907pYL+53uLnAwjJ7RTa7IQTlNfDl6v3h62qOIGeY30bt+3+XbTY+w7cGPLe+ADyoGPL+vADySNfXd5ADyy9jw3eT9mJc57pwATwrwgkQQQiULryJzER9WgsSdHC
-
@d-healey have you cleared the error?
-
@Christoph-Hart In that snippet I'm not but I did try that inside both the button callback and the error callback.
-
Bumpy bump
-
@d-healey @Christoph-Hart I haven't managed to get this to work yet even with a simple example. For some reason the error callback isn't being triggered in the compiled plugin or with the
simulateErrorEvent
function. Am I doing something wrong here?const var errorHandler = Engine.createErrorHandler(); const var stateLabel = Content.getComponent("critical_Error_State"); const var messageLabel = Content.getComponent("critical_Error_Message"); const var errorModal = Content.getComponent("critical_Error_Modal"); errorModal.showControl(false); errorHandler.setErrorCallback(function(s, m) { Console.print("Error"); // this never prints if (s == errorHandler.IllegalBufferSize) { showErrorModal("Illegal Buffer Size", "Please change your DAW's buffer size to a multiple of 8 (e.g. 32, 64, 128, 256, 512, 1024, 2048)."); } }); inline function showErrorModal(state, message) { stateLabel.set("text", state); messageLabel.set("text", message); errorModal.showControl(true); } errorHandler.simulateErrorEvent(errorHandler.IllegalBufferSize);
-
@Casey-Kolb Do you have the same problem I had in my snippet?
-
@d-healey I'm not using
Engine.showErrorMessage
so I think it's a slightly different issue. I can't get thesetErrorCallback
function to trigger withsimulateErrorEvent
or an actual illegal buffer size in the DAW. -
Bumpy bump!
-
@Christoph-Hart Any chance you can take a look at this soon? We’re trying to launch a big update and we really need this error message to work so I don’t get a million support tickets. Thank you
-
@Casey-Kolb it‘s fixed now.
-
@Christoph-Hart Thank you!!
-
@Christoph-Hart Still doesn't seem to be working here, after the first button press the error will never be triggered again.
HiseSnippet 862.3ocsU01aaaCDlxIZXRqsXEq+.D7mjAxLr2x5FPPQciiylQqSMpSK12JXnNGSDJRARpzZTj+y6ev1QJYa4N2hBiVCCCeuxm6g2cbpVw.iQoIAQWtr.HA2Kb1RocwvETtjL9LRvCBmPMVPmTo5zkETiAxHAAG7mNEAQGR7e9mmdJUPkLXiJB4MJNCdAOma2nc5fmyEhyoYvk77Fde7fwLkbnRnJQ7bPXORAkcC8Z3BpysVgjfuaTF2pzyrTKXHAGdpJa4rEp2Iq7+MbC+JA3D5SlgIpR84JQlCwNsjgK3hroqpaCAyxzMrvAUrviBmvy3q0ugM9QugjMQzjOBZsM7NXK30uI750.d6.RAMfzgUP5ggyXZdgciEGd9gvwR7xYNEo8lPoxWRqepU3PE5gz1MmdCbtFEVGQ5i606nD7mNmDGiTuwl.KRdRxH40bIzkoArNFo0J8eQkYBPm14jn3XXQWCX85GREhqvKoz4kRlkqjoB3VPbTRNBQ7lqS7GhiP.XTBnaglKsosQpw1FOw67IKlKE3gkrJAIJ4okVqR12gasRjxT4EJIVAGkbKUTVkS97jzZoHTLBwDS.T8yDBOvLHTQ00UhAuC7pmTAqz1WtfaRvuzDObNJ4Xm+2EEEeGxEqnrqA6vUmdZ6Zb0tiq7qQ2ZB3igcmSZTQWnrvKkodjGeWbxGaZ97cZqNUdheGlcSO5OWfoxx7q.cSdy4H1RsceZ3mtOs4XDqhUZ3nRNVxsur.jepgKRMUh+60iOiZotl6ZcneEf1xcPH3L3VbSQUqdT3Yf4Fqpv6aM+iC+Vu0GTOHTw2DdlKfZxm790qSRfAKWKL3pAF5svX4TMfWdtIDtYhJGyKUitEzh7+m3vYcUVofZ2dAfaqWsAjs2ZpyMYIMb6xlaE+psU3KEhOLbJ2xVraL1ZGXDuS9Vfw5co2Obz74.ytAfGFd9e+sYwI4UpRKWd8DpUywdgvKJymgOmv.7zkRP351wKaWnd4dNYGCLCjYdg+E+TaruSNn1X+UFI4TlV8VV0Llaa8260fXR5enJBewDkS5S7ycXbg851ijiOb7VFyU9+LNpr6X9k8HlecOh438HleaOh4w6QL+9dDye7Yiw8l8yJsp7pwATwzQ9kQAAijTryx2ER9O.NPfXA
-
@Christoph-Hart said in HISE Compatibility with Windows 11 and Cubase 12:
@Casey-Kolb Yes this is a deliberately optimization in HISE that ensures that the CPU usage is as low as possible. By enforcing this all the modulators can run at 8x times lower than audio rate so it saves huge amounts of CPU. Try setting the
HISE_EVENT_RASTER
to 1 and compare the CPU usage.There is absolutely no reason not to use a buffer size other that's not a multiple of eight except for ignorance on the end user's part (or lack of better knowledge).
It deals with varying buffer sizes pretty well (REAPER for example splits up buffers at the loop point), but if the buffer size isn't dividable by eight, you will get periodic crackling, so I shut down the processing and show the error message in the overlay.
I might add a way of catching and displaying these messages when the overlay isn't disabled, but apart from that there's nothing to be done - except for setting
HISE_EVENT_RASTER
to 1 and explaining every user why the CPU has increased in your last update.Ok, so this is becoming such an annoying issue and looks so sloppy compared to other VSTs. It's probably our most serious issue and will continue to be even with an error notice.
I think we need a better solution here that allows the plugin to work even when the buffer size is not set to a multiple of 8. I know I can set the
HISE_EVENT_RASTER
to 1, but shouldn't it be possible to maintain the efficiency of multiple of eight buffer sizes but still allow sound and switch to the less efficient processing when the buffer size is set to a value that's not a multiple of 8?I'm constantly getting complaints about users not being able to get sound out of their plugin either due to the audio driver settings or buffer size settings, and the users always say CUBE is the only plugin with this issue. Surely there's a better way here right? Ideally it just always works, but the user will experience more CPU usage when using a bad buffer setting.