1. 06 Aug, 2024 2 commits
  2. 05 Aug, 2024 2 commits
  3. 04 Aug, 2024 3 commits
  4. 27 Jul, 2024 1 commit
  5. 14 Jul, 2024 1 commit
  6. 08 Jun, 2024 2 commits
  7. 14 May, 2024 1 commit
  8. 12 May, 2024 1 commit
  9. 29 Apr, 2024 1 commit
  10. 28 Apr, 2024 7 commits
  11. 26 Apr, 2024 1 commit
  12. 11 Apr, 2024 3 commits
  13. 07 Apr, 2024 1 commit
  14. 01 Mar, 2024 3 commits
  15. 29 Feb, 2024 4 commits
  16. 28 Feb, 2024 5 commits
  17. 27 Feb, 2024 2 commits
    • David Reid's avatar
      Memory improvements to node processing. · 9aa6e035
      David Reid authored
      When processing a node, miniaudio will read into a temporary buffer
      before mixing input attachments. This commit removes the per-node heap
      allocation and replaces it with a per-graph stack. This should result
      in less memory usage at larger scales, but at the expense of slightly
      more usage at smaller scales.
      
      The size of the stack can be configured via ma_node_graph_config. If
      ma_engine is being used, it can be done via ma_engine_config.
      9aa6e035
    • David Reid's avatar
      Update to node processing. · 7a8ebd7f
      David Reid authored
      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.
      7a8ebd7f