Forums > MaxMSP

Apply SFX to all files inside [polybuffer~]?

Mar 28 2013 | 1:43 am

Hi all,

I want to apply a specific Effect/Processing to all of the files inside a [polybuffer~] and then save them all in one go. The saving part works (ha) but i cant figure out the most important part of applying the effect…..
How could this be done?


Mar 28 2013 | 2:07 am

You’d need to iterate through them to play them through the effect and record into another set of buffers in real-time.

Mar 28 2013 | 2:55 am

I need to process lots of samples and dont really wish to click on each one. How could you scroll through each file automatically?
Also, i understand you can record into a [buffer~] but how about [polybuffer~]. The reference doesn’t say much. How would i go about doing this?
Perhaps someone could show a quick example?

Mar 28 2013 | 10:36 am

each buffer listed inside polybuffer~ will behave the same way as a mono buffer. You have to talk to each buffer separately. You can iterate and automate processes with things like [uzi].

Mar 28 2013 | 6:25 pm

I’ve been stuck with [record~] for about 2 hours now. I dont understand it. Im looking at the record~.maxhelp.
If i enable the "start/stop recording" toggle the "sync outlet" goes from 0. to 1. I have to press Play on the sound source(Sound File) within the time the "sync outlet" reaches 1. for it to record into the buffer. Otherwise the buffer does not get recorded into. WHY? What am i not understanding? Its driving me nuts!

PS- if enable looping it over-writes the buffer with nothing….
The "start point" and "end point" are both at 0.

Mar 28 2013 | 9:28 pm

because… you record for as long as the buffer is, after that the recording just stops. You need to feed some audio to the record~. The end point should be at the end of the file.
You should try the msp tutorials related to recording into buffers.

Mar 28 2013 | 11:47 pm

Im using [buffer~] right now. I’ve got pretty much everything working but I have a problem that i cant figure out…
Once a file is processed/saved and i move on to try and process a second file. This second file(once saved) contains the previous sample as well. So it combines. I dont understand why?!?! I’ve tried Clearing the buffer but it doesnt make any difference.
Could someone please tell me whats wrong with the patch?

-- Pasted Max Patch, click to expand. --

Mar 29 2013 | 2:05 am

NVM, i forgot to clear the second buffer. The sample combining problem is fixed.
Everything works. I thinbk using [buffer~] instead of [polybuffer~] is better/easier. Right? I only have one slight problem in that i cant figure out why the "write files to disk" portion appends an Extra 0 on every file. Can someone tell me why this is?
Also, the way i have built this patch, its quite efficient? Could i improve on it?
Thanks alot!

-- Pasted Max Patch, click to expand. --

Mar 30 2013 | 12:36 pm

i made some correcitons, hope it helps :

-- Pasted Max Patch, click to expand. --

Some things that was causing possibly bugs :
-the record~ objet doesn’t output audio. So you have to connect the audio that comes into therecord, into your outptu, if you want to hear your output.
-i redid nearly from sratch the filename formatting… if this doesn’t suit you, just know that the 0 was caused by a bang sent to a $1 message, which outputs 0 by default. The problem is that append needs that you give him a message to output anything (a bang isn’t enough for him). The way i did : with regexp i take the original filename and i get rid of filepath and of extension, then i add an index to the filename (given by the count) and prepend the filepath you wanted.

Hm in fact, here’s your way of giving a filename, without the 0 :

-- Pasted Max Patch, click to expand. --

hope it helps !

Mar 30 2013 | 12:38 pm

also i added [b 2] or [b ] objects everywhere, which are just bangs triggered right-to-left, just to ensure that there is no problem relative to order of messages :)

Mar 30 2013 | 5:32 pm

Hi vichug, thank you for the EDIT. I dont really understand the "combine Macintosh:/Users/m0dit/Desktop/ANALYZE/1/ s" What is this "S" at the end?

Also i was going to post a new thread but ill ask here first.

I noticed that with no Sound Effect (recording normal) the New recorded version is alot different compared to the original, thats no good! It seems like the attack has been sliced off.
I think i read somewhere that [record~] is not good quality wise. What else can be used?


Mar 31 2013 | 3:39 am

I tried [sfrecord~] and it seemed ok so i reworked the script. Would be great if vichug or someone else could have a look at it.
The major problem i have is alot of the times when processing the sample it seems like the start of the sample is cut-off/missed. For some reason its alot worse when using the [umenu] files instead of the single [replace].
Why is this?

-- Pasted Max Patch, click to expand. --

Thanks for the help!

Mar 31 2013 | 2:17 pm

Well i figured it out. It seems the delay between File creation/save and Record ON toggle was to quick. I’ve set the delay to 100ms.

Mar 31 2013 | 4:52 pm

yes, those kind of timing problems can be uncool to deal with. The [del 100] is the dirtiest solution, albeit often the most easiest :p
the s at the end of [combine] is just to ensure that combine expects 2 arguments, and creates two inlets. s means ‘string’, but as any of combine’s inlet takes a string as input, it could have been enything else really. I just needed to add a something in order to have the object create another inlet.

re : record problem and delay : keep in mind that in Max, control operations are executed in a right-to-left and then top-to-down order. So in your patch, the save/record part, you need to figure out in which order control operations need to be executed.
In that case :
-first of all, a new filename should be generated
-only then can (and should) the recording be started
-lastly, when you’re sure it’s recording, you can begin playing the soundfile

You can ensure this by using objects like [bangbang] (abbreviatd [b]) and [trigger] (abbreviated [t]). Basically, those two objects are used only to repeat one message to multiple outlets (see helpfiles) and, as they have multiple outlets and order of message is alway right-to-left, you are sure that the rightmost outlet sends somehting first, then the immediate leftmost to the rightmost, then the immediate leftmost, etc etc etc and leftmost outlet sends its message at the end.

-- Pasted Max Patch, click to expand. --

Apr 01 2013 | 1:30 pm

Hi vichug,

Yes i kind of forgot about the right to left execution order. (still need time-noober). I’ve changed the [del 100] etc, Its been pointed out to me i can also use the [deferlow] object. Its basically the same thing…
Anyways. All is well, all is working. Thanks again for all the help!
Now off to post a new problem thread :)

Apr 01 2013 | 3:55 pm

you’re welcome :)

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

Forums > MaxMSP