Hello list,

I'm working on a (looping) sample player right now with pitch change, start and end, and loop controls... Looping is going fine but I am looking for a better way of making a oneshot sample play with tabread4~.  I've attached a re-creation of what I am doing - using a metro at high speed (1 ms) driving snapshot~ so that the frequency goes back down to 0 when snapshot yields a value from the phasor~ approaching 1 (my > test is set at .99 now).

Problem is, when I change the frequency of that phasor~ up really high, the snapshot~ misses the values sometimes and it keeps looping instead of stopping like I want it to.  Is there a better way of doing this?  I thought about using line~ or vline~ to drive tabread4~ but that wouldn't allow for pitch changes while the sample is being played, because the messages being sent to line~ would cause it to reset every time they changed.  Also, a pipe object for the length of the sample (at whatever speed) wouldn't do it either.

NOTE: I know I can use susloop~ for this just fine (what a great object!), but I am trying to make it using only native Pd objects so that I can share this without requiring anything else.  I want to distribute it as a learning patch because my school is interested in teaching some Pd eventually.  Plus I wouldn't really learn as much as I have if I was just using susloop~ ;)

Any help is very much appreciated!
Kevin