If you need audio-accurate sampling times, you may sample the signal on an audio clock with sah~, using the accumulated clock pulse as an index to poke~ a buffer. Then dump the buffer as Max events with uzi/peek~. Using a stereo buffer and a flip-flop logic, you can dump channel 1 while channel 2 is written.
If event sampling rate equals audio sampling rate/2**n, you may also use poke~/peek~ inside a downsampled poly~ and dump every sample.
I know no simple way to pass from the signal domain to the events domain with enough time-accuracy, since both schedulers are distinct. Sampling with a Max clock (snapshot~) will not produce evenly spaced audio samples, unless Max Scheduler in Overdrive is on AND Scheduler in Audio Interrupt is on AND Signal Vector Size is low enough.
You may try this: sample a LFO with snapshot~ 1. Use the output to FM modulate a cycle in the audible range. The tone "copies" the LFO only when above DSP conditions are met.
cambio~ does not depend on Overdrive/Interrupt. From what i can see (and hear), it outputs 3 evenly spaced audio samples per signal vector. So, you are required to set Signal Vector Size = 3*(Sampling Frequency)/(events/sec you want).
It all depends on your application, how much events/sec you want, and how much time accuracy relatively to the audio clock you need.
There are two steps involved: downsampling and converting audio samples to events. As I needed both high timing accuracy and precise event rates down to millisecond to convert digital modulations to bits, I've tried using poke~/peek~ for the second step. Downsampling may be accomplished with sah~ (arbitrary sampling rate) or with poly~ (audio sampling rate / 2**n).
None is really satisfying since we need, at some point, to call Max's scheduler (edge~). Again, there is a dependency on vector size, Overdrive and/or Interrupt. However, that was enough for me to get proper bit stream decoding (ever tried to program an UART in audio?). Here is the poly~ example. Wrap in a poly~ and send the message 'down N':