Forum
    • Categories
    • Register
    • Login
    1. Home
    2. JulesV
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 39
    • Posts 165
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: JUCE submodule PSA

      @David-Healey

      I'm leaving the solution here as a note in case others experience this problem. I had to look back to this commit: https://github.com/christophhart/HISE/commit/c948b81f7a86f24a8fce4ea81051c73b7129e2b5

      There's a folder named JUCE in the downloaded "Hise-develop" branch. You need to copy all the files from the submodule into this folder.

      From now on, the Projucer application will be launched inside this JUCE folder.

      posted in General Questions
      JulesVJ
      JulesV
    • RE: JUCE submodule PSA

      @David-Healey I am not using GitHub and cloning procedure.

      Previously, I was just downloading and compiling the Hise branch. What do I need to do to use it this way?

      posted in General Questions
      JulesVJ
      JulesV
    • RE: JUCE submodule PSA

      @David-Healey Sorry for the noob question,

      What we need to do is to download the modules, extras & projucer folders in the submodule repository?

      Then copy them to the tools/projucer folder in the latest Hise develop branch that we downloaded them from?

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Selected button is wider

      @dannytaurus @resonant Thanks!

      posted in General Questions
      JulesVJ
      JulesV
    • Selected button is wider

      I'm having trouble configuring the selected tab to appear wider and aligning the other buttons accordingly. Can anyone help?

      HiseSnippet 1155.3ocuW0sahbCE1CgIJP6tMqZe.FsWrkzDgX3mjTkMpoPRZQsPnKjnJsMMx3w.VYvFMimrgVsRaeC5iTeF5yPuJpWzq6MsGOy.yP.QVHz5qlye96yGermia3HHTWWgCRKcqgCnHsOTu4PtrWkdXFGU8Xj1S0qgckTGi.UkGN.65RsPZZq8UJEZoRh7G+0WTFai4DZjJD5BAiP+VVelLRaii9Fls8oXKZKV+XdW7npDAuhvV3A7YM8bnAXx03tz5XkaIzQeM1sGR6yzIVEIEI61tnIF2YOy16Rauu4dlz8Ikr9bBASJ0lXVn.Fos9IVLovooDKotvjVVXMrYOwa3A.bAyk01lpDLQMAjCTipziYa0XTxwEgzR1HJUsVPp5SzqwrXi0Gkx1z2fQTDwSZZIlGkLW.JoEiRICnzyzaRbXCjQVT74CzqxgcvNXXuINUB7Ek3SWSuh.7fKy1GeM8TGPXbDYJVJ2NFEykaqCRqFvVjqz3FriQ8yqcU4ya05r5MMNznzAwL0.10J6IkfBvzqubjMk9FXN0dj5zcDNFYXfTtCLXFuL9jBJ1d6sR+yoMfQTjulcI39HB2kJqH5OPvAgLO22imarMLkaatEvXUniiOjQyaBBb49yvjAm0UEBW5HrqfssaCEoYDbeejRdnEHx25muXbaFmZzwiSjLA2XJOyPFA+NPty1ipVxorEDrsAy5VfpwfOKiaQu8rNQAA.kJU5T2OOFkuxZS4ck8BylpkSPFcprZVWnJbDo7Q9PCVXFX1YgKTzUg5g9L8EuHbADDCr9ea5oWtwml7WtigzwOhnQrTUcgjdFOieFAlLi6apSmYZKDJapyLMqt1wYdAlg60uM0I99gxQ3X1jmcW+86rKInTKliBdUNSd1.Zn7oBaK0YR02SeRGEVqBecd0iwRr5venNvuATGISQGsio2.W2FbUPJ8iotWKECfq1GWfiz1P5a8ogWTDrQfXVp.BDLQ2Fcmb8iFNV3ce2QugYIgaf00dIH2ix51Spjx.RR5sxfEfK9FZUdCGJTgntlAsPvmON7+3LgOhbylB4ejTnPLJ7tNKbFnviD9hwy.7EF9hOR3KEC9eyYgguzbgOc.7OYz+oT283i9F59eOQwWqXfCkBiA+um.7jZHDSR6OpwgTqu4l2kSERagiE0oI6mlnkj.suBaw7biq+lQGdmjwod.FmeUv3O5O9yecwY7hjXKrJn4uK93gqrD6Cw3hqjRg6Nj9+FiKsJX7c+xl+viiwS2VHzPpvxyFKmrKUU+6gFfe+MQqgp1+3tL4v382u.stlatst99Rwmo2fII8lMGSLCNB+X7+BNF1v+SzOoSGJQFQvj5m98Ka28O.7uR3IY7t0vRGFTVoW2qeSnDgPAz4pN1TkOITWBDHmSIqx.MobKeg+AFgFMUxZgFMGYD0GSbDWQBZ5Q8jhM70.bh6+jqTva+.YCSjeiPwyy8gW3bEgL4TMUf4W1.KrrAVbYCrzxF3tKaf6srAt+CGn5AneomTzO3XCBUqwI9cNpocBGCUf9Uqn+Ev0tpBc
      
      const var NUM_BUTTONS = 5;
      const var PageButtons = [];
      const PagePanels = [];
      
      for (i = 0; i < NUM_BUTTONS; i++)
      {
          PagePanels[i] = Content.getComponent("Panel" + (i+1));
          
          PageButtons[i] = Content.getComponent("Button" + (i+1));
          PageButtons[i].setControlCallback(onPageBttnControl);
      }
      
      
      inline function onPageBttnControl(component, value)
      {
      	local idx = PageButtons.indexOf(component);
      		
      	for (i = 0; i < PagePanels.length; i++)
          {
              PagePanels[i].showControl(idx == i);
              PageButtons[i].setValue(i == idx && value);
          }
      
      }
      onPageBttnControl(PageButtons[2], true);
      
      

      selccc.png

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Faust Ambisonics (HOA) library doesn't work

      @sletz Thanks for the suggestion. I tried that and same result.

      Now I understand that rather than versions, it is about input output numbers.

      For example the below one. Naturally Hise complains about the input output channels. I am not sure how to handle that.

      Screen Shot 2025-12-30 at 23.05.26.png

      Screen Shot 2025-12-30 at 23.09.38.png

      posted in Faust Development
      JulesVJ
      JulesV
    • Faust Ambisonics (HOA) library doesn't work

      I believe this has been reported before a couple of times. I'm using Faust v2.75.7 and the Ambisonics library isn't working. Has this been fixed in later Faust versions or any plans to fix? @sletz

      This is the basic code that I am trying to work. It works on the Faust web IDE, but not in Hise.

      import("stdfaust.lib");
      import("hoa.lib");
      
      process = ho.fxRingMod(1, 200, 0.5, 12);
      
      
      posted in Faust Development
      JulesVJ
      JulesV
    • RE: Selecting different functions in Faust

      @Christoph-Hart Thank you for the info

      posted in Faust Development
      JulesVJ
      JulesV
    • Selecting different functions in Faust

      Sorry for the basic Faust question.

      How can I make a selection of the functions below, along with a few more functions, using a single slider?

      re.jcrev;
      
      re.zita_rev1_stereo(20, 200, 2000, 3.0, 2.0, 48000);
      
      re.dattorro_rev(200, 0.5, 0.7, 0.6, 0.5, 0.7, 0.5, 0.2);
      
      posted in Faust Development
      JulesVJ
      JulesV
    • RE: Upward - Downward compressor graph

      @resonant I believe this graph is included in the Dynamics FX example in the Hise Tutorial Projects.

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Swapping a neural network model at runtime.

      @Christoph-Hart said in Swapping a neural network model at runtime.:

      @JulesV no.

      A friendly bump. Please don't be angry with me. Still no? :)

      posted in General Questions
      JulesVJ
      JulesV
    • RE: 'control::pimpl::no_processing' which does not have a default constructor

      @ustk Yes, I deleted the Binaries folder and tried again and again. HISE already gives a "build failed" error and doesn't say why.

      So, when I try to manually open and compile the AutogeneratedProject.jucer file in the Binaries folder, I see that error in XCode.

      This is probably a bug with the current commit.

      posted in General Questions
      JulesVJ
      JulesV
    • 'control::pimpl::no_processing' which does not have a default constructor

      I am getting the following error in XCode while compiling a custom node with a global cable project I prepared with a HISE commit from June, that was working before:

      XCode throws this error:

      Constructor for 'scriptnode::routing::global_cable<hise::runtime_target::indexers::fix_hash<817485898>, scriptnode::parameter::empty>' must explicitly initialize the base class 'control::pimpl::no_processing' which does not have a default constructor
      

      Inside HISE I used this:

      const var ngrm = Engine.getGlobalRoutingManager();
      const var nrm = ngrm.getCable("nsDuckGR");
      
      
      posted in General Questions
      JulesVJ
      JulesV
    • Sort the IR Sample files in the selected folder

      For the purpose of making an IR sample loader: Has anyone tried to automatically sort and select IR Sample files in the selected folder?

      Listtt.jpg

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Scheduled knob task after initialization

      @dannytaurus said in Scheduled knob task after initialization:

      @JulesV Interesting! What's the use case for this, if you don't mind me asking?

      It can actually be used for other purposes.

      But in my case, I'm actually using it for a bug workaround. When I buld a complex custom node with 23 parameters and use it in HardcodedFX, I noticed that in one parameter, the knob, wasn't getting its value during plugin initialization.

      However, after init, when the knob is tweaked, the value is updated. That's why I chose this method. Creating a custom node with fewer parameters isn't a problem, by the way. As the number of parameters increases in custom nodes, the problems increase.

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Scheduled knob task after initialization

      @d-healey said in Scheduled knob task after initialization:

      Does it work if the plugin UI is minimised?

      I tried callWithDelay and Yes, it does.

      When I apply it in 4 stages as shown below, it works.

      HiseSnippet 1230.3ocyW0ubaTCDWWhuRrA5zxvCfF+WmgPp+JeQFl5ZmDvSIodvoovzozQVmrslbmjGc5Rwgo+GuQ7BzWEdC3M.Vo6r84DGmPFnT+G1i1O+s6pcW4NJIkEEIUHmBmLdDC47ItcGKzCaMjvEn16ibtu6QjHMSgSH0b7HRTDyG43r52ZH3jOGx94OebSR.QPYyHgPmJ4T12yC45YT6z3o7ffCI9rS3gYjtdi1TonkLPFC3YU2xnQD5YjAriIFwVwE8cjngHmuvcyp0n0821uZ0M2cKJYK1t8I86Wole85asytUpsKo9NawJuIx4dG3y0RUWMQyhPN4ZJ8G2cn7MhDGbJOh2KfYNTA0E7bB4CkA9lPzPE0ZHOvuyjDUDBrRmYosUSRaet6Qbe9T5yReOvx.OSirIPmUlGdqNG7pjEdky.uE.ImLPJWBjdnaWphOROiiAOeraaATM6Sf5TVnjHKZkeOmaKIHgPuQH4L1gJ3vTM7pUt75X3qR6UnPAnXEowmST3t7vQALy0gJ3uAau.sw.l9f98YTsWwD1XK+hWR0mJj8LJMwofZsjgijB3fWQKWiJbQ.Wvv8iETMWJvRgkkQKkLviNQk0AiFDyJU3WKjOCp1HhoehVq38h0LurLLeOQo8J718JrTfXrSpOaQBB5A2O8lGJ1vqvUvKUwfR79r.x3lJIwmZ6o7NCzzhUESGqD3CDC.01HQ5rBBhjuH2u3WiMpX.mm4XI7WhKhslkoJttQHhZPDH1KwEiEwPwsH9UEx+VSrU3RI9dUZp7oQZEj9uF7YiLSHMMPhzPC4yDLOKryXjMnPB4Eb8PqQ7pT1bU4kGQfqBJhvWF5U5Uqmn9IuQlfm4sJP1ZUiYA2Zx0mZpKdU2FDOkHcHQLf46kP4Z8d0k38gJFag92vXRbMG.9p509GifkD+GBC3lTPlGBFNdkx+nGgOJNPywbnZYFohg1WnbJhwT4EgLLIjPC3K.okuYbBxNow2SqhYqi6SBhl7So8xaA1r5bxE5rPUJNVpAlI4JPb7kY0u+B4k1iD.2rVDay5.0xTzSDG1iox1jaDDF4M+bT2qeNZ1w7zjV8LBJEsEb8yFwDW2veT57AyL2TTAhpsSbue5D2tAbelBwgAqejqsXfr.FV0cuIKFQOu89DMYhY.KBdYDSo4l.vYe14vhyjA44c2mEclVNxJa5HIjyZ2nS+ko6Ve2yaLd1h1etQH22Of0QFwMI3rKrg19Qc4WLYsbi+3he6wgYWy+SuKjLyvnlMPWc0CrzS5GGPzyuIzLqMkgwqYW+XVwH.zLN66I9Wa83sEhOzsCWSGtXLtxBvHT99u.ioOp3ScS1fNCf4bO7GeO7Bh0l9VvoaJSeKX1U4K4sfHjcJXVBuf6qGl4ZTiE7Zw1hygNfNx.h5xo4Uu0wYkkGm4t02ELgD9C56qelqMM+gNHsk9OrA4Cb6P9+pX+CxXMWL.dpfhCSVcONNrK7N.JCfmPvBLKzbVwr5I4bYyYCH5xD91C+E7IkYEyYmTlUlv78hOf2jnjullrTzzpslkBD2B6efKO7OIgy3YaCm1dC6i3ulRm2TWQwp2UEqcWUr9cUwMuqJt0cUwsuqJtyMqn4uv9jXsLLo2.gNpyA1Wu33bff.2xssIn+lzPnoS
      
      const var SimpleGain1 = Synth.getEffect("Simple Gain1");
      
      
      const var Knob1 = Content.getComponent("Knob1");
      inline function onKnob1Control(component, value)
      {
      	SimpleGain1.setAttribute(SimpleGain1.Gain, value);
      };
      Content.getComponent("Knob1").setControlCallback(onKnob1Control);
      
      
      
      
      inline function createDelayBroadcaster(knob)
      {
      	return Engine.createBroadcaster({
      		"id": knob.get("id") + " Delayer",
      		"args": [ "unused" ]
      	});
      }
      
      
      
      const var Knb1Brdcstr = createDelayBroadcaster(Knob1);
      
      function stageOne()
      {
      	Knb1Brdcstr.callWithDelay(1000, [Math.random()], stageTwo);
      }
      
      function stageTwo()
      {
      
      	Knob1.setValue(27);
      	Knob1.changed();
      	Knb1Brdcstr.callWithDelay(1200, [Math.random()], stageThree);
      }
      
      function stageThree()
      {
      	Knob1.setValue(-43);
      	Knob1.changed();
      	Knb1Brdcstr.callWithDelay(1100, [Math.random()], stageFour);
      }
      
      
      
      function stageFour()	// Multi instance sorununu cozme amacli
      {
      	Knob1.setValue(0);
      	Knob1.changed();
      	Knb1Brdcstr.setBypassed(true, false, false);	
      }
      
      
      stageOne();
      
      
      
      posted in General Questions
      JulesVJ
      JulesV
    • RE: Scheduled knob task after initialization

      @d-healey @ustk Both methods work great for me, thank you.

      posted in General Questions
      JulesVJ
      JulesV
    • Scheduled knob task after initialization

      After the plugin is initialized, a knob needs to be set to 20 after 1 second, and then set to -50 after waiting half a second.

      I tried the method below, and it works for the first 1 second, but I couldn't figure out how to do the second step after waiting half a second.

      HiseSnippet 1204.3oc0W0sTaaDEdEXQiTayjjgGfsbkRmLDavPfgIINXfTmT.OQ.o8llYszJ6MrZWORqnwIC20mm9LjWk9Fz2f1ytR1VFnfi6OSydgGume+1yd9YU6DY.MMUlfrbOZPeJx5qr8GHT8Z1ivDnV6frts89jTEMAmSZ6A8IoozPjk07OWSvxoBxr98mtMgSDAzwjPnSjr.52yhYpwTa23kLNeORH8HVbIoq2nUfTzTxkY.dl2tJpOI3TRW5ADsXyYi9NRZOj02Zu1JqFTO7QgqrxZatd.Yc5lQjnnZqFVu95arYsU2jTei0oUWCYsvtgLkLwWQTzTvnaKCG32S9yhbGbBKk0gS0apg7AOmSF0rGiG1dXvIEgrpzdbnZ97P0h16yBYinONjcGCC7XMJGzrl65fTsOAHYUBRUxgzcs8CRX8Ui4nwyWZ2R.2fQD3toLTxkEM2Kl2toDjPnVNlbJcuDXyHM7VsZ0Gfget+VtttvETpBeFIA6yh6yo5TfZ3GiMIMK2kp1MJhFn7VJmM1veoKn5KExNZkF5TPslx39RArwaICWsJLAmIn3nLQfhIEXovvRqUhj6ELTkG.FkmQuu6GbcJgpkSopmoTIrNYJpWYF5eGpzVtmuk60BDscJ7YSBm2AxI8lDJlim6kvKSvTuHSzml3AXyw0Ig1EqhSfS9thtfnKGjPgj.cUPxgcdqNtAlxADQ6SC4QdbnUAS4.mSvZN5PYRlPKGXRsV.92GJsX9THXGl5yfpwlxL8U4qnfIMlWqJKB6MT0mfqUEtcApZ65XNXZ+ehN93sRUiNEjC5QDcog41Qanbvpj8MnEniAhmCbNWKRwYQQRxOMdqoSivXGcPWud3C+F7iKsvsNn0QSPwsbTLWIXUJm3.ohdnNr.n28bW7EYEEck7Jt534WNWhcww4uVQOQVbGZR4bOsfPk3jk2KLck2A4YfkDTJZAm7C6SK1umjGpKa0++xMCPEov51BEHDDUYZJb6hlB9bVHMAw.i7E1l6SjA7PG3EVbXC6iasCQQFZFvhfWfXuhoOLV6POC5mm2qwwdGZ5ovUuQ1hpFX.xM5z2Mpk+GOtwfw8++oFopA5PyBFAQwrvPNssLkoC8kmp.yi56yduY1wGV7We9u89e4owkmE8ieLlL1MnsajlEEwdmYHRDiGmBsE52JFlsfrtm8woTbHMhjwU3zSA6.0wmRCORZjGc41rPCdYXFmnlrqutuRACMfK2pU2NU.GjAkmW9ILJn50NJXZg3csayTA8tZLN2UfQHO3eCLVL.8qsymVLFfUr26Gl0okUm9ok2ZzacFMUn3sNkGacMu0odicnbxDApWyBU8JkA13JdMTKwYPoTaImjbwv77+S8pfJSctf9Hg+6juVY5tLtgNWSIdumsIj+4DfMoDe9.36X2l7+gDhWIyTLQ28IPSZnks8AYw9vmD.OkAd8gfxAGYaMmdlW99p58Z.4SEglM+ArJXVSu2pfYsgL+OwGwjfD4aBxmFqKMukgBbtElOnwA9xJXOd7X3QsCfQer2DDLootjhqLqJt5rpX8YUw0lUEWeVU7QyphabyJp+7tmkojw40IHz9s207rIKqcEDHi2Txf9S.ERqNeC
      
      
      const var SimpleGain1 = Synth.getEffect("Simple Gain1");
      
      const var Knob1 = Content.getComponent("Knob1");
      inline function onKnob1Control(component, value)
      {
      	SimpleGain1.setAttribute(SimpleGain1.Gain, value);
      };
      Content.getComponent("Knob1").setControlCallback(onKnob1Control);
      
      
      
      
      inline function initJunper()
      {	
      	reg tmr = Engine.createTimerObject();
      	tmr.setTimerCallback(function()
      	{
      		
      		var runTime = tmr.getMilliSecondsSinceCounterReset();
      		
      		if (runTime > 1000)
      		{
      			Knob1.setValue(20);
      			Knob1.changed();
      			
      			tmr.stopTimer(); 
      		}	
      	});
      	
      	tmr.startTimer(500);  	
      };
      
      
      
      
      //! ============ INIT ============
      initJunper();
      
      
      
      
      posted in General Questions
      JulesVJ
      JulesV
    • RE: Free Reverse Delay built in RNBO

      @Mighty23 It seems 1000 ms is very short for low bpm and 1 bar.

      Is it possible to increase the max delay time to 5000 ms?

      posted in Blog Entries
      JulesVJ
      JulesV
    • RE: Math Cubic Root function?

      @d-healey Yes, that's it, thanks. I had to use If/else Statement for negative values, though.

      posted in General Questions
      JulesVJ
      JulesV