Skip to content
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

streamPause / UnPause, streamSeek, streamLoop #1038

Open
jarmitage opened this issue Sep 18, 2023 · 3 comments
Open

streamPause / UnPause, streamSeek, streamLoop #1038

jarmitage opened this issue Sep 18, 2023 · 3 comments
Labels
Feature Stream Issues related to the Stream functionality of playing Tidal patterns SuperDirt Issues/features that involve SuperDirt functionality or integration

Comments

@jarmitage
Copy link

jarmitage commented Sep 18, 2023

hush -> stops all patterns and cycle still cycles on, wonder if we could add to this...

  • streamPause -> do not stop patterns, but cycle stops
  • streamUnPause -> resume cycling, and patterns continue
  • streamSeek n -> current cycle ± n (using setCycle?)
  • streamLoop (a, b) -> loop cycle between points a and b

I think these would be really handy for composition! It would effectively give you full "transport" control in the DAW timeline sense.

streamSeek would be great for tracking down cycle ranges where a particular pattern sounds great.

streamLoop lets you loop a section of time that you're working on, as is common in a DAW.

@jarmitage jarmitage changed the title streamPause / UnPause, streamSeek streamPause / UnPause, streamSeek, streamLoop Sep 18, 2023
@Zalastax
Copy link
Collaborator

Great ideas!!

Can you comment on the behavior when doing this in a session with Link peers? http://ableton.github.io/link/ has the terminology. Please think about beat alignment. Please also think about what to send to the Link API https://github.com/Ableton/link/blob/master/include/ableton/Link.hpp. If you feel like it, of course. I might give it a stab myself!

@jarmitage
Copy link
Author

Hey, thanks, I'm actually really occupied playing gigs right now, but this thought just came to mind. Please feel free to explore this idea!

@jarmitage
Copy link
Author

This variation of zoom achieves streamLoop to a degree:

zoomCycle :: (Time, Time) -> Time -> Pattern a -> Pattern a
zoomCycle (startCycle, endCycle) totalCycles pat = 
    let start = startCycle / totalCycles
        end = endCycle / totalCycles
    in zoom (start, end) pat

@mindofmatthew mindofmatthew added Feature Stream Issues related to the Stream functionality of playing Tidal patterns SuperDirt Issues/features that involve SuperDirt functionality or integration labels Mar 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Stream Issues related to the Stream functionality of playing Tidal patterns SuperDirt Issues/features that involve SuperDirt functionality or integration
Projects
None yet
Development

No branches or pull requests

3 participants