HISE Logo Forum
    • Categories
    • Register
    • Login

    Time Stretching

    Scheduled Pinned Locked Moved Feature Requests
    36 Posts 6 Posters 5.7k 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.
    • d.healeyD
      d.healey @A Former User
      last edited by

      @iamlamprey Thanks, that got me a little further :)

      @Christoph-Hart Any idea why my node won't show up in HISE?

      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

        @Christoph-Hart I have it working in Windows, but it still won't show up on my Debian machine. The DLL compiles successfully but it won't show up in the node list and I see this in the hardcoded fx

        a5264dc3-f31e-4c6f-a6d5-d0f061d555c9-image.png

        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 d.healey

          Aha I solved it. I was linking against my distro's rubberband library. I had to compile it myself and link against that instead. actually looks like I can use my distro's library, if I move it into the src folder and point the auto generated jucer project to it.

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

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

            @d-healey There's also a Rubberband build configuration where you don't need to link against a prebuilt library and it builds it from the source files directly. I used this method and just threw the entire Rubberband library into ThirdPartyCode/src/Rubberband...

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

              @Christoph-Hart Is that a configuration on the HISE side or within the custom node?

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

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

                @d-healey In the Rubberband library

                Single-file build. If you want to include Rubber Band in a C++ project and would prefer not to build it as a separate library, there is a single .cpp file at single/RubberBandSingle.cpp which can be added to your project as-is. It produces a single compilation-unit build using the built-in FFT and resampler implementations with no further library dependencies. See the comments at the top of that file for more information.

                Although I think I managed to switch to IPP despite what this paragraph said...

                Link Preview Image
                rubberband/COMPILING.md at default · breakfastquay/rubberband

                Official mirror of Rubber Band Library, an audio time-stretching and pitch-shifting library. - rubberband/COMPILING.md at default · breakfastquay/rubberband

                favicon

                GitHub (github.com)

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

                  @Christoph-Hart Oh interesting, thanks

                  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 @Christoph Hart
                    last edited by

                    @Christoph-Hart Yep that worked, much simpler :)

                    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

                      Okay here's what I have so far. Mainly taken from the audio programmer's video, with a little help from some forum members and the RubberBand docs.

                      It certainly affects the audio but doesn't seem to be controlling the time stretch properly. Just makes everything sound kind of choppy. I tried it with adjusting the pitch instead of the time and that seemed to work much better (still choppy though).

                      I'm sure I'm missing something important. In the audio programmer's video he's using read and write buffers, but I don't know how to access them in a custom node (do we have access to them? are they necessary?). I'm just using the data pointers.

                      I also wonder if I need to add some start padding and delay as described here - https://breakfastquay.com/rubberband/code-doc/classRubberBand_1_1RubberBandStretcher.html#a078827068efc609efb4c71bd094d80e9

                      Any help appreciated.

                      rubber_band_node.zip

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

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        blezzbeats @d.healey
                        last edited by

                        @d-healey Excited to see where this goes. I've done some experiments abusing the timer, here's an poor man's old school timestretch:

                        HiseSnippet 2440.3oc2ZssaabbFdWKttgzwEMoBEs2MUn0cYprDojkRRUULsN4HDqCQT0tWXffQ6NjbhWtCwtC0gDHffhh9Zzq6M4YnnW0K5KQAJ5UEn4Mn8+elYOQtThV0IF09Bat+Gl4a9Ouy5CiDdr3XQjkc0iuX.yx9scZeQnr2l8n7Pqc2xx9tNRdeVrLhI85YswECnwwLeKa6YdLJhc0JVp+7MObCZ.MzikQxx5oBtG6I79bYF0Ca8I7ffcn9rigENi9CZsqmHbSQfXH.mYbZXMf58BZW19TTra4XYe6s84RQTaIUxhsrqrgv+h18DmEpk+o7X9IAL7glVsgERSdGQfOhXjp0l83A9GlbrisrrcNLyHLi1HLqydbedJ8LiwOPwfjoQd6g8sJBuYJ.ul4gWibvqDHYmCRNZH8NNs8h3CjYbP7bGmcCkrnNTvrmGJ6Ore6.tOK5PvDBPww9VfEVuBV1+EmMEfZgxE5SeAamH3gzkwc0FMlm.+U80pUqyvPOIWDRDg6KjrCBcqW6KqUs1k0HixpSmR4gaTjHHfEUJaLBH5pTzMbX+SXQySNkFLjkJH36KZqclrsNenfm9bmSPQ3tgb4ACXgSJ.wxXrfe8a1cKpjhNHCMPtArHIGgf8VrSgncs6ppyVr3WHECf38LeYEMSHJR3OLfJKFZg4SFFfMnf+DcOgwb4E4y2FMdqxzEuc0oCSKbeGmC4PAgxw6sJAufU6aa7Zxduqy1c5v7jYfshyN+1qLUsxzE9L8P4Gl.kGMzmKdh.CSTPYVMEBRhbX.8BVTyIUUkr7e5eLsUUsl5ppP8cOvswxGJo7kGGAEK3gcyy.g41gTvV3mGAGIDRLsOkVqOsUaZ+AALvhFIgkufzrSYQwEWgc3AlB6+Bms+UOGLceN3xhe9wa7wOeCFUR1fJkArmCtGobgynmZ0GsKN1nx8omi+rxezxJ..nZOS3EnPreBe6YtQEJx6oO.P+ob1YYzJsnckWC8QZN88QpbU8QtqywSnIuomws9muaZSiXl7YbeYO2UVF6Rji7Gy3c6IcWQ07XwEeLSRnpnczoPFnh1qAgiwRnddDIM2vjGPVmnF9XgtLohmNjJEptyMdtyb5sBKhShUhSDc5.XIlzQDQDfuKfNX.DVaXGWKhk7aUfySoAvF2XsRnuDvXDI+kiPXwkzG0Hv0Rh4eAi31GRD4wL3b5GWWspcQtsQlqSVogRg1ZaMg1WLLTRbg5CdfUDF2QqhwW7n9RPmlKzvbJgtzPmPxIWPNqGGTWJH7PuHFMlU73SfEj.KQDuaWvniKIOQ60y.z6ksOY1QHcEfztaoMUpm10uAhi0xSoolhhTDTPHDJH.jV0XJy8nIVP1KAjQPjMwsixBfT0QIcfZBDZnOo63B2IRzGnAEF3P3Ci5WOm+RIw5jsC6xCYXziNv4HfracCB6SCGpN6xngLEjvhXJTZBIiLE0.YRhoo99eRn3D24hPFyMOAlMBCtSDEC5cmSxNWB7lKcAmaLQ5CEbQQdB.PZz37giz.ze.x.N6w2Bn3Gv5AkvfdNv3Cd.dL4gAvxmeJpDYSllxSzefHDNY4GnJmuSQbsZWBKVhI.rlalnUhcnNt2l0bSZPvIPiC2w1MDR4hzyhvIu.roj6kBTi82DJVl42rFn0YYiKvHcQOPhbixWa9ZrPiliwQY+VRayGQGeen3i.FiAvXlionPF+59hn9z.vA5eX5wbLT3y5PGFfUMFlyQWhayn0U503cb0gzquNFQWuVUfXUPkXQ.agAQP1tqV50.5EJmX7xUurVUV.T3H2R0gBDLqkGMvCGtiYrpXpDpy0VGo53UQGM0LdGQzdXcx155jtIKZcrf5ji+RcvkGAVzvoaMrYxwHM.ymAi66isD.qsJx2ssnOS1CIcF75PcqOlSYbigwInz+ifxbFqVAK8dTna1.wYtP.172W8D8jXkN2OIsq9hMAt0IuW9hYKl6ghdJ098qml86+4sqjMP0IB3eIZY2SWREZyR8+7gwRz7AMjFfCSZxo2KopatT5MFJkhPL0C4gYeqB4zMwbAs3Eyo0zlq7LEMyqKQ4mZdpp5.UMsUfJZGSOROviHftWAxexgjliwDhHK.v5iNqP4EBSypvhekUNLU.v9r7GZJHVPqhlvrcbtxEb71SkIjpH5RqLAt5BoMl.TFo1mZUJweVPyqzslelpjBZE2WudzvtLeUYqWm0rx7VSHForCsNT4X83aD7J3hFOPAGh1Lgm5lTx.MNRnT8pfQGbB9lUnUHunHRT+HEG44tINTJKpLeTIhkTKj3N5X0vb0lxT4lhTOiO91.3vBOiK6oT3.0bqtMmWURFJHrz6O+HCaqakM5n6iMg9z63VarVliugY0dG678QjFj6cuQA.TbdkFMdC+fu5JqjdDK6ko9+6C9kS3lO2CdOTXxtE3cCEQrswSnqZ5KPKyHzIh.XA0be08WpdKjpuLyYMEUrJY7sbSBVnscxXn.nTUfeI1BchcgRG7X0+dzvvPnkuacLOWcfvjgjdm5lmo8be0EM7JObnZw5h3xnuW5TiRc8L.4xGtI1iDe9aNFjKqMoOCvHqfXf4l9GqQqoZgAfPuHbYhUqCPNmQBj5xWCeXga+p5CKbM2cb5GYvthAgfnR0U188MWYmdtYKNrHukiNrxRg97WXq0jzV+8fTZ+8bTuF+nJ+oslFkq5XJSUP8uZ1u9eOU68cbRChJr.+4+1+5YstQefEzfYl0xx145MY5qN11x5B7G0f8FGSFEPOqN5KRWupWqQ77jKd9hzamtvEGjYeOnkditiS5EEouT6p210bq3pK1t5sO17XxsBMhCNEc0lBujBe+toAeeyCiG1oC+bLF8ma0W8IB9QNkcyFV4mlO+BnONU9xY+5G+2+he+C0GmzuPwzYXyGgn.+ev95AekuxXbeamrW1Iw59SJZc+qlGK+P7gs9t6K18p4KDWMAis4Xk0sCOkE.YMJL9tPZh5TlPcoBnbOQnXPOQH2q32qwT9NO1K8.8HoDd0gLJy15HV.dYzYj9YszuT4nexouU+JGk5u9wNZ3RvlCj2L9Rqy7FzWZ8k.JGIFh21zdTHPEqQf++cPLDJOAHILDlRK4+xClmajT9nMKzW8v+A9igYS7YaCylIL+NYO5S8hDelmtsIFK+VJJv4NT8sQqB8jfmIMS5U53zXgFXQP9m44gl662zxpbcV5Fnyx2.cdvMPmUtA5r5MPm2+FnyGbk5fe21GMTJ5qSEABGtsZlEa6zuSt8LV+WzjHKyB
                        

                        Works alright (for samples shorter than 65500-whatever samples ofc) and I managed to build some other variations for detecting and adjusting according to BPM, beatslicing etc. Pretty fun for lofi and breakbeats but not really for Hans Zimmer stuff lol.

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

                        15

                        Online

                        1.8k

                        Users

                        12.1k

                        Topics

                        104.9k

                        Posts