instantiation of buffers

Tiago Morgado's icon

Imagine that i record a sample into a buffer, but then I want to play many instantions of the buffer with different speed rates of the sample for each one.. what is the most stupid and simple way to do it? a friend of mine suggested me to use poly~ but I would like to know if there are other ways.. greets

Hans Höglund's icon

To index a buffer you would use multiple groove~, index~ or play~ objects. A poly is a nice way to abstract this, making it easy to change the number of voices etc. It also implements voice routing for you by keeping track busy voices.

If you intend to use FFT effects (like non-transposing time shifts), pfft~ is the way to go.

Roman Thilenius's icon

you would put the buffer in a [poly~] indeed, but you can also just use copies of the buffer.

TFF's icon

Sorry, can someone elaborate or provide an example on this? I'm attempting to play different sections of a buffer simultaneously, and putting the buffer~ and play~ objects within the poly~ doesn't seem to help.

Max Patch
Copy patch and select New From Clipboard in Max.

here's the patch:

Max Patch
Copy patch and select New From Clipboard in Max.

It doesn't appear to contain my poly~ patcher, so here's that too (referred to as "poliphilia" in the main patch.)

Thanks, Zach

mudang's icon

I didn't have a look at your patch..but you only need one buffer~ and then use multiple play~ objects to play different sections of the same buffer.

TFF's icon

I see. That's good to know, but I'm still having trouble sorting it all out.

I think it may be because I don't understand the thispoly~ object? I send the audio signal being processed into it's inlet. Since there's a non-zero signal, that should tell the poly~ object to choose another voice for the next instruction, yes?

Max Patch
Copy patch and select New From Clipboard in Max.

Here's just the subpatch showing how i have the thispoly~ connected