Forums > MaxMSP

(for devs) send~ and receive~ cause extra vector latency?


Aug 11 2008 | 10:49 pm

Hi,

I have a very specific question that maybe can only be answered by the devs: I’ve noticed while building a sample acurate patch that the use of send~ and receive~ SOMETIMES causes an extra vector size latency..I am trying to find the explination off when this happens but without any luck.
I’ve also noticed that adding audio signals together by simply putting 2 or more wires in an object does also sometimes cause an extra vector size latency.

Could anyone please explain me why and exactly when this happens?

Many Thanks,

Kessito


kjg
Aug 12 2008 | 9:42 am

i’m not a dev, but i do know that all you could ever want to learn about this issue has been discussed on these forums before.
have you searched the archives using google?

Aug 12 2008 | 10:46 am

Hint: Google on "feedback loop".

That’s basically the answer to your question.

Aug 12 2008 | 11:38 am

I’m sorry, maybe I wasn’t clear enough with my question. I do understand that max works with vectors and that you can’t have a feedback with less than the vector size and all that, but I mean something different:
If I have two subpatchers with audio in it and you send the audio to one another using send~ and receive~ (no feedback or so going on at all), then sometimes the audio gets delayed by an extra vector size and somtimes it don’t, while the situation is not different. I am trying to find the explanation off when this happens. I found out for instance that when the two patchers are in the same parent patch, the extra latency does not seem to appear, while when they are just two patches running in the max application it does happen. I’m just trying to find out the logic behind it and I can’t really find an answer in the documentation or the forums.

Many Thanks

Kessito

Aug 12 2008 | 11:51 am

Ok I did find some answers in the meanwhile but it still isn’t completely clear to me: send~ actually copies the whole vector of audio and only adds delay when nessecary, in situations like feedback, this I understand, but what happens with different patchers and subpatchers then?

Many Thanks

Kessito

Aug 12 2008 | 1:31 pm

Aug 13 2008 | 5:37 am

Kessito schrieb:
> I’ve also noticed that adding audio signals
> together by simply putting 2 or more wires in an object does also
> sometimes cause an extra vector size latency.
>
> Could anyone please explain me why and exactly when this happens?

If you create a feedback loop, a vector size delay is introduced. This
is not avoidable in any DSP program as far as I know…
Either don’t feed back, or lower your signal vector size….

Stefan


Stefan Tiedje————x——-
–_____———–|————–
–(_|_ —-|—–|—–()——-
— _|_)—-|—–()————–
———-()——–www.ccmix.com

Aug 13 2008 | 11:54 am

Quote: Kessito wrote on Tue, 12 August 2008 13:38
—————————————————-
> If I have two subpatchers with audio in it and you send the audio to one another using send~ and receive~ (no feedback or so going on at all), then sometimes the audio gets delayed by an extra vector size and somtimes it don’t, while the situation is not different. I am trying to find the explanation off when this happens. I found out for instance that when the two patchers are in the same parent patch, the extra latency does not seem to appear, while when they are just two patches running in the max application it does happen. I’m just trying to find out the logic behind it and I can’t really find an answer in the documentation or the forums.
—————————————————-

At this stage you may well have to follow Emmanuel’s suggestion.

If there is no feedback loop to break, send~/receive~ are *supposed* to copy data immediately. But determining whether there is a feedback loop can be complicated, particularly in the situations you describe.

It is possible that the behavior you are finding is not intended. It might even be a bug! But the whole process of building the DSP chain and detecting feedback loops is sufficiently complex that probably no one can answer your question without having your examples to test against.

Aug 13 2008 | 1:01 pm

Hi,

I understand thet we need to know why…

But probably you could use for audio send and receive (without tilde) too.

This if you don’t need to change dinamycally the send and receive ‘address’.

All the best


Alessandro Fogar

http://www.fogar.it

2008/8/12 Kessito :
>
> I’m sorry, maybe I wasn’t clear enough with my question. I do understand that max works with vectors and that you can’t have a feedback with less than the vector size and all that, but I mean something different:
> If I have two subpatchers with audio in it and you send the audio to one another using send~ and receive~ (no feedback or so going on at all), then sometimes the audio gets delayed by an extra vector size and somtimes it don’t, while the situation is not different. I am trying to find the explanation off when this happens. I found out for instance that when the two patchers are in the same parent patch, the extra latency does not seem to appear, while when they are just two patches running in the max application it does happen. I’m just trying to find out the logic behind it and I can’t really find an answer in the documentation or the forums.
>
> Many Thanks
>
> Kessito
>

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

Forums > MaxMSP