What is the process for writing my own module (not scriptnode)
-
Heya. I'd like to write my own module for the module tree. Not a script node. Ultimately when it is all said and done, I want to write a derivative of the Audio Loop Player - I want to add functionality to it.
I know a bit of c++ but I am not at all familiar with the HISE C++ api.
How can I get started with this???
-
@Orvillain
HISE is based on Juce. Maybe have a look at it as a starting point. -
@Orvillain I’d ssy the very first step would be to analyse the code of the existing module and try to replicate it. Just a copy/paste that you can use as a starting point for your own module
-
@Oli-Ullmann said in What is the process for writing my own module (not scriptnode):
@Orvillain
HISE is based on Juce. Maybe have a look at it as a starting point.@ustk said in What is the process for writing my own module (not scriptnode):
@Orvillain I’d ssy the very first step would be to analyse the code of the existing module and try to replicate it. Just a copy/paste that you can use as a starting point for your own module
Thanks guys. Certainly seems like I need to go off and learn some JUCE properly!!
-
@Orvillain I don't want to demotivate anyone from learning JUCE, but I would not recommend trying to add HISE modules as the API there is rather old (read complicated) plus it will keep you off from being able to stay on the latest HISE develop branch because of your local changes which might affect your ability to pull in hot fixes etc.
Can you elaborate again what's the limitation of the scriptnode API that makes you go into this direction? Was it the thing with the transient detection and trying to send back the beat slice positions back to the HISE UI?
-
@Christoph-Hart said in What is the process for writing my own module (not scriptnode):
Was it the thing with the transient detection and trying to send back the beat slice positions back to the HISE UI?
I think in large part, it is because I don't really understand ScriptNode very well. Oddly enough, I'm more comfortable writing code than I am using a UI "msp" style interface. I guess my brain just works that way. I assume that ScriptNode is not limited in any way that would prevent me from doing what I am doing.
But yes, performing my transient detection in ScriptNode. I don't know exactly how to do it. I've got code I have written in HISEscript actually, and it isn't too bad. Quite performant with the Buffer object handling the brunt of the data processing.
I totally understand you though. If writing my own module is just going to be a huge pain in the bum, and you wouldn't recommend going that route... then absolutely I'll take your advice!
-
I think what would help tremendously (not just for your particular example but in general) would be a better way of sending data between the C++ nodes and the scripting layer.
I'm currently extending the global cable system to be able to send any kind of data blob, with this feature you can create a C++ node where you calculate the transients in C++, then send back an array of transient positions back to the UI for display.
-
@Christoph-Hart That would be awesome!
I've got @griffinboy 's C++ node video queued up on Youtube for later, so maybe I'll go watch that and it'll show me how I should be doing this. Porting my code over to c++ shouldn't be too hard.
Is it possible to access Hise's FFT code from within a C++ node ???
-
Yes it is. You can also access the Juce FFT and any libraries that Hise uses for FFT.
My own FFT c++ node did this[Free dsp] C++ FFT
For @ustk Simple FFT implementation using Juce (C++ scriptnode) https://1drv.ms/u/c/6c19b197e5968b36/EcVjEd7aayFHhItxr2gISeMBUD15DXs-oPHNg9Os9pYXWA?e=EW0gfm ...
Forum (forum.hise.audio)
-
Yay. This is a feature I've been wanting for a while : )
Good luck -
@griffinboy That's awesome. I best get to learning!