[chuck-users] coordinating rhythmic timing with unpredictable OSC events

mike clemow michaelclemow at gmail.com
Fri May 4 14:51:17 EDT 2012


Hi There,

Graham Coleman had this awesome class called TimeGrid…  anyone know where
that's located anymore?  I might be able to dig it up this weekend.  It
encapsulated a lot of this kind of quantizing functionality in a neat way.

-Mike

http://michaelclemow.com
http://semiotech.org




On Thu, May 3, 2012 at 12:34 PM, [chriswicks] <crwicks at yahoo.com> wrote:

> All 3 replies were spot-on, thanks very much.  Tom Lieber, your suggestion
> works perfectly for my application, verbatim.  Thanks guys, this list is
> fantastic!  Loving ChucK.
>
> -crwicks
>
>   ------------------------------
> *From:* Tom Lieber <tom at alltom.com>
> *To:* [chriswicks] <crwicks at yahoo.com>; ChucK Users Mailing List <
> chuck-users at lists.cs.princeton.edu>
> *Sent:* Thursday, May 3, 2012 11:08 AM
> *Subject:* Re: [chuck-users] coordinating rhythmic timing with
> unpredictable OSC events
>
> On Thu, May 3, 2012 at 10:54 AM, [chriswicks] <crwicks at yahoo.com> wrote:
> > Hello all!  I'm quite new to ChucK, and I have a question concerning
> > rhythmic timing.  I've got a program that I'm working on that accepts OSC
> > events being sent from a C++ application.  Now, the program chugs along,
> > it's quite rhytmic, and I'd like to trigger melodic shreds based on
> values
> > sent through OSC.  No problem doing that.  My problem comes from the fact
> > that the C++ app isn't in sync with the ChucK VM, so the times at which
> it
> > chooses to send data are pretty much never in sync with everything else
> > that's going on, so the melodic shred is triggered but is not lined up
> > rhythmically with everything else that's going on.
> >
> > Is there any way to hack it so that it waits to add the shred until it's
> > lined up with everything else (quantized, so to speak).  I'm not sure if
> I'm
> > properly expressing the problem, so let me know if there's some way I can
> > further clarify.
>
> Simplest way is to prepend your shreds with synchronization code like this:
>
>   second / 2 => dur beat;
>   beat - (now % beat) => now;
>
> If your tempo varies, you might need an object that sends 'beat'
> events and you could wait to receive one of those at the start of the
> shred instead.
>
> --
> Tom Lieber
> http://AllTom.com/
> http://infinite-sketchpad.com/
>
>
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20120504/5b69cc2c/attachment.html>


More information about the chuck-users mailing list