HISE Logo Forum
    • Categories
    • Register
    • Login

    Timestretching/Pitchshifting

    Scheduled Pinned Locked Moved General Questions
    125 Posts 14 Posters 11.5k 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.
    • Christoph HartC
      Christoph Hart @audiolyf
      last edited by

      @audiolyf Actually I just have forgot to take that into account but that's fixed now (along with a lower stretch limit of 0.0625 instead of 0.5).

      A 1 Reply Last reply Reply Quote 1
      • A
        audiolyf @Christoph Hart
        last edited by

        @Christoph-Hart mf king!

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

          I'm thinking about adding this to the AudioLooper too (it's pretty obvious that this might be useful there). Is anybody using the tempo synced mode in a real project? It previously changed the pitch to match the tempo but I guess that is so totally useless that I can replace the functionality and enable timestretching by default when the tempo syncing is activated.

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

            @Christoph-Hart

            Is anybody using the tempo synced mode in a real project?

            Yes, and I added new modes for longer loops (I think you merged this already). But real time stretching will be so much better.

            However the main limitation of the loop player is that you can't edit the loop points. So I've switched over to the sampler with custom import now. The only problem there is every time I change a parameter the loading callback gets triggered.

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

            1 Reply Last reply Reply Quote 0
            • P
              parabuh
              last edited by

              It would be greate if we could use time stretch for FX and slowdown incoming signal :)

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

                @parabuh You can can't do this with scriptnode core.stretch_player

                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

                  No the stretch_player still requires an audio file. The problem is that there is a latency of 50-100ms which makes it unsuitable for realtime processing of the audio input.

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

                    Noticed a strange UI glitch, xfade table is missing.

                    Peek 2023-08-03 14-52.gif

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

                    1 Reply Last reply Reply Quote 0
                    • modularsamplesM
                      modularsamples
                      last edited by

                      I've just tested stretch_player and the results are really, really good. At least with drums/synthy loops. Spent 10 mins just messing with an amen break, such fun.

                      Just a thought, wouldn't it make more sense to integrate the stretching into file_player as an additional playback mode?

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

                        @modularsamples no the file_player is too complex now already, if you want to switch between those you can just use two nodes and a soft bypass template, then assign them to the same audiofile slot.

                        modularsamplesM 1 Reply Last reply Reply Quote 0
                        • modularsamplesM
                          modularsamples @Christoph Hart
                          last edited by

                          @Christoph-Hart Fair enough, that would be a reasonable approach. I'm looking at from the opposite angle, merging them would make the overall network less complex.

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

                            Just saw the new commits

                            #ifndef HISE_ENABLE_RUBBERBAND
                            #define HISE_ENABLE_RUBBERBAND 0
                            #endif
                            

                            So is rubber band implemented already or is that the "theoretical support"?

                            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 I've added Rubberband and played around with it but there were many glitches and the CPU usage also was much higher than with the other one while the sound-quality wasn't much better so my motivation to make this work kind of evaporated pretty fast. I decided to leave the code in there for future endeavours (or if somebody wants to add elastique on their own), but for now the signalsmith engine is where the party's at.

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

                                @Christoph-Hart Was it RubberBand 2 or 3 that you tried?

                                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 Both. Rubberband v2 sounds completely off and Rubberband 3 sounds about as good as signalsmith (on some signal's it's better on some worse), but has 3x the CPU usage plus I couldn't get it to work correctly with the start of a sample (the API works a bit different so I would have to account for that).

                                  There are a lot of parameters you can tweak in Rubberband so I might have just used the wrong ones, but I just wanted to slap it in and compare it to signalsmith and for my taste signalsmith is the clear winner here.

                                  1 Reply Last reply Reply Quote 1
                                  • J
                                    johnmike
                                    last edited by

                                    so I have multiple drum loops loaded across multiple keys...Stretching works fine when I play a single key...but when I play multiple keys at the same time it plays back the loops at different BPMS..one key seems to hold the stretched tempo while the other is playing back at the original BPM that the loop was recorded at...

                                    1 Reply Last reply Reply Quote 0
                                    • J
                                      johnmike
                                      last edited by

                                      as an addendum to the previous...seems as if the loops are the same bpm(originally before bringing in) then they play just fine when played together...but if they are different tempos(originally) they won't play back at the temposynced BPM....hopefully this makes sense....is there something I'm missing? or do all the loops I add in need to be at the same BPM for them to work together?

                                      LindonL 1 Reply Last reply Reply Quote 0
                                      • LindonL
                                        Lindon @johnmike
                                        last edited by

                                        @johnmike said in Timestretching/Pitchshifting:

                                        as an addendum to the previous...seems as if the loops are the same bpm(originally before bringing in) then they play just fine when played together...but if they are different tempos(originally) they won't play back at the temposynced BPM....hopefully this makes sense....is there something I'm missing? or do all the loops I add in need to be at the same BPM for them to work together?

                                        So my understanding is that the time/pitch stretching is applied to the sampler - and it is applied as a ratio - so yes if you want to play multiple loops together - everything in the sampler needs t start out at the same tempo - or you can set up sample maps with a single loop in it - and then use multiple samplers..

                                        HISE Development for hire.
                                        www.channelrobot.com

                                        J 1 Reply Last reply Reply Quote 0
                                        • J
                                          johnmike @Lindon
                                          last edited by

                                          @Lindon Gotcha...that's what started to make sense...not a problem...that means I just need to time stretch all the stuff that I want to time stretch into the same tempo lol...I'll mess about with that!

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

                                            @johnmike What about using multiple samplers, does that work?

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

                                            J Christoph HartC 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            9

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.4k

                                            Posts