What you describe is sufficiently complex that you’re pretty much asking for a complete end-of-term project rather than a single patch – it’s generally easier to break your task down into simpler subunits. But it’s also the case that – since there is almost always more than one way to do something in Max – the smaller units themselves probably have a variety of their own idiosyncratic solutions. Finally, this is something that lots of people do in different ways.Here are some things you might want to consider – since you’ve been away from Max, thinking about these approaches in a general way might help you start playing around and get back into thing.1. Separating recording and playback from a buffer is a common enough Max thing to do, and what you’re describing involves the playback end of things almost entirely. Since you’re describing the subdivision of a buffer into pretty “standard” or “normal” subunits, you should take a look at the new Max ITM features that let think of the contents of a buffer in terms of bars, beats, and units when using an object like groove~ [there is a recent thread on this very subject]. If you’re thinking of doing all this in sync multiple buffers, then the phasor~ objects you might use to drive the play~ object in Max can also be addresed by using musically interesting time. If you’ve primarily used Max 4, then it’s a good opportunity to learn some of what I think is the most interesting stuff about Max 5.2. Instead of worrying about zero crossings, you could think of applying audio-rate envelopes to your subunits3. Some people do buffer playback by splitting the messages necessary to define a “cue” for buffer-playing into separate messages for start points and duration that are mixed and matched by some selection process within Max Or, more likely, they’ll use abstractions that will take information on duration from the info~ object and calculate subunits based on overall length. Once you’ve got multiple cues that correspond to divisions of your buffer, you find some cool way to generate a little variety in triggering them [think of it as a programmable drum machine with the usual grid for programming, but there’s only one “drum” and each bit of the interface fires a portion of the file.4. For phasor~-based playback, the combination of the phasor~ and rate~ objects give you all kinds of interesting control especially if the first phasor~ is synced to a transport and the rate~ object’s sync modes are interesting.5. For reasons I don’t entirely understand, almost no one really messes seriously with the 2d.wave~ object, and it’s awesome.There are a billion possible answers, and I hope these few hints about places to start prove helpful. Your mileage may vary, of course.#

via Topic: Slicing Audio on the Fly « Cycling 74.