HISE Logo Forum
    • Categories
    • Register
    • Login

    Cable broadcaster and callback not updating above 1.0

    Scheduled Pinned Locked Moved Bug Reports
    6 Posts 3 Posters 92 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

      Even if the value reaches a value above 1.0, neither the broadcaster nor the callback fires, it just stops updating.
      This is very annoying because a meter can't show the level in the red zone

      Fo this example the level in the network is going above 15.0 for the sake of the example and the max value of the cable is set to 2.0 too, so it's not a clipping signal thing...

      cableLevelLimitation.gif

      cableLevelLimitation2.gif

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

      1 Reply Last reply Reply Quote 0
      • Dan KorneffD
        Dan Korneff
        last edited by Dan Korneff

        I haven't messed with the global cable much. It might be capped at a 1?
        Are your meters running on a gain factor of 0-1? If so, you'll need to convert Gain to dB. Then, you need to map the dBFS range to the analog VU meter scale, so that -18 dBFS (or -20 dBFS) aligns with 0 VU on your meter.

        EDIT: if your meter is actually PPM, 0 would be referenced to -9 dBFS or -12 dBFS.

        Dan Korneff - Producer / Mixer / Audio Nerd

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

          Yes the cable is supposed to send normalised signals from 0.0 to 1.0. You need to attenuate the signal before you send it through there.

          On the scripting side you can then use setRange() to convert the value back to your original gain value:

          const var gm = Engine.getGlobalRoutingManager();
          const var gc = gm.getCable("gain");
          
          gc.setRange(0.0, 4.0); // 4.0 = +12dB overhead
          gc.registerCallback(v => Console.print(v), AsyncNotification);
          
          ustkU 1 Reply Last reply Reply Quote 1
          • ustkU
            ustk @Christoph Hart
            last edited by ustk

            @Christoph-Hart Ok so it's definitely intended behaviour. I was exactly thinking about such a temporary workaround, but it appears it won't be temporary ☺

            Side question (and very basic question), why writing AsyncNotification in the CB doesn't throw an error since it is just parameter name that isn't "declared"? I am instead directly writing either false or true directly, thinking it would be better... I don't see where AsyncNotification is seen as a bool

            @Dan-Korneff The meters are free as for their range, so the issue here is the input value that is indeed capped. The PPM is switchable to VU and has a calibration knob so the user can fit the plugin into whatever gain chain is the best for their use case. In this example, the calibration is set at 0dBFS so the actual needle is really capped at 0. But yes in a general workflow I tend to mix at either -12 or even more around -18 which I like the best, but since that depends on the mid point of the converters...

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

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

              @ustk said in Cable broadcaster and callback not updating above 1.0:

              Side question (and very basic question), why writing AsyncNotification in the CB doesn't throw an error since it is just parameter name that isn't "declared"? I am instead directly writing either false or true directly, thinking it would be better... I don't see where AsyncNotification is seen as a bool

              Console.print(AsyncNotification); // 912
              

              It's a magic number that is hardcoded in the engine and converted to the proper bool value for all functions that expect a parameter that indicates asynchronous execution. The rationale for this is code clarity - what is true in the context of synchronosity? Synchronous or asynchronous? You would always have to lookup the API call docs but with this it's super clear what is happening).

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

                @Christoph-Hart It's true that you're right! But my brain, him, is async...

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

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

                17

                Online

                1.7k

                Users

                11.8k

                Topics

                102.6k

                Posts