Best posts made by HISEnberg
-
RE: ChatGPT HISE Copilot?
Ah I have been unmasked.
So I have been working on this since the beginning of the year. I simply fed it a lot of information from the HISE docs and this forum, forgot I had it published. If anyone has a problem with it being there I can take it down fyi. Just send me a message.
I meant to share it here once its performance is optimized, so the fact that I haven't tells you all you need to know. I also figured theres a bunch of users here who probably have their own versions (come on guys, fess up) so it didn't seem worthwhile publishing in the forum.
My opinion is that it doesn't understand HISE scripting even until this day. It confuses HISE for Javascript constantly. Even after months of training it doesn't grasp simple concepts like the
inline function and ControlCallback.
(I don't know how many times I have tried to get the GPT to understand this but it constantly gaslights me on it).What I find it good for is mainly debugging or writing out redundant tasks. It seems to be okay with LAF as well but that is about the extent of its capabilities.
As @d-healey said, beginners should definitely stay away from asking it to produce code. It will very easily provide wrong answers and tell you why it is right, so it can lead you in the wrong direction.
However, if there is code from the forum or docs that you find, something about the ScriptingAPI you can't understand, the GPT is actually quite helpful at explaining it. This is where it performs most optimally, and it is also helpful for checking your code against (but always take its advice with a handful of salt).
In short it is good for speeding up workflow and checking for errors, but anything more than that is asking too much generally. Its also advisable to know something of the topic you are talking about in order to prompt it with the right type of inquiries.
In any case hope you all can make use of it and if there are any issues people see vis a vis intellectual property, reach out to me and we can talk about it
-
Free LED - Activity Indicator
Just wanted to share an LED Indicator I put together today. It comes curtesy of a script that I believe @clevername27 has posted before on a VU Meter (can't find the link) as well as @d-healey 's video on LED styled buttons
For this one I just mapped it to a gain node but it could easily be routed to something else.
Enjoy and let me know if you have feedback.
HiseSnippet 2181.3oc2Y01TajbDdEv5Xzcj5tTWpKebJW4CqHJXsB33HTjCYIAnJ.RkjNewkKJpgcGIMm22pcmErxU9eZ9P9Ij+AN8Ly9xrn0XLmOebYKaX2d5tmddlt6o6gAg9VjnH+PsJUGOOfnU4y0GM2iMq8LL0SqWGsJ55NDasmMO.GEAuToxxGwGpxpqnId9ue2yvNXOKRNIMsm6SsHmPcorbpCN3ePcbNDaSFScU3dqC5Y46012wOFLik0anEfsdEdJ4LLmskz0NFGMSqx556t81lX6I6LwbSycuzdhEYycZ7MasSS71e6jI6zvbqMs2YxVfQ9nt1Tle3HFlQhzprxy7smOZl+0dxI34zH5kND9GlZifYVR9PeGa9RjSUq8Lpi8fT7IRCPhA4n0xRz5qzOkZSynmiZegX.TtDp.XkkJZdKWv7LUMuFJlWIlTEESZEoI8k5irBoAr7Q31ymo2yiQBmfg8IUSQxq1R6uldaefCO1Ft3WQNLD9HSBCyFMpifeTaupUe5SQ6m8fNoaGTqy5cZqw85elx.b1FOiFgf+4hCBH1HlOhMifNEGApEwchPt91wNj5nKiYHJCY4G6Xi9w3HFBGgH3HpybthtjfBIAwgA9QR8.ZDg8li7AEFhlD6Ywn9dHCg9v72qiNsWmdHxUvJpNhvr1n1Zbam65EVE72f43JbHhg1G00aJ0irgUHA1NDLz+xejXwLfk6ZJ7NvyokG0UnePrT7ZJg012Mv2C9v3IpL8jZ6oJOeImr52GIhx3x1cxD9b8D4HbdDhkJXmtsa8hKF1ZbWPnFar6dH.P5PrvyQCAyMksQm1u+3i6c1QWbXq1i6ODX1D8WAA1YagDGReM.cQt9.jQ8lB1iSblvG+hQi6Nr6nditX7wvuOt+IcDyVCEYmMmaejHXCUHb5DOnaWNylaCbyMaPf1wgg.XfdNmun0pFRlhrhCOA1MbNIQwEoNr.UoYRrKQfBCkKkXZOAPPzQeeOo8Egl3GpX0qUkuG3.7bTLUXY4Z9libCE2gLAbPPrq8AWTGHxSnZJO7HvW5ukBkN9Wyyjw2gU8D3azFOgxHtx7bJdFynSmcWDoYhaA0ygaLYN84lAQnFCvDpKzZcDD7BoYpg9o0phfGGeKrSBQX1NECdfgXuoDCIs57EMDnuQC9TwkHjvhC8PRKHZCW5qKQ8.uuIam+RpUQjIyRWzzs3b2SkYiHFNjGv5Y+wy5E5D8WPFfVgXBwm0PqiRjCdK6EiMAFZlQol5Za.1i3fxy.Xz0wgFDQPWSYyP1y8vtvZW3fTDAfLOE1XiHrAPXNaneLCvCiT7vXZ1Zk6PhgEIDrFwcDNgu1elermcjQ1xiyjmenK1g9uH1hDpEfkhwJKBOb4sjgpoNfk4LIdodteZ8aLoR2RtB4wfPx.YFs+FpeLOU2zPrMkmMHZF11+ZQnCmqofpQDAqRomxAliR39PnTAiWl52wQ3VNAyvFYTlAQF7kz10pivur44nmhZxeaS4aRUVxy6VkW5.kcvUYSgJabN3xHz75.sM2YaNQSIwMUHxBiImmBoS2XBX3INFFu7lZoQIJQRKggcqmOvtmW.Y644QxQtO.HScKVt+WDwLO+CAsJpsFar0B3+cELLaVBZjPLgEInuY5GEAj1DtypvuzA9+OKuns9YgIKnNyaCTrCwW+wDTpiZJioeC+GUYb.PTESariykfOcdBFH+RVjOOz8DxDdAP4ElHJlQtCKxZXXVaODpfLC4X8sKjnNwTYBH3WkcPd5jppzLFFlvfXFRz.cBxPQC+875HRWK7G0hKx4dOw3uAQbfjzkw756qTdUB2het3TOTYpGV1TOTcpG9dl5gkO0od1sBBblKOc7FmklU.mf0EpSprCTKvS87Ue8EpYr1dKp0g2AsNLWqCKUqB0V3HPnbd9IfPE1HtaqnqhQDlnAAlnDcvMleNsvQ1PTjYs8xJbv26LeFoO3PW8mptZUXS6lCMYRoiwqYOz2wAzYYCKmsaQPCuX2KIPhOQIlYLBMeUriN82cGcpMbZIagPgQeuddTV+.h26pMTsj9Nf299dcvLLuMvDZ.eAjPFkaBU5PtBZBW1T3p5cHQuh4GH3MoYEsJ+NlXz0RaYjWgiFEZL72qqtco8Z0d6mq9wLBOXMmxKNPohUf7id6+V6s7AxIyo1XcIUsE6eE5bV1EWw1oEoaxZuqPOrbWSuHJat5kR7QqG66pI9k5CnLqYkaiKUhMB6a+RXiI2LwZ5xxvxMvUzO7e9I3ZHdb18HQcCbHGkN8etddGt2x0Ioo0g3fK.S+.0lMS0EqjKbpm2Ufi+.H+T3MA4kuyqRyaeUtxc1SPTK9CZu0+ft.lenajhs9G1F4WnCoM+UxDkcPNE54KjB4n0OK1cDjg0h.lGztfC+jnJKwOyP9cC92biXDzJr3i2BOICZx+tRxfloCpBCesDF9L8e.eEQbAVBD3OJ9F5qyEcDAZRgiOleLtw3f67MF22hAlvXnu2H9kDZpp4QDW5X3.unBTugDMKUhlEyKwh8JpZIoBbwghCAnPguGePJwlpDA2lBJC9tflNkpbr6+4655gAmhQDXka2OxB.FNNqhpChgpMEQLlpBlStoJ4iwg1vdn0skqbk6Vtx2y8l+nGb2a9uAJ6nvYpqlZixyT6BG14.U5kkIeBN1gkRsXn2o9d9Ay78nE1nGRfLFSmRJ3+T5BpEiAsPlS4qNXHwgfiTBG+yGbB0ifCAbhbOwByO3+LGkte8mzklKhmu.8a2xEW9+qKW7tG8Ao.eXuK905Pp3lHwVI5Wm8xOE0.7oXNbwVg9WXI6ylGz+XAEXc6I96.uJz+.7MxTSz6sJX5BGYbgkUQUsffMuuBt48UvstuBt88Uvu49J3N2WA+12uf7SzaEy7StLAnxlAcEWbQkJxhZDgIZ+OvkIPQf
// ========== LED ANIMATION ========== // This is mapped to the Master Gain module, but it could just as easily // be repurposed to map any other function (modulation, MIDI event, etc.) //Timer const var t = Engine.createTimerObject(); const var PnlAnimation = Content.getComponent("PnlAnimation"); const var GainMaster = Synth.getEffect("MasterGain"); const DECAY_RATE = 0.9; // Decay Rate const SMOOTHING_FACTOR = 1 - 0.75; // Fixed smoothing value const HYSTERESIS_THRESHOLD = 0.0; // Fixed hysteresis value const SPEED = 15.0; // Current Values reg curLevelL = 0.0; reg curLevelR = 0.0; reg smoothedLevelL = 0.0; reg smoothedLevelR = 0.0; // Last GUI values for hysteresis var lastGuiValueL = 0.0; var lastGuiValueR = 0.0; // Define two colors for interpolation const lowColor = PnlAnimation.get("itemColour"); const highColor = PnlAnimation.get("itemColour2"); inline function interpolateColor(low, high, factor) { local factor = Math.range(factor, 0.0, 1.0); return Colours.mix(low, high, factor); } // Cubic interpolation function inline function cubicInterpolation(start, end, factor) { local factor = Math.range(factor, 0.0, 1.0); return start + (end - start) * (factor * factor * (3 - 2 * factor)); } // Panel Animation (Ellipse with dynamic color interpolation) PnlAnimation.setPaintRoutine(function(g) { var a = this.getLocalBounds(0); var normalizedGain = Math.range(smoothedLevelR, 0.0, 1.0); var currentColor = interpolateColor(lowColor, highColor, normalizedGain); // LED Effect: Outer gradient shadow for LED glow effect g.setGradientFill([Colours.withAlpha(Colours.white, 0.5), a[2] / 2, a[3] / 2, Colours.withAlpha(Colours.black, 0.2), a[0] + a[2] * 0.375, a[1] + a[3] * 0.375, true]); g.fillEllipse([a[0] + a[2] * 0.05, a[1] + a[3] * 0.05, a[2] * 0.9, a[3] * 0.9]); // Inner LED glow g.setGradientFill([Colours.withAlpha(currentColor, 1.0), a[2] / 2, a[1], Colours.withAlpha(currentColor, 0.4), a[2] / 2, a[3]]); g.fillEllipse([a[0] + a[2] * 0.125, a[1] + a[3] * 0.125, a[2] * 0.75, a[3] * 0.75]); // Center highlight g.setGradientFill([Colours.withAlpha(Colours.white, 0.4), a[2] / 2, a[1], Colours.withAlpha(Colours.white, 0.1), a[2] / 2, a[3]]); g.drawEllipse([a[0] + a[2] * 0.125, a[1] + a[3] * 0.125, a[2] * 0.75, a[3] * 0.75], 2.0); }); t.setTimerCallback(function() { var GainLeft = GainMaster.getCurrentLevel(1); var GainRight = GainMaster.getCurrentLevel(0); var peakLevelL = GainLeft; var peakLevelR = GainRight; if (peakLevelL > curLevelL) { curLevelL = peakLevelL; } else { curLevelL *= DECAY_RATE; } if (peakLevelR > curLevelR) { curLevelR = peakLevelR; } else { curLevelR *= DECAY_RATE; } // Apply cubic interpolation smoothing smoothedLevelL = cubicInterpolation(smoothedLevelL, curLevelL, SMOOTHING_FACTOR); smoothedLevelR = cubicInterpolation(smoothedLevelR, curLevelR, SMOOTHING_FACTOR); PnlAnimation.repaint(); }); // Set the timer t.startTimer(SPEED);
-
RE: ScriptNode Feedback After a Month of Heavy Use
@aaronventure Not to derail your current conversation but but you make some excellent points so kudos to you for putting it altogether in a single post. Coming from more of a MAX MSP background I am definitely seeing Scriptnode as a robust DSP alternative, and I think it is part of what is drawing so many users to HISE.
I have been messing around in Scriptnode for over a year now and I have noticed most of the issues you brought attention to. I think the docs could use a healthy touchup. I personally feel a few tutorial videos on making Scriptnode networks would put an end to half of the forum posts we see on the topic. My personal feeling is we need a D. Healey but for Scriptnode. to come out of the woodworks.
There are a lot of functions that are hidden in Scriptnode already that users aren't familiar with that greatly increase workflow (wrapping DSP networks, the importance of different container types, show/hide cables, copy range to source, loading DSP Graphs, etc.). It took me a while to figure out these things were there.
I actually agree with Christoph about modularization, as it reminds me more of how MAX MSP operates. It really isn't the cleanest, but encapsulating certain aspects of DSP and recycling them across networks is a more ideal solution. If there were a simpler/clearer way to share these across projects without having to drag network files across projects, that would be great.
One feature I personally have been eagerly waiting for is a buffer inside Scriptnode which opens up a can of DSP worms. I know there is the Recorder Demo Snex project, which is perfect, except that it still doesn't compile
Other issues I noticed is embedding RNBO .dll in Scriptnode requires you to resave the network each time before compiling .
The IDs are the number one issue so glad to see that is being addressed. I have had other issues that I can't recall that I will post here after I give it more thought.
Also, sorry to derail the conversation further, but how do you add comments/labels inside Scriptnode? I never figured this out but I have a few projects I intend to share soon to help users cut their teeth with Scriptnode, so I want to be able to explain the signal chain.
-
RE: Change default scrollbar box padding?
@griffinboy @Gab I think you can now use CSS styling on the preset browser. I haven't tried yet but it should allow you to do this.
https://docs.hise.dev/ui-components/floating-tiles/plugin/presetbrowser.html#css-styling
-
RE: VST Graphics Design
This was quite funny, but just to clarify. Christoph is the creator of HISE, and no one does more for this community than he does, which is why we all find this so hilarious.
@AudioUi your initial post had a ring of spam, which is why Christoph suggested he might delete the post and your account. However, your content is in the right spot and some users here may find it useful.
-
Hise Snippet Browser: Date Uploaded
Would it be possible to add the date the snippet was uploaded to the git repo displayed in the new Snippet Browser (next to Name and Author)?
Small feature request but it would keep me from having to open GithubDesktop to find which ones are new. Or if it would be possible to arrange the snippets based on the upload date, that would be just as good.
-
RE: Free LED - Activity Indicator
@d-healey Ah it took me a minute to follow what you meant here, but yes it would be better in this scenario to do the LAF on the peak meter floating tile. I designed this with the idea of having any input (modulator, midi event, etc.) triggering the LED so I think the timer offers more flexibility.
@clevername27 Here is another version where it's mapped to an LFO. I included a few knobs to control the parameters (
Speed, Hysteresis, Decay, Smooth
) so it should be a bit more user friendly. You should be able to combine this with the first version in order to continue controlling the gain.HiseSnippet 3114.3oc6arsaabbcok1Fa5bwIMAon.EXfQefxgklWjrrpganL0ESDIKUREmj5ZDLb2gja7xc1tWrLSQ.xeP+EJPeueC8CHOj25qs+A8k9b64LydYFwkTzJNNNEkvll6LmyYN2lykYVeb.2hEFxCLJU9jo9LiRutY+odQi6Ll53YzcGiR+DyCX1MMt2TeZXHy1nToU1GmqzUV0P74e8g2i5R8rX4CYX7PtiE6.mINQ4idb6Oxw0cOpM6DmIJPud6tVbuNbWdLvGqXV2vmZ8D5H1CnHXWxz39zvwFktg4VarQCp8vMG1nUisFXOzh0Zy52Z8MaR231CGtY8Fq2xdygqCL4OYWamHdP+HZDKznzp2iaOs+X9odxE3gNgNCbY3CML5Cqrb383t1nHhiZzYriq8woJnPCfnGmqtVQptdWyCcrcxFOWscMwDjbLTUfktjN6shF60Pk8pqvdEvRkTXoUkrzaa12JvwOJeFjetpYWuHVvPJXmTYEIrFW5adGyNb.BunZSnOgsW.7PFFUZUudUB70Z2ob4adSxcy9PNX2cHa+ftGt8IcO5AJSffcxXmPB7mITeelMIhShFyHGRCAxRPmHxDtcrKqJYPbDwIhXwicsIeQbXDgFRXzPG2oHgFvHAL+3.ednjN.EITuoDNPv.xvXOqHGtGohfdT72UIG1cmtD1SAIpJgEYUaMAqitdAkA+MXMdJMfDQtKYWuQNdrZVALvbH.3nAeAyJphTb+HO9fPETN1ycaOmIhkAvNUsMhE0gOwm6AOT45p.ccfN4n+DuA2eJpBXgftYd3qA0LDn+DNH5KBYIDyhnOCzfKBODfYPaGlEc5hPS.v0k5qCEFUzLMj65xOUgTnQOw9eWhHPCRpcGND01WWNCBiNCbvdGcnzvxCZnhX1nUtN.CIGnDNgzINH.XQxCotwrvxArQDq3fC.uB2C.BUuV86nMXO0ACEpPl8rfqMSFN3BtCaH3JQhNkCNytvdTPGDPbvMR9bomI.1mwiIVTOh0Xp2HlXWgkH7GrcwS7ne.2mEDMkvDAJRTFfxDCShJOU+KTUT45NQrIxfn4ZuwNiFuLXzLUg8PZfCEB8DBLjWT.X+.2kASIgtN1rfvxn4vFs08fsJ.QafBNNnTk33MZOpUjX8pWq4Fx4Fm4HexX3eFCQYS0YBTS7IaknC6HWYRGpq6.HSfPEpsenrimKply13y8zlOgBUrR8QqB9QfGvZk+ikIvmhYHAH2o7WUt7RskrVHNqXgR4zJEyGqsX4RtUsXYRN24IOyp7A6B4WQpHfhbCTW2XsEKZoALlqXowJmmHglz4HQ3Tmq.k3RbHE1nGvi8rkhBrr3zQ0BinAQhP0UDvt1cH.67w91naItAJBmKgNNSl.aifYfrIKTEHi8MeMfBqeNJ.Q7vhU.hoNOEvY1i8bZKShFOWAQkEPA4r7Yd7JlH5QEHvSUQvjpjgBWr0HR9zkaQcSFKydgA0pHGqJxtUQQHwzEvhhC7HxvNg0l37rBHtP5NKSYEOvwpqZjzJBu.H6tm8KJ9RPQxGPp.zDT5hGWCT5InA+J6GUZA.zLaj0jbM3SbL0i4RxKQnrVjWvlbLjgKpGONBjuJoxWkQo7NFSjBLMriNDssGfxx8vMAgUDUfg.Aqy9rHgqtGOXB004KAOcoOxv.9DwLXRwIoIEyns6PNPcsjp3xrcTTfCTHFqRpNIAXQxyhvHI6pHKXEEFKo5jTNPvTIJYkbm6cTJgKxxdFnplwHUOazNkE9PnrPbUSwNe4SK9TjTNS3rjBPZFxhb6E+nZdhzpyH.JqOVLrrXleM4nXrJmQATaGrBjvwTa9ohvCHTi.RSXBPEHOB8K1OA38f1jp7nzsHm5DMdaW+wzJYiLFxbidvarVUB8QMeL4ljl3uZI+kfhE7Y9TbfKDa.oXSAEq+XXKffvX3lVatANXC4fsTFLJHl83DmkQ0FBr8tttN9grJO5rDodAzPNVB.aUMehsdrhRsqmGSQoMfh8.v8Jv8ZoThp1bY..ccXiG+bn+zIV8ZqOiAYIUOMZVf9IYvDPjVgVoOnph5vPOWgSpK72uKtTq+cQcLC0Zr.8gc.8zWj5ipjlhn4eURpYLX.50.67wVJJeyaTNBUIhpFxxGlE9UM5KB+ArgXug4crLSDOHKLgngSOT4uXjxBfi33ynOIq6hzEUknY.zKA.wJjPAmgjJJT32nzZyGTTItoRH9QsKnbZHMMeEg4FxJD3ab27JSR.V78r7SOE9o2xyO8T4mdmC+zqP9QohXkd2VTNFALUyEyhRwLCQ6sDDsWNQ6M27VZUGDv7whCfroDgi7MtY1gVfNxISKaQTTlQV3v7PgKiW9BWTbI6KJDJqR5xEUxsRcsOfGwNBHOT95UfxfHmcpgCKbtNoMYFT3zxUaAHVwKdx.VfRwyB.MJsp9ArYN+CXS87+rjETq.H2qqmSzQ9Lu4cpfFIUgimOXBWAfFINJt2L4n35K5d1vw1nzaYp0gngfwSOKz+9e4a+PikfHW0LqeLMB7292U9lkh.kMSamQC+u9tkq0dowWzEgF9j+59+Sk0eUI9uQB9mfGrf.8KaJ9cCcoG+.8uQMJsgYqaUS+ySO5fG9r3sZswuczlcDOCeM7Cvo1pyWbRqwGYrLL9qiL9AC46Ev9C5q9Z+92pswG2cGjALJUJwpdr7bXbPmnR6vdpiESdJqWwbGV3Sh39FkdsrlufeqKxhVADK7aZptky3YpB8T0GFyvP74i7YsUNlFT.Vu4VquU8FasQKi7YjSb6FsZsws23VnpHikLWZewbl5qYs0XpH1yhvkPA3kaIT8TmG42usj7W1LAPURekkwGddT9SaOQ8lJp0dBUQw6.yZa6xNlG5HLJYyzMgidMSI8sYCowtQOT2aUrUYIzAJaVlCi1dP1BJgyX9tTErKZdNSNsO0wFzmkLK8mU7rLK86fm7Sig0EH06Y9PFzxrSzTkCQUiKt5xskJmUZqYIbRDv2xDySgfFy7rlZnYe9Genl8Ym4Ze9ksCiGNzAf0zjb+uTWVtlo9YAa3SCnSXfeaWgCY9haL6kmbMyLDUuKGQAcY2sf1Enfo+8.Fbp5Mh8B6BdVVV7sMO1IxZbw73kJfGgXbeeviIWK1aXJaCNmAW0buO8kvcfc4rawzYhuKa+zk+0MyubgEbWlfSGykpol9D4Vn7vwEbamc8dJjj3XnFvfypjWYokxFKVJWco8DD2r1qzdquioPM+pNSJL8uZyjWyDJw3GHVTdBliNjFEHBE+f3I8gRQrX.64A08f0cW5RXExxmqiOiLQelms3g+C7IYxF3ykRlrQ5jFyt09matuKe.0MWY.UpApCl7dt+EISmm.fjAPiEry+aW12hA+k9sX36m89uZ7hGrr9m+zYLGguDcQ0RM71R1zDKOHQSclBENWF6dNXe9A374UQnz+.5UzM2op8ep8mPeJaHOXRRSCYT5.1HXMUG4DFTqU+odVpNf8SOx.ces2s8Abt+tdX4e1pD43wzPrY6PVjFY.xdBWlArCTm2SzRdMxiGvjMvqNdm3vH9jTAP7d3zOh4KZPpziLu050T5.C9p0QuXd94ovjyYeykVZuTzSHyji9DO+doqtbdoK9cLx34hiybB+Q.GuvJTW4+oqP8kclx2WJhW0D27JdYYDB36YltYlrOCRGNaPuK3K12xmR7HqHfENIf5EhuKWMzBRwl3bBzsYn1nmAilEhQS8J3ih8zIsbHMnPUwdfpPAtK2NcvlpCBEXoQL3YMJcnyyTagUFUtOCjb6iBs.ECpm0BRG6FxD0V1PEw7gapN78oA1mMsvYqrX0kKB4O5d8F+QPC5Z4XtRJOJ69bWnsPWNLRZOOhSQJcT8sdGx839i4dNZF5dLHhwnQLM+mBEnsihnp40e218XtLnZ.0SM4.nJXZ.nmXWPcQim62F0BsW+LSI6JtXie3avJoyhxYGBVR3xhNSrykC+3Pl7H5zrX34CnVpFFSxxY.yU2X.wWSVSAM146vog+Byp9+Sv+BLNEjr3U6CT38MgjVMIBSI4GFa4KipkdYrFSnVA7OO48nECOdYwHfb6I9O1vULODelTv0fMARt94VV5jZFDadQQr0EEw0unHtwEEwacQQbyKJh297QDq8Y6Xn6X4dCnFvi2UFqtTVS4kVw3+hOyOXl
-
RE: Ring modulator below 20hz
@Morphoice This is how I got started with it, though I don't think it is the greatest tutorial series I have watched: https://www.kadenze.com/courses/real-time-audio-signal-processing-in-faust/info
Romain Michon is the GOAT when it comes to Faust resources so just finding his course lectures and online material is good place to start.
-
RE: Ring modulator below 20hz
@Morphoice Just add a faust node inside of Scriptnode. Click the square box on the node which will open a scripting window.
Put this in there:
declare id "ring_modulator"; declare name "Ring Modulator Mono"; declare shortname "Ring Modulator"; declare category "Modulation"; import("stdfaust.lib"); freq = hslider("freq[name:Freq]", 240, 120, 1600, 0.5); wet_dry = hslider("dry/wet[name:Mix]", 0.5, 0, 1, 0.05); process = ((1 - wet_dry)*_,(_*os.osc(freq))*wet_dry);
Now it should operate just like any other node in Scriptnode. I am not sure if this snippet will work but here you go:
HiseSnippet 1303.3ocuVstaaTDEdVmroDS4RAd.V4e4DEbsyklVpPIMNwfEjTqtgnJg.qI6Na7Hu6LKyLtIFD+mWg9O9KuE7nviPeCfyYmcs23XBMV.NRal4bYNey45vtxvDgrv9ZAOMkYHDmk5ojALsVpHNUOcbJi3beW+wByf1CnbAo6gDm228Xp1vTdVRGLNkp0rPhiyReARvY0kIY+dydGPioh.1TRDxYRd.6q4IbyTp81+q3wwcngrS4Ikjd686FHEskwxQ.dVxsIIkFLjdA6DJJVEWxWR0CHNq69jc1oEMLZ2nVa05ImGFEv1Z2lOZ6c2jtyiih1sYqs2Jb2nsAPtxQgbiT4anFlFNzCjgi8GHuTXMvYbM+7XFtoEwGrrkLo8.db3DmiFbUKWxUsj0U8ItGyC4SnO0k8gYL7lpQYmlSkaCRstCPxoDjV1BoG35Gn3olobP77ttcEPDLhBwlxPwJKw42caKAADlFIzgrNJXyDEp+nlM2vC9r1SiFIBLbovSJNQZXOWTesp+T0Uq9yU8lkUTzb4glQIiiYp4xFSGT2lh0EiRNmo1v6Uz3QrIBBW+q6SW4symFXu0kDTJ5J3lmmxx22QFGh9Jb8Mi.jb2Fr5a5dH0PwfRNMPtTlxvQ33bH6UPYfMDsp6gL8PiLEJDtQ7CxbjgiholqmNgEZ4L.+w0hgXfRn4lwkKDuC4XMu0br2VH9.2dbSvf4iwJyAifm5+BLlWY9dtGEEwBLSA3xtcd4hVF17NWFVMuLDrIZ76mu0qyKaM2BvewcZxdphkRUrSk8hoiqqoIowrW.XbCuyikAC84+H6lUHoVHb.JQ8fATgfEqWjBoU9Wp4D4ExQFt3hioFE+Jhi6IiR7g95Ar14nCn4TAqgr6ah6w7BeXHU1l+D9kyrEt2ImYqBlkJ+NgYtTpFlENxWSbtG56+H2WfvPF1OOjbE4YwwxKaKSR444pPjHiVOY73zARAO.IYkn.uOKQNBLUNngAQmR4wXxs+HMztH74BeP3roeNKcFSoyN3641rA7GjrehLDXsRGZ.3dG2iZFfUMXGHHEkoZDLIUcNHtbNicX3bDBsPwvSqqDtAIn+AGclMqunijMoE2AkjUronc0mgbCnwjyvjB7tkclVmpE9nn2yMhNRaHW6pbe3pnXMrbtIbKz4NgwJyfwUcaGCma2vB.tZgSHqGPYQ+.LeqGUAFGlioKTvZRRIFnUJ1A2ui4hhydRipioWMCs2rmugkhUh4z90W+5eaO+grKs9jxRZAdnZ7CuDdx0LGzerG41s92u+Ms9q2eFqmcP+8VeE2HE6Gl0zh8I9Wh8rOkptfYzy3VHGHkCSnYkTK1vs+OZ.jPCTx9A1dZXv7cxn.IRhrztUg2tB68ZQd0rQ0D3EZ8CBt9QcCE2bQUbqEUwsWTE2YQU7QKph6tnJ93+YEwGP+rQFYhsCMTE16nrjPGmiDTXDTVyEBClhEBuPy1DDyUmPQvtpCzQNq6UDGmYUA+mEIersezCy6ezHTmV7ZPRktNtgrfXXHrGOzyyqlBjpeRwqdp8zpErwCyqFdHdSdTDrRHKIidfTYlmfkjI.l1dAzK0q1zWPArqxSRAkqWSaByvaiX940VCXfUzdet2.cLODdxbMb+2hF4y5.q9tZa3s41vy1asI9I6E7MarCnHzCpOzKprp4slrZeL+JTYPX3CnJtrIpX07WX.ZVudKuO0K+jVa89aTu+5RcCoNnNBi0Va8BdOkP9KFTBC5A
Latest posts made by HISEnberg
-
RE: So, my DSP Network works. How do I get it into a Pedal?
@Morphoice yup, check out daisy and/or bela. There's also examples of Faust on guitar pedals on their page, no need to use HISE for this.
Also congrats!
-
RE: Reference Multiple Convolution Nodes in ScriptNode
@bendurso I hope there is a better solution, but you could compile a different network for each convolution you are using, then load those into a scriptnode and use a soft bypass to cycle through them.
Definitely don't recommend this if it is a lot of Audio files though.
-
RE: Change default scrollbar box padding?
@griffinboy @Gab I think you can now use CSS styling on the preset browser. I haven't tried yet but it should allow you to do this.
https://docs.hise.dev/ui-components/floating-tiles/plugin/presetbrowser.html#css-styling
-
RE: Compiled plugin with Faust not opening
@Morphoice @klaytonrangel if HISE is operating properly, the scriptfx will work just the same as the hardcoded fx. The only real difference as I've understood it is that the hardcoded fx slot operates as part of the effect slot (or Slot Fx, I can't recall right now) API. It's designed to swap effects networks out so you can rearrange their order. Other than that they should both compile the same in your plugin. If the hardcoded fx is working better for you, then I recommend just sticking with that.
-
RE: Compiled plugin with Faust not opening
@klaytonrangel scriptfx can be compiled in the plugin, I've done this in the past.
-
RE: Compiled plugin with Faust not opening
@parabuh Update Faust! I was working from an old version on my Mac so I had to run an update. Sounds like we had different issues. Do you get errors when building different projects (is the issue project specific or happen across different projects)?
-
RE: Find out how many bands my EQ has
@Oli-Ullmann This is not an exact solution but the EQ broadcaster example might help shed some light on the matter
-
RE: FAUST physical model works on IDE, not in HISE.
@Mighty23 Yes it doesn't work here either. Do other faust sound generators work in HISE? I only ever used it for fx processing so I am not sure if the node is designed for sound generation.
-
RE: Limiter or Soft Clipper?
@treynterrio As @orange says the best method is to gain stage within the fx chain. Test it out and use simple gain nodes when you think it is appropriate. Say you have a waveshaper and the "drive" parameter is adding 12dB of gain, then use a simplegain and offset it by the same amount.
Adding a limiter can help but you should only do this if it is absolutely necessary. There is a really great faust limiter I like to use a lot https://faustlibraries.grame.fr/libs/compressors/#colimiter_1176_r4_stereo
And there is more in the faust library you can try if it doesn't work for you. You could probably get similar results in RNBO but faust is faster to implement and well-researched.
-
RE: Making an FX Plugin, not an Instrument Plugin
@HISEnberg Oh and I forgot to mention, one of the hardest things to do while developing is to actually step away from the project. It is easy to become obsessive over solving something and over-working it. Once you get to that point it can be very beneficial to just move on to something else. Often times in a day or two you a new idea will come into your head on how you can solve that, and with a fresh perspective it becomes much easier to work on.