- 14 Jan, 2021 3 commits
-
-
David Reid authored
Variables are marked with this annotation to make it clear that access to the variable should be done through atomics. I've also review the use of volatile in this commit. Public issue https://github.com/mackron/miniaudio/issues/259
-
David Reid authored
This was setting the previous pointer of newly attached nodes to NULL instead of a pointer to the dummy head node. This then results in the dummy head node never being updated when the node is detached which in turn results in an uninitialized node being dereferenced.
-
David Reid authored
-
- 13 Jan, 2021 4 commits
-
-
David Reid authored
-
David Reid authored
-
David Reid authored
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. -
David Reid authored
-
- 12 Jan, 2021 10 commits
-
-
David Reid authored
This is no longer necessary and just introduces unnecessary latency and inefficiency due to extra data movement.
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
This provides an optimization by allowing processing to bypass the resampler. Audio data needs to pass through the resampler even for the case where pitch=1 because it needs to update internal buffers which if it didn't do, would result in a glitch when moving away from 1. In practice most sounds won't require individual pitch control, however in the interest in being consistent with miniaudio's philosophy of things "Just Working", pitching is enabled by default. Pitching can be disabled with MA_SOUND_FLAG_DISABLE_PITCH in ma_sound_init_*() and ma_sound_group_init().
-
David Reid authored
This is the first step towards decoupling the ma_effect API from the engine for the eventual removal. This also fixes bugs regarding channel conversion when processing an engine node.
-
David Reid authored
-
David Reid authored
This bug happens when the channel count of the data source does not match the channel count of the engine.
-
David Reid authored
This is mainly for consistency with the node API, but also because it more clearly indicates that it's an absolute time rather than a delay which sounds more like a relative time.
-
David Reid authored
This changes ma_sound_set_start/stop_delay() to take an absolute time in frames based on the global clock. Previously these took a relative time in milliseconds. To use a relative time, add it to the value returned by ma_engine_get_time(). To use milliseconds, use a standard sample rate to milliseconds conversion.
-
- 10 Jan, 2021 7 commits
-
-
David Reid authored
-
David Reid authored
These changes are in preparation for fixing some issues relating to retrieval of channel counts from data sources. The problem relates to the asynchronous nature of the resource manager and how data sources may be in the middle of loading when trying to initialize a sound which results in the channel count not yet being available. The channel count is necessary in order for the engine to be able to convert the data source to the channel count of the final output.
-
David Reid authored
-
David Reid authored
-
David Reid authored
This commit has known issues which will be fixed in the next commits.
-
David Reid authored
-
David Reid authored
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.
-
- 09 Jan, 2021 2 commits
-
-
David Reid authored
This is not fully functional as of this commit.
-
David Reid authored
The sample format is now always 32-bit floating point. This was done for simplicity and practicality.
-
- 07 Jan, 2021 2 commits
-
-
David Reid authored
-
David Reid authored
Effects will now be implemented by plugging effect nodes into the node graph at the appropriate location.
-
- 06 Jan, 2021 8 commits
-
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
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.
-
David Reid authored
-
- 05 Jan, 2021 1 commit
-
-
David Reid authored
This changes the way ma_node_uninit() waits for the audio thread. Now, instead of waiting for the *entire* graph to complete, it only waits for it's local processing to complete.
-
- 03 Jan, 2021 3 commits
-
-
David Reid authored
-
David Reid authored
This makes it possible to give individual input and output buses unique channel counts which might be useful for specific kinds of effects.
-
David Reid authored
-