@Yannrog said in Hello, easy one, How do we set a value to a knob by scripting so it never changes.:
so it doesn't changes.
What do you mean by this?
@Yannrog said in Hello, easy one, How do we set a value to a knob by scripting so it never changes.:
so it doesn't changes.
What do you mean by this?
@Christoph-Hart How about this to fix the original issue? https://github.com/christophhart/HISE/pull/959
My network contains a lot more than just some gains so recreating it all via scripting is a pain and means I don't get to work with the nice GUI. Is there a simple build network from JSON type thing? Edit: dsp.createFromJSON might be it..
Another option I thought of is I can park all the chains in the multi as unused nodes, then in the script use this to add them for just the number of channels:
const dsp = Engine.createDspNetwork("SimpleGain");
const numChannels = dsp.getNumChannels();
const multi = dsp.get("multi");
const numPairs = numChannels / 2;
for (i = 0; i < numPairs; i++)
dsp.get("chain" + i).setParent(multi, i);
This works for my multi channel simple gain because each channel has its own chain, but I don't think it would be a good general solution for all networks.
@ustk I found a better solution to get the channel count
https://github.com/christophhart/HISE/pull/957
@Oli-Ullmann What about using a web view?
@Christoph-Hart Ahh that's an idea, I haven't explored that side of scripting. I could pull the number of channels from the master container's routing matrix. No I can't, no access to Synth within the script FX :(
@ustk Yeah I'd rather avoid the c++ route (I'd rather avoid scriptnode too) but my preferred method is broken in the latest version of HISE and the fix requires more than Claude so I'm looking for the simplest alternative. It has to work with expansions so it's a bit of an edge case too.
@Christoph-Hart Hmm I just realised I have the same problem, when I bring in my dsp xml that's setup for 16 channels into a project with only 6 it reds everything out and tells me there aren't enough channels.
So I remove the extra ones but then I'm left with another file to maintain in my framework so it doesn't really make the situation any easier. If it was just one effect it wouldn't be an issue but this seems like it will be the same for any scriptnode effect I want to use with Rhapsody.
Or will it still work but just show the angry red box?
@Yannrog Needs to be done through scripting
HiseSnippet 1044.3ocqW00aaaCEkxwp.lqcnEXur2TySNEwo5q3DigglDG6MisjZL6Ur2JnkniIhLogDUWLF1Ow8eY+C1tTR1RN1q0gXFvF5x68v6gWd3kxCiEAzjDQLx.Od4BJx34liVxky5Niv3nAWiL9ZyaHIRZrU9PWsbAIIgFhLLN3GTCXznNJ6ye+tqHQDd.sbHD5CBV.8mYyYxxQGdwOwhh5SBoiYyqDs+ECBD7thHQJvmCLsQKHA2StidKQEVMSzORRlgLdiIIvyw11ucn2DBYRnaG+oTu1s8c7l1w1mzgz1tSaaeGjwy5Exjh3QRhjl.S5UhvkilI9cddB9.KgMIhpLbPifLmOLp6LVT3vUEmDDxn9vxR0A4kpuw7FVHa83kkrWl4vpDQ0hlQsOGkbdBTpVEJUOmRuxbTPLagrzihOek4.NrCNk.6MUoRdrnZ90L6JfH3xSlStm1OFLVinYaa6isfeN56vXX+IQZMNlvSVHRnwNVeuUld4j6nxMpFMOrRTGpv9129Zqth4SDWIdvoXlVaCyyJJ.yDL7BAGLZd35HTywZiSRTAwkwhntjnnIfNooR5T3tvkJqLdDiSsllxCjLA2Z6nZFrJaGa8IRTJ8H7efaDIBHQVxUqgKmKR4RfkKHwITn3ThRQ3AR57wzGjMORkyFUV5JldoTFyljJoMq5X7ly8wONYvL8mXbEheqPReOuYF8.WVO10zo6zWwxLhFuS2pyfweNfM4oymPiqVbTABZtMExOa+DxA4ayUBTvGvYx2ufVX2WDEpDnpm2V1iJzIvA.iBFBgJyj+urP9uZKFwBUp+063nrkPYGm2bA5WGbMQRVMYv7B4ZAMVxTKIiqoeB5eke1pg40zj6khEYwVr4CK68L0OfLLM9KHoKUOzGdXNIaruEdjA5GHe8La43ha43.esws5facNt0Y3VswsNE2xG2xC2R4GaicvtXOrO9Tba7Y3ywcv.B.niKzfcq9BO2rT4k0R3EUFvYilBORVVsY9+ast1ACgdlhvzHhbyFopqXJb.hxMHppCEOgIWV8JnGSw5+2TztBE+BRt8jtuxbHSFLa27s1N36SpjZu2kzh6mdgYuoSoAxRBV2r+uo6kQegz+KhTIie2MDnUmRVea57Qv83ATH6bNMJQI0qoN9laaqrUUfQTdXlw+.eJb5nrMJb5rxIbfIHV7wf7C8pa.sxFA3DO6MDZ.upBXas04b3rFb2zGCB1bp1Bnqt.8zEnut.OUWfs0E3Y5B7bcA14oBDuR.XqMRGsQ5pMROsQ5qMxS0FYasQdl1HOWajZqgb0VC4psFxUaMjq1ZHWs0PtZqgb0VC4psFxUaMjq1ZHOs0PdZqg71CMj5epcYpTLO+sTPnaF1K60fML5wIvE9Yub.5ewl0klP
@Christoph-Hart said in Compiled Network Fixed Channel Count?:
definitely lower than the old scripting approach.
In that case no I probably don't need to compile them, so that solves it :)
@Christoph-Hart My plan is to embed them in the binary since I need them in almost every project
@Christoph-Hart said in Compiled Network Fixed Channel Count?:
what's the effect? just a mixer?
I have my multi-channel simple gain thingy and a couple of filters (until the stock filter is fixed anyway).
I'd prefer to stay clear of scriptnode but I have some releases upcoming and it seems like the best way to get around the current issues I'm having.
@Christoph-Hart said in Compiled Network Fixed Channel Count?:
If you use it in different projects we might solve this by allowing FixChannelAmount to be a preprocessor
I don't think that will work because my projects are all expansions for Rhapsody, so the count will be fixed at the player level.
@Christoph-Hart Would it be possible to make it still work with fewer channels without sacrificing optimisation? For my framework I want to support projects from 2 to 16 channels but I don't want to maintain that many versions of each effect. If I could just make a 16 channel version that would be good.
@Stuart-Cochrane Make a separate thread
Found a little consistency issue.
The documentation gives this example:
{
"FileTypes": ["Scripts", "Images"],
"PositiveWildcard": ["*"]
}
However I've found that Scripts and Images need to have a trailing slash or the files aren't copied. DspNetworks though doesn't need a trailing slash and adding one causes the networks to not copy.
Little spin off from another thread.
It seems when I compile a network I have to decide exactly how many audio channels it will use.
For example if I make a network that I want to reuse in multiple projects that each have a different number of channels, I need to maintain multiple versions of the same network just with different channel amounts.
Is this correct or am I missing something obvious?
@emmanuelbuccheri Loading a sample map always stops the audio engine.
To cross fade load the sample maps into two samplers at the start and crossfade between them. Or load the samples into multiple groups in the same sampler and use the group xfade feature.
I have an old video that shows some techniques here: https://youtu.be/0cn1l8231n4
@Oli-Ullmann said in Issues with Panel.repaint() and Panel.repaintImmediately() - laggy user interface:
If I want to use shaders, I need to enable OpenGL, right? But I've heard that this isn't supported on Mac anymore. Or am I mistaken?
I have no idea, as you can probably tell from my response, I don't use animations on my UIs (yet) 
I was able to recreate my 16 channel simple gain in scriptnode, not as elegant as my nice simple script though.
HiseSnippet 2252.3oc6ct0biaaEGGz1P1V16ljI4g9n5aNc15g2Dk3zGZVeq0Sq7pYkqadaGXRnULlhPCI0tqZm9d9XkOR8aPB.uHRQKIKhrwBSKzCdD3AGgCO3+A3mksD5GRbvQQjPfRyamMACTNFNXVP7nyGg7B.WeAP4kvdnnXbXqzKc1rInnHrKPQY2+B6BJGtGH4w+8OeFxGE3fKtD.bGwyA+28F6EWb09e2eyy2+JjK9Vuwk5s42csCI3bhOYJMd1EpBlfbd.8d7MHV21AB9qnnQ.k+.D4XnopZZ4ZbOBcuqts4PrgkkolwPaUSjMxR01R0TCnz3RWuXR3fXTLNh9hdFwc1fQjOFjN.24E4cuOl0PCLfNxoWFb9HOe294ImH.PYu9EopcSSUeCrmmq27qWjx9xDCsJ7nbRSYm0ERZ0HjTJER6kFReEbfSn2j3BKr34H30AzYvgH5bS4PIsu.keBdNg1gf3SGid.eUHswbGNwRU8Usn+3a+SCmF3D6QBZQBtgDieSvIeay+cyCa9eZ1ppogCWpM1vDR78wgK0LSNDtNGOIX536wgup0GP9Swy6H81ewbZiMKm5jdWWpijfqC7heyDbV6qH9trbE64OdF.jk1nO6eb8EnXDaRI6Zz9MAGF6wBGkKvefVFjNEcH7BbzCwjIzBgGM+QUND2o9n3EkSrBsLCz7wBygrIpfHu3YkKDqgFScsZrMMD+JXeuXmQKOF2YIwHMS8aQLlUY9B3kCGhchKBv8fW887VFpV6xvlYkgzwjM3Gm0r0Ueu1RK.+QXgXeRHdBJDeKouOZ1IQnwS7wukFiup089DmGF38uvOtBYRZHbFqGm3LBEDf8i3oPpwmoEm.ukLM1K388PwgdeBn76uY53Az00cvmmEc.EnxWxpgRaqxZyzECvAtIM9Y5iLiZr1JYF0pXTm0dmLi5ULZvZualQiJFMYs2KynYEisYsgYFaWwnEqciLiVUL1g0d+LicpXrKq8AYF6VwnMq8gYFsqlDRxJMyyBOJGkjWNJ2b0rjVRl43byUySZI4lWjatZlRKI67xbyUyUZI4muH277rUoEHuAG+QR3CIELYOGnb.q532A6M0O1K6kZfGSvmPVbGNLhsThx9PsSUOUE7ZeexGOmLdhW1hLIxvzKjqqd8XxT5.RK30rRcnOwe1jQj.OGVIWwRTmkWNkq7nzE2h77YqXMXZDcO.22DLf9JmfzvVw3FhK8Y6eExgVhLqOJdDakO1tHzvEGdpy7kaV48TQ0OqtIErYkclU30GER6Dcy3nz6VVLjiHkF1z6+wrbLCPRYWl8zjbRv1fEM6CGyF.vJC7TyKK1xccSG1CVXXSSHOQ9Z4CapsMcXgkF1Fv2+nQ8H5nFhO88qd7XlTepwamRyFT2m2hde2yK3N1ZozmB+iT3TpbsG5SYWBBYsGDimjp29FZaZeRdnYZqpoYQWN8A7GSCZfxWCaepottdG0NcL6R4ZUsAo2aIBiaweJ9VRxKNsB6CTNCVLvHKb7tG6Cd8zXxX5J3YjKWfGhnyhoACc+xkF1owXQLe.jEg0KrYcvPUS0f1Aa6tl1cT0xHPGLlPhGQ2QXEAeCXxuLP1f2.pyF5EB77KBd9S6GCeKNBmEGOUxegAew6fzqAJwFB.kTtGAGG8N5xMrqrf78qggoamdZQGVlLt7KPcjxKKh1mEQGjV9qwyRGE9VBhdSKn2oTZ4fjhScKdJo03ujdegpjthBZogoHVBCd9yn7WstxJyTwTGdTfc9eEEXkMUjZvmCM3SsJcw9Ft3mXeirNrx8Mxr+qceijHpI7GlvnYCqrywKg+fazjSyLtzXojq0pvYmRSxvhI4FzI4JSwr1rfDB6iB1bVoFqVjCgVKHaJFiFv2N0GCVXrqxDns4y5IuYCrVyn2vo5rqitiY0AMWGQ+kgKMUbXJJsl8yMGd5xeFOy6ZKAwkf3+pAweQAGsloffheXFNcaAfE2n6+WSBIYw2lr3YRv1RXbILt.Bi+hBV50t2wyIN9Q4L05FRdbAgGu61gG2jmkM0k73RdbAgG2Pv3wMEAdbaIOtjGe6xiaH4wk73BNOtgvwiqK4wEDd7NaGdbtdaLLj73RdbAgGWWv3wMD.dbSUIOtjGe6xiqI4wk73BNOttvwiK++UQT3ws1N73b8eYpojGWxiKH73ZBFOttHviqI4wk73aUdbcaIOtjGWv4w0DNdbUIOtfvi2d6viqyyxlsk73RdbAgGWUv3wEgOKml5RdbIO91kGW9g4TxiK573phFOd0OEgRd7sFOt4yMOd1eWQtdCxsj.4Rf7sHP9wEzz1BFOtpHviaH4wk73aWdb4mmSIOtHxiebALssvgi2UhiKH33FaIb7m62FCINtDG+yINdWw5a5PaQfF2TRiKow2tz3xOMmRZbAmFuqvQi2QRiuMnwW8rzJWtoYoEC9suJoGws7oZykehFCAH+RmVFTgvEdQn68oyLKlwny80plJ4.HI.mbdOj7ExdQyLViqcm+cj97LR50RRGfk5P9m6z55gYs8ncs8vp1dnWCOl+m8n1tzY4tTUFtO7e54RWuP30gKDJOknbyzg4bC0N21t9tXTeWzpsK5102k5e6qW+aecimTMl8mkH+T75I2V4yibJg.pqpcacKCqNZc6XZaugpmR6dtv8V5dcKOaT9qBMNbRmGm3J7T4vIMadbpKON0YoNwy12mQHOLFkbzvv2wn0y7QMDXcG0PJq6nFBrtiZHk0cTCAV2QMjx5Npg.q6nFRYsG0Pf0eTCor9iZHv5OpgTV+QMDX8G0PJO9nFZLxIj7Nmzy2Jl7qUxUnqMEjfZeHrGqcKMvGRkdEGEYi8b8dmiyhuTOxQcdczfWGM40w175nEuN1gWG6xqi100wl4B.Ut8TiaO041SCt8zjaOaysmVb6YGt8rK2dxsFRmaMjN2ZHct0P5bqgz4VCoysFRmaMjN2ZHct0P5bqgL3VCYvsFxXCzPryt1r2mHF7G.zq+kITYJJWFjxxqnrK3W.XAYbxE
Edit: I just found a real downside to using scriptnode for this purpose. If I have a project with less than 16 channels then it won't process any of them.
With my scripted version the number of channels is passed in the process block so I can work with it dynamically.
Is my only solution with the scriptnode version to create a separate effect for each channel configuration?
@Oli-Ullmann said in Issues with Panel.repaint() and Panel.repaintImmediately() - laggy user interface:
Does anyone have any ideas on how I can solve this problem?
Drop the animation, ain't nobody looking at your sexy UI anyway.
Seriously though, I find users add the plugin to their project, set up some parameter (or more likely load a preset) then close the interface. Animations that aren't functional are just a way to use up some extra CPU. Since Juce6 isn't using the GPU for drawing, your framerate is limited unless you're using shaders.