- 19 Jan, 2021 2 commits
-
-
David Reid authored
-
David Reid authored
-
- 18 Jan, 2021 1 commit
-
-
David Reid authored
-
- 17 Jan, 2021 11 commits
-
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
This is in preparation for some work coming to the upcoming resource manager.
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
This was not setting the NON_BLOCKING flag correctly when NO_THREADING is set.
-
David Reid authored
This is useful for platforms that do not have support for threading or programs that do not want to use an extra thread for resource management and would rather process jobs manually. When configuring the resource manager to not use threading, the MA_RESOURCE_MANAGER_FLAG_NO_THREADING flag must be set in the config. This implicitly enables the MA_RESOURCE_MANAGER_FLAG_NON_BLOCKING flag because it requires programs to manually call ma_resource_manager_process_next_job(), and since it's assumed that won't ever be called from another thread, you'd never want that to be blocking. This sets up a framework for getting the resource manager working with Emscripten.
-
David Reid authored
This needs a rethink. My test is no longer looping. Needs further investigation.
-
David Reid authored
This is an optional callback and is used by miniaudio as a hint to help it determine how many input frames to read at a time. Without this, miniaudio needs to guess how many frames to read, and in certain situations may end up overestimating. This callback is only useful for nodes that process input and output frames at different rates, i.e. nodes that perform resampling.
-
- 16 Jan, 2021 12 commits
-
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
This saves a mandatory call to ma_audio_buffer_ref_set_data(). With this change, an ma_audio_buffer_ref_init() call is all that is required to initialize a usable data source.
-
David Reid authored
-
David Reid authored
-
David Reid authored
-
David Reid authored
This is a data source whose backing data is an application-controlled pointer. No data is copied. It's a way of efficiently wrapping a raw buffer and using it as a data source.
-
David Reid authored
-
David Reid authored
Change of mind on how this should work.
-
David Reid authored
This is useful for retrieving information about some aspect of the node. A good example is human readable names associated with the node and it's input and output buses. This is useful for user interfaces where a brief description of the node such as "Low Pass Filter" can be drawn on the screen. It's also useful for buses to be named, such as the source/carrier and excite/modulator on a vocoder effect which would also need to be visible on a UI.
-
- 15 Jan, 2021 4 commits
-
-
David Reid authored
-
David Reid authored
-
David Reid authored
The following flags can now be associated with nodes via the vtable: * MA_NODE_FLAG_PASSTHROUGH * MA_NODE_FLAG_CONTINUOUS_PROCESSING * MA_NODE_FLAG_ALLOW_NULL_INPUT * MA_NODE_FLAG_DIFFERENT_PROCESSING_RATES See commit changes for a description of these flags.
-
David Reid authored
* The simplified callback has been removed. * The `globalTime` parameter has been removed from the callback. * The order of input and output frames and counts has been swapped to be consistent with ma_data_converter_process_pcm_frames(), etc.
-
- 14 Jan, 2021 7 commits
-
-
David Reid authored
-
David Reid authored
Public issue https://github.com/mackron/miniaudio/issues/260
-
David Reid authored
This enables the ability to explicitly enable only the backends a program is interested in. Essentially it's the reverse of the pre- existing method whereby instead of disabling backends, all backends are disabled by default, and then specific backends are enabled. Example: #define MA_ENABLE_ONLY_SPECIFIC_BACKENDS #define MA_ENABLE_WASAPI /* Only care about WASAPI on Windows. */ #define MA_ENABLE_ALSA /* Only care about ALSA on Linux. */ Note that even if MA_ENABLE_* is used, the backend will still only be enabled if the compilation environment and target platform actually supports it. You can therefore use the MA_ENABLE_* options without needing to worry about platform detection. Public issue https://github.com/mackron/miniaudio/issues/260 -
David Reid authored
-
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 3 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.
-