This would try reading from an uninitialized buffer thereby resulting
in a bad audio glitch. This does two things to fix the problem:
1) When there are no input nodes attached to an input bus, nothing is
read and 0 will be returned for the frames read variable.
2) The buffer is silenced by default.
This fixes a bug with ma_engine where it would glitch in the moment
just after the engine is initialized and before a sound or group is
attached.
This is needed for scheduling frame-exact starting and stopping of
nodes, in addition to any kind of time-based effects required by custom
nodes, such as fading.
With this change, attachment and detachment of a node's output bus is
now consistent:
* ma_node_attach_output_bus()
* ma_node_detach_output_bus()
The old function that allowed you to attach the other way around has
been removed as the caller can easily do that themselves by swapping
the order of parameters.