multiple samplers - audio sync

christiancurtis's icon

Hi everyone

I am building a patch for an audio/visual interactive installation, which consists of 20+ sample players playing musical audio loops which fade in and out at different times depending on the participants interaction with the motion tracking software. I'm using the groove and buffer objects for the playback. All of the samples are the the same length and tempo , and I have not had any problem with them slipping out of sync, but as the patch will be playing for many hours at a time, and the instalation is touring so I will not be around to ensure it runs smoothly. Does any one know how I could implement some sort of central pulse to ensure that everything stays in sync?

justin's icon

certainly sounds like a good idea to have a "central pulse" to keep everything in sync. the problem is that i dont think you will get much help without providing more details, or ideally the groove player part of the patch.

there are many different ways to achieve this but it depends if you're using signal or scheduler techniques for triggering playback.

hope that makes sense,

Justin

christiancurtis's icon

Ok. Sorry about that. I'm new to this. My first Max patch and post on the forum. I've recently been dragged away from NI Reaktor. I'm unsure what you mean by,"signal or scheduler techniques for triggering playback", but I have attached the patch.

Thanx for replying

C

justin's icon

that's ok, welcome to the forum!

as an initial suggestion:

you could make the first sampler the master clock by creating a trigger mechanism which is controlled by the right outlet of groove (it provides a sync signal ramp 0-1).

everytime the first sampler sync outlet returns to 0 then retrigger the playback of the other groove players... see quick patch below.

the method used in my patch is not sample accurate so there will be some slight phasing. if u want it to be sample accurate, u need to make the sampler with something like play~ / wave~.

and in a nutshell:

scheduler == max timing (some jitter in clock)
signal == sample accurate (more cpu intensive)

i think reactor has similar options with regard to timing accuracy, but i cant remember the name at the mo...

hth,

justin

--

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

justin's icon
christiancurtis's icon

Thanx Justin!

This should do for my current project. Phasing should only occur if you have the same sample looping on more than 1 player, which is not the case with what I'm doing, and slight inconsistencies in the playback will not be noticeable. What I was worried about was samples gradually drifting out over a long period of time. I initially built the patch using sfplay instead of groove, but had problems with it glitching as it reads from disk instead of loading the files into the computers memory.