-
-
Notifications
You must be signed in to change notification settings - Fork 121
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
Patternable tempo changes via cps
#51
Comments
I wonder if the assumption of 1 cycle / second has any disadvantage? If not, we could implement cps like cpm |
Hm, I think having a global cycle rate that can be changed is pretty important. Personally I don't really like 1cps, the default in tidal is |
But anything against implementing it with slow, assuming a hard coded cps? I kind of like 1s because it's normalized |
With something like: The More generally, when it comes to syncing between systems, it would be difficult to do that without a global clock. |
makes sense. so we need a global clock that dictates how fast the scheduler will run. also thought syncing would be great. |
SuperDirt likes to have some metadata - the current |
i made some improvements to the scheduler + sketched cps option DEMO I am not sure if the behavior is right when I change the tempo: when pressing minus, the scheduling might repeat notes, if pressing plus, the scheduler might jump over notes. it feels like the scheduler has to use a time phase? is this how tidal does it too? this is the code: https://github.com/tidalcycles/strudel/blob/ea1ffca4ae430cc64a0be08dfc062204021c351a/packages/webaudio/scheduler.mjs |
tempo changes are now working smoothly (the above link will still show the old behavior). Updated demo Interestingly, the implementation is quite similar to a digital oscillator, which also requires keeping the phase in state to avoid phase jumps / cracks when repitching: https://github.com/tidalcycles/strudel/blob/optimize-scheduler/packages/webaudio/scheduler.mjs#L17 The next step is changing cps from a hap. I think it will only be possible to change the cps once per slice (in the above example it's 10Hz) |
That's also working now not sure if this is similar how it works in tidal though |
This got lost along the way.. |
moved from #494: global clock #470 is now implemented in #493 . example: https://strudel.tidalcycles.org/?9xvgxvOjkBR1 now the next step is making it work with patterns |
Good stuff. FWIW I needed to do a hard refresh for that to work. |
sometimes the old version may be stuck in the cache.. ideally, the pwa service worker will update itself and reload the page when it's ready |
small request: once this is fixed, if possible find a way to make a separate function that does what the current behaviour does, because it's quite cool! |
I noticed that passing a pattern to |
In summary, the following needs to happen:
|
There is
cpm
in core but it assumes a scheduler running at 1 cps.It would be great if
cps
could be patternable, e.g.or
The text was updated successfully, but these errors were encountered: