Forums > MaxMSP

Checking amount of channels in a buffer

April 10, 2012 | 2:28 pm

How can you get how many audio channels a buffer has ? (I’m trying to use it with a polybuffer) It has to be cpu efficient so I don’t want to read the file from the disk.


April 11, 2012 | 10:01 am

Actually, i’m not sure that you can. You can ask for that for a soundfile using sfinfo~, but it seems info~ doesn’t offer the same feature. I suggest trying using cues via sflist~ and such anyway, as it’s not consuming so much more cpu than multiple buffers from my own experience : I came across the same problem earlier, and here’s a possibly buggy workaround i used first, before switching everything to the sflist~ system (also because i needed ram memory) :

– Pasted Max Patch, click to expand. –

the aim of this is to duplicate the ch1 output into where ch2 should go, if and only if there is strictly nothing coming out the ch2 output. If you don’t use a peakamp~ before checking if it’s == 0, it’s all buggy because zero crossing is obviously a common thing in time domain. There is probably a better way to detect if a signal is continuously equal to 0, in ways allowing to stay in signal time-domain (like with 2 thresh~maybe ?) but you get the idea.


April 11, 2012 | 7:40 pm

Sending a getChannels message to [mxj buf.Op] will do it,
Cheers
Roger


April 12, 2012 | 12:27 pm

Hello,
wonderful ! thanks ! is that part of the default distribution ? so many (nearly)hidden things…



pm
April 12, 2012 | 1:05 pm

buf.Op is nice, but I had trouble with it when the patch is built as an app.

I just found a [gen~] solution… for Max6 users.

– Pasted Max Patch, click to expand. –

April 13, 2012 | 10:36 am

doesn’t seem to work here ?… yes it doesn’t work, because the gen patcher in your patch is empty. the copy compressed feature probably doesn’t work well for gen subpatchers.



pm
April 13, 2012 | 12:07 pm

You’re right!
Here it goes!


April 14, 2012 | 4:17 pm

Thanks ! ahso it seems like a new gen~ feature… seems there is even an operator, [channel], that is specifically there for reporting a buffer number of channels !


Viewing 8 posts - 1 through 8 (of 8 total)