HISE + PluginDoctor = OP

  • Just a quick HISE (and PluginDoctor) appreciation post. I've been making some "analog" effects, loosely based on other stuff on the market. This is more aimed at beginners or people that want to learn how to make "analog" plugins using HISE.

    PluginDoctor lets you take any plugin (or hardware unit) you like, analyze it and figure out what makes it work, then recreate it or incorporate aspects that you like into your own HISE stuff.

    Obviously I don't recommend just straight copying competitors, for legal reasons. But this combination is a great way to learn why something sounds good, and then use those tools and techniques to improve your own products. My own skillset has noticably improved since I got PD, so any of you DSP guys or girls out there, I can't recommend it enough.

    (And yes the two compressor sound pretty similar).

    Note: GUI/DSP aren't final, I plan on modifying stuff so it's not just a straight 1-1 copy. ☺

    This is a quick FET-style compressor which emulates the classic hardware unit, noted for it's super aggressive compression style, saturation and frequency response.

    All I did for this:

    • Input + Output Gains.
    • Parametric EQ to loosely match the frequency response.
    • Scriptnode a dry & wet chain.
    • Wet chain has a tanh() node into a compressor node, with attack/release matching the real hardware unit.
    • Connect everything up and spend way too long on the GUI.


    Some other random quick things I've picked up:

    • Macro controls for the Parametric EQ. Analog units have complex frequency responses, not just a straight high shelf or basic notch.

    • You can add a "Circuit A / Circuit B" type of switch, just using 2 different Para EQs with different settings.

    • Some analog units and plugins gently roll off the high-end frequencies. This helps give that "warm vibe".

    • Saturation is very important for the "sound". ScriptNode has both a tanh() and a pow() node, for odd and even-order harmonics, respectively. These waveshaping functions are also what the big companies refer to as "non-linearities".

    • If adding saturation, put it in an Oversample node!

    • Powerful high-shelf boost + compress high frequencies = "air" button

    • Transient Shaper node on low-end = "Punch" button

    • You don't have to actually model a real unit. Just taking the concept of analog into the digital domain can help make great-sounding plugins (airwindows does something similar to this iirc).

    • A lot of the marketing hype for these types of plugins are actually very simple things like EQ, compression, saturation, stereo-widening etc. They just blur the definitions by using terms like "warm, punchy, vibe, smooth musical curves, etc".

    • Some companies are sneaky and have found a way to hide their DSP from PluginDoctor. These companies are very sneaky sneakers 😏

    • DSP is only part of the equation, your plugin needs a really clean interface and great marketing/support.

    That's me done celebrating and hyping up HISE & PD πŸ™‚ hope everyone had a great new years.

  • @iamlamprey Waouw! I'm myself digging into DSP, thanks for your example πŸ™‚
    What I'd like the most is the ability to use Hise as FX in DAWs, not instrument. This would be killer for DSP development because honestly, the hack around importing samples and using internal generators is absolutely not practical... especially since Hise opens more and more to DSP!

  • @ustk Do you mean make FX Plugins with HISE? Or run HISE in a sort of realtime development tool inside a DAW?

    You can already do the former (export as FX Plugin):


    If you meant the latter, I agree that would be really cool. πŸ™‚

  • @iamlamprey Yeah of course I know FX export πŸ˜‰ I mean using Hise as FX

  • @ustk Hahah sorry, had some other people ask that in the past πŸ˜‰ a live HISE environment would be really cool, might be a bit crashy depending on the daw but...

  • @iamlamprey Why do think it would be less stable than using it as an instrument?

  • @ustk I think interacting with the playhead/engine of the DAW + sending parameter info out while simultaneously doing all the regular HISE stuff like scriptnode and modulation would start to get complicated pretty quickly.

    it's just speculation but, I'm no c++ guru, and the guys over at bluecat make it work pretty well with plug'n'script from what I've seen, so maybe it would work fine πŸ˜›

  • @iamlamprey Hi! I'm trying some of your suggestions. I have a question: what is the tanh() module supposed to do? All I can hear is that at 1 the signal passes unaffected, while if I turn it down, the signal seems to pass into something like an "eq" as it becomes darker and also lower in volume. Shouldn't it add harmonic content? I am probably missing something here πŸ˜‰

    Here's the beginning of the a 1176-style compressor (no parameters have been set yet, it's just the modules)

    HiseSnippet 1875.3oc6Z0CbaTDE9NKuI9m.gDRFREyMAJbXLZjTbRXlLCRIVVAODkHrb9qxy5Sqrtw2s6wcqbhRfJnftPKT.TRCLzRAy3RJHLLjRZfRlgBSCETP3s2dmt6jNacVIN1IiuFq8su2deue2258p4vzIttLGE0wWriMQQ8Pn5cn7Vy1BaPUlurh5jnEIV1ljJysnxE6XiccIMTTUybIACpiOph2yFEuH1DS0IgjTTtNyPmbYCKCdH0ZkdWCSyJ3FjEMrhv8LklWmQmkYxZCfICJmhMVeU7JjqfErMBRQ8.y0vfybpywbhqh5nWj0nS8VraSk7ecCWikMIhA4UpCKjjbElYCAhE+VY1VFlMpEnztJJpnZglfLRSvwPUMZXzkdno3k7lPKThn1C0Q1J3kevvKeRvSMB7FUBuifpq6XXyCmQ5llmxINMwfKHJrj7pntNZVFv.km0BuJohCLnq.SMStbSqc1b4N04a1lpyMXTMF8JLN4pzoN0D2ahwm3CmPq2oZ1Lw4DuFGloIwIwoEdcmsRvonssVl3Ls1ZXy1jtLBpeb66joy9pK05HLxnySM3W0l3ONZ.RfVGLaWJMaFkTnNFkpmpk.agj52Aq36Ufecs4Ki4XgO2mFvmMwgaHzV0xj0fjIYDv3nxD2U4LaHcpuvCHHk0nsIlGOxUjt5OAXtiEhHhCntF7NQSm2Fgy4Rc3bZg6QP0L35sRFuij.dAq1NMd8KN7Bn4Z1jnyCA6nnJ2b2oRvD9UBf2u.HGxenVkalOwZ.eCZN5JFTRVcGB.sxt1WgvuMyY0oNY2Z7m7TmOLoz1gXicHKxpYh6LkKVvyBfjSqsrISe05F2kzelrsDmWTvwT5svTJwzcXR36od+ASmYr2z6X5PXpXTTtcyYWf0laPWoJl6XbGXKjqz1pNrskNYVesEnoNhH4VNNmXrHHsNg1vavifG+IyKFq5OY9fIiTWv2G4EC3+a3W8t0LLGqAXLFqBVGLZcpg4sDIRh5ePjJwIqd2H1CEJWdE.78B6KC1jXjUyHV7fMmk5xrLKKA.EaM6+6aXzP7RQpSCbHC.W.hYD0Eq5Fcqd0LQpsAZHr3R0ySENn.iuHhsFwQFxMycThoUmHhVEiqcJcIU3soCzoRgk7xL1b7FiqcQ7dPjqsIzX1lFtHm9oLBGIBBm.cCBWyCX6IA4XRynLsZ.Yc6gRxFMB5OJp9rZULLg9.0fhjbs7wUjihZ5MoaVFkrjMCp1tGPSBaKXQryJDt2F0XQdk.pd8zGLBVk4oPEBtbivpFzqK1jI5hWEem3z9jGV5xraSb54fKyT5Z118RE3sNmXK1HTP6y+Lwy2Wr9pjaKMjBpO3C9yy8QVOnnrjcEGx62lP06nzGTTRCtOs2yCKFE2O3mDOuVO3Nfy33Nf2Ai6+8K95+4j+8u3g6Ln2KDu+r2R7WEURuctv58YmUJjnctv5IXmAdGLdCZcUf2C30vaul3nAJCDxPfVePdihIAYn28Df7FEiB46cru8R+wc+3df7i57k0d4xOzOzntEiwaAcVDh6.w10vcWZagotpnhReuQEYglIj7vwzdpiOIxB9aVuI1MppDsC4fdugl22l0ZT2aEPE0wbPj7ksYdlwjdFclkcbOygQM5PwVF5tY8l7YgZ9ild+vsRnVjPi52ObqDqEAspOvZQus9O7fU9tiWxuc6VND2VsffrPmwO5UDc50e7xrKwJk5.Hf2ACb2CiLl4S+Mu.nwPWfywPepOgKitiB5wQKPLIX2Hw8RgVpz1.0aTr+XjRIh5MJlTLRoTf5S8Fu5W8v+6W8yUWPDcqzy17mtTzb0wEcDeo9Z2bRHE1gjck8FMZpNh+nNPWCxv+EHtDdh0hf.o1KaZnK.kROxcXz0bIoTzAVdXj8tkG1YZUoz82F4X2OEQqCrUk96hM3XGa1oMJr+oM1+zFC7zFc6ZY+Sar+oM1jSazSNYzpNSfJ6zIg+MR6uq4yZ6ZhNS1YJTnv4T17Ttas9yG6ZlxAOtWY3wkSNI5F30Hd26ums83diaxbrztDgRbDWNW9s3x++kzd4+1o9x+upNGfvhNXpqMykjO5J2ybEhNWYBuMMN6RRw3RndU.0KBeZkBHFgywJUCSisXv3XqTUwE.EL72KNGEurIoNAzlFW0UGTVbrZXhzOSWhWQh7QELjbgnjeGrSCvunG6lNyLTWuX7K.NB+IbWiGXW3ih3I+sH+3eo2YRGbGvs0Nd.FqaHtmp4fhRlPZphrm3xjl31l7.pwyypxnL6VLpQrHfEHbGiUVgDeywjTH+yu2kxwJEb33tjd8RW1fRvNdaqNb1h7o2VrU9qS3+uaPSTbP64iOVgLOG8wJrSjgB0Oe1wS+JHnldAMO2s1tu+9owmgvSi2gEV2gsjt7CuPTvXLOJfdS891+FGUULVKuxZxtlPnbYyoXAa6rjttHl9MA6SxxTXHj4zCgLyLDxblgPlyNDxbtgPl2ZKkQri+EZyYVx3efPs475DUUU1AjWpfx+il90Bl

  • @alepan Hey, the tanh node is a waveshaping function. Leave it set to 1, then add a gain before and after (input and output), once you crank the input gain, you should start to hear saturation, then bring the output gain down to match the level πŸ™‚

    you can use any of those functions for different types of saturation, sin() is nice too

  • IIRC the tanh function looks similar to the transfer function of some non-linear electronic components which is why itβ€˜s used as a simple approximation of their behaviour.

  • I was thinking that even if we cannot build as FX, it would be good to have inputs available even in standalone mode. This way we can always route a signal from an audio interface mixer and/or DAW outputs...

  • Is there some chebyshev function (I am sure it is not correct to say it like that) in scriptnode?

  • There is a stateless waveshaper node that you can enter any formula including chebychev polynoms in the new version...

  • @Christoph-Hart That is awesome! Now, you are talking about the new HISE 3.0 update that everybody is talking about?

  • @vewilya said in HISE + PluginDoctor = OP:

    Now, you are talking about the new HISE 3.0 update that everybody is talking about?


Log in to reply