Forums > MaxMSP

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

August 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
August 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?


August 12, 2008 | 10:46 am

Hint: Google on "feedback loop".

That’s basically the answer to your question.


August 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


August 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


August 12, 2008 | 1:31 pm


August 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


August 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.


August 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)