HISE Logo Forum
    • Categories
    • Register
    • Login

    Multi Instance DAW Crash Issue Guide

    Scheduled Pinned Locked Moved General Questions
    25 Posts 8 Posters 1.8k 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.
    • orangeO
      orange @Fortune
      last edited by

      @Fortune said in Multi Instance DAW Crash Issue Guide:

      Like you've suggested, for test purpose I removed some setattributes in my code and the crash issue almost fixed interestingly. Why is this happenning?

      I remember @Christoph-Hart was saying that is about the moodycamel queue that shares the same UI thread. So it is more open to clogging in multi-instances and because of this too many messages situation.

      develop Branch / XCode 13.1
      macOS Monterey / M1 Max

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

        @orange said in Multi Instance DAW Crash Issue Guide:

        Number one cause is the amount of used setAttribute APIs

        @orange @Christoph-Hart does this also include setValue()? If not, I might use scripts to set the value of panels, and then us the Panel Property Editor to assign Processor/Parameter IDs.
        Can panels even do that?...

        Dan Korneff - Producer / Mixer / Audio Nerd

        orangeO 1 Reply Last reply Reply Quote 2
        • L
          LeeC
          last edited by

          @orange @Christoph-Hart
          I know it depends, but is there a ballpark number for the amount of setAttributes we should be using simultaneously?

          Also, would using the showControl instead of set("visible",value); to toggle visibility of components help to avoid crashes aswell?

          d.healeyD orangeO 2 Replies Last reply Reply Quote 0
          • d.healeyD
            d.healey @LeeC
            last edited by

            This sounds fishy to me. Setting attributes shouldn't be causing any issues. I suspect there are other problems with the scripts.
            Are you setting attributes only in deferred scripts?
            Are you setting attributes in MIDI callbacks or timers?

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            orangeO Dan KorneffD 2 Replies Last reply Reply Quote 0
            • orangeO
              orange @Dan Korneff
              last edited by orange

              @dustbro said in Multi Instance DAW Crash Issue Guide:

              @orange said in Multi Instance DAW Crash Issue Guide:

              Number one cause is the amount of used setAttribute APIs

              @orange @Christoph-Hart does this also include setValue()? If not, I might use scripts to set the value of panels, and then us the Panel Property Editor to assign Processor/Parameter IDs.
              Can panels even do that?...

              Since generally I use setAttributes, I haven't made experiments with setValue() & Panels.

              But setValue should be ok I think.

              develop Branch / XCode 13.1
              macOS Monterey / M1 Max

              1 Reply Last reply Reply Quote 0
              • orangeO
                orange @LeeC
                last edited by orange

                @LeeC said in Multi Instance DAW Crash Issue Guide:

                @orange @Christoph-Hart
                I know it depends, but is there a ballpark number for the amount of setAttributes we should be using simultaneously?

                Also, would using the showControl instead of set("visible",value); to toggle visibility of components help to avoid crashes aswell?

                I haven't seen any issues yet with using too many showControl or set("visible")... stuff. For multi-instance crash you need to make experiments with beta testers.

                develop Branch / XCode 13.1
                macOS Monterey / M1 Max

                1 Reply Last reply Reply Quote 0
                • orangeO
                  orange @d.healey
                  last edited by orange

                  @d-healey said in Multi Instance DAW Crash Issue Guide:

                  This sounds fishy to me. Setting attributes shouldn't be causing any issues. I suspect there are other problems with the scripts.

                  It's been covered here by @Christoph-Hart befrore: https://forum.hise.audio/topic/2826/debugging-with-reaper/25

                  You can use as many setAttributes as you can, it's not a problem on most systems. But the issue is "Multi Instance DAW Crash" in "Some Systems".

                  That doesn't mean it happens in all computers. But if you see this in a computer, it will do that crash in all DAWs :) You know what: while I haven't seen any multi instance crash in my 7 years old laptop, some users were repoting this issue to me. Honestly I couldn't replicate it. Then I got a new Intel 10th generation i9, 128GB RAM, 12GB NVidia 2080Ti computer, then guess what: it crashes for 5 plugins :) Same plugin, new system.

                  Are you setting attributes only in deferred scripts?

                  Yeah, I am using it in main interface script only. But the issue happens also with the plugin that uses only One Timer Object (100ms - on preset label only). Whole plugin is a Parametric eq, ShapeFX and setAttributes. Nothing more. I can open 20 instances in old pc, but crash for 5 instances in new one :) Crash reporting beta testers see the multi instance crash too.

                  This is more interesting, when the deferring callbacks are disabled, sometimes crash reduces :)

                  Are you setting attributes in MIDI callbacks or timers?

                  No.

                  develop Branch / XCode 13.1
                  macOS Monterey / M1 Max

                  1 Reply Last reply Reply Quote 0
                  • Dan KorneffD
                    Dan Korneff @d.healey
                    last edited by

                    @d-healey said in Multi Instance DAW Crash Issue Guide:

                    Are you setting attributes only in deferred scripts?

                    Synth.deferCallbacks(true);
                    

                    This is the second line on my onInit. I don't need to call this on my separate "include" scripts, right? Those should be considered part of the Interface script.

                    Dan Korneff - Producer / Mixer / Audio Nerd

                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @Dan Korneff
                      last edited by

                      @dustbro Correct.

                      Could someone create a minimal example project that consistently demonstrates the issue?

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      1 Reply Last reply Reply Quote 0
                      • orangeO
                        orange
                        last edited by

                        Updated. Added "else if" statements.

                        develop Branch / XCode 13.1
                        macOS Monterey / M1 Max

                        NatanN 1 Reply Last reply Reply Quote 1
                        • NatanN
                          Natan @orange
                          last edited by

                          @orange Thank you sir, and what's about

                          Synth.deferCallbacks(true);
                          

                          Is this something that can help?
                          and is this works in FX plugins?

                          Thanks

                          orangeO 1 Reply Last reply Reply Quote 0
                          • orangeO
                            orange @Natan
                            last edited by orange

                            @Natan It depends in which script you are using it.

                            I am using it in the main interface script, it works..

                            Link Preview Image
                            Scripting Best Practices

                            This is a collection of useful tricks which will be extended over time. I divided them into two categories: Interface Design and MIDI Processing. Interface d...

                            favicon

                            Forum (forum.hise.audio)

                            develop Branch / XCode 13.1
                            macOS Monterey / M1 Max

                            NatanN 1 Reply Last reply Reply Quote 1
                            • NatanN
                              Natan @orange
                              last edited by

                              @orange Great to hear that :) will search and read more about it
                              Thank you sir

                              1 Reply Last reply Reply Quote 0
                              • NatanN
                                Natan
                                last edited by

                                @orange Sir,
                                How we can Track The Messages sent by A Parameter, Is there any Outputs That shows how many messages generate Once we, For Example, click A Button?!

                                Thanks

                                1 Reply Last reply Reply Quote 0
                                • orangeO orange referenced this topic on
                                • First post
                                  Last post

                                28

                                Online

                                1.7k

                                Users

                                11.7k

                                Topics

                                102.0k

                                Posts