HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. JulesV
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 30
    • Posts 132
    • Groups 0

    Posts

    Recent Best Controversial
    • HI_ENABLE_CUSTOM_NODES

      Does anyone know how we can use the Custom Node path feature after compiling Hise with HI_ENABLE_CUSTOM_NODES flag?

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Neural Amp Modeler (NAM) in HISE

      @Christoph-Hart said in Neural Amp Modeler (NAM) in HISE:

      Haha wasn't all that drama about it being 8x slower than the NAM plugin?

      I think it was the AidaX, not NAM: https://forum.hise.audio/topic/11326/8-times-more-cpu-consumption-on-aida-x-neural-models

      @aaronventure So, apart from AidaX, NAM performance is close to its own plugin, right? Great news then.

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Can't reference inline function parameters in nested function body

      @d-healey Clever! Thank you!

      posted in Scripting
      JulesVJ
      JulesV
    • RE: Can't reference inline function parameters in nested function body

      @d-healey

      reg variant can only be used inside the inline function. But this time there is another problem, when we want to clone the ComboBox, the last variable used is applied to all ComboBoxes.

      In the below image, one CB should be "Types", the other one should be "Styles".

      HiseSnippet 1325.3ocyWk0aabCDlqs2fpsGHAnu1BB8jTfpizZIeDWiDKYqT2Z6XDklT.if.pcozxJJRAtT1VHwu1+rAEnO2WZmYOjjikaRMZ.J00xgywGmY3LTmXzA73Xsg3387Ii3DmuvsyDkMpUDSnHGrGw4qbOhEa4FZJolSFwhi4gDGmkeBRvovJjjwe7nlLISEvmQhPdgVDvOTLTXmQ8jG+SBorMKj+bwv43t9iOHPqZok5w.dV1sJYDKX.qO+XFx1RtjefEGQbtuaC+0BpGtQnueisVOfsNeqdrd8psVX85qu4V0VaKV8MWmWsAw4N6GJrZSGKyxiINqzTGNoSj9bUpAdgHVzUxwI0Hc.KmRtsVFhaQjJoUjPFdRtiJl.Z4jYtskScaes6QhPwT5ybe2MYA5LIl2A5rzUg2xWAd0lGdUmCdK.RNyAoURgz8b6DXDiryVAwym6dfBhl8XPbZdnjxKYIGW2VZfCkc0grA71FXxTIJUuZ0JT+pUKusGNfvUrk1ZXyZzcnAFNrKZ0b0ftsCrlIkJhKTrBsHhmX3g0.g2.9Tas5UnqiJYpB7uIE3iJnichLQC9MtlJ77dvCnszC6papuf5ofbkXHugOUcduwq.xTgcVvf1JgK5yziUPHelh1YgCOgRJTbZuwp.qPqn4PEMaEpj0kKqPunBcRE54UnQk8dSAuBRc.SRG.awbWKKLL2RYhhx.6lB4bDyw.2HtwJ3wPTX3O14oGmxqWAXGUn34hPaTwGB1AmEwE8irvznJddEtDUE9xv6SkckfoSvFR0KGPFbOG1p4g61dNnk51ND43Psdvtpv1btrT4sQsMShUAMKv5BsybEkJFZXmmuqfXUtOpT+JTc2esbJrOiYnLvb.kUYfo1Nil8hLhV9EVjH.SX.eAg2lOA9sO5SRqNTJ8m3UOWXi1UNJhUBEUX4CSWoVEZ0UaTF8Bfb8fxMYA3mwCrLUeIuzoPVD7lcp+qf7pMdEJQsx4VFL5KXxw7LzEfI3I1HReFTK7suMAqARQv.dXY5ilB8T6SeXBgt8Smt86A+fDCQgQB01fquTwcMBlD7akp4mCbzitqTzWwCeNn6RVHK4T1oUSAaC58AfOcKfTKF.gPCOrX4sQs6k3.S2NGhwe52QWnhgTjoZ1eyaRkERcNYIWCPnes7j4RQRYyvsiMJ5.bxkIeRGSOBoUGqs7mpJUN4j5kdz2eod8V3ZXFqQKkbyBWFatX9mDrjZ7vtbSE5YXjdJiPAzqVU18lqJOeSifzCPywnVcfRXe5Ht5lZkPxN0AUvWJCU.q1j522Mq9c9QJh.JTeGWrnJIAwy25k7wKs+Bj9mOXOlkg8Qx.zrZO.s83mAcwS6pTvcOd7.qdTBhGNRqP3638gw7Efmz4aA6MAenM7vPVBMW3wjhYf1uyukcwgz5YHkuOiBd5FPy239RHrX71mYrQduTnB8ZKLbuWp0gdj7Sbnf+ELxEbF028teOgJ4eC58SQ+e9+Gze898vMMzgikL6Uu9AdIsrEfr+qzyG6qqhE1IymK7e1cR9Xg38bOQXChVLFWZAXDOr7I.iY2j6Kc2uWOnKwL.tha6e4Sy01HPWIqP0+Hl0HvroiGOrCDoC3f0UJtDq93rDlrlNuJNG8.c3pvjIXZR1h0v4NYKVKeQHOMvnecPZ8A7theVBE.Spj6UW.tfOLmdspJPJNb00WGDbUUcMA8usBt1sUv52VAabaEb8aqfabaEbyOrf3+rX2wV8vziMDxQmreRcbGm8ULHCLIak72X3cOCD
      
      const CmB1 = createCB.cbFctry("CmB1", "Types", 30, 70, 134, 60);
      const CmB2 = createCB.cbFctry("CmB2", "Styles", 250, 70, 134, 60);
      
      
      // ComboBox 
      namespace createCB
      {
      	
      
      //	==================== Create Rounded ComboBox ======================
      inline function cbFctry(name, label, x, y, w, h)
      {	
      	local k = Content.addComboBox(name, x, y);
      	Content.setPropertiesFromJSON(name,
      	{
      		"width": w,
      		"height": h,
      
      	});
      	
      	
      	reg lbl = label;
      	
      
      
      	local rounddCBLAF = Content.createLocalLookAndFeel();	
      	rounddCBLAF.registerFunction("drawComboBox", function(g, obj)
      	{
      		var a = obj.area;
      		var tx = obj.text;
      		
      
      				
      		// BG
      		g.setColour(Colours.withAlpha(obj.itemColour1, 0.5));
      		g.fillRoundedRectangle([0, 0, a[2], 27], 0.1);
      		
      
      		// Value
      		var c1 = (obj.hover || obj.clicked) ? obj.textColour : obj.bgColour;
      		g.setColour(c1);
      	    g.setFont("Arial", (12));
      		g.drawAlignedText(tx, [a[0], 0.15 * 27, a[2], 20], "centred");    
      		
      		
      		// Label - 
      		g.drawAlignedText(lbl, [a[0], 28, a[2], 20], "centred");	
      		
      
      	});
      	
      	k.setLocalLookAndFeel(rounddCBLAF);
      	
      	return k;
      	
      }
      	
      }
      
      

      Screen Shot 2025-06-25 at 14.07.27.png

      posted in Scripting
      JulesVJ
      JulesV
    • RE: Can't reference inline function parameters in nested function body

      @d-healey said in Can't reference inline function parameters in nested function body:

      What you can do instead is declare a label variable in the namespace, set this from within the inline function and reference it in the laf function.

      Is this what you mean?

      HiseSnippet 1297.3ocsV09aSbCF2WaOzxsWDHsuNIq7oKnakjzj9BcHnIsg0Qaoh.EjpPHGeN47hicjOGZi.9592a+gflz9Of83y2kjBgwT0vsIw9wOu7yOuYepVQYooJMxK3oSGyPdeme2oRSR6DBWhNbej2O3eLI0vzXGoVSGSRSYwHOuUenkfWo0PYi+99sHBhjxlSBgNSwori3i3l4TO8AOhKDcHwrmxGs.2MdvgTkrsRnl.3YU+pnwD5Px.1IDKaq3i9URZBx619MquAsQ7Vw0q2bmMojMY6zmzuesMhazXys2o1F6PZr8lrpMQd23fXtQo6ZHFVJxasVp3ocSTWHcF3LdJumfYWTC0ErribGkH1dDsTQsS3h3SKbToHPKmN2sspys8i9Gyi4ynO28cyrMvykXQGn2JWEdqdE3UaQ3UcA3sDH4s.jVyAoa42kp4iMy2whmu0+PIDM6Sf3zhPwwKZk+bM+1JfCoY8QjgrNZXwLIB2nZ0Hb8pUqrafc.gqTCt8nV36goZFbHZ2ZcZuNTidZXYfd4HbYKZRgIa2LBuE7o1FMhvalqh6bGba0ndpVpKwARHNmBwb1LkE7lBi7ZhFK5I.CUt7tkBJYEsz8Vx.2NSV7STSjPPbt5u2RGAbofKY39SjTCWIwEv2BlHrfziIhvWFgmFguHBmTI3Mf0EJJQfGBnovYQhiKrTtnVYfCYoBNRY1PwXl1vYofeczu08wm33MnzaBJUp7E7XSR46B1wtJgwGjXfkIQAAkdmUU1+bNgLbYoDT.Fs87F2t0Q60YAX4bjGY43HkZ3dx3NLlHrh0EtfDqqYC31p7N4tgvxwZxEEmHH5U3eBGDgU898JNHaiJDvb.k0Ifo1Mml4xbhF1kFKQ.lv.9BB3sdH76.q+vUqG59Ic8K3lj8DiSHgVQ4F1H2N0hvUWuYEqG.jqOz7HO39DF0PjCDrvyg7R3ex40eIjft0KsRTqRgkAidFQLgkiNZM.cY1HQ8Zny1aeaFVoBNcHKtB99yfty936lQn2.2xc+H3SyLDFFYT6.t9vx6o4DA32BqUu.3VO5dB9.IK9oftCMPFx4jyq5.aS7sAfO6HXoVlBgPMKtbkcsZOHyA5NNGYi+3eFuTECoHyzb8s+bprjy4jmXMzB8OIOYgTDGaZlYhVhGZW7trOtwrxGk7Dkg8XYHTnjsO9i2pe+ktmMiUqDBldoaaupP+uIXnbxndLcDzo.hzyXDZGd0dr9e9drKdE.0U.s.iJ4gRt4wiYxO2ECn7pNa+3bTArZx5Fey7twEkTHNz102G5Qhx.77qAu4CPO6v8IFRgZ.MNuwAPae1qgKUcM4K4uOKcnQMNi2QiURq88B9hF8RXh2y.yM0N4QvjQjLZ9vzrFQfxuwejeMtqWjkxujSwVcBf4m7eN3V0AGPzljfmykwAc3ZVvyUp3.TQEiUvO.iBAmS88u+u9f6QAex8WvMmp3IBh4pWmZezQ9FP7+J2gYumRlxMSW7QI+ucG6+UHdK+S4FZxxw3JKAiPb9qAFyeYx26eP+9Pex4.bM+Nu3qyyPPPeYCWN3XhQysYSmLYTWHRSYf0kRlvV+4shsRwstpcs0CzkIiyVXSSx2rlcsW9l0J1DxSoZ0qnt5K6ae9lLJ.ljYuSrD7fUXMt1GWXAo3vSwdEkdUU8IBV+5J3FWWAabcEr40UvMutBt00Uvs+xBZeo7dSLpQtxFD53SOHqQnm2ARBjAlksh9GQ5QfY.
      

      Screen Shot 2025-06-25 at 13.56.35.png

      posted in Scripting
      JulesVJ
      JulesV
    • RE: Can't reference inline function parameters in nested function body

      @Chazrox @HISEnberg @d-healey
      Thanks for the tips, guys. Very useful.

      My aim was not to print the word "label". I asked how I could integrate the label variable into the ComboBox LAF.

      inline function cbFctry(name, label, x, y, w, h)

      So the label variable is "Types" here.

      alt text

      As previously mentioned, when I use this: g.drawAlignedText(label, [a[0], 28, a[2], 20], "centred");

      I see: Can't reference inline function parameters in nested function body error.

      posted in Scripting
      JulesVJ
      JulesV
    • Can't reference inline function parameters in nested function body

      I am trying to write a ComboBox factory code.
      How can I include the string named label in the Laf as the bottom text of the ComboBox?

      When I try to use it directly, I see: Can't reference inline function parameters in nested function body error.

      SSHHT.jpg

      
      const CmB = createCB.cbFctry("CmB", "Types", 85, 75, 134, 60);
      
      
      // ComboBox 
      namespace createCB
      {
      //	==================== Create Rounded ComboBox ======================
      inline function cbFctry(name, label, x, y, w, h)
      {	
      	local k = Content.addComboBox(name, x, y);
      	Content.setPropertiesFromJSON(name,
      	{
      		"width": w,
      		"height": h,
      
      	});
      	
      
      
      	local rounddCBLAF = Content.createLocalLookAndFeel();	
      	rounddCBLAF.registerFunction("drawComboBox", function(g, obj)
      	{
      		var a = obj.area;
      		var tx = obj.text;
      		
      				
      		// BG
      		g.setColour(Colours.withAlpha(obj.itemColour1, 0.5));
      		g.fillRoundedRectangle([0, 0, a[2], 27], 0.1);
      		
      
      		// Value
      		var c1 = (obj.hover || obj.clicked) ? obj.textColour : obj.bgColour;
      		g.setColour(c1);
      	    g.setFont("Arial", (12));
      		g.drawAlignedText(tx, [a[0], 0.15 * 27, a[2], 20], "centred");    
      		
      		
      		// Label - 
      		g.drawAlignedText(label, [a[0], 28, a[2], 20], "centred");	
      		
      
      	});
      	
      	k.setLocalLookAndFeel(rounddCBLAF);
      	
      	return k;
      	
      }
      	
      }
      
      
      
      HiseSnippet 1274.3ocsVs0aaaCEVJMpXR6BZA1qCfvOIWnkZ6XmKMqnI1ItKqIoA08x.BJJnIos3rLoAEcRLR6q6ex90ULf8On6PQIamFudw.ivWHO7b4imajmpjDVZpT43F77IiXNtemWmIBcbqXLW3b39Nt+f2w3TMSgrjZNYDNMkQcbcu0iMDb8W0Ia7OOpINAKHrYjbbdojSXGwGx0ynd5tOgmjzFSYOmObNtqu6gDonkLQNFvys7p3LBSFf6yNAaXaEOmeEmF63dOuF0VmTmtIsVsFauAAuAa6d3d8ptNsd8M1Z6pquMt9Vavpzvw81GP4ZopiFqYofRaJoS5DKuPXMvK4o7tILyhpNc.KaI6zJlmPOsv4j533t5oybU2x5p9Qui4T9T5ybY2IaCzLIl2o4txmBRU+Jfj6bPZUKjtqWGhhOROaGCd9VuCEPDrGFhMyCEKuNq7Wq50RBbHzqMDOf0VAKlJQ35UpDgpUoR4cBLCHDkpQsF1D8PDQwfCQqlqQ51lnUSBKAzKEgJYPSJLYqFQnMguUWudDZibUb+6iZIG1U1TdIJP.w1THNylprfq.N7e3BFnVYrfdlbrfxnyzxCW3HfKR3BFp2XAQykBTAJM1LBkf6xRhPWFglDgtHBEWN3J+.+DIAmfF.mtBeBlRKrTtnFYfyheAGoLiGeDSo4rTv8M7257zSr7F3eUfueoK3TcboG.1wrJlw6GqgkwQAA9uynJvujaZk4zQa07n8ZOGHrdmiLbbjTNXOAsMikDVdG.xyIwZJVetobsc9gNrDUgun.+PHovaD1OBI69Gks.7brBgAyATVCClZmbZ5KyIpYWpMDgOY+.AwlOF9uu4vaqYCs+kt1Ebc7dIihwgFI4Z1P6NUiPUVqQYywEjqGzDHOR9LFQiE8SXgmA4ZvG7Y0dMjzs4qMRTMSf.qQeINYLKGbjp.3xrQr7bnC0aeaFTIIbx.FsL5QSQt09nGjQnae6xc9H3SxLDBFYTaCd9vR6o33DvsEVsVAvMNz8R38EL5yAcGpgzgyvmUwB1Fn6A.e5QvPsDAhfJFsT4cLZ25EsGmiLIgneFsPEmmglq6Za8eoTeq6wlG4Ov.9ajnLWNhkMESOVIPCLKdW1W6XZ0hTbhTydpHDpKx1G8wa0q2B2yjxpjIIL0B21zzW8oDLTLdXWlJBctIVOkQnI206bd6urNmDaEzbLJEGJ35mNhkutsLgZ5HZley9rN4kflNt4HDXUm0u8N48aKpub3fZ77ftfNYfe1ka2YWmWb39XMtPMfFm0y.nsO6b3pRaabeu8YoCzxQY7NbjTXruavm0nWBSbeAXtIlIOAlLDmQyCll0CBT9s+y7KmssgLT9kbJlZU.L+j2q.WrJ3.rRGG7JtfFzlqXAuRJoANE0OFA+.LJDbF02+9+9C1q5uwMTvciR53Dr95WXZdJQ9FPtv0tkxbSjHkqmL+SM9JtEsxm7VzuTHdWuS4ZR7hw3JK.iPb9+CLl+1iu26fd8ftly.3pds+8k8gFeFyCco0bQ+iwZE2jMcx3gcfHMgAVWHXIolLrULUJ10ULqMdfNLAMagIMIeypl0t4aVsXSHOknjugXquLut4axn.XRj85Oe3YnvZT0OtvBRwgGa8FB45p5FBVaYEb8kUv5KqfMVVA2XYEbykUvs97BZdK7di0xg1xFGmiO8frFgttGHvPFXV1py+B7f12EF```
      posted in Scripting
      JulesVJ
      JulesV
    • RE: How to turn an Airwindows effect into a Scriptnode

      @Christoph-Hart Thank you for the suggestion, I will try to edit them.

      posted in General Questions
      JulesVJ
      JulesV
    • RE: ScriptNode Pitch Shift Node - Delay Compensation

      I think using Engine.setLatency dynamically can be problematic.

      Instead, after the maximum delay value caused by pitchshift is set in Engine.setLatency, the difference can be balanced dynamically with a delay node according to the parameter values ​​that give less delay.

      posted in General Questions
      JulesVJ
      JulesV
    • RE: How to turn an Airwindows effect into a Scriptnode

      @DanH I noticed something interesting, while almost all AW plugins can be compiled separately, some AW plugins cannot be compiled as multiple dlls in the same project.

      For example, Tube2, Huge and Mojo plugins can be used together in a project.

      But LeadAmp and FireAmp cannot be used together in a project.

      But all of these plugins can be compiled individually.

      So it is related to the AW plugin combinations.

      posted in General Questions
      JulesVJ
      JulesV
    • RE: How to turn an Airwindows effect into a Scriptnode

      Is there anyone who can compile more than one AirWindows plugins as Third Party?

      I am getting the error use of undeclared identifier. When I compile these nodes one by one, there is no problem and they work.

      I am attaching the sample project, when you do Compile DSP Networks as dll it will give this error.

      What is my mistake here, or is this a bug?

      AWAmp.zip

      posted in General Questions
      JulesVJ
      JulesV
    • RE: How to use Global Cables in fx plugin

      Yes I was also be able to load it in Hardcoded.

      However, on initialization, it gives the error undefined parameter for this.data.value

      Why it does that?

      const var MyPnl = Content.getComponent("MyPnl");
      
      const var rm = Engine.getGlobalRoutingManager();
      const var mc = rm.getCable("dlyDuckGR");
      
      mc.registerCallback(function(value)
      {	
      	MyPnl.data.value = Engine.doubleToString(Engine.getDecibelsForGainFactor(value), 1);
      	MyPnl.repaint();
      }, AsyncNotification);
      
      MyPnl.setPaintRoutine(function(g)
      {
          g.setFont("Arial", (12)); 
          g.setColour(Colours.white);
          g.drawAlignedText(this.data.value, [71, 0, 60, 20], "left");
      	
      });
      
      
      
      
      posted in General Questions
      JulesVJ
      JulesV
    • RE: How to use Global Cables in fx plugin

      Is it possible to use Global Cable in HarcodedMasterFX?

      posted in General Questions
      JulesVJ
      JulesV
    • RE: How to use Global Cables in fx plugin

      @resonant Thanks!

      posted in General Questions
      JulesVJ
      JulesV
    • How to use Global Cables in fx plugin

      I'm gonna use Global Cables for the first time in my fx project.

      There are posts on the forum but does anyone have any suggestions on how I can get started?

      posted in General Questions
      JulesVJ
      JulesV
    • C++ Third Party Node inside a custom dll node

      How can we use C++ Third Party Node inside a custom dll node?

      First, do we need to compile only Third party node and then compile custom dll node?

      posted in General Questions
      JulesVJ
      JulesV
    • Multiple Compilation & Creating Installers with a script

      Is it possible to compile multiple plugin projects in bulk and then create installers (Inno & Packages) with just a script?

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Resonance Suppression

      @orange said in Resonance Suppression:

      Faust constantly surprises me 😀

      Here is a spectral denoiser article: https://inria.hal.science/hal-04507625/document

      I haven’t tested the sound tho.

      @orange Sorry for the long time follow-up question, did you manage to do this?

      posted in General Questions
      JulesVJ
      JulesV
    • RE: How to include external .dsp files into the faust node?

      @Lindon said in How to include external .dsp files into the faust node?:

      @JulesV open the included file - copy its contents into your Faust file....

      Thanks. I think I need those t-shirts now :))

      posted in Faust Development
      JulesVJ
      JulesV
    • How to include external .dsp files into the faust node?

      Some faust files have definitions for external files such as, import("MyLib.dsp"); or myVar = library("MyLib.dsp");.

      When I copy the .dsp files into the faust folder of the HISE project, it does not recognize the myVar = library("MyLib.dsp"); ones.

      What is the solution?

      posted in Faust Development
      JulesVJ
      JulesV