Jan 21 2012 | 10:50 am
I want to crossfade loops and wondered how you guys do this. So far I figured out how to do ducking, but I would like a crossfade instead. Because, of course, it's smoother. And I have found a way to do it, but it isn't a fancy way.
So yeah, anyone?

• Jan 21 2012 | 11:31 am
I suppose it depends on what your definition of 'fancy' is....
Brendan
• Jan 23 2012 | 3:14 pm
Actually I meant the patch below. I searched the forums a bit more thoroughly and found something that helped.
• Jan 23 2012 | 3:57 pm
nice one
• Jan 23 2012 | 4:17 pm
and here's a 'reductive' version using [trapezoid~] -> [sinx~] for crossfade time. Pretty much does exactly what the crossfade buffer does, but easier for a n00b like me to understand!
Brendan
• Jan 23 2012 | 4:59 pm
• Jan 23 2012 | 5:27 pm
edit:
[trapezoid~ 0.1 0.9] -->
[*~ 1.5] -->
[sinx~]
• Jan 23 2012 | 5:34 pm
I see.
But actually, I think trapezoid doesn't make a crossfade. In my first example you see one player fades out and the other fades in. I don't see the same thing with the trapezoid example.
• Jan 23 2012 | 6:35 pm
Are you sure?
• Jan 23 2012 | 7:37 pm
Yeah, I'm sure. The trick is the phasor goes from 0 to 2 in this case. When the phasor's value is bigger than 0 it triggers a fade-in and when its value is bigger than 1 it triggers a fade-out. So unfortunately trapezoid~ won't work, I guess. Which is a shame, because to me it looked a lot cleaner.
• Jan 23 2012 | 9:08 pm
Sorry Dave I have to put my hands up - the [cycle~] phase inlet wraparound theory is a bit beyond me I'm afraid, but I take your point.
Best Brendan
• Jan 23 2012 | 11:09 pm
Well, The phasor going into [cycle~] is going from 0 to 1, so it doesn't have to wrap around. However the phasor going into [play~] is going from 0 to 2. This way we can read the buffer from 0-1100ms. And when one [play] reaches a 1000ms, the other [play~] starts at 0ms.