Categories

  • General questions and announcements about HISE

    8k Topics
    71k Posts
    C

    @David-Healey Does that JUCE commit exist on Remote?

  • Scripting related questions and answers

    2k Topics
    16k Posts
    David HealeyD

    @dannytaurus said in Anyone doing this to declare components?:

    Do you mean like this?

    Kind of.

    I split my scripts into lots of separate files, preferably one file per part of the project - what constitutes a part could be functionality, or it could be UI, I often have one namespace per main UI panel.

    For example, I'll have a file called Presets.js which contains the Presets namespace and this contains everything related to preset handling, including the UI.

    I'll have another file for handling expansions.

    I'll have another one that handles a drop down menu in my plugin's header. This will have items for opening the Settings page, the About page, etc. This is an interesting one because the menu itself shouldn't know anything about the Settings or About pages, it doesn't need to.

    But the Settings and About pages are aware of the menu's existence. So using broadcasters those namespaces can watch the menu and if the Settings option is selected the Settings namespace will show the correct panel, if the About option is selected then the About namespace will handle it. Everything is very self contained and links between namespaces/parts of the project are minimised as much as possible.

    Here is what the on init section looks like for my current project. Nice and clean šŸ˜€

    f0136148-47c7-4818-82cf-fc6d90abf1d0-image.png

  • To share HiseSnippets, Interface Elements, GUI, UI/UX, Panel LAF etc..

    195 Topics
    2k Posts
    T

    @Ben-Catman Thank you very much! I’m really glad you found it useful. Hope it helps save time in your HISE workflow 😊

  • All about ScriptNode DSP nodes, patches, SNEX and recipes.

    347 Topics
    2k Posts
    F

    @David-Healey thank you soooo muchhh šŸ™

  • A subforum for discussing Faust development within HISE

    114 Topics
    933 Posts
    S

    @dannytaurus JPverb and Greyhole Reverbs developed by Julian Parker have been moved to MIT licence some months ago (don't remember the exact date...) after discussion with Julian himself.

  • If you need a certain feature, post it here.
    621 Topics
    5k Posts
    David HealeyD

    @ustk said in Colour Palette:

    colour specific variable type

    It's there, kind of.

    f1eafd7a-168d-46c2-9892-81fa0de5a6e2-image.png

  • Develop better software through collaboration and shared knowledge. Not just about coding —> covering the entire journey, from development to launching and promoting plugins or software.

    133 Topics
    1k Posts
    J

    @dannytaurus Yes both Logic and cubase, I will download reaper to see, yes started with a clean build each time

  • If you encounter any bug, post it here.
    2k Topics
    12k Posts
    DanHD

    @Oli-Ullmann yeah fair enough. These are filters though, so it should work. I made the eq in scriptnode

  • Post your example snippets that you want to add to the official HISE snippet database here. We'll revise it, upload it to the repo and delete the post when finished.

    22 Topics
    135 Posts
  • Everything related to the documentation (corrections, additions etc.) can be posted here
    70 Topics
    476 Posts
    David HealeyD

    @weezycarter make a minimal test plugin with 4 channels. Then we'll have a baseline.

  • Collection of Blog Entries

    81 Topics
    770 Posts
    David HealeyD

    Another one you might be interested in is Floe: https://floe.audio/

  • The nerdy place for discussing the C++ framework
    175 Topics
    1k Posts
    OrvillainO
    #pragma once #include <JuceHeader.h> namespace project { using namespace juce; using namespace hise; using namespace scriptnode; using namespace snex; /** Smallest possible BPM listener example. Demonstrates: - TempoListener registration - tempoChanged() callback - BPM flowing into the audio graph */ struct MinimalBPMListener : public data::base, public hise::TempoListener { SNEX_NODE(MinimalBPMListener); struct MetadataClass { SN_NODE_ID("MinimalBPMListener"); }; static constexpr bool isModNode() { return true; } static constexpr bool isPolyphonic() { return false; } static constexpr bool hasTail() { return false; } static constexpr bool isSuspendedOnSilence() { return false; } static constexpr int getFixChannelAmount() { return 1; } // --- Tempo sync --- hise::DllBoundaryTempoSyncer* tempoSyncer = nullptr; double bpm = 120.0; // Exposed modulation value double lastOut = 120.0; // --- TempoListener --- void tempoChanged(double newTempo) override { bpm = newTempo; lastOut = bpm; // make it observable } // --- Lifecycle --- void prepare(PrepareSpecs specs) { if (tempoSyncer == nullptr && specs.voiceIndex != nullptr) { tempoSyncer = specs.voiceIndex->getTempoSyncer(); if (tempoSyncer != nullptr) tempoSyncer->registerItem(this); } // Initialize output lastOut = bpm; } void reset() {} ~MinimalBPMListener() override { if (tempoSyncer != nullptr) { tempoSyncer->deregisterItem(this); tempoSyncer = nullptr; } } // --- Processing --- template <typename T> void process(T& data) { static constexpr int NumChannels = getFixChannelAmount(); auto& fixData = data.template as<ProcessData<NumChannels>>(); auto fd = fixData.toFrameData(); while (fd.next()) fd.toSpan()[0] = (float)lastOut; } int handleModulation(double& value) { value = lastOut; return 1; } void setExternalData(const ExternalData&, int) {} }; }

    This is a minimal example of how to get your custom C++ node to listen to the host BPM. Code above doesn't actually DO anything with the BPM information. But it proves the concept.

15

Online

2.1k

Users

13.2k

Topics

114.4k

Posts