Yo,
roc wrote:
"stutter~ keeps a history of its signal input(left inlet). Upon recieving an int(left inlet), it copies that number of the most recently recieved samples to another playback buffer. This buffer may be cycled through by its phase, 0-1 (right inlet). on bang (left inlet) or a trigger signal (middle inlet), the last int number of samples are copied to the playback buffer."
Jeez! Those Max objects are so specific! I really have the same feeling about them as I have for a lot of fancy VST plugins: it takes the fun out of coming up with a unique effect yourself.
</editorial>
Really, though, there is no need to port.
I think this effect could very easily be done with an abstraction built with a minimum number of basic, low-level objects. It would contain two arrays, where the first would write incoming sound, which could be then passed to the second array, where it could be played back. The main things to know are how long each buffer is. The size of the first would determine the length of your "history", and the length of the second is useful to know so you can control the playback rate. The playback buffer could be "cycled" using a [phasor] in the same way that is used in most of the "sampler" patches in the audio examples of PD. See also [tabwrite], [tabread4~], etc.
best, d.