Okay I solved it.
I think I'll make a whole video about this process later for any noobs like myself.
Best posts made by griffinboy
-
RE: About C++ Nodes
-
RE: 3rd party Header Files in Hise?
@harris-rosendahl
Haha, distortion: Some of the most complex dsp out there.
This is on the to do list, I plan to release a video and some templates for this stuff, but I am currently tied to this very tiring dsp project which has a short deadline.
Once I am free of it, I shall create the video and release the resources.If you want it sooner than later I can make a rough guide and put it out there
-
RE: More Types of Saturation
@Zazzi
Use scriptnode, see the 'Snex Shaper' node.
When you create a new file inside the node, and then expand the node, you will be able to edit the code, and you will find a function which has a statement that says:
'Return input'To create your own waveshaper distortion, you simply need to return something other than input.
By doing this, you are manipulating the digital signal, which causes it to distort.
Here are a couple of algorithms that you can tweak and experiment with:return ( 1.7finput + -0.5fMath.pow(input,2.0f) + -0.2fMath.pow(input,3.0f) - 0.75f(Math.pow(input,2.0f) - 1.9f*Math.pow(input,3.0f) + Math.pow(input,4.0f)));
return 0.6f + (input-0.6f) / Math.pow(1.0f+((input-0.6f)/(1.0f-0.6f)) , 2.0f);
If you want simple digital distortion, I recommend searching for waveshaper algorithms such as these, and experiment with different ways of implementing them.
Things get fun when you have multiple waveshapers mixed (wet/dry) one after the other, with different lowpass filters inbetween the waveshapers.
I recommend watching a youtube video named 'fifty shades of distortion' for some inspiration.Edit:
If you are wanting to emulate an Analog style saturation, things get much more complex. You have to start using some really advanced maths. I am currently working on a tube circuit model, which I'll release here when it's done. Using that, you could recreate the circuit of different tube amps and get an accurate distortion out.
These typically sound better than waveshapers becuase they react very dynamically to different volume levels, which sounds very lively. -
RE: Detect if the plugin UI interface is open or closed (bypass code when the ui is closed using broadcasters and listeners)
@griffinboy
For those who want to see the working code: -
RE: About C++ Nodes
It's in the works!
I've spent two months diving into the source code,
to find the best practices for writing dsp in Hise.
It's a deep rabbit hole, but luckily I'm getting close.I'm looking forward to releasing a lot of freebies and sharing my templates.
-
LAF for the filter display (floating tile)
Not the most pressing feature, but it would be great to have 'look and feel' enabled for the filter display floating tile!
Currently you can only use LAF with the Draggable Filter, but not for the Filter Display.
-
About C++ Nodes
So, I've set up a c++ node in scriptnode (tools > create3rdpartynodetemplate)
It's all working and I can compile it in HISE.
But I'm a little confused at how I can debug this! I can't run the code outside of HISE (not sure how this would be done) and the console out, as well as the juce commands for printing to console don't work.
Hise gives me an error reports when I compile nodes that have issues,
and from that I can debug,But I've quickly reached a point where I need access to better testing, for example I've been trying to fetch the sample rate and I cannot tell if I've done it right because I can't print it.
Perhaps I have not set everything up properly for developing 3rd party nodes? Advice would be appreciated thank you!
I've got the node template all set up in c++
My second question is to do with what I was attempting to do in the first place, get hold of sample rate to keep track of time as each sample is processed. Very Important a lot of dsp I should think.
-
RE: C++ Node not appearing
@griffinboy
I solved it.
The solution is simply to compile the nodes as .dll and then they appear.Do this from inside HISE.
Go to:
Export > Compile DSP networks as dll -
RE: How do you get the sample rate in SNEX?
The working answer:
// Get sampleRate inside a snex node double sr = 0.0; void prepare(PrepareSpecs ps) { sr = ps.sampleRate; }
-
RE: ScriptNode Feedback After a Month of Heavy Use
@HISEnberg Yes! I would love a buffer! Insane granular experiments would ensue
-
RE: WDF Model is not working in Faust
@resonant
Not sure sorry, but I do have a HSIM WDF model that runs natively in Hise which I will be releasing soon.I recommend using gpt to explain concepts, rather than write code. Once you understand WDF, you can meet your goals yourself! Gpt really struggles with any big task, but it does a great job of teaching complex concepts.
Especially if you can give it a large technical pdf document, you can then proceed to ask it questions and break down the technical jargon.
If you need help with WDF let me know, I've been learning it myself the past few months.
-
RE: Building an effects VST - Idea on guidance
@HISEnberg said in Building an effects VST - Idea on guidance:
Let me know once the buffer project is up and running
Sorry about that, it should be done quite soon, I just wanted to make sure it was robust before releasing it. There was a method I was wanting to do for a while, which is to fix the number of channels at runtime, so that the node can support arbitrary channel counts when loaded into the daw.
This poor guy, getting notified for our conversation, I should create a new post haha
-
RE: Building an effects VST - Idea on guidance
A github repo would make sense, I didn't even think of that!
I'll probably just make posts whenever I create something new. These are custom nodes and so they can't be shared via snippets, but luckily it's quite simple to import these nodes into fresh projects.
Hopefully these will extend scriptnode in a positive way, these are meant to be more indepth modules, and some of them require programming to tweak, but I plan on making it as easy as possible.Things that are currently in development:
- Customisable LUFS calculator
- Efficient RMS calculator
- Two stage autogain module (based on rms + lufs)
- Nonlinear Circuit simulation framework (based on WDF and HSIM)
- Tape simulation (based on Chow Tape)
- Accurate low distortion compressor with auto release
- 1:1 Accurate Moog Filter
- Efficient Linear phase Multiband with latency compensation between bands.
- Personal C++ custom node template
Many of these are already done, but I am working to integrate these better with Hise before I release them : )
-
RE: Building an effects VST - Idea on guidance
i've made my own module, forget the recorder node.
Circular buffer means that you can record infinitely, and the recording will loop around and start overwriting the start of the recording when it reaches the end of the buffer size.
This means you can create programs that constantly record, meaning you can have functionality such as 'save the last minute of recording' Without the user having actually pressed record.
I'm still working out how Hise manages the saving of files for the node.
This isn't Snex, I went straight to c++ this will be a node, in the same way that the original recorder node was.
-
RE: Airwindows again
That's quite interesting.
In a month or so I'm planning to release a simulation here myself, for the multiphysics simulation of nonlinear circuits. -
RE: Building an effects VST - Idea on guidance
Hi again,
Apologies for the late reply, I haven't had a proper look at it yet, but tomorrow I do have some time, so I'm likely to create custom c++ node(s) to accomplish what you were after.
I'll share with you the result.Progress:
I've cloned the behaviour of the Recorder node.
Now I shall extend the functionality and make it robust.I'm going to add a sample playback system, and an adjustable playhead. As well as options to overwrite the buffer, and do 'sound on sound' using the buffer, as well as an option modulation output (following the waveform) as well as a circular buffer variant.
Do you have any feature requests?
-
RE: Universal HISE Downloader/Installer
@Straticah Would still absolutely love this