HISE Logo Forum
    • Categories
    • Register
    • Login

    Phase coherence broken when SendContainer comes before Sampler in the module tree

    Scheduled Pinned Locked Moved Bug Reports
    11 Posts 4 Posters 429 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.
    • O
      Orvillain
      last edited by

      I'm using send containers to duplicate sampler outputs, in order to turn the left half of a stereo audio file, into a dual-mono signal throughout my signal path.

      But there is something quite unexpected here.

      This module ordering:
      0db02da9-6052-4d8f-9669-a7e1a0861a3c-image.png

      Results in this kind of audio output:
      a8b6aa2b-d307-4c2b-9972-bbecb0e85d1b-image.png

      But this module order:
      7dad7a60-c03d-4958-b0ed-96d60333bb47-image.png

      Results in this kind of audio output:
      ce5f312d-b221-462c-be95-c8e57e7e6238-image.png

      So if the Send Container comes after the Sampler, then audio phase coherence is perfect. But if the Sampler comes after the Send Container, then there is a fairly significant sample latency introduced on the "duplicate" channel. I measured it as 256. My soundcard buffer size is 512. Which I don't think is a coincidence.

      To my mind, the ordering of modules shouldn't affect things like this. @Christoph-Hart could you confirm if this is a bug, or if you'd expect this behaviour???

      O d.healeyD clevername27C 3 Replies Last reply Reply Quote -1
      • O
        Orvillain @Orvillain
        last edited by

        No one has any thoughts on this? Or am I just being a n00b and discovering an aspect of HISE that everyone else already knows about? Seems like a bug to me.

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

          @Orvillain said in Phase coherence broken when SendContainer comes before Sampler in the module tree:

          So if the Send Container comes after the Sample

          I'm pretty sure in the docs it mentions that the send container must be after.

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

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

            Actually it's not in the docs, it's in this post from Christoph - should be added to the docs though.

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

            1 Reply Last reply Reply Quote 1
            • clevername27C
              clevername27 @Orvillain
              last edited by

              @Orvillain what, on earth, are you doing with 10 kick-sends? 🤣

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

                should be added to the docs though.

                Yes and / or add even a warning on the module interface if you connect a send FX to a container that comes before it as it's a very subtle issue that would slip through easily.

                O 1 Reply Last reply Reply Quote 2
                • O
                  Orvillain @Christoph Hart
                  last edited by

                  @Christoph-Hart said in Phase coherence broken when SendContainer comes before Sampler in the module tree:

                  should be added to the docs though.

                  Yes and / or add even a warning on the module interface if you connect a send FX to a container that comes before it as it's a very subtle issue that would slip through easily.

                  Or just modify the code so that when you add a send container, it always gets added to the end of the module it is being added to?

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

                    @Orvillain said in Phase coherence broken when SendContainer comes before Sampler in the module tree:

                    added to the end of the module it is being added to?

                    You don't necessarily always want this so I wouldn't make it that strict.

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

                    Christoph HartC O 2 Replies Last reply Reply Quote 0
                    • Christoph HartC
                      Christoph Hart @d.healey
                      last edited by

                      You don't necessarily always want this so I wouldn't make it that strict.

                      Actually I can‘t think of a use case where having the container before the source would be useful - usually one could argue that this can be used to implement feedback loops like you do with the scriptnode send and receive nodes but this should be done in scriptnode and the send container on the HISE module level‘s prime use case is signal routing.

                      d.healeyD 1 Reply Last reply Reply Quote 1
                      • O
                        Orvillain @d.healey
                        last edited by Orvillain

                        @d-healey said in Phase coherence broken when SendContainer comes before Sampler in the module tree:

                        @Orvillain said in Phase coherence broken when SendContainer comes before Sampler in the module tree:

                        added to the end of the module it is being added to?

                        You don't necessarily always want this so I wouldn't make it that strict.

                        I don't think it should be enforced necessarily. Just as a serving suggestion. You could still place the module wherever you want using the Builder.

                        In any case, this should definitely be documented. I'd be happy to add something to the documentation myself, if it is possible.

                        1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey @Christoph Hart
                          last edited by d.healey

                          @Christoph-Hart said in Phase coherence broken when SendContainer comes before Sampler in the module tree:

                          Actually I can‘t think of a use case where having the container before the source would be useful

                          You may want the container to be after the source but not want it to be at the end of the chain. I can't think of a particular use case, but it may come up in the future.

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

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

                          22

                          Online

                          1.8k

                          Users

                          12.0k

                          Topics

                          104.1k

                          Posts