HISE Logo Forum
    • Categories
    • Register
    • Login

    Signal Value Clarity UI Pass

    Scheduled Pinned Locked Moved Solved Feature Requests
    6 Posts 2 Posters 356 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.
    • A
      aaronventure
      last edited by

      I talk about three issues here.

      • Lack of default readable peak metering
      • Lack of readable peak and target value metering for modulators
      • Lack of ability to accurately set modulation intensity other than through scripting

      1. Volume Peak Metering

      There's a general lack of clarity for signal values.

      There are some ways around this. This involves pulling peaks from different generators, but does not scale: any change you make in the project hierarchy needs to be updated in that script.

      It would be great to see peak values for each generator, as well as the master peak. I have no design recommendations for this. Maybe increase the width of the Module Tree and add another column? Maybe it's a separate panel that can be loaded into a popup? Maybe in another tab next to broadcaster map and script watch table? That way metering can be disabled if the tab isn't open.

      2. Modulator Value and Target Metering

      Next up are the modulators. Modulating a non-linear parameter (like filter frequency, AHDSR values etc) comes down to "eyeballing it". We have no direct info on the skew factors for the knobs and as such cannot precisely specify the targets. I understand that the skew behavior on these cannot be changed without retroactively messing up existing projects (other than maybe making the current skew default and allowing it to be changed).

      When it's linear, it's pretty easy to know what the final output is.

      It would also be great to have these values displayed somewhere. Perhaps the "current value" bar could display the float of the modulator output. d309744d-9d1e-4d26-b099-eff4987c2bef-image.png

      Ideally, it would also display the value of the parent/target, so if the modular is modulating gain, it would show the current gain reduction along with the current float value of the modulator. If it's modulating the attack of a table envelope, it would show the current attack time.

      3. Modulation Intensity Issue

      Correct me if I'm wrong here, but the actual modulation intensity slider cannot be accurately set othan than through scripting. There's no value entry on double click or any key modifier combination. And if you ever attempted to use a modulator on a full-spectrum filter frequency knob, you knob how much of a pain in the ass its logarithmic response is.

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

        @aaronventure said in Signal Value Clarity UI Pass:

        It would be great to see peak values for each generator, as well as the master peak. I have no design recommendations for this.

        Good suggestion but why not just put them on the routing matrix popup? It already implements the logic of deactivating the value collection when the editor isn't open so we get that basically for free. I can add a max value + current average

        324e6ca4-5267-46e9-a5dd-968b540c107a-image.png

        We have no direct info on the skew factors for the knobs and as such cannot precisely specify the targets

        If you hover over the plotter it should show you the value which also factors in the input range defined by the slider

        15ad46b3-1114-408c-8472-e9c20194d278-image.png

        Ideally, it would also display the value of the parent/target, so if the modular is modulating gain, it would show the current gain reduction along with the current float value of the modulator. If it's modulating the attack of a table envelope, it would show the current attack time.

        There's no value entry on double click or any key modifier combination.

        yes, good ideas to both, the processor editors are quite old so they deserve a little bit of love. Displaying the modulator value is a bit more complicated than the peak though because it changes faster and is bidirectional (so for the peak display you can simply use a smoothing algorithm with fast up and slow down times, but that doesn't represent the mod value well).

        A 2 Replies Last reply Reply Quote 0
        • A
          aaronventure @Christoph Hart
          last edited by aaronventure

          @Christoph-Hart said in Signal Value Clarity UI Pass:

          Good suggestion but why not just put them on the routing matrix popup? It already implements the logic of deactivating the value collection when the editor isn't open so we get that basically for free. I can add a max value + current average

          Alright, then we can drag it to where we like.

          I still think that a peak display tab / panel like the broadcaster map would be very useful for a broader overview.

          For the master, it should always be up there in the right corner. Maybe right click to disable? Or a small tiny icon right next to it.

          Btw. I wrote the post before I tried what I typed out, and I realized that there's no real way to do true peak metering from my end. Even if I do a timer, the accuracy is too low and I can't check the buffer for the max. So there's the buffer class but I have not fiddled with it yet.

          @Christoph-Hart said in Signal Value Clarity UI Pass:

          f you hover over the plotter it should show you the value which also factors in the input range defined by the slider

          Add a table envelope. Set you attack 50 ms. Then set up a modifier so that its 0 return equals the attack at 5ms.

          How are you going to do this? It's not 0.1 of the value, the modulator return scales down the current value of the knob in alpha, not the actual values, which are skewed.

          A 1 Reply Last reply Reply Quote 0
          • A
            aaronventure @aaronventure
            last edited by

            @aaronventure said in Signal Value Clarity UI Pass:

            How are you going to do this?

            Scriptnode is the default answer for all of these questions, but then scriptnode needs to have all the default modulators available as nodes without me having to rebuild them from scratch.

            1 Reply Last reply Reply Quote 0
            • A
              aaronventure @Christoph Hart
              last edited by

              @Christoph-Hart said in Signal Value Clarity UI Pass:

              Displaying the modulator value is a bit more complicated than the peak though because it changes faster and is bidirectional (so for the peak display you can simply use a smoothing algorithm with fast up and slow down times, but that doesn't represent the mod value well).

              Maybe it's a a good idea to have a refresh rate like the script watch table. right click to choose refresh rate from a few offered options.

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

                @aaronventure Alright, I've implemented a few of those things:

                • the routing matrix does show the peak volume as decibel text. You can right click and toggle "hold" mode, where it displays the maximum peak or the current one.
                • The modulator intensity slider has now also a text label that should display the current modulation value. I could reuse the logic for the table popup label, which already tries to convert the mod value to the appropriate domain
                • I've added a voice start plotter that somehow resembles what you proposed, although I have no idea how useful it is (the genesis of this was a little bit like taking numbers and C++ keywords and throwing it against the wall until something sticks), so please give me some feedback if you're actually using it.

                but then scriptnode needs to have all the default modulators available as nodes without me having to rebuild them from scratch.

                Yes, good point. I've spent the last days reproducing the most interesting HISE modules as thoroughly documented scriptnode networks so you can load and modify them to your likings (also I've added lots of QOL nodes along the process, like a container.branch that lets you dynamically route the input into a single child node which is super useful ).

                Link Preview Image
                hise_tutorial/ScriptnodeHiseModules 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)

                In order to increase the accessibility and learning effect, I've included a simple network that implements the core idea and then the full 1:1 representation with the gritty details and hacks.

                It currently contains the LFO, the Table Envelope and the Harmonic filter, but let me know what other modules you would see as scriptnode network.

                1 Reply Last reply Reply Quote 4
                • A aaronventure marked this topic as a question on
                • A aaronventure has marked this topic as solved on
                • First post
                  Last post

                10

                Online

                1.8k

                Users

                11.9k

                Topics

                103.9k

                Posts