• XY Pad with Optional Motion + Speed Control (HISE Script)

    6
    1 Votes
    6 Posts
    381 Views
    Oli UllmannO

    @JamesC

    You can achieve all of this relatively easily with the modulation system. Here is a snippet for you. The snippet is a little more complex because I am controlling the volume of four layers with one XY pad.

    If it's too complicated and not immediately understandable, I can build you a simpler snippet tomorrow. Just let me know... :-)

    In the end, this can be achieved with relatively little code, and you don't need a timer or anything like that. You can also use this method to control your pad with all the modulators that HISE has to offer. :-)

    HiseSnippet 3261.3oc6bs0aabbEdojnikRSQbaJRQ.Jv.ihhkITzjTT4hTcrrDkrIhtPXJaKEifjg6Njbg1cF1cWJRlF2l+JEnn+G5SwE8OP6C887TeNOkGa5YlYWtyRsjhVxVV1lDvzbOy4Ly24xblyLCop5xLHddLWsTKre+1DsT+rz05S8asQKrEUqRYsTuY5d82gYtOwyWa89swddDSsTol8NbFRM+bZhW+vsVGaioFjHRZZOfYYP11xwxOhZ009LKa6svlj8sbT3tzZULXzMX1rN.XlMcds1XiivMI6h4rMSZs6h8Zok58SmujA9iK1X4kV5S9jOZYy5DiFEH0+HCb9kwMVFCTKgKsbgRZotxllV9L2Z9XehmVp4VmY1uVKVWpb.dfkmUcaB+gBZ0fQVRdKlsIWE4T01nkksY0PqjmF.3pQ1rYk1r2I8NVlVCnGY6daQCnHITMfolIN7lMF7JnBu7JvKAHkRARyIgz0RWyv0pseTKReYEpOwsAF7SpPQxq1L+8qkdCFvA0OmC9HxVtvCCjP+CymOKBdKypKr.3q77QGicQMAk0CcSjHrIWSh+sss2rQChgum90qY4z1lf3wJWOtXGyr+LJqNWxGs.BdENvPOrAyoMiBOnecduW35YxdJrT7zYYoSmkRWOyBeQLTVESI1E.LlrPxl4ZVjHGLRtOHNiGNRFOjynKoIxqEqisIL6qiMDi.7W.P2B23Fnal7KdS6fa21h1bwMA2hOw1tCsIgNNYhPzNU18KKuNLLKVHe9b4WMVSkkMAss7PMc6CBZBgDRwGr0IVn5V1VTB1k.7X4YzBPBxyhZhrnHSAQePov17.DRWKiVvS4yUb4UFZbeHB5bdCPWaQ48IpQGpguEihLrwNs0ONKxlkE0xJyB+QgO1k32wkB1BHjzwhp2xJavC3d5bVONCXhe7H5u7EzOdndZv3.ZXVTgb4khCZZ.zQ54ykqPFzheJxbcjtvBBbgfjevTDWL02h35OPqqC1GvRBr1kPont2jqem.McIVMa4uOqbc8st+tazMDT1LCrMpKXVBwqrYv.wa1pARuK52yMZ.BFXLDd2UU33SuoPSh3P3IC5DP0pZQL.syifjNxUBa.527bMkqkQzJtLmFWsBoUHfOdjgJxjt0LBRRMJRq7AspK5FRVVU1y4JLfoXJC5CP5AQlKFPJC58Q9Rk7wh2I1djQNP.XVL.LvPpC3cvyiYnKGNzxH+ECHEanSH1xi3uMtOwE7l17+uB0jzKKh65LqG20ZVOz2pKaNaf5kMvIkIxKcm6WAgOxuC1FVvf3RnHcVKXb2.lYUGVCcwZswNRacXR2GEM9eQN.VO.a2gnCfHpWKWqJGveMu6TxhmYfazxqLoAnel5hU.T6xLC6Yg9qBeNOE4PrfrRTzV+y+JLumhNxFRW4iLwdqLf6SzebHdaeeWq5c7Imb3xwAVVTD7CFxs.CfGLpbmvcqTayEe.w0CbD2XqC3CHhJl25falE9niCxCVH12DVsjPWQseNE7jOXnGoeuSaSH6sv06AKo5bvgBmZucYtNR2ee9GiGAHZcnI3BZAijjq9IvU+.tB8jhAdwOuCy0jBofGLId6BqfX0Ae.f1i7xh1tXvytDvtvIrzJnN70mFvQoPBRVTyEwWjLX9iDlvjgfm6eBX2sHm6.K7Dv9RI04Ahm.6kRr2Gheg.JSIA2nR51tExDzmJrTHNKESfkhwYYoDXYo3rTJyfkRFyp5Gb3hUwlnOm.wrzwudtrnDdLZUHv0+drN9P3ndX3ndyv.M95qXvT42xxiWAx1bq25rNTSO87gVnl7NRVVtt7+7xU2FRqDnXMy0.pm+dP4d53wIS2VV9jAxX5h6JkAVLMRLdWsossUaOh9iDvBl4fy0C76E.+SDk9ATJJ92WvsfYVcBsg6f63MY1ucXc7HgoQiLfjigpzBMh7TgBB4LrsLNhXh9luAII.JYygyDppT2LfudqlPy8GzbekrZbWVucijDVzJz68PKS+V5YVMFu8i3suBu2UD+oqlu7fn0A5sqRubXD896pJPBY05saVTeUgEimKoMONTePJxgralrNv1b1fa8Fu0ZHMERhgJNJS2vZpj2jz174VNY0U1v3zWfCdAgKepZL+8.sNPoawNl3JU24OQU94WMdkKymz9.lj.dPqODUy1hWsMTFFO5+CP2WnHiSzgW.iQOfuQEWlstQ3tTfRn4VonoA5wAopqb9foTC7jBQgbxAzGN5c9Dr0BQxB9mlg9mLJq4dfLii.iClvFA6LIryAF8vmcJU+DUpnoYiRqNPQcBG7Hs5vj0pCUzpwG.TgZ4uhbGGSPFuAtmS3VPfZAw4qtvv57I00PNOwLrSLyZ7SnB5YkoRKnjYle1QtCLIR5wnkjGOA1z4t54GdR6iiFJerqbvzKwWRTI5YWlOYOprC.IPC2TiFI1VfuyF5wjZVNViQPcZGm5DWkHUAiZolK9oIkdzmlj5gcYHO.BEFYTdTydsIzQcDXZAmZglVpqDfJfUew4N8yCN2IYRGMKw4ncfl.rQG122eKsIRvCOaB9FoEGajpv4+wGWZwmL4BW77H7RpB2p1+9er7SgvkRP36WoLLiieReAldvczl35aw8zoJSN1xfHO2u4SWl3cjOqMzcCNQI3yxA8sBOUPdzsXLuZZYjtVuHir0Z8UenKOGfJgVho5pTfYSrtgyo.H8doEKmCaY3t704P+NTYnVnlVzl7fmgQ0HhYTPDUAQe+WulIoAtisLYhZrgCF1SVu8wtP9nJhdomFT0oS3oJO+Uzz9oFBlmPTb3nPwZ+4mBTzeXT7SmDEKbpQy8TOZcEOTk0bTOI9CehCNFqNLyf.CCq5fa2wxzzlTk4YwyrDwYtmzNbRNG1.Rh11eAs1XWrCwmHZ6JoEm9+SC9Kphey0tfwewyM9WRE+9Wz3eoyM9Kof+u8wWz3uTx3+j2awamNnVq3WiBm8fF3io5cWvueBJfk9pWF0yr6VYRg30RW0x2nUxXblDvHjL+4AFCtQp2Js7JXh.3bo25fmOW+j5veU4v+douiMqN1NxPAKaAHgHuFpeSPynAsiFvPgwbIi+qI8RFaOwWx3vkMM2jU1zobGgyco6NBmz33e4IbMdWfy1RMiBLulDloSu8V6EXofOEArBmNvV2pMyF6xaeKWxenCgZD19W0nw+8V7HjJT0noGhOlzf45DTM0fdZaRSXLUorOAx8VqO0PU7ZNLFraBZy3wcZZayXs2jhAqfoZmTsE1iuUAXKMw5Fna2msC1CxWtgMy3H0FqzjxbIxsenReiNd9LmPEPbk407IsEUNl5Qo+vR4fWM9.96exFvaKs2ylmeZRjUXxc+iOJkGILvkyiItDtlfDkCB7dAhxSapTwy0TIs+xd+uoSkdcdpzbSVP53W07BcZ0EJhGawgy9pcwgxqep4NhMECof1siSMn5KCBL5TJwleTUolgOmS9bd9yhItDpo3geBdEzXA9yoBZrPXiZxNO3HRlAJkjRLj6M4MheX.6H1Jib7jnPbgtgC4vdhu59+mu6V2tSu.lFDM8cBZI30pPOl+k7PXB0FIN5ONbjJAb.u9amcbnD.7tx.f2LMO0l3Krkv8+qRGlpCcGBTC9Iqt54dc36Y3CPXeWL0qMyiTHVJbhi09v1b8hQcHIJlnDwnVl32gFuqkjJN7xVaAlBE9t5ZgDKpRrJlFqyfmi0S6X0S8bgjqYUi.Zt4ddFfggami0Acr8HhibufpfQjKpR9tXWygWzL0rOO1NyUdoc6Lu.O4fXeqLmODixyDYSX9oMCnvw3uHcY4IIFRM9TucXTV6VLpULG88HPJulMItpXOQE5199X0pddm0tGwl.0JEQ52t11hueWxzRmIaQgm5ugpI5u90okvEwyWfd48Ded0dQ8XtyqN36MtHz9NgC+Pme7nVM4OUZwmTlXiiYndX7qb3v0RX8F4ZbU4aJYXy7rOqBamahiE3pz4Jd8BsfTdJGvj+xDfEgDu7.32leuZWBf6EQ42SrIAJH5xcN82MMTXVQjHwN5ESl8KXG1SwNBJdYYGA+v2McGAS2QvqS6Hn3zcDLcGAuZsifhS2QvK530mE6B3B.jm+J+u.VT47Vs+KMELNsB+WcqveoKMU3eqoU3OsB+WmpveooU3OsB+Wspvejql7s7eSCSqveZE9SqveZE9Sqv+hrB+RWZ9V8r1zJ7mVg+qSU3WZZE9Sqv+UqJ7KMsB+oU3OsB+oU3OsB+mCNrKhwvAa3x9RC4eaJ34FupfBn2Twe1cmO8N7mQEF9ODGZ7eF3VeogQ7t5DBV7rJ3RmUAKcVEb4ypfe3YUvO5rJ3Ge5BxqW+1c7YNx4Fv9Vpto72uVpA+34RMq1+2DSycn
  • Code feedback on this custom envelope panel

    15
    0 Votes
    15 Posts
    589 Views
    ustkU

    @David-Healey said in Code feedback on this custom envelope panel:

    For paint routines and mouse callbacks I'm not sure it makes a difference since the paint routine or mouse callback is still a regular function.

    Yes but the way I understand it (might be wrong though) is that it's faster to execute even if the outside part isn't inlined. The inline part containing locals, the code execution inside it seems faster especially for long paint routines or mouseCB. Then what happens after this isn't affected but at least the script part might be improved.

  • Sample import dialog menu + alert window LAF (Example)

    3
    1 Votes
    3 Posts
    236 Views
    C

    @David-Healey Oh yes! I did watch that video and have been using the unicode with buttons, but never wrapped my head using it that way.

    (Might be easier for newbies just to copy and paste this in!)

  • Anyone doing this to declare components?

    11
    0 Votes
    11 Posts
    599 Views
    David HealeyD

    @dannytaurus said in Anyone doing this to declare components?:

    Do you mean like this?

    Kind of.

    I split my scripts into lots of separate files, preferably one file per part of the project - what constitutes a part could be functionality, or it could be UI, I often have one namespace per main UI panel.

    For example, I'll have a file called Presets.js which contains the Presets namespace and this contains everything related to preset handling, including the UI.

    I'll have another file for handling expansions.

    I'll have another one that handles a drop down menu in my plugin's header. This will have items for opening the Settings page, the About page, etc. This is an interesting one because the menu itself shouldn't know anything about the Settings or About pages, it doesn't need to.

    But the Settings and About pages are aware of the menu's existence. So using broadcasters those namespaces can watch the menu and if the Settings option is selected the Settings namespace will show the correct panel, if the About option is selected then the About namespace will handle it. Everything is very self contained and links between namespaces/parts of the project are minimised as much as possible.

    Here is what the on init section looks like for my current project. Nice and clean 😀

    f0136148-47c7-4818-82cf-fc6d90abf1d0-image.png

  • 0 Votes
    2 Posts
    174 Views
    David HealeyD

    Each time you add a new entry the indexes will shift. Do a search of the forum and you'll find some solutions.

    One of the simplest is to use the item's text instead of the combobox value, but that isn't always suitable, it depends on how you have things setup.

  • Hise with Gumroad licensing system

    2
    0 Votes
    2 Posts
    246 Views
    bendursoB

    @Avián You should use Server.callWithPOST
    https://docs.hise.audio/scripting/scripting-api/server/index.html#callwithpost

    something like this based on what I read from the docs of gumroad (i'm not using gumroad, so I don't know if it works)

    Server.setBaseURL("https://api.gumroad.com"); const var params = { "product_id": "1234", "license_key": "your_license_key", "increment_uses_count": "true" }; Server.callWithPOST("v2/licenses/verify", params, function(status, response) { if(status == Server.StatusOK) { if(response.success) { Console.print("License valid"); Console.print("Uses: " + response.uses); Console.print("Product: " + response.purchase.product_name); } else { Console.print("License invalid"); } } else { Console.print("HTTP error: " + status); } });
  • Sampler playhead reset on noteOff

    1
    0 Votes
    1 Posts
    104 Views
    No one has replied
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    14 Views
    No one has replied
  • Automation problem in daw (get stuck when hit play)

    1
    0 Votes
    1 Posts
    87 Views
    No one has replied
  • XY Pad Gain Scaling...

    Solved
    3
    0 Votes
    3 Posts
    196 Views
    LindonL

    @JamesC yeah thats one way - but for us this algo approach wasnt quite good enough so we added a simple array of gain(dB) values that the xy pad reads to get the correct gain for its current position - and thus allowed us to have a little "bump" in the middle

  • .set("parentComponent",??? Canw e do this?

    2
    0 Votes
    2 Posts
    142 Views
    David HealeyD

    @ILIAM You can't dynamically change the order of UI components.

  • This topic is deleted!

    1
    0 Votes
    1 Posts
    2 Views
    No one has replied
  • Modulation Matrix CSS

    3
    0 Votes
    3 Posts
    163 Views
    ustkU

    @dannytaurus Thanks, yeah I tried using th as well, it does nothing...

    I agree, but unfortunately I am very limited with CSS, so I usually don't know when I'm doing wrong and when it's a Hise issue/limitation

    AI is of no help because of the particular way Hise handles CSS. Conventional stuff often don't work

  • Custom Display panel questions...

    Unsolved
    9
    0 Votes
    9 Posts
    411 Views
    LindonL

    @JamesC said in Custom Display panel questions...:

    inline function onrvbfilenameControl(component, value)
    {
    local currentReverb = ConvolutionReverb1.getCurrentlyLoadedFile();
    if (currentReverb == "")
    {
    rvbfilename.set("text", currentReverb);
    }
    else
    {
    rvbfilename.set("text", currentReverb);
    }
    rvbfilename.repaint();
    };

    Ok well lets look at this:

    local currentReverb = ConvolutionReverb1.getCurrentlyLoadedFile();

    is trying to get a file name..... from ConvolutionReverb1....

    ConvolutionReverb1 is an AudioSampleProcessor, because of this:

    const var ConvolutionReverb1 = Synth.getAudioSampleProcessor("Convolution Reverb1");

    but when we look in the documentation at AudioSampeProcessor it has no method called
    .getCurrentlyLoadedFile();

    https://docs.hise.dev/scripting/scripting-api/audiosampleprocessor/index.html

    ..it does however have:

    https://docs.hise.dev/scripting/scripting-api/audiosampleprocessor/index.html#getfilename

  • Empty slot for combobox?

    Solved
    7
    0 Votes
    7 Posts
    408 Views
    S

    @David-Healey thanx, this helps a lot!! :D

  • 0 Votes
    2 Posts
    163 Views
    David HealeyD

    @Yinxi You can use either parameter\processor id or a control callback. If you want to do two things then it must all be in the callback.

    Or you can use a broadcaster.

  • Scriptnode - Midi frequency

    3
    0 Votes
    3 Posts
    172 Views
    B

    @ulrik

    Ohh yess!! Thank you so much! You helped me a lot. I am good at c++ bad i have no idea about scriptnode.

    Thanks!!

  • Webview cant find index file.....Help please.

    Solved
    13
    0 Votes
    13 Posts
    616 Views
    ChazroxC

    @VirtualVirgin whaaa 500mb?? Its take alot for a normal browser window to hit that much ram. What does ur plugin do?

  • 5 Votes
    7 Posts
    514 Views
    David HealeyD

    The Scripting Course Bundle launch offer expires in 2 days.

  • Paint Routine on Startup not working

    5
    0 Votes
    5 Posts
    283 Views
    P

    @pgroslou Thanks David. I was able to find an example using LAF in the HISE documentation that works well and solves my problem. Much better than using Paint Routines. 👍

13

Online

2.3k

Users

13.7k

Topics

118.8k

Posts