Hi everyone. Mathieu from France, 37. Musician, bedroom producer, intermediate graphic designer and developer. Still learning and getting better thanks to all of you !
Best posts made by Matt_SF
-
RE: The world of HISE
-
Scripnode 101
You can read everything in the documentation here : https://docs.hise.audio/scriptnode/101/gain_example.html
Graph Shortcuts :
Shift + Click : Enter value
Ctrl + Click : Fine-tune value
Double click (on target) : Disconnect source
Alt/Option + Click : Show range editor on Hover
N : create node
C : Show/Hide cables
P : Open Properties
Q : Bypass node
F : Fold/Unfold nodeRange Editor Shortcuts
Shift + Click : Enter value
Ctrl + Click : Change value by increments
Double click : Exit range editorI thought about starting a thread for Scriptnode newcommers. I didn't find time to dig into how to contribute to the documentation yet, so this topic would be a "Get started with scriptnode" starting point. I'm not an expert, so please correct me if I'm saying dumb things.
Feel free to contribute to this thread !HISE version : latest develop branch.
First thing first : create a DSP network :
Create a scriptFx moduleThis popup will show :
Create a DSP networkCongrats ! You've finally created a DSP network and entered the scriptnode graph editor :
-
RE: Have a nice christmas and new year vacation!
Merry Christmas and happy holidays everyone !
-
RE: Scripnode 101
Let's build a "Hello world" Gain Knob :
Once the DSP network created, click into the graph. You'll get this popup showing :
Here you have access to all available nodesType in the search bar : "gain" and click on the gain node to add it to the graph :
Here we go :
Done. But let's make this gain knob available in the script editor so you can manipulate it.
Open the parameter control bar by clicking on the little upper knob, then click the "plus" icon to add a control, and name it "Gain" :
Note : When you add a parameter like this, its range is always 0...1.
Although it's possible to leave the knob's range as it is, the logical thing to do here it to modify the range of the knob.
Right-click on it to access its setup :And change the min/max values like this, and click outside the box to close it.:
NOTE : You can access the setup of every node and parameters by right-clicking on it.Now click on the target icon to acces the "connect" mode...
... and click'n'drag a cable from the control to the parameter you want to manipulate (here the gain parameter) :
Then click again on the target icon to exit the "connect" mode.
Now, how to manipulate the gain via script ? :
In the script editor, create a generic script reference of the ScriptFX module :
const var ScriptFX1 = Synth.getEffect("Script FX1");
Create a slider in the interface editor, and don't forget to make its min/max values the same as the network's parameter (here : -100...0, since it's a gain knob) :
And create a custom callback for this slider.Now you can access the network's parameter like any other in HISE :
inline function onknobGainControl(component, value) { ScriptFX1.setAttribute(ScriptFX1.Gain, value); }; Content.getComponent("knobGain").setControlCallback(onknobGainControl);
Here I did it by script to show how it works but you can also do it within the Interface editor.
Voila ! You got yourself a nice little gain knob made with scriptnode. You can now start noodling around. :D
HiseSnippet 1567.3oc2X8zbaTCEWqc1PiaggBsCbbmLbvclRFaSKvLcXhSbhKdnNwSbHs8TQYW4XMVqzN6JmDCSuyMNCm3NW3J2xGAlgu.7QfuAvSR6lUqiapw8OLTex58O8SO8zO8z1KV3SRRDwHmU1eRDA4bM29S3xgsFhobTmsPNuiaWbhjD6YDs4jHbRBI.43T99JANqrDR+6uVeSLCy8I4hPnCDTexCngTYtzdM+JJi0FGP1mFZY8cZ1wWvaIXhw.dJ6VCEg8GgOhrCVYVIWjyxaGPkh39RrjjfbVZSQvj9CEmvM1e.MgdHinFTG0GBjQbaAKPgX0+QsFRYA8xV2IHjiau7rPYSV3FtcoAzykmmMdWsBubOryGNkJBuxEfW8mE7lAjbrfzRFHcc299wzHYtFEdtpaGNr4L.CocanXrEU5WbbaI.K3x0BwiHsigAm6Q0F2s1s8pe2Z25dUp.o9Do2w3XOiuseTcuuvSWLr1QD41CFP7kUW0nzCztpxqJTNixIdCFy8kTA2SvGwEGppLTyarfU0WDFI3.BtMDc1Xxsp7cUV474XsDhbCoLld3XIoZtXUDxb3dUdJLUYqC.LsxBY0UylsUukJRoyYKLicHT6T8BnAhkET2QHI6xqpQTkmVwaZUCFLScowhQhmoZUUc7k4XU93vCIw14CkgvVcw5mkmu5GeShwxPAuCmJ2MhjNN+.P8YTsgRyrp5tTDBlJ0UcuSZUWeFMfDinPPp3lkSQZ7aebG80c1BKwYQBBJLQQjXIUsdb1hbLPGXpmWwcKRxHoHRaa59ID84YdOMeN2s4j7AcZFJBRisO8PBCEZyP83yBwmZCWfWKpO8a0Kge5GU+9s0SFOX.Erx00KXSv+f.FomHgp1By8swYnKdDEHGDAiYXYQFCEjSUnhg8wT0QQND6I1znSSirzytLn1LY4l4l7bB2q61iJ8GNa7VZF3E1qeUi2TR4210PBkC1kba+nKkAdo46Dzy4BhYvFWwMipRCjq4lyKNKdXmu2MmGHJlDgiI6K5wvSplfCiXj8.7dauCYB+QpBxKRdDYfvlJKp5ODy4DVxhvwr7Ko6nP6IFKo7i5hAxa04kcFG1Gt41mzJEcfLmRJ5Ey3Zpwp5k9DdfdveC+RUVWM1IUY8Lk4LSncHxSDwizaGo+G1LL49DcR9ICNsNZCFSbhhNglV8B6AZY8DrIQCEbpuRjwhLjtQnXrh6w.WmR6nIQVtM1GRTS5gkCUmKTzrPgGIdM+yK.uh6QveaeJR4RVmKlUILEgZFMnukBUDPttGNFZoAtEVQJVxorEIooZSMBNiUxr95jbfRqOlgNvv3B.UMilrgFstJSWVCGTAfeU.3wj0zJleT5TxFSHK.C0CmOB47Vco7CJdKviOqK9zCl9lg9VTsvveVQ01eD4DCVSkd1Q+5MaZVHZd9KDkMFKEgPgqlLBYgikuHNPnKfil+Py4BGey6u0erto8p9gBgbHTmOMXtSymy7+xHObM28HPaMlnbgXUbawwFNVIwEDYFYSiL8ETS4Jbik51dNQSAkjd4e5PnDQU00I37pyygoQ1KBFujr21mBzrIIZD.01nMEhQgXMAxB0jh88Q2zn7ptODeLQ2grlL3l5wCDwgd2m.7DpKVqeIOX52m2GLEM2OXZWeI.g8iw7jHQBotcjmRWCacaQji4EM2HpfUpkWaX4YY2UZlIrgsvdXdgfAiKDotTq9v9y02lig6b5SfUSvtI9vhEOUIWuwrDxCoAxg0scLWbCaweINN.1W7KzkR4Ep0fhMuYY+L5SX4WUOj70ZGfu3MrVd9f6yoSqUxvXeppCos4GSXvwTMFeO3b4.7XlLSZwyYcEbQ1k84U.6QfNUN5HRgBqYtffGjBudLWxMZtGgQvIVm89nlO.5E.G207fiEIW7u+a.Ly8qOz0.WOE4f2aFOzn7aPOz3UwITf+7+O6zefKvo2vSuc68e+98qi2s75XNBw9whm3adtmhv3JZIv5lq+doq31UM1qd1mow0s1Z0TeQC5S78U0zeLjelsOMV.e9jEvm6r.9b2EvmOcA74yV.e97K0G0M9oufQU+CB5sstSTGGSGP5iBn+A.tUO2.
To be continued...
-
RE: Happy Holidays..
Yes, merry Xmas and I wish a happy new year to everyone!!
@Lindon you're not the only one who deserved a lot of t-shirts, but that's what makes us better at what we do -
RE: Arpeggiator - all hell breaks loose message
@d-healey Never seen this message.... Seems odd since you're not doing anything in the noteOff CB.
... Could be a nice chorus for a AC/DC-like song though -
RE: Scripnode 101
Let's go a bit further and create a L/R balance knob. This example is only here to demonstrate the L/R signal manipulation. Althoug it will be usable, a proper L/R balance control would need a bit more work than that :) .
How to split the L/R channels ?
Let's start a new network and add a
container.multi
node and rename it "ChanneSplit" :(Reminder : to rename nodes : right click on the title bar)
Now, add a gain node and duplicate it with Ctrl/Cmd + D :
See the cables which connect every nodes ? this is your signal flow. Follow it and you'll never be lost :D
Now we'll add aparameter control, and set its range to -1...1 :
Connect the Balance control to the 2 gain parameters :
But in order for this to work, we have to modify the range of one of the gain parameters since we want the Balance control to handle both the L/R levels.
Lets give the gain nodes a proper name and invert the rightChannel's gain values - node values AND connection values - from (-100...0) to (0...-100) :And voila again. Now you know how to split the left and right channels.
HiseSnippet 1611.3oc6X8zbaTCEWqc1Pi6eFJzNvwcxvA2YJYhCo.yzgIN+s3g5DOwgT3TQYWYaMVqzN6JmDWldiCbiy8FeD3BG3T6GAlgu.v2f9M.dRZsWs1tAGSZZOfOY8jz68Su+7SuUMhE9jjDQLxYgC5GQPNWysYetrylcvTNp1VHma3VGmHIwdFQazOBmjPBPNNEefRfyBygz+d4ZafYXtOISDBcnf5SdHMjJyj1n5WQYrcvAjCngVqd0p07E7MELQO.OEcWFEg86haS1EqVVAWjy7aGPkh3lRrjjfblaCQP+lcDmvMq+PZB8HFQMnBpInHi3cDr.EhURQa1gxBZL3bmfPNtMx7BEMdga4VmFPGJOya7t5I7x1gs+voPd3ULG7pXCuksf2DfjiEjly.oa51zOlFIylQgmq5ViCAmVXvsaCEyZQE9UG2MEvJ3xkBwcI6DCCFtixqbukuqWk6s7cteoRfqOQ5cLN1KMLtyodegmNYXo1D41sZQ7kkWb3jKp1DkynbhWqdbeIUv8D7tbwQoqQY3XAqruHLRvAHbWP8rdj6T56KsvP8rTBQttTFSOpmjTNSb5+Frm6W5of8FbV..s4.sVdQKat3cT5K0xahYrifTnxSBVfFsf8tBIYOdYMzJ8zRdiNUqVSbtTcwHwSbZU9c7Yswx7dgGQhscLpEBA87YRtu5LI6Dcei6wZgBdMNUtWDg+pR+Qo9TUVWJpfkJ04b2HMmqIiFPhQTH055tVtRjF1oUvU+qm7COG8001BKwCTFnWvVQjXIUcLb1hbLvGXRnWvcKRRWoHRu1zfIThOkl9zLhicq1OaPspg4XkddHMHfQZHRnJeuM4DZ7pLn9VDzigk4K5ULcoSnzgcklpZhC5tuMS3nLAyMcLAmMQ0zB2a51fJ86LY7VXB3EhVutwaJu50cM7HYfcN2c9lyjD8bCkokPsTZFFXeCS5PtmIwj57itY0uQwjHbL4.QCFte4DbXDirO.265cDS32sI8IjwK5iLHXC0JJ62Ay4DVxrvML+TeKSky7VFz9hdRJuccLv9BkSt61KrIb2KPQlhNPlSAEEgY7xpwpzklDdfdveC+RmrhZrS5jUFLYF6BZWh7DQbWczH8+PrP45ulah1I+3VmVAsNiINQwGPSSdgXfVVCAqeTGAm5qDYVw.jtdnnmh7v.WmB6JB.Gv76f8AGU+FXYGUYghdDx6HwK4OL+yNrq10f1OLGTvJgZVIn4ibIEf6tANF5KAtJUQrUvonEQmIeSMBpxJXNh0RNTMqOlgNzvZBXUYQiCQCXW0Rutq4P0LhAcM8JOBg8XR54.x4A3PKWHmkYjVxTWZdKeUvxwjkZqbamCaVHmMs7XPN4vQHm2oNken0UIvuu8E0wmNhLH2RRhTUWox94m8reaslcImXvZpzWz9WtcU04YdMuMZLsrdOoHDJdz7gHKbL+33.gFCGU+opSEN9t2eq+XMSNVyPgP1Ap0FELqV8ew9WD9gq4tOA5JxnkwzExJC3Ftwz1cdKIEXBtdvc7+o.uFRArCK4iQN1XSooEFPXhFGou74iizWt1HH0f9QQpdkiALcWjbh9lQMaU1PHkQkEVKXTdqg.VMUZ7+h2ot8oPS.IIZf.o7nIBrQJmlNj8eMseTjsgPzMDqu3cl5N2tMtaal7ptOBeLQ+sg5KQusdbKQbn2CHvkSp9QqbFOUvuOsOUPzT+TA64KAHbPLlmDIRHUr07Hysh8baQj834WtQTtUoNd6.GOq0ckpCDthsvFXdNkAiyoo5TqOb4OWaaNF5UqIANMA6k3CGV7H0DM5wRHOhFH6TwdiYhWwV7WhiCf3hethnhScG0miWMY925d0jKuOm6h4gcVX.FaRUe.w17iILnZTiw2CJ+ZggV7FHMe4TcAWLnW3r.89DnQ91sI4xel3AZcoD62MSxsptOgQvIVkXeT0GB8Yhiqq6NXl7EUN2Ox0DiWenqAtdJN.u2HwsKjO8t3T8o2WHXb1+b6KgpOfB7s6n3G3BTwq3oCkduYhkWFeZ9kgMBw9whG6adQCUQ+UzRfyMW+n9K3VWM1qxfmRz0c4kVFEBWW7XeeU95GC29L48rxLrmOYF1ypyvdt2LrmOcF1ymMC64yOy8ntoN8qiT47ffFaqaZzwwzrhN8G8O.e9J+E
-
RE: Clone pack EQ with different frequencies
@d-healey you have acces to 2 special clone nodes (sliderpack & cable).
control.clone_pack
is what you need :HiseSnippet 1759.3oc6bs0aaaCElJNzI1sYHcsOMfAXf1GRQ6LrSRyk0Glat3Nu0j3Ukk09TFiDcLWjHUkjah6vdXWdn+.5da+X5OfNfBzm2.1+ft2GV2gRxVRwNdNtWVrmb.BLIOj7iGd993g.gopsPi53HrQJY1toEEobdrZSta8UqSXbTk0PJShMINtTazJMsHNNTcjhRpaKaUIy3HuOu7SVgXP3ZzvpPncDLM5cXlL2vZqV5yYFFkI5zsYlQrd9RUzD7UEFhF.RRgKfrHZGP1mtIQZ1XXjR500YtBaUWhK0AoL9JB8lp0EGx8seGlCaOCprPQjJLP9UWVXnKQrrVzp0YF5UashcPvfVMb8mxe8eI7FLcV65C8CS60PtvdD0enLVb3kJF7JFEdEh.ut.IkHPZbeHcArplMyxMrEIdNGtBG1VpQ.2dTn3aKR4o3UEfAb27ljCnksgBs6vLKTnv0yA+5p2rVCtlKSvyI3aJboawm4pY+1rYx9cYyc7lpUqqsImFaggA0tqMK2os6UGmg2vbOp80y8PhQCZaCgkebeJ9j8oQ2x07W0QLTvqvYtaYQ4mTf.JvUI8+AnBldWOu+6G38UMX5T6pPbIhAN5ovgUTD4Ac.hJYfASm3RPJ2DOeg712d8MWNO7Y4UgeM2VxudsHk+lU9pst1c1aI9hr6abe2s15y1aoEyiPeYk0jCR.b.jAn0hZ6xjNBk0nOD3V9AGYvqQcNvUX4YqokfKWGJoOEf+HIv+c.3MkeoN7EGuVukonAOB68JkrZ4ypn6oT3M14JeOvm1YXKPXD5MLHtwYQRoifFfvfXgtx3StCysYTok2XTq9EhW.Wk4pUu6XbrtfQXa5sAFCDjlBudsZTM2P.NNt78d6n9Dc5mze5+.7sMD6QLBcTP.IfDpuJzGFzbt1smqsAE6wQFOueOxvpuOxPIUuNhn3.dDw3m4NhneiiuXGaMNCarsTi1rs6JZ3x36uAw0lIEg2rgoJDNqQgYmyoFxC8TFSd7je4BxxROfJkq6U3UvmfFKJKqDzXwVM1EFcGY3cdbeQYe46ZJag+2QYSNc7rLeMVt4X+4OaPRPvb5SkhjSTTPHo1sS4xoMUMHW8GiCyK1xlZQroaKpZPZNiCwzxfdW.4WO2dFBsCTYOh1YxzAIlshzhYzBTOFjbtS229ph+2qs0NqczlT2CE1G3sIE7cjxDxcjLX.P5LNAcKCCwgxTjYAAtv1hWcUEFMspK3LMYU9VzBlsxA1GqeJwYaByPFoq1vAtPg9VbUvXOQQkT6Psc7F3IvExC+.Q9aJzk2KnLQC7pMqRbqKoPZszayq0NtMDnwhaf92Rwz2+.3yzKEe4shSE4dA9wmxR.6aL+nwJN6HaUiXf1w+JJv5PNlRyaANeS0LfqNrq7d2nXn8RdnEhYxGwhSADGOJDQg5FaSr2m55DbGGNUyeOwCTxqWLI14g01k9.TUhMwjB2bUV64vksoOnA3wa5MO.43nVWUJJAKVQo6fqSOpE9VGh80gSPVK7hZvmZWK9E05ixnPv44PaWBHRav3At7P05MHGcr5JTR0kZII0QsS8.5g9aBQq0+V+.QZU4FgCpigG064G79cL+vb0w7CzrSb9m.6O.cN29ASS5ajWnB5ji58Zt+ChjJPAKZv1VG+qjRVejc.H3dPXDoZyHx5uHRKMcp.FglTZC8uPfOokRlzO4IO4UGe4Dt.d8HvJQHvsoKwP5z3ZLCouIePqCp1xw4Zk8G1vuFkiIEmiywfwKNUIcjP0I5LTc9RcDp93WTpuBUK8il+Z.UITpn8P8Keb0+5uW5GJcqFtBS3LNurV5Euozby8hiyae5yd1k6Ovft7e9bOvjB+E8lu1EmvrOsS95rkNc70zdYTFN0E9sqj96+4K2+q+WOciu9hq8hfMCUSgvsNjRPL+Po+3Q+zfnaM8oT2LsLW1Njsltzankdul5L304DHoI8dE.HoXQDedunhOEO6q9jIP8Y1D4mD4mD4mQJ4mYGdjelKQ9IQ9IQ9YjR9YtgG4m4SjeRjeRjeFojele3Q94FIxOIxOIxOiTxO2X3Q9YgD4mD4mD4mQJ4mEFdjeVLQ9IQ9IQ9YjR9YwgG4mkRjeRjeRjeFojeVZ3Q9Y4D4mD4mD4mQJ4mkO6K+jMP9oXgD8mD8mD8mgR8mA8ugcrRVou+M0e+5WYPbJnS49wTXUKClqJaedn3V3fE2wrhPbfIw6YkLPuH62IOBl2EygIQyVrav6.QFkLoWMf7B26ePCYvaHKmK7gvKe.LHSlNaWMM4ax5iJhPcuOyN.8YtAnOyO.84FCPeVX.5yhCPeVpm8Q9pFCzZkOqFnhpq6ejnRKUA4Ce3e.aPmIkC
I've set it to use an external slot. The only 'issue' here is that the values of the sliderpack use the 0...1 range.
Edit : snippet.
Latest posts made by Matt_SF
-
RE: GoranGrooves partners with AVID: When opportunity comes crashing your door.
Bravo for the deal! Be proud of you and don't be too hard on yourself. Next time you'll be ready
-
RE: Updating blur?
@ThinkTank why not
repaint()
directly into the knob's CB? -
RE: ScriptNode knobs snapping back to 0 for no apparent reason.
It seems there's nothing to change, take a look here :
https://forum.hise.audio/post/69647Christoph lifted the 16 parameters limitation and it seemed to be working fine but maybe something has been broken along the way...
-
RE: New Repitch Node is causing compile errors
@DanH It's working great ! How did you do it ? Simply load a
core.file_player
into acontainer.repitch
in a Scriptnode Synth and you're good to go. Open the controls of the container by clicking on the top small knobby icon : -
RE: New Repitch Node is causing compile errors
Wow, awesome! Thank you very much @Christoph-Hart , you added very nice toys to my playground
-
RE: New Repitch Node is causing compile errors
@oskarsh OK thanks, I thought i did but I'll try again tomorrow
-
RE: Simple ML neural network
@Christoph-Hart Awesome. My knowledge of Neural Networks is close to 0 but this is a good opportunity to learn something new. Thank you genius!
-
RE: New Repitch Node is causing compile errors
@Christoph-Hart Alright thanks, these ones seems to be solved but now these ones are showing up :
But you can leave those for now and fix them next year
-
RE: New Repitch Node is causing compile errors
@oskarsh same here. I'd love to try them out but I think only @Christoph-Hart can save us