@Natan If I understand what you want, i.e., duplicating a Scriptnode network and changing minor components within it, this has been my strategy in the past. Simply duplicate the file in your file folder (YourProject/DspNetworks/Networks/YourScriptnodeFile). Rename the copied file (NewFileName) then open it in a script editor. Rename the "Network ID" and "ID" to the same name (NewFileName). Save it and then you should be able to open it in Scriptnode with all the same properties.
Best posts made by HISEnberg
-
RE: Moving DSP Networks Around
-
RE: Distortion
@pelle There are plenty of options in scriptnode already using the math operators (like tanh and clip), as well as plenty of faust code for different waveshapers like soft clip and chebyshev.
-
RE: Reducing LAF scripting redundancy
@d-healey & @Lindon Thank you very much, both of your responses have really helped me explore the possibilities here. I am pleased to know I can use the text property in this way, and will definitley explore this more in future projects. A lot of this particularly UI is already laid out so I am settling for bypassing any text that is not the exception cases, and employing it for any cases that call for customized value displays.
Example based on Lindon's edits:
const tempos = ["1/1", "1/2D", "1/2", "1/2T", "1/4D", "1/4", "1/4T", "1/8D", "1/8", "1/8T", "1/16D", "1/16", "1/16T", "1/32D", "1/32", "1/32T", "1/64D", "1/64", "1/64T"]; const filterModeLabels = ["Lowpass", "Highpass", "Bandpass"]; const LAF_StandardKnob = Content.createLocalLookAndFeel(); LAF_StandardKnob.registerFunction("drawRotarySlider", function(Style,Widget) //... if (Widget.text.contains("FilterType")) { // For FilterType knob, display the corresponding label displayLabel = filterModeLabels[parseInt(Widget.value)]; //For TempoSync, display tempo sync values }else if (Widget.text.contains("TempoSync")){ displayLabel = tempos[parseInt(Widget.value)]; } else { // For all other knobs, display the value displayLabel = Engine.doubleToString(KnobValue, 2) + Widget.suffix; } Style.drawAlignedText(displayLabel, [Area[STARTX] + LabelOffset, Area[HEIGHT]-Area [HEIGHT] +6, Area [HEIGHT]+LabelOffset, Area[HEIGHT]], "left"); //...
-
RE: Mac Installer Advice
@FatMitchell Yea I managed to figure it out eventually. The problem really is that if you don't incorporate certificates and notarize your product, then it is flagged as malware making it difficult/seemingly risky for the customer to install.
-
RE: Codesign error on Mac, what am I missing?
@d-healey said in Codesign error on Mac, what am I missing?:
Yes your video helped me out a lot previously setting up my package installer, really appreciate you sharing that.
I still don't know why but I was having one hell of a time trying to set up my certificates and getting it notarized, terminal kept failing me (not acknowledging my ID's specifically). In the end these two videos and their extended links did the trick for me:
Certificates:
https://www.youtube.com/watch?v=m097IHT7v0QNotarization:
https://www.youtube.com/watch?v=GpdN97OX1Z8@Mors the notarization video may help you in stapling if you still haven't solved it.
-
RE: Auto Gain?
@Straticah I think you more or less have hit upon the best solution, and this sort of issue isn't at all unique to HISE. Understanding the gain added/reduced by any one particular effect, sampler, or synth in isolation and compensating it with a nonlinear gain node is probably the solution, outside of compression which as @ustk hinted at, can squash the sound or introduce unwanted artefacts.
Personally when working on FX I'll introduce a gain node in my scriptFx chain which does precisely this. I do agree that it would be nice to have a meter node which could help us analyse the gain output at any point in the chain, but at the end of the day you have to trust your ears!
-
RE: Combo Box Dropdown LAF
@d-healey Sincerest apologies, it is totally possible I had completely misunderstood! Thanks for you help
-
RE: Combo Box Dropdown LAF
@clevername27 Thank you for putting that tutorial together, I had some fun with it a while back! Unfortunately, it doesn't show anyway to stylize the dropdown portion of the combo box. I think it is as Mr. Healey is hinting at, that to edit this portion you need to go into the source code.
-
RE: Multi-column comboboxes
@d-healey This is great. Can you tell us how to populate the levels with an array? The traditional combobox method doesn't work here and I tried via scripting a few different combinations but I haven't been able to figure this out.
-
RE: Upwards Compression?
@Straticah You might want to try something from Faust like
si.bus(N) : peak_expansion_gain_N_chan_db
I think I have implemented something similar for an OTT but it was a while ago. If I find it I can let you know.
-
RE: Faust Effect Delay Time Sync
@DabDab Did you change the minimum and maximum values of the cable_expr node? I typically don't do this. Let me know if this works for ya, it works fine for me:
HiseSnippet 1866.3oc2Y07aabbEeVQMTlxeTmBm1hdhGxA4.WARYW2BzClVe4HjPIBuxx9TMFs6PwAZ2Y1t6rRhos.9POj+BBfu0iIWx8byG6AenH+E31yAHNmxk.j7d6tjbVszqHoUrSKMfgl27l48684Lya6Dpb3QQpPhUsc6GvIVWhZ2Wp6sVOlPR1Zch0UnsYQZdX8TRq1OfEEwcIVVUtGRvp17jjeu7Nqx7XRG9HRDxdJgC+iD9B8HpcZ8gBOuMYt7cE9FbeqVa4njqo7Tw.dpPaPBXNGxNfuMCYaNJwp5FtBsJzVyz7Hh07qpb6a2ScrLk+8DQh8833flDaXiRIuoxyEQLRkrVOgmamA5cDgXQ6LxJTI0JbMZagqXH8QViqlLQ8QqvzdXMWd3UIG7Z9pf2XfjkAjlOERuC01ITDnGMChmKR2RBNmtLvraBkTdIVOitlBXPpW1mcHeyPXvvErzsaz3F0g+65+otwRGsPIqqjaqz7cjKc8E+qKVaw+9h0O8Tc6N14PwDp773gicZzSGV1BWRF6uOO7F0Oh4EyGxHn94soUmLapSpVavnRtkTn2IfmMt7fBRlYC9qGr05LMCcJYz.9B3gZABGq04GAQ3otnZz04QGpUAPLdA+GD4nbi8X57gSXNT1Df8HmODcTxHgtuYN1TDi0nzXrIEhuCsiP6za7XbtwfQvR8SAFyxLuLcitc4N5Q.bd5lOZVSCaL0ogKlkFBxDE9kxFVeyG0brIfeBcTvdPHOfEx2U0wi0eoHlefG+9.FuQ888TNGZK9XdwLjfTHrJxwRN8XRI2KZVRjpdNUbhbeUrVHOnMSGJNAJetcruMTx1guVF5.ZVyg4Poiafiw3BatzMYvO.+xlrIN1JaxlClzH8aat9XU3gItir+lXs.Z6qQuWHueOkG4tddpiWS4GHxBQAGPBsNJu9A8TRgCRJkiAv7t9pXPBYX8CXQ6xDdXLscbDTkvcGoMvbx4YVU1iGFkrwKParL7OHFeakKLU0MYNfUseGltGlrfEdfHSd3xNCiPGATyHDb8CNrK09.3yGUZ7nNzyzgEBm7AUqwBMyYUwnvSZrINBx7lKMRbqn8vYcXdj8PeOtHBJEj84SgKMkUM2OP83n9RGRN7esD7CQQKavwjC57PjLplwtrvC35nrhnRtSpWJwFtkKhHGFD78X9IAgjgpMNyBzTcgXXL.sY3Hfi1BYl9NpDTa1Imh1Jsr07.LGyrbp8g7iSs.lTQizBzcQS.ovVe2XsxGxgRp+QL.R0h.4k2oHPZLk.4Rz1wdZQfm.DRg8mL8VBPXSE.pQ2PhdG2ovVLYP4y9zSaK9mO8oeYIP4JzGHwXRtaxUGOkDDsximbg7FAXuhPdCNl0Pdq4NUVYU39WtCA5koBYPr98gBHMZlb5lIuK.WeX+3CFl7VYJRft.0WH8YmLIIOVmOgLPI6RRdR2fyHfwvAMTAx4bt5PmS1ruApEs.sKKNRm2RdQpKGNzNIpKu0r5OarlupRQe+m+seU686bmWefTCd8iT3G6SJr4mQgv7lgal766ldoyNIuzGrQkI8jRJE082q0DI8mU6Ie0cRyjw4Ju.b0eZ7+fnA9K59OmDcY09WjBWghEhWvun3MReGjzjK6EJ5pB4KmNy4VI0Zz07fcZqgGGcE5AoWuhiWZoPY0eAdAUiT1rUkJ274xKTRt7yKlB8mu9XBhew+81+1RLnlERL29Wfa+zb0hBd2mbsu3aJ.FbWKKixEdDBbW9oN15EiIi5BslNSQUZDx6qcF0XU7yzKH51MN4J8EzryizpV+mO9eTZZUWN2celyg4D+yd9y+5yEweF98Eo9J204APRZgJkyf3KTJ8Lz9Zn32Lj+WJD10hXeL1sggmQmO+rhI1RUDLQpaHmSlwKbVRo2gK8V27l1+p+0eqk4EFJ6sLFucJ2kHN0sWIiWarw0M8uoI4Y6kqGoDZ9ZqGCdZTAE3hoSLEZfYj6DqA4g7rnAidRCYUk5PeVRCFdsa026lN4EoOjcDOoO5Iu++cSF2UE5W+dbIODavVyR5j9+dR6jdvD2I8cbz.D1MjIiBTQ7ll67olaEy4Vmqik4YOkTNtP0aSP8ZZdXv.hqXRrCSlayfw41o1XGkFUJN0KYyAswcmHGPYYmJznSrWD+gBWcullKbD4ULI+ArP2jnSyXoJk8QEdkMFKeiaM3eL8Qr5aguvv4S2eeK1f5bces1.LZKvtltg7HtGjZlfweIjKB2wzSOfZ9bq1JoZPO.G40uOWGJN3.d9CmFmBcWsFOmdHkq059bONKJ2AfejPxYgsStP7LYKl9OHzX8W+FZJbqiEDp++teXgJ+e8GVXxy9f5g+71K9qoPc4Upm3Jq+1wW9l36Q7lPF9LmP0iyZ3ElzegDJfdKS9.3X+Ofw0aRNJ6Ir32hf3CGW7XGGLd82Am9L90rxLrlaNCq4VyvZ98yvZt8Lrl+vLrl+XoqAOoN6M6XLOPnyFI2fzxZv8Kw139i.LEPYI
-
RE: Faust Effect Delay Time Sync
The tempo Sync Scriptnode should work fine for this so long as the faust macro is already calculated in seconds. Best practice I found is to link a minmax node between the two (and make sure your minimum values, and skew factor are the same). You can create separate macros on your ScriptFX network for the tempo free, tempo sync, and the button to the TempoSync Scriptnode.
Then you will have to do some separate scripting on your user interface to change the mode of the button for timefree to time sync with a button.
Hope that is clear!
-
RNBO node for Scriptnode
A personal request and I just want to see if there is any interest in the HISE community for it, but I personally would benefit greatly from a specialized node incorporated into Scriptnode for RNBO code (similar to the Faust node). I understand they are completely different softwares so it might be a big ask of Christoph to incorporate this, but I just wanted to bring the topic up for discussion.
-
RE: RNBO
@sletz Absolutely! I was really pleased how fast the faust community put this together. I am currently working on a guitar pedal with RNBO and Raspberry Pi so I will definitely be including some of my faust codes! ;)
-
RE: RNBO
@sletz I think it had something to do with the version of RNBO I was using. I updated and the issue was solved!
-
RE: NEATBrain Writeup
@iamlamprey Fantastic work, NEATBrain sounds very promising!