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.
    • 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
                  • J
                    johnmike @d.healey
                    last edited by

                    @d-healey I’m sure that would work…but for what I’m trying to do I’d need 88 samplers lol(a sampler for each loop on each key)…it would probably be way more efficient and less time consuming for me to just make everything a uniform BPM and then put them in one sampler…

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

                      no, the idea is that the tempo_sync mode will sync each sample to the BPM regardless of its source BPM, but this mode isn't working correctly yet. I'm totally undecided how to address the issue of detecting the bar length and getting the right multiplier so if anyone has ideas how to do this, let me know.

                      J LindonL 2 Replies Last reply Reply Quote 0
                      • J
                        johnmike @Christoph Hart
                        last edited by

                        @Christoph-Hart ahh gotcha…yea that would work…but as it stands this is still way ahead of where we were! I’ve been waiting for this!

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

                          @Christoph-Hart said in Timestretching/Pitchshifting:

                          no, the idea is that the tempo_sync mode will sync each sample to the BPM regardless of its source BPM, but this mode isn't working correctly yet. I'm totally undecided how to address the issue of detecting the bar length and getting the right multiplier so if anyone has ideas how to do this, let me know.

                          Yep - you could do it like Kontakt(yew did I just say that?) - have a scripted call that lets the programmer/developer tell the process exactly how long in bars/beats each loop is and what tempo it is

                          HISE Development for hire.
                          www.channelrobot.com

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

                            @Lindon Why not just make a new sample property called NumQuarters that will be used to calculate the original BPM of the sample?

                            This will override the NumQuarters that you can set with the timestretch properties, which will override the default fallback behaviour of guessing how fast it is using the current tempo.

                            LindonL 1 Reply Last reply Reply Quote 1
                            • LindonL
                              Lindon @Christoph Hart
                              last edited by Lindon

                              @Christoph-Hart said in Timestretching/Pitchshifting:

                              @Lindon Why not just make a new sample property called NumQuarters that will be used to calculate the original BPM of the sample?

                              This will override the NumQuarters that you can set with the timestretch properties, which will override the default fallback behaviour of guessing how fast it is using the current tempo.

                              yep that works too...the only (slight) wrinkle is dealing with odd time signatures.. 6/8 for example - but even then all the developer need know is the number of bars and they can * 4 to get NumQuarters

                              HISE Development for hire.
                              www.channelrobot.com

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

                                @Lindon said in Timestretching/Pitchshifting:

                                6/8

                                => 3 Quarters.

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

                                  Alright, I've implemented the NumQuarters property. If this is non-zero, it will use the length of the sample with this information to calculate the source BPM, which should let you use different BPM values for every sample.

                                  I've also fixed something in the engine and now it should play multiple voices with the correct time ratio in sync mode.

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

                                    @Christoph-Hart Nice!

                                    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

                                      In sampler it seems monophonic samples aren't summed when the stretch modes are enabled, everything comes out the left speaker.

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        BWSounds @Christoph Hart
                                        last edited by

                                        @Christoph-Hart said in Timestretching/Pitchshifting:

                                        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.

                                        is this a thing yet?
                                        For some reason I cant build from the "feature_timestretch" commits...i'll figure out why on my own...
                                        just asking

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

                                          @Christoph-Hart said in Timestretching/Pitchshifting:

                                          Alright, I've implemented the NumQuarters property. If this is non-zero, it will use the length of the sample with this information to calculate the source BPM, which should let you use different BPM values for every sample.

                                          I've also fixed something in the engine and now it should play multiple voices with the correct time ratio in sync mode.

                                          Nice, but I still worry about doing this calc for those 13/7 time signatures, and you know there will be some...

                                          HISE Development for hire.
                                          www.channelrobot.com

                                          ulrikU 1 Reply Last reply Reply Quote 0
                                          • ulrikU
                                            ulrik @Lindon
                                            last edited by

                                            @Lindon said in Timestretching/Pitchshifting:

                                            Nice, but I still worry about doing this calc for those 13/7 time signatures, and you know there will be some...

                                            Hehe...

                                            Hise Develop branch
                                            MacOs 15.3.1, Xcode 16.2
                                            http://musikboden.se

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

                                            11

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.4k

                                            Posts