Skip to content

Provide tempo synchronization with external devices. #9

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

Open
kellydunn opened this issue Aug 7, 2013 · 1 comment
Open

Provide tempo synchronization with external devices. #9

kellydunn opened this issue Aug 7, 2013 · 1 comment

Comments

@kellydunn
Copy link

Yo!

Thanks a million times for rove! I use it almost daily, and it's really allowed me to experiment and develop my music over the years :). Totally dig it.

Is there some sort of roadmap to synchronize rove and other looping devices? If not, I think it would be a rad feature to consider.

Unfortunately, this feature might creep out to some other nice-to-haves with rove, like a plugin-type system where we could configure different external machines (BOSS RC-50, etc), and their (ostensibly) unique logic to handle synchronization (MIDI clock, etc).

In summation, the purpose of this "issue" is to mainly get some feedback on such a feature, and your thoughts on what would be required to augment rove in order to provide this functionality in a clean and unobtrusive manner.

@wrl
Copy link
Owner

wrl commented Sep 20, 2013

so, here's the deal. this is something i've wanted for a long time, but i definitely coded myself into a corner with rove, and it's tough to do with the code in the current state it's in.

the way rove currently works is that there's a global clock, which is less a global clock and more just a countdown until the next quantization tick. there's no concept of beats, bars, etc, it's just the Tick. we'll capitalize it, make it a proper noun here. for everybody following along at home, the meat and potatoes are in src/jack.c, line 93 in process().

when something happens to a file (generally, when you press a button on the monome), the monome code will register a callback function to happen on the next Tick. this is how seeking works. patterns are also slaves of the Tick. in fact, pattern lengths are calculated in terms of Ticks.

anyway. my vision eventually was to split out the timekeeping behavior into the individual groups, so that they would all have their own playheads/clocks, and this could also enable different quantization levels (1/16ths for the drums, 1/8ths for the chords, say). then, the groups' playheads would be slaved to a "master", which would further either slave or be slaved to JACK transport or MIDI clock or whatever.

unfortunately, that's a lot of work. and, to be honest, there are other design issues in rove that have put me off from developing it actively. add to the fact that i don't really use it much anymore, and, well...nothing is ever finished.

the good news is that i've taken some lessons from rove and am rewriting it into a much beefier and capable piece of software. the bad news is that it will be a commercial offering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants