\"  bbuf.roff from ObjectProDSP 0.2
\"  Copyright (C) 1994 1995, Mountain Math Software, All rights reserved.
\"  Licensed for free use and distribution under version 2 of the Gnu General
\"  Public License. Please see file COPYING for details and restrictions.
\"  
\"  ObjectProDSP is a trademark of Mountain Math Software.
\"  
.H 1 "Buffer descriptors"

Buffer descriptors determine how data is buffered between nodes.
Currently only circular buffers are supported. Usually you do not
need to worry about these. They are created and assigned to a network
automatically and the default values are generally sufficient. 
You need to use these objects to change the default buffer size or
to modify the control and buffering in the stand alone version of
a network. In interactive execution all buffers are of a fixed
size and this must be large enough to prevent blocking. In the
stand alone network buffers are made as small as possible consistent with
other constraints.

There is a potential trade off between buffer size and
efficiency. You can specify a desired size for the buffer 
and whether the buffer should be enlarged (increased
performance) or shrunk (minimal memory requirements) if the
desired size will waste memory.

There are two scheduling algorithms available. With fixed scheduling
a static table determines the number of executions for each node.
With some networks fixed scheduling is impossible or would produce
an excessively long table. You can select if you want to attempt
to used fixed scheduling. If it is not possible to used fixed scheduling
then dynamic scheduling will be used.  Dynamic scheduling is slightly
less efficient because it requires computing the number of times a node
can execute every time it is invoked. However this is done with an
efficient algorithm that does not require a divide.

To assign a new buffer to an existing network select `network menu'
from the pull down menu for `Data base' in the network window.
Then select `exec' and `SetBufferDescriptor' (you may need to select
`other' several times to get to `SetBufferDescriptor')
in the menu window for the network. You can also assign a buffer
descriptor to an existing network be marking that network
as being edited and creating a `CircBufDesc' object instance.
