Update to node processing.
Previously, processing a node would involve a temporary buffer allocated on the stack. Because this was fixed size, it would result in processing being sub-divided into chunks in order to avoid overflowing that buffer. This becomes an issue when a node needs to have a known processing size. An example might be some kind of effect that requires processing be in powers of two. With this commit, the `processingSizeInFrames` variable in `ma_node_graph_config` can be used to make it so processing always happens in fixed sized chunks. In this situations, it's recommended you always call `ma_node_graph_read_pcm_frames()` with a frame count of a multiple of `processingSizeInFrames`. The allocation strategy used here is not optimal and will be improved in future commits. It currently allocates a buffer per-node, but since the data contained within it is transient in nature, it should be possible to use a global fixed sized stack that supports allocating a variable amount of space within the stack buffer.
Showing
This diff is collapsed.
Please register or sign in to comment