Forum
    • Categories
    • Register
    • Login

    Custom filter graph output within a custom node?

    Scheduled Pinned Locked Moved C++ Development
    3 Posts 2 Posters 16 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • OrvillainO
      Orvillain
      last edited by

      Does anyone know a good guide or the latest advice on doing a custom filter graph output for a custom node, so that I can have a floating tile or a script panel pick it up and draw it??

      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
      Crafting sound at every level. From strings to signal paths, samples to systems.

      HISEnbergH 1 Reply Last reply Reply Quote 0
      • HISEnbergH
        HISEnberg @Orvillain
        last edited by

        @Orvillain There's a tutorial for creating your own custom Floating Tile, but it's geared towards UI Components: https://github.com/christophhart/hise_tutorial/tree/master/ExternalFloatingTileTest

        Sonic Architect && Software Mercenary

        1 Reply Last reply Reply Quote 0
        • OrvillainO
          Orvillain
          last edited by

          This thread:
          https://forum.hise.audio/topic/9788/hise-filter-display-inconsistencies/20?_=1750768491529

          And Claude, helped quite a bit. Got it working!

          The essential bits I'm calling in my c++ node are:

          void setExternalData(const ExternalData& d, int index) override
             {
                 SNEX_INIT_FILTER(d, index);
             }
          
             // HISE calls this (message thread, on repaint) for each frequency point.
             // freqNorm is normalised to the sample rate (1.0 == fs); return linear gain.
             double getPlotValue(int /*getMagnitude*/, double freqNorm) override
             {
                 return (double) magnitudeLinear((float)(freqNorm * fs));
             }
          
             // == Parameters ==========================================================
             template <int P>
             void setParameter(double v)
             {
                 if      constexpr (P == 0) { pFreq   = (float)v; sendCoefficientUpdateMessage(); }
                 else if constexpr (P == 1) { pReso   = (float)v; sendCoefficientUpdateMessage(); }
                 else if constexpr (P == 2) { pGain   = (float)v; sendCoefficientUpdateMessage(); }
                 else if constexpr (P == 3) { pDrive  = (float)v; sendCoefficientUpdateMessage(); }
                 else if constexpr (P == 4) { pType   = (float)v; sendCoefficientUpdateMessage(); }
                 else if constexpr (P == 5) { pMode   = (float)v; sendCoefficientUpdateMessage(); }
             }
          

          Musician - Instrument Designer - Sonic Architect - Creative Product Owner
          Crafting sound at every level. From strings to signal paths, samples to systems.

          1 Reply Last reply Reply Quote 1
          • First post
            Last post

          15

          Online

          2.4k

          Users

          13.7k

          Topics

          119.5k

          Posts