>I may miss something buy my proposal would be to have the receiver (the >client) doint the mixing. > >Eg if client1's input port has only 1 source feeding it then simply evaluate >that buffer directly. >If there is more than one source (many-to-one) then get the data from the >other sources and mix them together to an intermediary buffer which will be >the one used for processing. > >The receiving client should block till all sources feeding its input ports >are ready. At this point mixing can occur (after completion the sources can >be informed that mixing is done). > >Is this applicable to your model ? No. From the client perspective, ports have a single buffer associated with them, so that clients deal with a simple, pure, sweet and lovable world. Any mixing that is done has to be handled either before the client is called, or in a function that the client calls, such as audioengine_port_get_buffer(). If this is what you mean by "the client does the mixing", then we're fine. But I don't want to expose the notion of a "connection count" to the client. --p