That's why I created [zeroxpos~] - so that it gives you the position of
the 1st, 2nd, 3rd etc zero crossing within the block. Then you can use
a [bang~] connected to a counter like [cup] within the block object to
calculate the time from when the counter was last initialized, and work
out when the zero-crossing happened.
It only works when audio is buffered into a table though - it's not true real-time but one block away.
Ed