Add/Remove "Sound Generators" at runtime using scripting
-
Hi.
Is it possible to create/remove instances of sound generators (for example a Waveform Generator) at runtime from the Javascript Engine?
Thanks!
-
@bastiaan You can't add/remove them but you can bypass them.
-
To be honest, all questions from you the last days are hinting that you are trying to do things outside of the scope of the scripting engine. It is designed to add custom MIDI processing and build UI interfaces. But you can't expect it to be the foundation of a complex and fully modulator synthesiser.
However I was thinking about this problem for quite some time and I want to expand the accessibility of HISE from the C++ side, so that you can build the interface entirely in C++ / JUCE and also use C++ to build up the module architecture, which would give you the full flexibility to do this dynamically.
The basics are there, but I need a "real world" example project to find the API, so if you're interested and willing to be the guinea pig for this approach, I am happy to work with you together and support you along the way by improving the API and / or make helper classes for common tasks. The requirement for this would be that your C++ skills (especially the C++11 stuff like lambdas as well as basic knowledge of the JUCE library) are sufficient though.
A starting point can be seen here:
https://github.com/christophhart/hise_tutorial/tree/master/ExternalFloatingTileTest
It's a demo project that shows how to use a custom interface. It's not what you are after, but shows the general idea of the workflow. You'll still be using HISE as project management tool and it takes care of the sample map handling, pooled resources, etc.
The only other viable option would be to heavily simplify the specifications of your project completely removing everything that is "dynamic" in some kind of way, but otherwise I guarantee you will be hitting this wall again and again.
-
@christoph-hart: Your assumption is right and thank you for the offer. I think we can work something out here (which works constructive in both directions), i'll contact you as soon as i get back to the office.
-
@christoph-hart this is getting better and better
-
@christoph-hart so this mean you are taking out the simplicity of using hise or just adding this to it, because I really like the way it is know to work with, but you're the man.
-
Nope, HISE as you know it will remain the same, it's just that for people who know C++, it's a real burden getting into the workflow of HISE (learning the GUI, figuring out the scripting language) and this will help them get things done faster.
I have found myself in many situations where I would prefer having C++ at my fingertips (eg. writing the modular FX chains for HEXERACT was a nightmare which is a trivial task for C++).