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

    Posts

    Recent Best Controversial
    • RE: Free Reverse Delay built in RNBO

      @Mighty23 It works great, thanks!

      The delay value is in 0 - 1 range. What is it referring to?
      So what about time-based reverse? Like milliseconds, or 1/4, 1/8, 1/16?

      posted in Blog Entries
      JulesVJ
      JulesV
    • RE: Continuously playing looped sample in an FX plugin

      @Matt_SF Great example, thanks!

      I thought about Algo reverb and hoped that maybe the Hold in Ahdsr envelope node would do the same thing as the Gated reverb, but I couldn't get it to work properly.

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Continuously playing looped sample in an FX plugin

      @Matt_SF said in Continuously playing looped sample in an FX plugin:

      @JulesV Hey! You can just load up an IR reverb sample and try to tweak the release values of the envelope and the compressor...?

      Thanks for the advice. Yes I did it. But in the gated reverb, there is a "Hold" parameter that is different from Attack & Release in the envelope. Is it possible to add this?

      Also this doesn't sound like a gated reverb to me.

      HiseSnippet 2362.3oc6ZszaiibDlz1s83GytYyLIH2BAxdvaxrRV1Z7NCxA8x1aD1Q1Bld7rCxgIsIaIQXxtYHorsRP.BxoMmR.xo819SHWCxgw+DBxbLWxOA+KHaptaRI15gMs7CjMXrMLDq90WUcUeU0rUy.lEILjEnouzA87IZ5qfL6Qi5TqC1gpUeKM8O.0.GFQBLjhp1yGGFRr0z0m8y4BzWbNMMsx6Q+6kphcwTKRrHwOGxbrHuvwyIZfzlk+BGW2cv1jCb7R06hkqawn0Xtrt.dlEsllO15XbaxtXd2lAo8Kvgczz+onmt9FVEs+L60W+oOeSK7ljm2B2pUgMrKVbym87Ba7bbwmsIYsmpoO+11NQr.yHbDITSetpL6dlcXmRkKvgNgNG4R3OTPyDVYo3cXt1bUj+YsZcbbsalXnB0fIs4.y1rRy1iQMbrc5Kef466IZvXvHRa.0mQEdyp.uBog2Zof2XfjdJHMmDReDxzJvwOZPKb7rLpNE1Magg8ozPQ1WM8yQ0XPGnQ47vGS1I.dn+.Vcy0V6IFv+9jedqtTqHGF0fQ2kEQ1it5mrzucoEW52sjwvM0p0XaiuLALWWRvXal6ZDbYCbUZWuiHAOw3DraWR+NBpupMEMYaZ5sbKoVmpiLZcpSzd9j3mG0pqEapfO8x5agiv7MhXYP+7IAQNbHnuE4DHLPtsrHZKR3wQLeHPXj8LvagY20EGo5BwCzha.rAJ6a7MGZnSTuAwQWTZX+p4xle0.29wpsYDteDpoSjUmwi2YFCdAq1cMdiiReHZ6VsHVQC.6bnc9x6uPxkhCIg0ju3qD+nwNeYgwFL9UnAN99ADeb.4.VSWbuUCwd9tj8AL9DiibYVGa57aHiFs3KgPUdOV0pClRItgSSP07Y1pT3RsJZ6y5F4Pa2.GE3bFDctaWOSfu2hTKFcfL8Y3wVxmWi+L2GwjPsEO7svOwMVf+rdbiERZLUX4tjnSYAGK1Nh+rl9BRaenvH+lVmUPqhqK6zZLOemXOVXOPHqIysmeGF0whKR1iDjVwi0EVjX3BolN.63xcwM6FBjF16QMgNKxGpO6gjfPwDu.ZsbvufK+tLanoE1AaAF1dMwQc3wNbdHv4jDjypuSpBVS6mvmhj7kRqD.QOtpyyVx2eZhCfjm.+MmFZFYhTkoSe1TLURmV9SP34Lxktd3g7VsvtZGxcJ3yiFegkFUgRLOuqKfB8cg77STgjMmc7KQaxzpBz9HXFEDHsYWgIcRHXw4K+Gp9sJn3GiNniSnA7WTGhgGLZiPm1TrqgOL445CQ4Deyrko0jGfBHmPBNRUUVF05rbwMnnDBTzeLWtUUeFE6XJGDN9SdBTpFNzXPNfntA9rgjcQIyHhOm8Ic+LOlbpD5o6IWyfze.0Ev.nMzD8uKsEoEtqazHx0t6Q0BnW4XCl3+WBSyiD8M6PJk+y7n1iDHrLDHDPx0djP.g2S7Htc7cdvnVjWe9nVDP6UsHeyW+0+sRiXQNu8e8GTVpUhSbLxrLdKhlVktQLOHgknviq+NV4+T4Lgue0i15ckj0Va5wXQcFi2cwxiGjEKeE351vtsBZeRHIdoyr0SY6USgbRP2UXZ4YmDSe+4cJ3QEk.lvjN2PQBQDUn9gH6dTrmiUXNQiWWfFOm5yoDMLnf2CvAsIQgwmFfRrj0THH3qCqBB46gGXd4hV.IUD9pAE1cVxoI1xAx9g6UsKT2prpREIbKB0lbVRoOaCUuYC0DKFdR4PJgon69vzUfjlAjvNcfxyS6tU9AarwSNWInbTeOYmlhfUVFCVK9m+WkjdwUhhvVGOMAD2YfZQHR0kfCGILs9D3OpeU7GWTZzMzxYCUey69O+y3ri6y8q0FYpGOltXZxNpUdzriWTZxYGAtVGahjnI66foHFjAgJ7BOTPgAGCJGuoLxJ7SP0oPYWQhJD47BFd8IBjGiJoLQ4JNTcrYm0XYTnCma3M3.UtCdZQfN5ZkN91onoIjQ4JBwyTzzEu8lCvkPMfU1w2s2HttucBttu8d.VHTEa6qQvj5Ib.5g.U21UPd7CiHaIids+RTMd2AmV3rMoNRiQHS3Hynt8LDUx.+GGYbpiqqQalAb58jSCIeEDF8XcMNESA+elAOwTpCEI.zkUyn98Qk8W2xdRYtSGxoXxeLh.A8tfdkaPOxnoeczKCIBKXxbvMcghJGEhwcscXFvQMwTatAOwhlFMPd7KqDoOj+dURYpi0R4qpPy7T9Kna.eyLoEnx+DNT2Go0IPVEebhQ3o.Y2pk3.0jo5RM2ceY9SpxgOdB4n+3x2Cm8XhUNjMTcCRQbYYoiSMcmjg31fc3gwak05Fbx0giXLYsUOtzDePkySRxHKWlWs7seA4oF54+rM1XqyGuN85yydbMrgpDWqTuuVUF6XOr3ctdiuUjOP1HuVOJQbujh2G5OT7rwqvmPL9bBbfS9EPn7lQmI0US9668n+QVuZR+Le0j6YEAK+AAXZnOKTcyg34b.ix0wABAN+cBH+ZYgzojWigCFaSWTZGPIG6XLwQcCDdeIuC5TWkxrS00ek9pT1CJm8DGvY5RudEwoeuStEz60aq5le4Z2N2PzhIXzTjie63RCDX76ihCZSjpdK.MXTVxkTLvQXeRTfS61DUNuwoPwYy5K4wkSRkjJYwK.mQbPCQsQSksnv091xF690OJlw1fGfZ7+GWJ5reW6RQucfx8wUAlRceTh5VgWe8KX7LQB08wRIFbQF7aWknlLI82yEgmzsdxDH0l0vgVB+EH+h0w7WmbpkhCysoXvdamt+6Cmef+8sH82yFSwQzfcsfHX5UYG.R9Phhrcbbi+p17WP4Oj410iDlmm.O+VPZ6iXmke2JuJeiWZVuVdyJMZ9hsMdQ8p6WY+WmuYkZegY95d31DCXOjZGluJ+zKMAKZw7qsow9.eBiZTnv5F07xu15CKnngIEGPL9zjFft7ohVq1rQtSwmn4w2Cj6+dXwoAL9iKq4BFCg9kzlqv5Xmz9voCmKaDTp4DR0+2mG7Nl6+ZkGb8647fe06dedv2mG76h4AuOVCOrU.6MwuBctu7CDR.8lJxprHpA+YiBZmL74Y8.Vw2XYoNUiLv0m1AtwzNvhS6.e5zNvMm1A9YS6.e1UOPdRq3WYCOjUSqQysku+M89UhnOq1+EXQRiiB
      
      posted in General Questions
      JulesVJ
      JulesV
    • RE: Continuously playing looped sample in an FX plugin

      @Matt_SF said in Continuously playing looped sample in an FX plugin:

      @Gabor-K Use scriptnode. This is a quick-pretty-hacky-but-functionnal snippet. It will get you started :

      HiseSnippet 2007.3oc2Y8zaabbEeVRMRVJ9OMItE8VVfzCx.FDh1NoAnGDknDSTpoDgHipK5A1w6Njbf1cls6rqjXLBPPQOzaM2B7olOB8ZPOD+QHn4XO0uA9SPSeyN6pcG9GIRJYg1JaHn4M+48ley6268lYaEJbnRoHDYsZmgATj0swsGxiFTe.gwQ6sCx5t3lDYDMzVKZ6gADoj5hrrJ+wJAVqtDBgpc.+uu41DOB2glJJ4miDLG5SY9rnbosp8qYddMHtzNL+Bi9I01yQvqK7Dwf8TFuAJf3bLoOcehZXkvHqk20kEIBaGQhnRj0RaKbG1df3Ttd7Gwjrm6QUMphZCKjVbCgmqxhURQ0Gv7baksukHjEtUNJTViB2G2j4xNWdNZ7SR5vNeFEwCqRllWYCyq5zLuIXRVELokzlzaia6DxBhx6QYOuEdONb3zi.vdQSQOVj0qv0Ev.3QU7IGSaDBMNeBq+garwCsge8feUuXtSDSvsE78EQzC3q+f0dwZqt1Wrl8nc0q2D6SolPgmGMbhcqNoCunItNO1+4zvGZeBwKld9.gsuIlt7rgoN5ccgAJ36wYQGDPSaewNEnTXC9qOaucHQD0gRpLXbAzvHlxbr1gdB3gqOhVEuCUdbjH.7wG67C7bDtwdjHS2IEGJsC.OLNCUGTbIKZXNE40aNpO1RSGO1Xlo.yp4913VrHmAS1dKMA6EPs2z1aJi8N3c60i5DkarKga7rEkdtwbSOWKkdB5To7am1ztwypNQh4eFmSBBBoAjPZGQKOxv0kD+.O5gfM9P6m6IbNtM6yoiybBzlv1pQrty.BmS8jKBAa4qofVnCEwQLd+ljnP1YPX08i8aCgxcn0SsNPlUIE2R2dCUakORaJ2MowOB+j1YUUaqzNql0YAZ49znSEgGmbbj92HqUzXuLAj616rpns77DmVW3GvR8XgyfDYsDdCCFH3LGkH8Hxrzs7EwfRRM2OgH6PXdJW71wRH.h6A71vfSR0YU9HZnLYgWAuQE3efK+9BWnqkaPb.fcXKRz.E2QESBbNogUbN2I0vVK5mnVhrTgZTBLQe0VWkHTc9zhDB4EgX4pvPkrJWHrj1CU0B3hkz5YO4QpdcHdniTd.pIgTZQifIVLVMzUvx.OHe8Tsdc2ytwZZZmqyRF5TCIWBhMMct5x09ia+iF588vcFvj1v+iFPs8gYaKY84DO6.XwqftR3Ep.1q2Po6iao2GUWzMxkAdylcV9bLFWv1VF2GX3lV18vtC4DelirRRmygcsjwgZdJgNjv9zHYZ9RN0Qy5RNs2CVXLNvmjCfJQqf0VtRAPnuyxx2tCCb0HC2NFhrqi6ZHQAAbW5YYAG1Ehu4BYMRldV.ihmTPkdYs.k1jwSArrrU+1W0jb1Hxf.PQz.UH3TYeyKe42tY6iompAxToup+e6mVSefzYPHUNX.j.CUXspcqG+3G9pshiD9.PmjuDUvZVdbqA.0QslZhZyj076exW8O2T6OtUTDTDMZr09FP4qhOj5QIR5nZeuZWh1e8liePTa1z927C+6+wl5PJGp7GQiszy+NGT9H5NYgFS2IR0Uk2l4R0T8wQ9BbRMYvfRdmjfEPB6JptlQB46CWC3DfLlDrSwjs8OmPpS3OZDu4fw9VXISwK6RBM4sKCUuBAML4XkuXN1jfW.JGCdAd2Tg2r3EiszyC850e2U2PVC2L1KhE3MbL2ru6FP8X7VttSvA2LwJPACMcwtM1WkCT2yL5g86v0UCGbvfTpExjZKEINcBt2PUm79vuIQ1mBWw2tuvFpILKIrtvV6ghX6SIbvWUXqBlCdlkL7LMbmrle150l6TQfrHIv.LuOlBTOOv9qjOhYDTeD9yjzDrIaMTfhzWH.fUIlD6xD1PsKDtqBJqneshoWOv8TUcW..S2S5BYQsOUc8sb9dohBL4+xQF9X8NkfE2A2CJMtq5fkNkvEWmY4gJQL8WVZ9yq8Wlw7Zu6N+vElT8WTC8lW4SMopo1uBQdunDaoGgWo.uWGT16jdDTON7jIQbmPxshjYSmTC576.oeCoUJ1+BeSmQbz2RQla.KrznE3ydAN3O.+hVGdvmta8NcabvS2Y2C+hm09oc+nOn6Ngw9xtMh8759nJmRNAkizZCKGkwVe8KW4JySl6pftKV8dFOGNlZpf9KrDz+K1e8I0Fm09WqMe9q2CeHDSuQH8ODS4NiVsvW9hZWGEkV6e84+oKrnTk9uzhhG65sSOcrdU022Qccmq+aTM1xMaIgRupqQ1GiKlg1VHN1mj77QW4G38t5NUE8yoIe8jjm14mkz192PNgZ+wT3t+p2Rs5z9.Je4v286m0OfRvL+ATNvIBTemPBWFHjlGBTeVGAWsGyEBkij6jTPdcAIbhc85Ma.axINm1jn3vjXvYOmVgWEt7L+pvEezQyGKuv3mvaztzapupyM5Kte0+.AWOux8pY1X6jZb2Msb0Da7c.VQOBbQnLolN4MEbQ1Csl6AbHMJj0uO0LL0j1PoEactj6WKqBnB097TvKjDljmYwvh4+CxMwyqedZgI1Jlo8+e7gcJ++ZeXmqGS4l3yYbSnCehSnna5iJo7kuUhDXeyS9t5qhapZaWEcxnIp8gnhccbLWpwl3iVzI93EchOYQm3GrnS7CWzI9KWzI9QW9DUIsRqjUQYghDasq9VCV6xIfGeB6.8ePiJTeI
      

      Thanks for the example, it's really cool.
      How do you think we could do gated reverb with a similar approach?

      posted in General Questions
      JulesVJ
      JulesV
    • Loading samples into the file_player node

      Sorry for this basic question.

      Samples are in the AudioFiles folder. The file name appears on the file_player node, but the sample does not load.

      Am I doing something wrong in the script?

      const Samplez = [
      	["Wood.wav"],
      	["Water.wav"],
      	["Air.wav"],																		
      ];
      
      
      const var FilePlayerr = Synth.getEffect("FilePlayerr");
      
      const var ComboBox1 = Content.getComponent("ComboBox1");
      
      inline function onComboBox1Control(component, value)
      {
      	local Smpl = Synth.getAudioSampleProcessor(FilePlayerr.getId());
      	local Smpl0 = Smpl.getAudioFile(0);  
      		
      	Smpl0.loadFile("{PROJECT_FOLDER}" + Samplez[value-1][0]); 	
      };
      Content.getComponent("ComboBox1").setControlCallback(onComboBox1Control);
      
      
      
      HiseSnippet 1440.3ocuW0saaaCElxNJcVscqcX2N.Aek6VlgchSZCFFpS7OadqIwHJKa.AAALRz0DVhTShpItEEnWrK1awda16wdC5av1gjRVx0tosFa0Enwme4GO7b9H8vHtKINlGgLrNYZHAYbGSmoLw3NiwTFZPWjwmZd.NVPhr0p1eZHNNl3gLLJ+8REFUVCo975GuO1GybI4pPnS4TWxSnATQt1gs+IpueerG4DZPAua0dfKm0g6yS.7T1rAJD6NA+TxgXoakLQ+.NdLx3qL2dysba48PuM2b6c2wEuCY2Q3QiZtkWqV67ncat0t3VOZGRisQFq2yiJ3QNBrfDiLVaet2Tmw7qX5E3TZL8RehTnIxAVYs59beO4VTpE0YL02aXVgJFAYYXdYqrtr8ElGP8nyzmW9tmxfcdDEKfFklGdkmCdMKBuFEf2RfjQAHslFR22zwMhFJxsHwysMGvfSyQX3bpHTz9hJ8WkL6vAOXh5A3Ij9QfvrHpsSiFaXC+2C9VKKK3vJVX6fCB8IO296rOypxYU+EN2q9U3mU87MThvFKpf7dzboE9XctLso48Y3H69TexPe7TRTDjeUiY8mRD8FMh3JpUsf4pEPjLxN7fK46yutIDW19AhDTGxYfPspy7PEJk4SYD6QILWAkyrk8go1kgGw8q4lE6FvJ3mPdf0Krp3ycw91NPInH.2Kwix0ElYU+ZEPqzmAd0d.rxExPCYJf+NKCxHpA0ZaanXYUQ4SceN1SYn5KFd7Q+XuNmbQ+idR2dG+xp1ec1owYJD9MMO+rFmCwaUwx5kvt7cVIpGKsn1ucv99WBye0VrTnp0pOEpWGxEjiX0TUEqWZY+llFMZo1RSoOIZolkLDQ2Tf0XIAWRhJdlHcDlBlezx7sOZUbx2UWgJ3HmMfQEGERXuM9.TZYUNFlhJvUgZH7doCgYkPD0SNCNqhhTvtHIJ5mGzEKvYICxKrVgjHAUtML5RdFvnpmvqX1kDOQvCU9lddBbdumK80yV1WMo8zbgSaGfAalFkAIpfD.q6WZp6rraZk9kMy9xVV.k9BrO.uG2KwGKlmLTdkQpA3XbNFHIKCKlJlVrZ7eFC46KDuu4Ppvc7xwXokfQ3f5+CLlduxcM0jc4.bMy9+5GgKQL0quUZSDrlxE+tlEXwlCEGlDLiyRNtYX.6mzKUL9Cy7I2vHRHNhbBWlkZwpdniAjug8k.U3DG5yIKNtGpA19ROp4NFyXD+3UgUX826ZUya9n5Xdhfxd5AXQDUNr.6eG3cKtjNonSVCJIIGzxMjxxtEGBySI7OvmTiMmUv.iMyLlyqfNjHthGMQcHk9cjwsjmHllcObazd997qjT.zzlV3DQoaH2eZ3XNi5JUo8HCh6EvSj7EZbBus5DL0W1k6jDCzcdGwb.mUOnyn7ojnXUhukYi5v+ft9C4dfo06icgJ5zgXwX43ijAE5Uga8cm0ypA4bsKpmzo0KyS1q9z0H.mAJpL3MeFkKv+o6QkRvDXIYpui4f3SkVgaQQmpISg8iLm5pkFj5l2Qv94hPU2KZNX+4.riH0KZeQzNe7eHnVZBZyuNiXuvjRQIX3d.yibcVB6A8vdvCQUgk1Tb.kktK09b.954jQCwQ.ZgWcoeoZlDbvkGZN2Ud3yz01QPBkigE4gclPtRWwJpU+6CjCxxWJbfrTuvJzkLBm3KVPO5CGZ.L9ff15v0MhEfzqe7xgDb06MCoVsW.Rs+ykTsfw32Jj9Lyi4bQ+Hxuk.SVSeCr8pWzdoXCzi9O3jr8e+7e+FJW21ThqikDHqRMS1muOmOI.qHpVo2w7QgVM.6FwuvUeSgbJ4STZfYVlZNuB7KdAY6EdbFBE.+VtKbcmOUKD3lqZfaspA1ZUCb6UMvcV0.e3pF3id2AJ+o16kH3A5KAgghg8zjmF8XX3hcEaN5eAiiC5S
      

      Screen Shot 2025-07-21 at 22.57.03.png

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Samples in FX plugin

      @d-healey If I use this method, shouldn't the "Embed Audio Files" option in the Properties be unticked?

      So, when I also use IR samples too (in the Audio Fİles Folder), I assume these IR samples will be in that .dat file?

      posted in General Questions
      JulesVJ
      JulesV
    • RE: Samples in FX plugin

      @d-healey Yes, but I can move them somewhere else if it would be better.

      posted in General Questions
      JulesVJ
      JulesV
    • Samples in FX plugin

      What's the best way to distribute samples to play in the FX plugin using the file_player node?

      The samples are over 50MB in size, so while exporting the plugin, embedding them in the plugin wouldn't be a good idea.

      So, what's the best way to do this in the FX plugin?

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

      @aaronventure said in Neural Amp Modeler (NAM) in HISE:

      @JulesV i haven't gotten around to actually implementing this, but it should work, instead of just reading the file as object, i would just paste the data in there

      This is the nam file (to upload here, I changed the extension to .txt, but you need to change it to .nam after downloading): A73.txt

      Using this externally works. But for JSON, Hise cannot load this complex data, which has a lot of weights, and it hangs then crashes.

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

      @aaronventure said in Neural Amp Modeler (NAM) in HISE:

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

      Can't you just embed the JSON content of the NAM file into a script and it will be embedded in the plugin?

      I sure can. I feel silly now. Thank you.

      Have you ever tried embedding NAM content as JSON like @Christoph-Hart adviced?

      As you mentioned above, I can open them externally, but embed doesn't work here.

      posted in General Questions
      JulesVJ
      JulesV
    • 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