HISE Logo Forum
    • Categories
    • Register
    • Login

    Weird Issue / Bug - Knob Position not restoring graphically in big projects

    Scheduled Pinned Locked Moved Bug Reports
    14 Posts 3 Posters 598 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.
    • Casey KolbC
      Casey Kolb
      last edited by

      Hi guys,

      I've been trying to solve this issue for weeks now and have exhausted just about every test I can think of. Any help would be greatly appreciated!

      I'm working on a huge plugin with hundreds of knobs saved in each preset (probably more than 400). There are always knobs at the end of the value tree which won't update their graphical positions either on a preset change or when changed from any other function in the project. However, the actual backend values of the knobs and labels are updating properly, so the knob callbacks are still being executed and the presets are being restored correctly. It's purely a graphical thing, but it gets worse as I add more knobs to my plugin. The more knobs I add, the more knobs break at the end of the chain in this way. It almost seems like there's an internal limit on the number of knobs that can be restored graphically.

      I should note, this only happens in the exported version of the plugin, and it happens for all of my test users too in all versions. At this point, I’ve removed everything and slowly added things back in to try to narrow the issue, and it’s nothing in particular. It seems like it has nothing to do with my code, or the knob callbacks, or the structure. The order of the knobs also doesn't matter because it's always the knobs at the very end of the tree that are affected. There’s just a point at which the last set of knobs will stop restoring their position if I have too many. I’ve even added print statements to the JUCE cpp to make sure all the knobs are getting the right values in the exported plugin, and they always do.

      I can't for the life of me figure out what could be causing this. From all the tests, it really just seems there's a limit to the number of knobs the plugin can restore graphically.

      The example below shows me tweaking the knobs and restoring the same preset. You’ll notice the value labels change back to the correct values, but the knob positions won’t update. Sonically, everything is restored properly.

      Knob Position Update Bug.gif

      Casey Kolb
      Founder & CEO of Lunacy Audio
      Composer | Producer | Software Developer

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

        The knobs are sliders and the labels are Labels, right? Does it change anything if you change the order so that the sliders come before the labels?

        1 Reply Last reply Reply Quote 0
        • Casey KolbC
          Casey Kolb
          last edited by

          The sliders are currently before the labels. Also, the labels aren't saved in preset, just the sliders which update the labels on their control callbacks.

          Casey Kolb
          Founder & CEO of Lunacy Audio
          Composer | Producer | Software Developer

          1 Reply Last reply Reply Quote 0
          • Casey KolbC
            Casey Kolb
            last edited by

            @Christoph-Hart Any more ideas for things to try or what could be causing this? Just trying to work this out before I send out to more testers.

            Casey Kolb
            Founder & CEO of Lunacy Audio
            Composer | Producer | Software Developer

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

              You could hide a few sliders and check if the remaining ones are repainted correctly. I'm not aware of any hard limit when it comes to UI elements, and especially Sliders are default JUCE components so their repaint routine is not interfering with the scripting thread.

              1 Reply Last reply Reply Quote 0
              • Casey KolbC
                Casey Kolb
                last edited by

                Unfortunately, this did not fix it either. I have a massive number of objects stored in Globals in HISEScript, would that have an affect on anything?

                Casey Kolb
                Founder & CEO of Lunacy Audio
                Composer | Producer | Software Developer

                1 Reply Last reply Reply Quote 0
                • Casey KolbC
                  Casey Kolb
                  last edited by Casey Kolb

                  I should also mention that it only breaks the knobs which are set to save in preset, so it seems to be related to that functionality. When I turn that off, the knob position will restore properly when set from another function. However, these are knobs that need to be saved in the preset.

                  Even a linked slider fails to move the original slider position but is clearly updating the value. See below:

                  ezgif-3-52319e3772c8.gif

                  Casey Kolb
                  Founder & CEO of Lunacy Audio
                  Composer | Producer | Software Developer

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

                    Ah that's interesting, so if you disable saveInPreset for the slider in your screencast, it updates the position correctly? Does it say anything about a script timeout error in the console?

                    At this point it might be the best way to just send me the project so I can debug it. It's the same that is also causing the crash in logic, right?

                    1 Reply Last reply Reply Quote 0
                    • Casey KolbC
                      Casey Kolb
                      last edited by

                      Ah that's interesting, so if you disable saveInPreset for the slider in your screencast, it updates the position correctly? Does it say anything about a script timeout error in the console?

                      Yes, if I disable saveInPreset for that slider above and then reexport the plugin, it will update the position correctly. I often do get a lot of Execution timed-out errors within HISE but I haven't seen any like that in the debug console of the exported plugin.

                      At this point it might be the best way to just send me the project so I can debug it. It's the same that is also causing the crash in logic, right?

                      That would be very much appreciated! Yes, it's the same project with the Logic crash. I'll send you a private message with the deets.

                      Casey Kolb
                      Founder & CEO of Lunacy Audio
                      Composer | Producer | Software Developer

                      1 Reply Last reply Reply Quote 0
                      • B
                        BWSounds
                        last edited by

                        How was this issue fixed,? I’m having the same problems now, and I can’t figure out why.

                        Casey KolbC 1 Reply Last reply Reply Quote 0
                        • Casey KolbC
                          Casey Kolb @BWSounds
                          last edited by

                          @BWSounds Christoph fixed this a while back. There was a limit to the UI queue (1024), but he increased the limit. Do you have a lot of knobs in your project?

                          Casey Kolb
                          Founder & CEO of Lunacy Audio
                          Composer | Producer | Software Developer

                          B 2 Replies Last reply Reply Quote 0
                          • B
                            BWSounds @Casey Kolb
                            last edited by

                            @Casey-Kolb
                            Humm. Yes a ton

                            1 Reply Last reply Reply Quote 0
                            • B
                              BWSounds @Casey Kolb
                              last edited by

                              @Casey-Kolb
                              Does that have something to do with the size of the UI?

                              Casey KolbC 1 Reply Last reply Reply Quote 0
                              • Casey KolbC
                                Casey Kolb @BWSounds
                                last edited by

                                @BWSounds I don't think it's related to the size of the UI, but just the number of controls with "Save In Preset" active. Though the number is super high, and it should be fixed in the most recent HISE branch anyway. Are you on the most recent HISE build?

                                What exactly is happening in your case? The knobs aren't updating visually on preset change?

                                Casey Kolb
                                Founder & CEO of Lunacy Audio
                                Composer | Producer | Software Developer

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

                                24

                                Online

                                1.8k

                                Users

                                11.9k

                                Topics

                                104.0k

                                Posts