-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
don't stop track when loop_in/out is beyond track boundaries #9478
Comments
Commented by: daschuer Ok, the current situation is odd. I am not sure what the right solution is though. 1.) We may play past the end, which is unfortunately silence. Unfortunately the engine can play past a track right-now. So 1. involves some refactoring. Is it worth the work, or is the silence part undesired anyway? |
Commented by: ronso0
The playback should stop at the end only when there's no active loop with loop_end beyond the end. For rewind it works quite well right now: you can scroll before the track start, when dragging waveforms or with controller wheel in scratch mode. OTOH the rewind stops at the track start when the wheel is in jog mode, which is also a nice feature. |
Commented by: mevsme Maybe also, as a variant, we can make recursive loop that starts at the end and finish at the start? D |
Commented by: ronso0 that's just the play direction. use '[group],reverse' '1' loop_in at end, loop_out at start would create a zero-length loop. |
Commented by: daschuer mevsme's idea is to build a loop that runs bejond the end of the track as if repeat was enabled, by jumping to the beginning and playing the missing samples from there. |
Commented by: ronso0 ok, I misunderstood 'recursive'. I think the chance samples from the start fit better than silence is quite low. If I stick to the vocal use case I mentioned above it would probably be fading out anyway, so silence wouldn't be a problem for me. IMHO, to avoid refactoring or making the loop code more complicated it'd be best (easiest for now) to prevent the loop being shifted beyond the end? |
Commented by: ronso0 Using samples from the start is problematic IMO as users probably don't expect it, and if the do the result is unprecitable because that range is not visible on the waveform. Extending the loop-able range beyond the track and filling that space with silence would still be my preferred solution because you would get what you see: silence. What about limiting that part to at most the half of the desired loop?
|
Commented by: JoergAtGithub I would like to add an additional use case, with a loop beyond the track end: To handle this use case I propse the following behavior: |
Commented by: ronso0 for reference, this is the place where 'play' is disabled when play_pos passes track_end: IMO the looping control should stay as is and shouldn't bother with track_end. Except that (when reverting #3117) we need to set some limit for how far a loop can be set/moved beyond the track's end to avoid long useless silence, right? when passing track_end EngineBuffer::processTrackLocked() would check if play_pos id within an active loop: if true it wouldn' touch 'play' and the track continues. |
Reported by: ronso0
Date: 2018-10-23T20:47:06Z
Status: Confirmed
Importance: Medium
Launchpad Issue: lp1799574
Tags: looping
I create a 8-beat loop loop close to the track end and shift the loop to have loop_in at the beginning of a vocal phrase. I could move the loop let's say 1/8 beat beyond the track end (= loop_out after track end, but no indicator where that end point actually is Bug 1799576) and the loop would stop playing as soon as it reaches the track end.
I see there'a reason to not allow huge loops (unexpecedly) cross tracks' start/end, but there are use cases where this is actually very helpful:
2.3.0-alpha-pre
The text was updated successfully, but these errors were encountered: