"freeing zero signal?"

Nicholas Davis's icon

Hello,

Pardon my obtrusive invitation to what may be an "over it" MSP forum topic, but I can't seem to find any internet article that explains what exactly is going on when the Max window politely asks "freeing zero signal?" Unfortunately a thorough answer from many years ago has been freed by its former host, but there is some vestige of that knowledge still floating around in the virtual air molecules of this forum, and they always whisper the name "Emmanuel Jourdan..."

So, what in the world does "freeing zero signal?" mean? Layman's terms will do, but if anyone does feel so inclined to elaborate further than an answer such as "You probably have some DSP object which is doing something not really good…" it would be gratefully welcomed. Or, perhaps someone could point me in a direction where I could find the answers I seek for myself.

A little context:

I have created an abstraction comprised of many, many [cycle~] objects (I am creating noise), in the process I have created a few abstractions that are within the final abstraction, the final one being the one that causes the max window to gently ask me the question in question. I have created these abstractions with nothing but the vanilla Max 6.1.8 library (I noticed that this seems to be the first inquiry when attempting to get to the bottom of why in the world Max could be asking "freeing zero signal?"). Perhaps my abstractions are causing some kind of discomfort to the DSP? I find it odd, because the audio signal, the DSP, and the CPU have no trouble before or after Max asks the question, and Max has yet to crash during these circumstances.

Thank you for your time,

Nicholas

Nicholas Davis's icon

I found a hint:

Check the list for a proper explanation, but I've had this before and
it didn't indicate a problem. It might be poly~ announcing that it's
freeing memory/cpu for operations that are unnecessary because of a
zero signal. poly~ encapsulates its DSP chain such that it can mute,
downsample, and in Max5, spread voices across a multicore CPU, so it
might be smarter about optimization.

I'm not using [poly~] at all in my patch. But I can see that there may be similarities.

Nicholas Davis's icon

Oh, and just for thorough's sake:

MacBookPro9,1 (no upgrades)
OS X 10.9.5
Max 6.1.8

Nicholas Davis's icon

Ah, another hint from the same email thread:

Hey, anyone out there max-savy that can help figure out a message?
i have a patch with a bunch of groove~ and buffer~, and a couple poly~ playing with groove~.. every now and then I get a msg in the max window saying "freeing zero signal?" it is a question, it is trying to talk to me but i dont get it! The patch doesnt freeze up or anything extreme, but i reckon one of the many sig~ out there wants to stop sending a zero..? but how do i do that?
Thanks for any input!
cheers
~nat

I am using a bunch of [sig~] objects within this abstraction. Is there some kind of hiccup happening when [sig~] sends "a zero signal?" This is starting to make some sense. On one of the few other forum threads concerning this topic a certain user, Rodrigo, mentions the following:

It’s hard to reproduce but always happens when I’m editing the patch, and only really pops up once per time I notice it (hence why it’s so hard to reproduce). I used to think it was related to using old externals (fftease) but even after dropping them, I still get it from time to time. The only externals I’m using are AHarker externals.

I, too, only notice this gentle question when I am editing a patch with my said abstraction. Perhaps [sig~] is the culprit?

Nicholas Davis's icon

Upon searching the docs.cycling74.com/max6 area for any other hints I found out the Max window question "freeing zero signal?" is not an error message, warning, or internal error, it is "status information" because it is not highlighted in any color, so, it is not listed in the Max6 Error Messages List.

I now have a strong feeling that this tiny, harmless question is a result of many, many zeros flying at a whopping 44100 per second rate from many, many [cycle~] objects going through the hot inlets of [*~]s with "zero signal" [sig~]s in the cold inlets of said [*~]s. I have Mattyo to thank for this idea from a thread concerning a tangential concern:

This is true of _all_ MSP signals. when the DSP is on, all MSP objects
are in constant communication, and every little yellow patchcord is
sending 44100 zeroes per second if "nothing" is coming through it.
Please look at " How MSP Works – Max patches and the MSP Signal
Network" in the MSP tutorials for further clarification.

Roman Thilenius's icon

you can be sure that every hot signal is nothing but millions of zeros - but that should not cause weird error messages or dialogs which required some form of user interaction. :)