setAttribute - not working for me



  • Ok last frustration of the day....

    So I have a midiScript processor with a single slider in it. The slider is linked up to the attack value of my envelope - and works fine.

    in my main interface I say this:

    const var Acoustic_OUT_COMMS = Synth.getMidiProcessor("Acoustic_OUT_COMMS");
    
    inline function onAttack_ACOUSTICControl(component, value)
    {
    	Acoustic_OUT_COMMS.setAttribute(0, value);
    	Console.print("setting the attack");
    };
    
    Content.getComponent("Attack_ACOUSTIC").setControlCallback(onAttack_ACOUSTICControl);
    

    literally nothing is happening - there isnt even a Console.print.

    Perhaps this is because the Attack_ACOUSTIC widget was/is previously wired to another container - but i cant see how to "unwire" a component - so I dont know if thats the problem or not....



  • @Lindon ...and a quick test shows me I am right... so we MUST have a way to remove processorId and parmaterId - without it this is very very poor UX



  • Yeah, basically that requires you to open up the JSON editor and remove the processorId and parameterId manually.



  • @Christoph-Hart any chance of a fix then?



  • Yes, however there's an unspoken "if there's a workaround, it's not a bug" policy in HISE 🙂 so it's categorized under "cleanup maintenance task"



  • @Christoph-Hart What if I want to link a button from the main interface to a script processor, AND use a callback in the main interface script?

    Can I link to the script processor from the callback in the main interface?
    I know there's a workaround using a global variable, but this is not a good idea AFAIK

    For instance, I have a button in the interface which controls another button in a script processor, but at the same time I want to set a panel visible in the main interface

    Thanks



  • @ustk You can either use the interface designer to link a control to a parameter or you can write a custom callback function. You can't have both. So if you want a control to perform more than one function you will have to use a custom callback.

    @Christoph-Hart Would it be possible to link a control in the interface designer and also have it trigger a custom callback after it performs its linked action? Or is there something fundamental preventing this?



  • @d-healey Thanks, I understand that we can't have both, I think because it would be weird to have two different callbacks for the same control (I guess the property editor use a kind of callback in the background)

    so what should I do in my custom callback if I want also to link to a button in a script processor?
    is a:

    ScriptProcessor.setAttribute(n, value)
    

    working?
    If so, how to define "n" when you have 20 controls?

    If it is not the way, it would be cool to add it 😀



  • Ok I tried, and it works this way ☺

    Still, I don't understand how to find "n" except by trying all the possibilities



  • @ustk To get n put all the controls in an array then use array.indexOf(control);



  • @ustk Take a look at this example

    A knob controlling Gain, Limiter Treshold and Delay at the same time. You can multiply the controls as much as you want...

    By the way to get the n, you need to learn the control parameter names: create a slider (you won't use it to control, just to learn parameter name), select processor ID and Parameter. You can apply this Parameter name in setAttribute controls. Then delete the slider... 😉

    HiseSnippet 1318.3oc6X8zaaTDEe1jrgXCA0h3CvJK.4fRS8FmjVUDxIw4OXBw1pNs.mhlr633QY8LV6NaaLUQhOAbOHNzuCbhy7ofaH0u.bf6v6M6td2E6DRPzpFoL4Rl2626Mu4su+MtsuzgEDH8IFENX3.Fw38L6LTn5UuGkKHM1hXXZZaaS1b3.ZP.ykXXL8tHKiByPzq+n1lTOpvgkRhPdpj6v9JdetJkZ602i64sC0kc.ueFzqrdCGontzSFBlwzlUHCnNmPOl0jhvlxjXL61tbkzuihpXADiY1T5NrSO4yEQ3eJOfejGC2XS5.JJh7NROWzhQpj583dtsSttADPKsSu7SGc4+Py84t7QzScB2QyvJUhr9CiotLyyNq4U4padFYLuYhLu6Z1wwmOPkxAss20rgPw76RgOAYMqHrjo9jYLqKADB0R8omv1wG1LRhx1qUYQK6UprvmMew4Kd+wVVat8tMZ1n4tVs1w5fuXaqM1us0SZ13.q6ewKTUv2z.k0yn9ZI9bKcX0RGyTa2sKyQUtDPtDdp4.t7Efb4+ATcrEy2dRvS3UJ5Nk7Wty4PLHFDNwyPcc2SHOReVZdkVz5gKZU8AQ5HAV.Cc9CX9JNK.7j8+xNsZlSnWLeQKXUpuzkU5QVk1h4vOh4UZwD5.pGYcO6JURn7btqpGPydkkGAhdJPn5ZI6CTrAc3eGpvJKAhles5pqNBXX2tbT1RVtal4Lcc8XskAbEWhG+nyVwNUgnq2Z+MaXsWyVoBwCZ6EdLWzl5C4gf+Dvo7CYI7GjmKlrhZJ0Uf9syhbebgGWvr5FJbPKvRJRfgNVeoWYGY+ARA3hWD9B4ExVX9hfmr..C84anT97iBUrxHATtDXf5Kj78NOxQTOnmOKnWOHaaQqxZote00VPKIFXMl9WdosXdzgwmvmVEQdVtn.HVqdh8l4i+BnphuP0oddGAkwJO1UEUWFGQSoh0RTdghunXghmMFmtcmDqXU4w7mDWr7p+kHVYQX+iX9ItvXbPUl7kwLu3xXYqx5D4Tx.TJZH3pVCXhKp3FI1Shk4hMJ.pRWj68iKx0wi6x7IbnVVQyDeHQaxw8NVu5Ou55jmzXKphlnIPooIn.ssXOC5DEU9rf4VrfSTxAZrwe+fC7pbtmB9Ci4fCcH9OeL7O4Spx17KIaEo8imiqeoVecKyY+o+JZAI331OJQBcZK1qERaIXoiHqUW5ffIoXi4zjThtlApgeHVCikshloAvXBoo4tXjway.M6jtgdTU9NfH7XF3ENaqFrch.bDCyNVvqk1hWUy8tls4JmdS1dmZB1KD.851diGxXdynFUoF6Ll67M+WmnXxC7TYRSTLcFa4cFMsGu+.O1toS6AQFWzzd5DNcwwr9suNNVLlv2t9DlGzX57WnouZWn+ko1t7..cG9aLArefo1wdSxf0e3u4Xv2wrM8sg.hGKCUbww6SgYNvZ9MC62Ad5iCCLUgf4gsdMlBaRFsuBtGMnNLgqdC1AIlocRcdjocBSxUHSeVLSe4K4gcDR1T8uu6NsW+1T8aS0uMU+s1T84RlyM9sOZeQwjc4+QbhdUTrK3k+YiWUqUnZPnZTq9pup1iYdLZPlr6euF7RI3UMof90Z6IXIHd44m+a09eK++Mh26MwYzm53KOzI5cNXgs4zTf6sPOMdAy8w8V1IutA8GvyK3G53fCGdOH1ZxRr70VhpWaIV4ZKwpWaIV6ZKwCt1R7vKQB7G2aiPkreT0BfP6s0upzvXaAEhV0oLj+FCRRsfC
    


  • Or use the autocomplete popup which shows you all available parameters - this is also more safe because of NO MAGIC NUMBERS.



  • @Christoph-Hart said in setAttribute - not working for me:

    Or use the autocomplete popup which shows you all available parameters - this is also more safe because of NO MAGIC NUMBERS.

    Oops I totally misunderstood the question.



  • Thanks! It is way easier...


Log in to reply
 

4
Online

502
Users

1.8k
Topics

13.6k
Posts