Sync metronome w/ Live
I'm a noob... and confused why this patch has these two issues.
The metronome in the Patch, while it matches the tempo in Live, doesn't seem to match the 'grid'.
When Live loops, it seems that all items are 'fetched' from the grid and played at once..
Below is a vid and the relevant portion of the patch.
Thx for any tips as to what to look at in documentation or other samples.
Hi Martin,
Rule #1 would be to always look in the Max console for errors. The way you wrote your [metro] box looks wrong, so you may have a helpful error message there.
I'm guessing because of that, metro has a very small or 0ms value for its internal timer, causing everything to be output "all at once".
[metro 8n @quantize 8n] is probably what you're looking for.
Hi Tyler.. yes, that definitely helped.. I had noticed the missing @ after making the video and intuiting that the documentation had an '@'.. so why didn't the original example I looked at not... but even with that it didn't seem to solve the problem... however, with the prefixed 8n in you example... that definitely is getting me closer.
Now there is one remaining issue... it happens that if I 'enable' the metronome in the M4L script out of time w/ the Live metronome, well, the notes are 'offset'... they are still on the same grid.. but, out of step depending on how many 8th notes (in this case) off it is started. which, I suppose, may be desirable in some cases.. however, I'm curious how to 'force' the playback to sync w/ first note in the sequence to start on the downbeat of the Live metronome (or, in fact, if I happen to pause/restart the transport halfway through the measure, start the sequencer in the "right" spot.
I guess it must have to do with the 'counter' object I'm using... or how its being used (based on the example tutorial I was following).... perhaps instead of that, somehow 'reading' where in the measure the Live transport is when the metro is enabled, and use that to 'set' the initial value of the counter... or something along those lines.... hmmm...
Thx again for helping a noob
You're on the right path, Martin. If I understand what you're after, you probably want to use the [transport] object rather than [counter]. Then you can rely on the bars/beats/ticks information output from [transport] to figure out which is the correct position in the sequence to lookup. It usually takes coding a bit more math, but that's part of the learning :)