RAW Panel
-
Hi there,
@Christoph-Hart Is there a way to create a RAW panel? The idea behind this is to monitor scriptnode parameters without using a timer (it's not accurate when drawing precise shapes and I encountered many crashes in different projects using this method with complex drawings)
So I'd like to animate a panel using a listener. Actually, it's apparently only possible to replace the whole interface or nothing, but I might be wrong... -
You can create a custom component and load that as
ExternalFloatingTile
in the compiled plugin and still use the scripted interface around it.https://github.com/christophhart/hise_tutorial/tree/master/ExternalFloatingTileTest
I just fixed the example, it should compile against the latest scriptnode branch.
How do you want to display the parameter? If you can somehow turn it into a signal, you could add a core.peak node and then grab its output as it will create a nice ringbuffer with the entire signal.
-
@Christoph-Hart oh yes I was almost certain a solution existed and forgot for that floating tile !
Yes I already grab a peak node through a parameter at the moment (have a look at the lfo section of my project when you'll be able to open it) but I read it from a timer. It's nice enough for a meter like visualization but not for a realtime lfo plotter like the one I recreated for higher ratesโฆ the drawing involved is too cpu greedy, so I'll try a c++ tile -
@Christoph-Hart I understand how it works step by step, but I am not able to make the connection for a ScripFX (DSP graph)
hise::raw::UIConnection::Slider<ScriptFX::myParameter> Connection;
Throws:
โ /Users/greg/Documents/_PROGRAMMING/_GREG_ExternalFloatingTileTest/AdditionalSourceCode/ExternalFloatingTileDemo.cpp:80:34: "use of undeclared identifier 'ScriptFX'" hise::raw::UIConnection::Slider<ScriptFX::myParameter> Connection; ^
What would be the identifier of a ScriptFX type module?
I tried many things aroundJavascriptMasterEffect
andscriptFxProcessor
, but in this case, it is the parameter member that is not known...
Something tells me thatJavascriptMasterEffect
is the way to go but the DSP parameters don't link at the moment I am right?The next step is a unidirectional connection...
-
The template parameter just needs to be an integer, so this is a rare case of where you actually need to use a magic number, so just use the index of your scriptnode parameter (starting with 0 of course)
-
Oh and for an unidirectional connection, use a
raw::Reference
:https://docs.hise.audio/cpp_api/raw/classhise_1_1raw_1_1_reference.html
The example in there should translate to your use case pretty fine.
-
@Christoph-Hart Well I must have done something wrong because I get:
โ /Users/greg/Documents/_PROGRAMMING/_GREG_ExternalFloatingTileTest/AdditionalSourceCode/ExternalFloatingTileDemo.cpp:81:64: "expected unqualified-id" hise::raw::UIConnection::Slider<hise::JavascriptMasterEffect::0> lfoConnection;
-
@Christoph-Hart Ok so I went a bit further by using the parameter index only:
hise::raw::UIConnection::Slider<0> lfoConnection;
But the slider is updating only when changing the frequency parameter of the DSP:
I don't know if it's related but there's no unidirectional connection yet (I'm struggling with that too )
EDIT:
the finality would be to draw anything in the panel base on the listened value. But since theUIConnection
offers Slider and buttons like component only (I tried a VuMeter but creating my own class is too hard), I have no idea how to simply paint in the panel based on a unidirectional value without a concrete example to be honest...