HISE Logo Forum
    • Categories
    • Register
    • Login

    RAW Panel

    Scheduled Pinned Locked Moved C++ Development
    8 Posts 2 Posters 482 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.
    • ustkU
      ustk
      last edited by ustk

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

      Can't help pressing F5 in the forum...

      1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart
        last edited by

        You can create a custom component and load that as ExternalFloatingTile in the compiled plugin and still use the scripted interface around it.

        Link Preview Image
        hise_tutorial/ExternalFloatingTileTest at master · christophhart/hise_tutorial

        The Tutorial project for HISE. Contribute to christophhart/hise_tutorial development by creating an account on GitHub.

        favicon

        GitHub (github.com)

        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.

        ustkU 2 Replies Last reply Reply Quote 0
        • ustkU
          ustk @Christoph Hart
          last edited by

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

          Can't help pressing F5 in the forum...

          1 Reply Last reply Reply Quote 0
          • ustkU
            ustk @Christoph Hart
            last edited by ustk

            @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 around JavascriptMasterEffect and scriptFxProcessor, but in this case, it is the parameter member that is not known...
            Something tells me that JavascriptMasterEffect 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...

            Can't help pressing F5 in the forum...

            1 Reply Last reply Reply Quote 0
            • Christoph HartC
              Christoph Hart
              last edited by

              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)

              ustkU 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart
                last edited by

                Oh and for an unidirectional connection, use a raw::Reference:

                Link Preview Image
                HISE | Docs

                favicon

                (docs.hise.audio)

                The example in there should translate to your use case pretty fine.

                ustkU 1 Reply Last reply Reply Quote 0
                • ustkU
                  ustk @Christoph Hart
                  last edited by ustk

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

                  Can't help pressing F5 in the forum...

                  1 Reply Last reply Reply Quote 0
                  • ustkU
                    ustk @Christoph Hart
                    last edited by ustk

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

                    rawtest.gif

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

                    Can't help pressing F5 in the forum...

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

                    30

                    Online

                    1.7k

                    Users

                    11.8k

                    Topics

                    102.8k

                    Posts