@David-Healey Oh... Didn't see you opened a thread precisely for that matter...
https://forum.hise.audio/topic/14770/compiled-network-fixed-channel-count
Posts
-
RE: Recent commit to Processor.cpp breaking old projectposted in Bug Reports
-
RE: Recent commit to Processor.cpp breaking old projectposted in Bug Reports
@David-Healey Just tried by curiosity but it's still half dynamic, because you still have to hard code the number of channel (
getFixChannelAmount) and recompile the DLL...Weird there's no way to get the hardcoded FX to actually fix the number of channel in the function parameter, @Christoph-Hart?
// ==================================| Third Party Node Template |================================== #pragma once #include <JuceHeader.h> namespace project { using namespace juce; using namespace hise; using namespace scriptnode; // ==========================| The node class with all required callbacks |========================== template <int NV> struct MultiChannelThirdPartyGain_custom_node: public data::base { // Metadata Definitions ------------------------------------------------------------------------ SNEX_NODE(MultiChannelThirdPartyGain_custom_node); struct MetadataClass { SN_NODE_ID("MultiChannelThirdPartyGain_custom_node"); }; // set to true if you want this node to have a modulation dragger static constexpr bool isModNode() { return false; }; static constexpr bool isPolyphonic() { return NV > 1; }; // set to true if your node produces a tail static constexpr bool hasTail() { return false; }; // set to true if your doesn't generate sound from silence and can be suspended when the input signal is silent static constexpr bool isSuspendedOnSilence() { return false; }; // Undefine this method if you want a dynamic channel count static constexpr int getFixChannelAmount() { return 6; }; // Define the amount and types of external data slots you want to use static constexpr int NumTables = 0; static constexpr int NumSliderPacks = 0; static constexpr int NumAudioFiles = 0; static constexpr int NumFilters = 0; static constexpr int NumDisplayBuffers = 0; // Scriptnode Callbacks ------------------------------------------------------------------------ void prepare(PrepareSpecs specs) { } void reset() { } void handleHiseEvent(HiseEvent& e) { } template <typename T> void process(T& data) { auto gainFactor = Decibels::decibelsToGain(gain); for (auto ch : data) { auto block = data.toChannelData(ch); for (auto& s : block) s *= gainFactor; } } template <typename T> void processFrame(T& data) { auto gainFactor = Decibels::decibelsToGain(gain); for (auto& s : data) s *= gainFactor; } int handleModulation(double& value) { return 0; } void setExternalData(const ExternalData& data, int index) { } // Parameter Functions ------------------------------------------------------------------------- template <int P> void setParameter(double v) { if (P == 0) { gain = (float)v; } } void createParameters(ParameterDataList& data) { { parameter::data p("Gain", { -100.0, 0.0, 0.1 }); registerCallback<0>(p); p.setDefaultValue(0.0); p.setSkewForCentre(-12.0); data.add(std::move(p)); } } float gain = 0.0f; }; } -
RE: Recent commit to Processor.cpp breaking old projectposted in Bug Reports
@David-Healey A compilable third party node should be able to do it when loaded into an hardcoded FX. This is theory though, I've never done this...
this way you could do it in C++ -
RE: JUCE 8 Build Errorsposted in Bug Reports
@David-Healey Afaik JUCE8 is more oriented toward GPU acceleration for faster UI response and better resolution as well for smoother design.
I often hit a limitation regarding how fast (or how slow I should say) my UIs are reacting.I'd also like to be able to finally use shaders, which might be better handled in JUCE8. That being said, I don't know if this fixes platform related issues we have (Win/Mac being picky with openGL/shaders)
-
RE: JUCE 8 Build Errorsposted in Bug Reports
Yeah I hope we’ll get this soin too so heavy vector UI can react with a lesser lag…
-
RE: Is HISE suitable for developing a VST pluging involving midi output and pitch detection?posted in Newbie League
@PabloCaparros To be honest, I think Hise is now suitable for any task, especially for a bachelor thesis where you need to do things quite fast, like UI mockup implementation and audio processing that might not be 100% efficient but working anyway.
As for the pitch detection goes, Hise does not really have one (except a very basic pitch detection of a pre-recorded buffer) so what you'll need is either to make yourself or use an existing library (if the license is compatible with your project). Hise allows you to implement/create/import algorithms like FAUST, RNBO, C++, all implemented around the DSP network (create a network -> implement anything inside)
The MIDI conversion capability will reside in your algorithm, so in the end, Hise is not the limit.
As I see it for your project, Hise can just be the container where you connect everything, audio/midi processing and UI. But the pitch detect -> MIDI will be your job using any external language and/or library -
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Christoph-Hart Any news on this? Could it just be an OS issue? Unfortunately I can't test on windows before next month...
-
RE: MatrixPeakMeter... No absolute peak colour?posted in General Questions
@dannytaurus Nice! Checking this asap

-
MatrixPeakMeter... No absolute peak colour?posted in General Questions
As in the title. The max peak is showing, but is there a way to distinguish when the peak actually peaked 0dB?
I did it in the past from a custom panel but it's a shame if the dedicated floating tile can't do this...
-
RE: Hise as pluginposted in General Questions
Solved,
HISE_BACKEND_AS_FXwas disabled by default in the plugin version of the Jucer. Shouldn't be... -
Hise as pluginposted in General Questions
I was using Hise as plugin successfully a while ago, but I can't seem to make it work anymore.
It's compiling fine and loading in plugin doctor, but no signal is passing through.
I tried enabling FORCE_INPUT_CHANNELS and the hardened runtime with audio inputs and microphone access. In definitive, all that I ca see that is related to audio in...
But silence is the only answer I can get...
Note that I also tried as Instrument (default jucer setting) and FX
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Christoph-Hart Yes it an embedded network, very simple, in the scriptFX
What about your snippet that I can test on my side?
And are you on windows or mac? I wonder if the difference can lie there... Especially since I have a straight crash with VST3 while AU, at least, can load -
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@David-Healey said in Matrix modulation connection is broken in exported plugin:
@ustk Why is xcode referencing 8.0.3
After analysing everything, AI confirmed Hise is built and running on Juce 6, and it says:
The assertion you hit is most likely thrown by the JUCE-8 plugin's code (in the v8.0.3 message thread), not by HISE's JUCE 6.
Since I am debugging using pluginval which is built on Juce8, that's 99% the origin of XCode reporting Juce8 message thread
-
RE: Meta Adsposted in General Questions
why those platforms if the Hise Unlocker combined with a PHP script on the server side and something like Woocommerce Plugin License Manager does the job?
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@David-Healey yes, always had (custom branches but one folder/repo)
Also I just re-aligned develop origin onto upstream to be sure (I had some merge commits because of past manual fork syncing) but no changes regarding the issue and the VST3 crash. -
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@David-Healey To this day I have no answer for this...
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@David-Healey Perhaps... But I am JUCE 6... Or schizophrenic...


-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Christoph-Hart Another strange behaviour, I am currently trying with AU export, which is working aside of the current problem we are trying to solve. I guess it's related to MacOS (me) vs Windows (you?)
But that same snippet exported as VST3, and ableton live says:

-
RE: Script Oscilloscope Buffer Sizeposted in Scripting
@Chazrox you need to set the ring properties again after changing the variable, it's not automatic
-
RE: Script Oscilloscope Buffer Sizeposted in Scripting
@Chazrox It's volatile, so you need to do set the ring buffer properties in script so it can be recalled at init/compile.
On the oscilloscope node, create an external display buffer
then in the script:
const var dbs = Synth.getDisplayBufferSource("ScriptFX/HardcodedFX name"); const var db = dbs.getDisplayBuffer(0); // # index of the external display buffer -1 db.setRingBufferProperties( { "BufferLength": 8192, "NumChannels": 1 });And it's dynamic, in the case you want to change it with slider/combobox/etc