Forum
    • Categories
    • Register
    • Login
    1. Home
    2. ustk
    3. Posts
    • Profile
    • Following 0
    • Followers 15
    • Topics 475
    • Posts 6,088
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: I made a really good sounding JUNO-6 emulation for free, shared it in the KVR forum - this is what happened

      @CassD said in I made a really good sounding JUNO-6 emulation for free, shared it in the KVR forum - this is what happened:

      It’s not like devs don’t have backend costs too… Apple dev certificate, hosting etc.

      For a year now, I spent more on the different charges than what comes back... yes, I'm currently paying to work at a point I can barely eat...

      posted in General Questions
      ustkU
      ustk
    • RE: Control ScriptNode from UI knob AND envelope?

      @dannytaurus Matrix Modulation does this. And bonus thing, you get the envelope visual feedback on the UI knob

      posted in ScriptNode
      ustkU
      ustk
    • RE: Verb Factory

      @Orvillain Hmmm waaahhhtttt???? 😲 🤪

      posted in C++ Development
      ustkU
      ustk
    • RE: Get Panel Attributes - Colours

      @David-Healey There might be a bad parsing at some point. Without really knowing, the hex might be first parsed as string by the property editor...

      posted in Scripting
      ustkU
      ustk
    • RE: Get Panel Attributes - Colours

      In the end, a number is a number. The format (base) is just a chosen representation of the same number, be it decimal, hexadecimal, binary, octal or whatever fancy base-factorial one can invent 🤪

      posted in Scripting
      ustkU
      ustk
    • RE: Meta Ads

      @dannytaurus Thanks! Yeah making a video is a thing, but to make it short and impactful is another 😁

      posted in General Questions
      ustkU
      ustk
    • RE: Meta Ads

      @dannytaurus I'm a bit lost with all that but I'm catching up...
      Do you promote specific ad reels or boost organic reels?
      I don't know if this makes a difference. I reckon ads are 30sec limited and organic reels 3min, but it still should be under 90sec to be boosted...

      posted in General Questions
      ustkU
      ustk
    • RE: Compiled Network Fixed Channel Count?

      @David-Healey Can you do it from the UI script?

      const var ScriptFX_RM = Synth.getRoutingMatrix("ScriptFX"); // or master chain...
      
      global NUM_CHANNELS = ScriptFX_RM.getNumSourceChannels();
      
      posted in ScriptNode
      ustkU
      ustk
    • RE: Issues with Panel.repaint() and Panel.repaintImmediately() - laggy user interface

      @Christoph-Hart I asked GPT a while ago, so I just did it again with Claude:

      Trustability: 92%
      JUCE 6 (and prior)

      • Default renderer is purely CPU-based (software rasterizer). Vector-based drawing means significant CPU math per frame.
      • OpenGL was optionally available via OpenGLContext::attachTo(), but it was opt-in and not the default.

      JUCE 8

      • Introduced a Direct2D renderer on Windows as the new default — this is GPU-accelerated via native Windows APIs with GPU-backed images.
      • macOS uses Metal (also GPU-accelerated via native API).
      • The software (CPU) renderer still exists as a fallback.

      Performance delta

      • The Direct2D renderer is built on modern native platform APIs, taking advantage of hardware acceleration and GPU-backed images, bringing significant rendering and performance improvements — including better and faster font rendering. JUCE
      • Component transforms and tiled image fills show the biggest wins. On some older machines with integrated GPUs only (no dedicated VRAM), the software renderer can actually outperform Direct2D. JUCE

      I didn't know Direct2D could in some cases not bring better performances. Do you think it is the same for Metal?
      But still, using Win's Direct2D or mac's Metal is deporting the weight to the GPU so this should (perhaps for more usual plugin cases that don't have the complexity of Hise) be faster, am I not right?

      But following Juce:

      On some older machines with integrated GPUs only (no dedicated VRAM), the software renderer can actually outperform Direct2D

      So yeah, might or might not be better on everything...

      posted in Scripting
      ustkU
      ustk
    • RE: Issues with Panel.repaint() and Panel.repaintImmediately() - laggy user interface

      @David-Healey I reckon some people reported a black square with some DAWs...

      posted in Scripting
      ustkU
      ustk
    • RE: Issues with Panel.repaint() and Panel.repaintImmediately() - laggy user interface

      @Oli-Ullmann
      Yeah so to confirm this, Juce6 uses CPU instead of GPU, one of the main reason I am waiting for the full Juce8 implementation.
      Shaders are shady... That OpenGL dependency is quite bad too, I got issues on mac that made me effectively drop them (for now?)
      Until then, you can make 8bit retro audio plugins that require less UI precision... There's still a market for those squary bast****... 🤣

      posted in Scripting
      ustkU
      ustk
    • RE: Recent commit to Processor.cpp breaking old project

      @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

      posted in Bug Reports
      ustkU
      ustk
    • RE: Recent commit to Processor.cpp breaking old project

      @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;
      };
      }
      
      
      
      
      posted in Bug Reports
      ustkU
      ustk
    • RE: Recent commit to Processor.cpp breaking old project

      @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++

      posted in Bug Reports
      ustkU
      ustk
    • RE: JUCE 8 Build Errors

      @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)

      posted in Bug Reports
      ustkU
      ustk
    • RE: JUCE 8 Build Errors

      Yeah I hope we’ll get this soin too so heavy vector UI can react with a lesser lag…

      posted in Bug Reports
      ustkU
      ustk
    • RE: Is HISE suitable for developing a VST pluging involving midi output and pitch detection?

      @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

      posted in Newbie League
      ustkU
      ustk
    • RE: Matrix modulation connection is broken in exported plugin

      @Christoph-Hart Any news on this? Could it just be an OS issue? Unfortunately I can't test on windows before next month...

      posted in Bug Reports
      ustkU
      ustk
    • RE: MatrixPeakMeter... No absolute peak colour?

      @dannytaurus Nice! Checking this asap 👍

      posted in General Questions
      ustkU
      ustk
    • MatrixPeakMeter... No absolute peak colour?

      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...

      posted in General Questions
      ustkU
      ustk