synchronizing multiple metro objects

    Dec 28 2011 | 6:47 pm
    Say I have multiple metro objects, set to output quarter notes. Some of these metro objects exist in bpatchers that are dynamically created by scripting, at arbitrary times. What I would like to have happen is that each of these metro objects outputs their quarter notes at exactly the same time, regardless of when they are created. I am just using the one master Max transport for the whole patch.
    Suggestions for best approach? I am looking for the tightest possible synchronization of the metro objects as possible....

    • Dec 28 2011 | 7:06 pm
      My question is; why not script-generate receive objects that all get their data from the same metro?
    • Dec 28 2011 | 7:14 pm
      Because I am using the interval attribute of the metros to easily generate subdivisions of the quarter notes (i.e. eigth, sixteenth, etc...). I'm sure I *could* do that division outside of the metro objects, but seems better to do directly within the metro?
    • Dec 28 2011 | 7:35 pm
      You could try using a quantize attribute like @quantize 4n.
    • Dec 28 2011 | 7:43 pm
      Been messing with that earlier today - so far not doing what I want it to, but it might be user error! Thanks broc.
    • Dec 28 2011 | 7:44 pm
      My approach would be to use a faster clock and a counter and send the count to all your various subpatchers, then use the modulo operator to create the actual clock in each subpatcher.
    • Dec 28 2011 | 8:06 pm
      Good idea Chris, will try that - and you guys are probably right in general, to get rid of the multiple metros in the first place...
    • Dec 28 2011 | 8:57 pm
      Did you try [metro 10 ticks @active 1 @quantize 16n] with a master transport outside of your bpatchers ?
    • Dec 28 2011 | 9:19 pm
      No, I was doing [metro 16n (or 4n, or 8n, etc..) @active 1 @quantize 16n] . That didn't work too well...
    • Dec 28 2011 | 11:32 pm
      For syncing to quarter notes you'd need using '@quantize 4n' regardless of the interval. But sending counter data from a global metro is probably the better solution anyway.
    • Dec 28 2011 | 11:36 pm
      I vote modulo, it has never failed. both the counters and the main metro have no arguments. You'll want a way to reset each counter separately and all at once, use send/receive from the main patch.
      The only issue might be with triplets etc. if you want some funky subdivisions, then you'd need a much faster main clock as mentioned above. Maybe try a clock 12X as fast as your quarter-note, so you can get down to smaller subdivisions in both duple and triple?
    • Dec 28 2011 | 11:55 pm
      Thanks all for the comments - I will be trying the modulo approach, and will probably go with 24 ppqn, so that I can substitute MIDI clock rather than Max-generated clock if the need arises....