HISE Logo Forum
    • Categories
    • Register
    • Login

    scriptnode / convolution + oversampling = read access violation. mtx was 0x100.

    Scheduled Pinned Locked Moved Bug Reports
    22 Posts 4 Posters 1.2k 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.
    • Dan KorneffD
      Dan Korneff
      last edited by

      and the cure..... wrap dsp in a fix_block

      fix container.png

      Dan Korneff - Producer / Mixer / Audio Nerd

      LindonL 1 Reply Last reply Reply Quote 2
      • LindonL
        Lindon @Dan Korneff
        last edited by

        @Dan-Korneff good catch.

        HISE Development for hire.
        www.channelrobot.com

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

          I take it back. Not cured.
          @Christoph-Hart does a read access violation associated with mtx sound familiar?
          it's 100% related to oversampling, cause I can hammer the convolution node with impulse changes with no crash when oversampling isn't used.

          Dan Korneff - Producer / Mixer / Audio Nerd

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

            @Dan-Korneff it might just create internal buffers beyond a certain limit? Can you reliably make it crash with oversampling?

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

              Can you reliably make it crash with oversampling?

              yeah, here's a minimal example that uses a timer to toggle between impulses. The exact time it takes to crash isn't consistent, but it takes less than a minute.

              I believe it may have something to do with multithreading.
              https://hub.korneffaudio.com/index.php/s/MBtPXHXXtZYcLZW

              Dan Korneff - Producer / Mixer / Audio Nerd

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

                definitely something with multi-threading. I turned it off on the example project and I just ran the compiled plugin for over 10 minutes now. No crashes.

                Dan Korneff - Producer / Mixer / Audio Nerd

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

                  @Christoph-Hart anything else I can do to get this on your radar? I think it's the source of some Logic crash reports I'm getting with projects containing scriptnode/convoltion/oversampling.

                  Dan Korneff - Producer / Mixer / Audio Nerd

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

                    @Dan-Korneff do I have to compile the minimal project to a plugin or does it crash in HISE too?

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

                      @Christoph-Hart You'll have to compile. It doesn't crash HISE.

                      Dan Korneff - Producer / Mixer / Audio Nerd

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

                        @Dan-Korneff Alright. And do I have to run it in Logic or is it crashing in other hosts too?

                        And I assume you're using the latest HISE, right? I fixed a few multithreading issues with convolution in December.

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

                          @Christoph-Hart I'm using the commit from Feb 6.
                          I have only tested on PC with Reaper and Cubase, but the Logic crash reports I get are Memory Access error so I'm assuming it's related.

                          Dan Korneff - Producer / Mixer / Audio Nerd

                          1 Reply Last reply Reply Quote 0
                          • FrankbeatF
                            Frankbeat
                            last edited by

                            I'm having trouble with the oversampling as well but not on convolution, on just sample based instruments. The weird thing is: I have built some to success using oversample2x. But I have one project using 3 samplers unisono and this leads to crashing my DAW, though I have plugins running, that make extensive use of oversampling.

                            Currently, I'm running a build of the latest develop branch. Everything else is fine.

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

                              @Frankbeat It might be the case that the oversampling will lead to audio buffer sizes that exceed the streaming buffers for the voices (I implemented oversampling after putting up all safeguards for the streaming engine so I wouldn't be surprised if this creates an edge case that leads to a buffer overflow).

                              Can you reliably reproduce that? I can take a look at an example that crashes deterministically.

                              Dan KorneffD FrankbeatF 2 Replies Last reply Reply Quote 1
                              • Dan KorneffD
                                Dan Korneff @Christoph Hart
                                last edited by

                                @Christoph-Hart I just noticed issues with oversampling not related to convolution as well.

                                Dan Korneff - Producer / Mixer / Audio Nerd

                                1 Reply Last reply Reply Quote 0
                                • FrankbeatF
                                  Frankbeat @Christoph Hart
                                  last edited by Frankbeat

                                  @Christoph-Hart From now, it could take me a few days to reply with a sample of the project, but what you describe seems to make sense. AFAIK the generic buffer size is set to 512. I will see if it helps to increase that. My other plugins based on 1 or 2 samplers are fine with double rate oversampling.

                                  1 Reply Last reply Reply Quote 0
                                  • FrankbeatF
                                    Frankbeat
                                    last edited by

                                    Okay, now I have investigated on this… I Changed the buffer size in HISE Settings –> All to 1024. Now it doesn't crash anymore. But this is only tested for 2x so far

                                    1 Reply Last reply Reply Quote 0
                                    • FrankbeatF
                                      Frankbeat
                                      last edited by

                                      If I want my whole plugin to oversample its processes, do I even need to set the Oversampler as ScriptFX? Or can I just paste

                                      Engine.setMinimumSampleRate(88200)
                                      

                                      into my Init script?

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

                                        @Frankbeat no actually if you use both the oversamplers stack onto each other.

                                        FrankbeatF 1 Reply Last reply Reply Quote 1
                                        • FrankbeatF
                                          Frankbeat @Christoph Hart
                                          last edited by Frankbeat

                                          This post is deleted!
                                          1 Reply Last reply Reply Quote 0
                                          • FrankbeatF
                                            Frankbeat
                                            last edited by

                                            Actually, Engine.setMinimumSampleRate() seems to do something different to the Oversampler: It Changes the rate, a sampler reads waveforms on.

                                            Example: If I enter 88200, my waveforms (rating 44100 Hz) appear to be red with half speed.

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

                                            26

                                            Online

                                            1.8k

                                            Users

                                            12.0k

                                            Topics

                                            104.3k

                                            Posts