The problem is that metro is not really a metronome. It is an alarm clock.
The ms time parameter tells metro how long to wait until the next bang.
Updates to the right inlet take effect when the previous time period
expires. If you are going from fast to slow this may not be evident but
slow to fast certainly is. At the point where you change from mm = 160 to
80 this will be quite obvious. Unfortunately waiting for a bang doesn't to
the trick since the next time delay has already begun. The remedy is the
tempo object. You might also try metro~. I looked at it but I'm not sure
how it works.
Gary Lee Nelson
On 12-Jun-2006, at 17:41, Gary Lee Nelson wrote:
> The problem is that metro is not really a metronome. It is an
> alarm clock.
Thinking outside the box, it occurs to me that a solution could be
found in the Litter Power object lp.frrr~. I know that when I built
the object, I added code to specifically deal with the issue of the
user increasing the speed of pulses. Instead of waiting for the next
"alarm" to ring before adjusting tempo, frrr~ calculates what
percentage of time-between-pulses has passed and adjusts the
scheduled time of the next alarm proportionally, based on the new
pulse rate. So whenever you change pulse rate, frrr~ responds with a
slower or faster tempo immediately.
If metro~ or tempo does this, then fine. But if you're still looking
for a solution, someone (maybe even li'l ol' me) could look into
building an example with lp.frrr~.