- 09 Apr, 2021 1 commit
-
-
David Reid authored
-
- 08 Apr, 2021 2 commits
-
-
David Reid authored
-
David Reid authored
This was not propagating the result code when retrieving the render or capture client from an audio client.
-
- 06 Apr, 2021 1 commit
-
-
David Reid authored
This crash can happen if the decoder reads more data than it reports from ma_decoder_get_length_in_pcm_frames().
-
- 05 Apr, 2021 9 commits
-
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
This crackling was happening due to abrupt volume transitions as the gain changes for each channel as sounds move around the world. This change smooths out these transitions using linear interpolation.
-
David Reid authored
-
David Reid authored
-
David Reid authored
This is happening when the engine's sample rate differs from the data source's sample rate.
-
David Reid authored
-
- 04 Apr, 2021 5 commits
-
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
* Sounds can now have another node be used as input rather than a data source. * Sounds can now have a configurable input and output channel count. For sounds that are backed by a data source, the input channel count will always be set to the data source's native channel count. * Sounds can now be initially attached to any node and input bus rather than only a sound group. With this change, sounds can now be used as groups. In future commits, it's likely that ma_sound_group will be unified with ma_sound. Whether or not the `ma_sound_group_*()` APIs will continue to exists is for now undecided. This change allows more flexibility for doing custom effects before the spatialization stage in the DSP pipeline. The problem with the existing design is that there's no way to apply a custom effect before spatialization which becomes a problem because spatialization will often increase the channel count which results in excessive effect processing due to the increased channel count. Now it should be possible to set up a graph such that an effect can be plugged in between the data source and the spatializer. A new function called `ma_sound_init_ex()` has been added which is what needs to be used to initialize a sound without a data source. This API uses the config/init pattern. The config is called `ma_sound_config`. -
David Reid authored
-
- 02 Apr, 2021 8 commits
-
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
When the listener is looking at exactly the same direction as the world up vector the 3D math breaks down due to a cross product evaluating to a zero length vector.
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
- 21 Mar, 2021 5 commits
-
-
David Reid authored
-
David Reid authored
This fixes the following APIs: * ma_calculate_buffer_size_in_milliseconds_from_frames() * ma_calculate_buffer_size_in_frames_from_milliseconds() Public issue https://github.com/mackron/miniaudio/issues/283
-
David Reid authored
-
David Reid authored
-
David Reid authored
Clang auto-vectorization hints
-
- 16 Mar, 2021 1 commit
-
-
David Reid authored
-
- 15 Mar, 2021 3 commits
-
-
Steven Noonan authored
The range of the value isn't obvious to any compiler, as it could go for one iteration or 4 billion iterations. Adding MA_ASSUME in these places helps the compiler understand the range of possible values, and know how heavily to vectorize (or not vectorize) these loops. Signed-off-by:Steven Noonan <steven@uplinklabs.net>
-
Steven Noonan authored
This tells the compiler that pFrameOut does not alias to pointers used within the function, and teaches Clang that the loop is vectorizable. Signed-off-by:Steven Noonan <steven@uplinklabs.net>
-
Steven Noonan authored
These values are constant, but Clang has some trouble noticing that, especially if the loop body is complex enough. This prevents it from noticing places where vectorization is possible (and desirable). Signed-off-by:Steven Noonan <steven@uplinklabs.net>
-
- 14 Mar, 2021 3 commits
-
-
Steven Noonan authored
This allows us to use the __restrict keyword in places where we know that pointers do not alias. Signed-off-by:Steven Noonan <steven@uplinklabs.net>
-
Steven Noonan authored
This macro can be used to tell the compiler's optimization passes static assumptions which you *know* are true about code behavior. Use of these can be risky -- if you assume incorrectly, the compiler may emit code that will not work in circumstances you didn't anticipate. On the other hand, use of this macro in places where the optimizer is missing an assumption that would have been safe to make can cause it to emit more compact/optimal code. Signed-off-by:Steven Noonan <steven@uplinklabs.net>
-
Steven Noonan authored
Both GCC and Clang can use this feature, so let's make it more general. I didn't touch the dr_wav/dr_flac parts using this, since I figure the amalgamated miniaudio.h header isn't the primary source for those. Signed-off-by:Steven Noonan <steven@uplinklabs.net>
-
- 11 Mar, 2021 1 commit
-
-
David Reid authored
wasapi: ensure that wasapi context structure is zeroed before filling it
-
- 10 Mar, 2021 1 commit
-
-
Steven Noonan authored
I had a situation where I was doing: ma_backend backends[] = { ma_backend_jack, ma_backend_wasapi, }; ma_context_init(backends, sizeof(backends)/sizeof(backends[0]), &contextConfig, &context); And since JACK was unavailable, it fell back to WASAPI. When this happened, the WASAPI commandIndex and commandCount variables were already stomped on by the JACK backend initialization, but the WASAPI backend assumes they are zero-initialized. Signed-off-by:Steven Noonan <steven@uplinklabs.net>
-