Indexing a multichannel buffer

Isaac Jacobs's icon

I'm working with an existing patcher that uses index~ to play back audio out of a buffer, adapting the patcher for multi-channel wav files (upwards of 50-60 channels but number of channels isn't a guarantee). I've been using mcobjects whenever possible because of their flexibility and strength processing multiple channels. However, using mc.index~ <buffer> gives me just one channel of output, even when the buffer contains many channels. If I force more channels out of the object using mc.index~ <buffer> @chans 100, the output contains many channels but each channel is a duplicate of the first. Is there any way to index a multichannel buffer with a single mc.index~ object, or is there no way around needing a separate index~ for each channel?

Wetterberg's icon

can you use mc.target to go through and point each to a new track using its right inlet?

Wetterberg's icon

huh, yeah it does seem to not really be that mc. flexible. Consider going over to using mcs.play~ , which is very suited to this. It'll respond to the same signals, but can even have independent buffers per channel, iirc.

i just ran that senita-8ch in mcs.play~ and it plays just fine.

Isaac Jacobs's icon

Thanks for the ideas! Unfortunately the patcher currently uses index~ (driven by a count~) since we need sample-accurate synchronization of different multi-channel files. It's easy enough to convert a sample number from count~ to a time in ms, but all I hear are clicks and pops when I try to give play~ a new start time every sample.

Wetterberg's icon

> but all I hear are clicks and pops when I try to give play~ a new start time every sample.

that's weird, because play~ takes a signal input, which does just that, so I'm thinking there's a different underlying problem here.