Forum
    • Categories
    • Register
    • Login
    1. Home
    2. Oli Ullmann
    3. Posts
    • Profile
    • Following 4
    • Followers 1
    • Topics 125
    • Posts 860
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: Sync 2 sliders, slider animation moving at the same time.

      @Yannrog
      In the Component Properties, there is a “linkedTo” setting. Here, you can link one slider to another.

      posted in General Questions
      Oli UllmannO
      Oli Ullmann
    • RE: Matrix modulation connection is broken in exported plugin

      @ustk
      I load the effects via the ControlCallback of my UI elements using SlotFX.setEffect(String effectName). The UI elements are saveInPreset.

      I can also swap the effects on the fly.

      What do you mean by “when I force the DLL”?

      Here’s some additional information that might be important:
      I created the basic effects in Max and then imported them into HISE via RNBO. I then combined these effects further in a ScriptNode network. I compiled this network and loaded it into a HardcodedFX.

      posted in Bug Reports
      Oli UllmannO
      Oli Ullmann
    • RE: Matrix modulation connection is broken in exported plugin

      @ustk
      Okay, I have a working FX plug-in with modulation. However, I control the parameters using HardcodedFx.setAttribute(parameter, value) because I’m controlling multiple parameters simultaneously with a single UI element. So I’m not using extra_mod nodes. Since modulation in an FX plug-in is usually monophonic and I don’t need sample-accurate modulation, this works for me.

      The UI element has a matrixTargetId, and I’m using HISE’s modulation system.

      I load the HardcodedFX dynamically via script. I haven’t added the module states to the preset. Just the Global Modulator Container.

      So it’s possible that it works for me because I control the parameters via setAttribute and the UI elements aren’t directly linked to the effect parameters. But that’s just a guess.

      If it helps and you're really stuck, I'd be happy to send you my project without the effects DLLs and C++ files....

      posted in Bug Reports
      Oli UllmannO
      Oli Ullmann
    • RE: Matrix modulation connection is broken in exported plugin

      @ustk
      Okay, here’s something else that comes to mind regarding an FX plug-in:
      You need to check the Enable Sound Generators FX box in the settings for it to work in the compiled plug-in.

      Additionally, I have the following in the extra definitions:
      HISE_ENABLE_MIDI_LEARN=1
      Otherwise, you won’t be able to access the context menu for the buttons. And just to be safe, I also checked the box for Enable Midi Input FX in the settings.

      I think that might solve your problem.

      posted in Bug Reports
      Oli UllmannO
      Oli Ullmann
    • RE: Matrix modulation connection is broken in exported plugin

      @ustk
      Do you have this in your script:

      Engine.addModuleStateToUserPreset(“Your Global Modulator Container Name”)

      I don't remember 100% for sure, but I think I had the same issues as you. Adding the Global Modulator Container to the preset solved all the problems.

      posted in Bug Reports
      Oli UllmannO
      Oli Ullmann
    • RE: Kill the audio

      @Christoph-Hart
      That sounds cool, thanks for the info! :-) I'll give it a try. The question is whether the reset message is also forwarded to the RNBO effect if it's running as a compiled version within a network. But I'll give it a try! :-)

      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • RE: Kill the audio

      @Christoph-Hart
      @ulrik

      Hi guys,
      thanks for your help! :-) I'm using granular and reverb effects whose buffers unfortunately aren't cleared via the bypass or backgroundTask functionality.

      These were originally Max patches that I imported into HISE via RNBO. I then combined them further in a network and, after compiling, integrated them back into my plugin as hardcoded effects.

      My workaround now is to unload the effects at the critical moment, then reload them and reset the parameters accordingly. There might be a better way, but this one works—at least so far. Let’s see what the beta testers have to say... :-)

      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • RE: Kill the audio

      @ulrik
      @trillbilly
      When I use a gain, the reverb tail is still there and becomes audible again as soon as I turn the gain back up. I’d rather have to clear the audio buffer or something like that... But I don't know if that's possible.

      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • Kill the audio

      Hi everyone :-)

      Is there a way to kill the audio? Something like AllNotesOff.

      Here’s the situation:
      I have several hardcoded effects, such as reverb, that continue to echo when I change plugin settings, causing unpleasant artifacts. I want to prevent this by kill all audio.

      I found
      BackgroundTask.killVoicesAndCall(var loadingFunction)
      Threads.killVoicesAndCall(var functionToExecute)
      but I’m not sure if this is the right approach or if it will actually do the job. And I don’t need any additional functionality.

      It is an effects plug-in.

      Thanks for your help,
      Oli

      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • RE: Airwindows code into scriptfx nodes

      @HISEnberg this is really cool! Thank you! :-)

      posted in ScriptNode
      Oli UllmannO
      Oli Ullmann
    • RE: Phase offset not working - when retriggered by DAW playback?

      @Straticah
      That doesn't work within HISE. But it does work in the compiled plug-in. At least on a Mac.

      posted in General Questions
      Oli UllmannO
      Oli Ullmann
    • RE: Change radio groups in the compiled plugin

      @David-Healey
      Okay, it works. I tested it in Cubase and Logic, and there are no issues with this snippet. :-)

      HiseSnippet 1700.3oc4YrzaSbDd2jrIwNzpBhJ331HN3fhPwORBnpJaRbbHp4gab3QEBAi2c13Qr6LlcmMDCBodr+A5AtweidqW6sJwefJUoJwM9CT09M6t16rNqSbcf.z5CHlu46878bScWlA1yi4pnlcuNswJpmSqQGJu0psPDpxFUUTuflKxjvVwmyYTu8vdbkU5zF44gMUTUGecAdpYlPI32aKuBxFQMvwfTTtCiXf2j3P3wPqW4aI110Pl38HNRXWpxFFL5pLalOnSiqsfRajwiQ6i2FIPaLMkag7ZondUsksJhVZQqhFKiKU.iPlMWboaX1rX9kVt30wkLPnquXIiR2PQcx0LIblaCNhi8TTmXElYmFsXOkFJf6P7HMswhC4UZ.RNDbMlsovDEPUVsEw1rdWmkmhhpV8XW23gttKpsEwjzCdrK7KBtPOlBYGn5XIUuwSnd4kUuEjTuTTIUIUZhPU57ZMLbIs4w2HzmYz1fxwtVH3cRVUBwUYr+ZBsUY.FT90bPOFWyENzihbKsvByqC+ybec1rvakGW+.jqtGgtuMdKeaNIJTQ+azueW1rOluJyoMiBGxMaSNM.wYma9r5mvuAxgFABb14d.nFVL2bM0IzTzh4xlo407DDS4tL6UQ11MgHpbGEy9vHo44vLwCick+XsoARVgQirhiFYk5yqIYbCxcIgRJ9oHGk0gBeS1LYxDTCQH30rrvFfTq2B4g0qcu.+SZHzf3z1FquK9.rayAiEh66hfrkAhQUrMpCbq3RgQlkPsITrtkO0fSXIL19MRitdo4g2bae7bYed1LDqbQGxjw5v6KQ90HTS7g6XISGjZjetGH7fcSrxYgr8vfWJS.u9pSGy3t9Bd8hTLrSLh9DsumKzpzCJxDFVja1flAq6x7aO67oHxAZF5WUuv0D0Lx7h.sOaO8lQ2lww6PyEnNvk58ekkUp2EYd1X2TuVzXw83HLG02oI1U1YHPDJdlrhr1fqHK2vvHLcSBQFcCJguSaLcPsQThxQgp2SFoU.p7fZ2edTs6POqBAJQOolnDiRf9J2zUYXosP+zFoBCCsEOEzVZzncFsdE5GMiNqV2dMon.2dipHNRz3L5U.dYZic4DwitZU7AvXKgsQynUE68XNqcvyTTfMDXbROTG1SdOxoRmXgSpDmFIoRUTFdlWXfLmd5YdwAw7e3ImdlWZfZNeHX9jCUvRrDT9dY0+6pvwGBbYZsFar85atlRZBLHzZHDnTvUr7zeZZxaJsst8l6swfD2QGbCFYjY5aKZ0IOGoXZ6nKfRYIFdSLfF0iv6Hy42YCWNrp340pS3FsRWGGKEcDR+deniQij+YZgyEDqfSnU6duel+VV7WJT7yncWzA3fYTBD9WFbFZw5nuNlhCmj4XVm52F10oZOzqSsiAGTg8bQTu1LObdYN2.6P1CB68R.sOJJjJEIfVEy8oIYcHnDXIbE0.WgDdSWoKvBx.qinIXFbNAm1hHku+6kWihfGrFXvxM2wy.bLB+rbZQceXjr6RL4sxKSXL3BxfuEx0DdCMRDzN9wsTY9QboxI+naoxOAJMkXu2Lc0wv8IVid.1FZpG8kLphsPP85tPSl5sEixZ2hQIIdn2EycI6uONQ7SpFzM4bXH6XHWrxtXaLr1SLnqTYSXjcjK3mvinuH++5uAPpuWWVKTc0E0Kz+zskx3+mtkh5DRxeptyhFrKMHxvOkSuMqSnB0bwOwGSM5HUfqSkdPkpu8xJ0vXylwgtOxx5OKmnjJ7nO9Yc.5EhLrOLgl6x74vjjagfjevQnssuSCnEpAFTPJEaK1JTcLwRLgmWPbNrgH0L3veC+htLu3rZzk46doxQqZ84QUsB+HHQ0US9gQRLN0tLlSCxy5VJ4Uu7kuobUjSaPyi.UoXw+n7cw7MApsiQ6WKW0sSevdS4fNex.fvE7yvREq.n+76tXgyZu7TcGJq2WQJvEet3yIcuQfEgdRAYf27lNLeJOw.Et3jStAUNXdbIXuh+SW4WN6SitjVrU7+iboYB8FSoE7k.CbBSG9+S95F.Rz8aSrkza4kqz6hcI62hK2OuagRIJfDrWWtKbYBBtXS1SqCBTT1sGe9wWW4Vji.UoZk9lhcOLrBZxwNe6mt4dG+rifo+w8LHWRCVjnfdvfH5eXlD4r3A6rPFNHCW1CMB+1chRYSG.AraZvehuLZaINqm+newNGXgmGZXjjUGgvBiJgEGUBKMpDt3nR3RiJgKOpDd8SlPw9n2zmybByMf8xquVvWXUUMbk7fzDk+AXOv2TI
      
      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • RE: Change radio groups in the compiled plugin

      @David-Healey
      😆

      this_is_the_way.png

      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • RE: Change radio groups in the compiled plugin

      @David-Healey said in Change radio groups in the compiled plugin:

      My first thought is disable saveInPreset for all of them and instead store the value of the last clicked button

      The problem with this solution is that my plugin has two operating modes:

      Single – here I need the radioGroup functionality, which ensures that only one button is selected at a time.

      Multi – here I don’t need the radioGroup functionality, and multiple buttons can be selected.

      That's why I wrote my own script for the radioGroup functionality, which, however, leads to the problem I mentioned.

      So my idea now was to dynamically change the radioGroup attribute, but I don’t know if that will cause problems. I guess I’ll just have to try it out... :-)

      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • RE: Change radio groups in the compiled plugin

      @David-Healey
      Hey David,
      Thanks a lot—I watched your video. It works great in principle. However, when the buttons are saveInPreset the last button in the array is always set to 1 when I recompile. Do you have any idea how to prevent that? Here's a snippet:

      HiseSnippet 937.3ocsW0taaaCEkxNrnVacncXO.B4W1CAE9C4OJFBlWbRZM1RpQcVvJJJ5nonhIhDo.EU2LJJPez1izdCZIkTrjSsViIV0OBvk264vi48dIuYlfiIwwbAvx9hUQDf02BmuhIWNYIhx.SOFX88PAxixOJQJ4r3KHwRvQqhPwwDOfkU8mpiypwdfzu+8mOBEfXXRwR.vkbJl7azPprX0Yi+UZPvoHOxEzvRQ6NdJlylvC3IJMUG1FDgvWithbNRGVMH3Yn3k.qeDNzuGZPe+d3gD2tDDxaQ+AOwaQuNCF1aDwEiPi56hceBv5dm3QkbwbIRRhAV6cD2a07k7+hksAWRioKBHZiNf4pcNa4S4Ad5eh5UASVRC7lcygULPwxrhit5YGc+.7LpGc85EGgOL0gSAhxGfV01Td02PdcJKu1kj2VjjUIIsWljdDbNVPijEdz54afSYRhvGoxSkkRVrfZGVGNgqhfIebH5ZxoBkwZDMGzt8ANp+z5mrsU4pXoyaQBmPtGIuFw4PmWcC9qHxI7vHNSYzb+ERVm8acfsSUeUBqqYv5YFLWyf02LXCLC1PyfMZ+VuVk4r84hlKbnrxYtV1MV73XMBlTvClfBBVnZ+ZVJja4RWDXSYATFwwOggkT9FLdalv2nkCTUMAIjV1uytQERISKWpCS49vCcVCVsque8twYmykjmyZlxk86sctsKe+s5KWaADwVcquXR7eArIKIbAQT9WhNPUy2lczvp6nKegCNKiUJPNaJiJedDgU00Pf7zrp6+94pREpLs2+6x68yNPATUK98f5NPPpd0M7f6JltFfomAXbM.SeCvLv.LCM.yn0XpA98oGijH88z4IMUhLhHjTcMh0wj2pdkL6V6FviIwWK4QoY07ZdUY0WJu92qeG8OCGup3Q0yGCt6zzsRZd4tPSupn4CncgF2JoweWnoekzb8tPyfpnYbztPyvpn4eD6BMipTMIiAe9r.poP3dIAH4lilnGfK2g51sMlGP+lOKlJWUd.u+2lW4tJwGAmQk3kaWi01hFUsXeMzX9TdO.dhuOAKKD3dvS+iuNizAdAOQRYWcFRJnpjM77jv4pIiwD0tyXj.8qKpqVzPSsaqs0m.yILuTiOp9xc1Qaak6ryMNAgHrf+Fb1MZ54Hue5JJMwRm4tA7Lssy52MJNmCUi09FLdSp9LfcMEXOSA5ZJv9lBbfo.GZJvQeYf5+qieIQxCyZa.fylcR5aPVVmvPpJvzpUvm.8r0voB
      

      So far, this has been my solution. The only problem is that I can also disable the selected button, so that no button is active at all, which shouldn't happen.

      			if(value)
      			{
      			    local selectedButtonIndex = modeButtons.indexOf(component);
      			    
      			    for (i = 0; i < modeButtons.length; i++)
      			    {
      			        // Not selected
      			        if (i != selectedButtonIndex)
      			        {
      			        	modeButtons[i].setValue(0);
      			        	// more code...
      			        }
      			        
      			        // Selected
      			        if (i == selectedButtonIndex)
      			        {
      			        	// more code...
      			        }
      			    }
      			}
      
      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • Change radio groups in the compiled plugin

      Hi everyone :-)

      Does anyone know if it's a problem to dynamically change radio groups in the compiled plugin, or can we do that?

      I would use button.set(“radioGroup”, value); for that.

      Thanks a lot
      Oli

      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • RE: Problems Styling CSS Panels

      @Casmat you can use

      Graphics.drawInnerShadowFromPath(var path, var area, var colour, int radius, var offset)
      
      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • Scriptnode DAW crash

      Hey everyone! :-)

      I have a very simple network consisting of a modchain containing a global_mod node connected to an LFO located in the Global Modulator Container.

      Network.png

      I’ve compiled this network and loaded it into a HardcodedMasterFX in the FX chain of the main synth chain.

      Chain.png

      Everything works fine in HISE. However, as soon as I compile the project as an FX plugin and try to load it into my DAW, it crashes immediately.

      If I create a container in HISE and load the compiled network into that container, the compiled plugin no longer crashes.

      Is there anything specific I need to keep in mind?

      I checked the box next to EnableSoundGeneratorsFX.

      In the end, it will be an audio network rather than a modulator network. That is why CompileChannelAmount is set to 2. Is that correct?

      Thank you very much
      Oli

      posted in ScriptNode
      Oli UllmannO
      Oli Ullmann
    • RE: ScriptLabel.grabFocus()

      @David-Healey
      As always, thanks a lot, David! :-)

      posted in Scripting
      Oli UllmannO
      Oli Ullmann
    • RE: ScriptLabel.grabFocus()

      @David-Healey
      I found the problem. I also set a text using the button and then I move the focus to the label. That's why it doesn't work. Here's a snippet based on yours:

      HiseSnippet 954.3ocsV0saaaCElzIbK1asXEXO.p4J0gfV6XGmzMLLO6DuYr5Tu4thdWGMEkEQjHMnnRqwPA5i6tbuAaGJIaQm3rtYrpKr04O98QxyOZhVw3ooJMB23EKWvQ3OmLcozDMHhJjnQmiv2mLllZ3ZuBU8WtfllxCPX7d+fUAt99n7m+765SioRFuREB8RkfwelHQXpzNo2OIhiGRC3uPj33cmdiXJ4.UrJC3ydjlnET1Uz47KoV2pQP+HMMBg+JxogsocOIrM6Tdmi4TZvrS59zfYsa08z1mw6vnzyNoCqySQ3O4h.gQomZnFdJBueeUvxoQp2HK.3khTwrXtUnEZJfbg5gp3.6VzpEMHRDGLY0AUJBVkIUGa6Ubr8kjwh.wZ8UGeeQtAupHbO.w01jd6sA8Z4RulNzaKTB6Po8KnzCHSYZwBSkEKe9LxHIbaFRg6IWpT3Kp1efICTfGRyiSnWwGpAg0Q32sYyi7fedz2znwSdxC8dFcFOtUC3ZK0TJ38sdqVf4by.UxBkDD7Orv7g1PyiselwnjqBtT5NitztM7xWebp0AoQqhGPiimA4J9JYowRCVvDxXgj6ElIYFgR5cSe7YqP4HuqowY7G032aTWD54+vRw5fb8B5aA0+PC+slCOxq3e.i0VmqoyFpXYo9Vsuqw6Z3.6kJC+4R+7kGr3cSSgga0VIMi45sZ1VCo+mBzWlkLiqc2bVGg7jMS9H2cxmasAq35wwQkbjTXd9Bt7tpXPk2ova+5nyoFpMisTG32Bt1HrT.eN+ZneQQ9acx47zqLpEPo+5DAnh1ja8dqxtoRdLR.4vGPxeuE5sUsT9sdKqDNq2aDAln0Jd+U8h3h4QUsldOsmkWqw5fMwJ+RtDqhKbWr55h0WeSrBuEV+bOa5CrgHvwuA50oALcAe09A8eX2erKiBbYj3Cynar6+zBrteIVEUM4fUmTVB4hVeWzF0SjNVk.qCUCpw0RoWyGImn4PAjseycscOFlObqVYPSTUPVL0rYmU67mRCPF+FsyrsrjoByR24S+u0t8eKEe.Yhvvh1NGqsENB0EeL3X4Pp6QtHLjyLUDbexvW8wYhD5WTYFgb9XpQKfrDxkYISgA6LNftDtnscbv0r8FJjaZksm.S4xfbg+BdJM1xJiKM1ZkQTBkoUulUzmyNF7fbM.mj4exPc3aW.YuVn7detmyIvT4WyXatT2Jvi20.auqA1YWC7jcMvt6ZfmtqAd1GNP6GM88YFURQYCBMdxE4CNv3KjTHCLOaE82fr4ydP
      

      But with Content.callAfterDelay it is working.

      posted in Scripting
      Oli UllmannO
      Oli Ullmann