Commit Graph

1740 Commits

Author SHA1 Message Date
RainRat 030b9554c2 fix typos 2024-03-01 08:35:45 +10:00
David Reid c6d8b591f6 Remove some leftover experimental code. 2024-02-29 14:39:36 +10:00
David Reid 63e1900db8 Update documentation. 2024-02-29 10:50:06 +10:00
David Reid 29da9b789c Add new init flags for sounds and resource managed data sources.
This adds the following flags:

  * MA_SOUND_FLAG_LOOPING
  * MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING

These can be used to initialize sounds and resource managed data
sources to loop by default. This is the recommended way to enable
looping for streams. The `isLooping` config option in
`ma_sound_config` and `ma_resource_manager_data_source_config` has been
deprecated. If you are using those, you should switch to the new flag
or else you'll get compiler errors when upgrading to a future version.
2024-02-29 10:25:02 +10:00
David Reid b454e7f14b PulseAudio: Try fixing a channel mapping bug.
Public issue https://github.com/mackron/miniaudio/issues/811
2024-02-28 18:40:35 +10:00
David Reid d36a2ef651 Minor cleanup. 2024-02-28 17:16:50 +10:00
David Reid 9aa6e035bb Memory improvements to node processing.
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.
2024-02-27 17:05:56 +10:00
David Reid 7a8ebd7f4d 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.
2024-02-27 15:31:17 +10:00
David Reid e32cc9ff83 Update dr_wav and dr_mp3. 2024-02-27 08:27:05 +10:00
David Reid babd7fb00f Forward declare ma_semaphore API. 2024-02-25 09:50:42 +10:00
David Reid f20ab8a9ee Web: Increase the default stack size for the AudioWorklets thread. 2024-02-08 15:26:41 +10:00
Chris Genova aa57d052da Fix out of range check in ma_default_vfs_seek__win32 2024-01-30 10:54:46 +10:00
David Reid c0afa7e621 Web: Fix a possible JS error.
Public issue https://github.com/mackron/miniaudio/issues/810
2024-01-28 08:46:56 +10:00
David Reid bde517a166 Update dr_wav. 2024-01-23 16:34:34 +10:00
David Reid 3ed9d05c38 Fix compilation error on Android.
Public issue https://github.com/mackron/miniaudio/issues/805
2024-01-22 07:26:38 +10:00
David Reid a4aa0dc404 Fix amplification with ma_device_set_master_volume().
Public issue https://github.com/mackron/miniaudio/discussions/800
2024-01-12 08:10:53 +10:00
David Reid fd3c1b0af0 Formatting. 2024-01-10 18:19:24 +10:00
David Reid 10f9ef05a2 DirectSound: Attempted fix for an error when switching devices.
Public issue https://github.com/mackron/miniaudio/issues/779
2024-01-08 12:50:20 +10:00
David Reid 9c73849f3b Fix a typo. 2023-12-23 09:30:08 +10:00
David Reid fde3a27d93 Add support for customizing pthread priorities at compile time.
Use the MA_PTHREAD_REALTTIME_THREAD_PRIORITY define.
2023-12-23 09:21:13 +10:00
David Reid c29c001840 Fix an error where the pthread priority is not being set correctly. 2023-12-13 08:36:03 +10:00
David Reid 1325ac397b AAudio: Increase default min SDK version from 26 to 27.
Use `#define MA_AAUDIO_MIN_ANDROID_SDK_VERSION 26` if you need to
support SDK version 26.
2023-12-08 19:13:51 +10:00
xielock ed204e4b72 Fix bug in ma_node_detach_full(...) 2023-12-06 08:22:14 +10:00
David Reid 6099e6f41c Add support for customizing the min SDK version for AAudio.
Define MA_AAUDIO_MIN_ANDROID_SDK_VERSION to specify the minimum
required SDK version for enabling the AAudio backend.
2023-12-06 08:12:21 +10:00
David Reid 7e38fa0e7e Update dr_wav. 2023-12-02 07:42:39 +10:00
David Reid d0709098cc Web: Try fixing a runtime error.
Public issue https://github.com/mackron/miniaudio/issues/781
2023-11-30 09:32:04 +10:00
David Reid 2b0c525e53 Web Audio: Fix ScriptProcessNode path when compiling with --closure=1.
Audio Worklets do not work with --closure=1 because the callback used
with emscripten_create_wasm_audio_worklet_processor_async never gets
fired which means miniaudio will never be able to escape from it's busy
wait loop.

Public issue https://github.com/mackron/miniaudio/issues/778
2023-11-29 07:29:44 +10:00
David Reid 6cba159210 ALSA: Fix some warnings relating to unhandled return value of read(). 2023-11-29 06:27:03 +10:00
David Reid 1583329187 Update version. 2023-11-28 07:43:00 +10:00
David Reid 5a3655fea4 DirectSound: Add support for specifying an explicit HWND.
Public issue https://github.com/mackron/miniaudio/issues/779
2023-11-28 07:39:47 +10:00
David Reid 4a5b74bef0 Version 0.11.21 2023-11-15 11:23:00 +10:00
David Reid c77d40ba00 Core Audio: Fix a -Wshadow warning. 2023-11-15 10:35:34 +10:00
David Reid f9ce46330c Web: Fix an error where the buffer size is incorrectly calculated.
Public issue https://github.com/mackron/miniaudio/issues/773
2023-11-15 10:10:46 +10:00
David Reid 3b50a854ec Version 0.11.20 2023-11-10 07:44:19 +10:00
David Reid da0572e6b8 Fix a compilation error with iOS.
Public issue https://github.com/mackron/miniaudio/issues/770
2023-11-09 15:01:03 +10:00
David Reid eb0ce6f1a5 Fix an error when dynamically linking when forcing the UWP build.
This also fixes a possible crash during initialization due to leaving a
thread running after early termination of the initialization routine.
2023-11-04 08:43:16 +10:00
David Reid b19cc09fd0 Version 0.11.19 2023-11-04 07:05:24 +10:00
David Reid 863565a8ed Update dr_libs. 2023-11-04 06:57:53 +10:00
cobyj33 ef0f2e5b16 Fix ma_device_config.noClip docs 2023-11-02 15:13:35 +10:00
David Reid 287881b815 Web Audio: Don't attempt to unlock audio on the touchstart event.
Public issue https://github.com/mackron/miniaudio/issues/759
2023-10-29 08:06:56 +10:00
David Reid 2730775e79 Fix a documentation error. 2023-10-27 17:05:56 +10:00
David Reid 1d17b09e41 Fix an error in ma_sound_get_cursor_in_pcm_frames(). 2023-10-27 16:07:14 +10:00
David Reid 39a7cc444b Fix a crash when uninitialising a device without stopping it first. 2023-10-27 16:06:19 +10:00
a.borisov fe5f17ecf3 fix misspells
occured -> occurred
aquired -> acquired
accomodate -> accommodate
seperate -> separate
etc.
2023-10-22 07:06:12 +10:00
David Reid 0bb56819a8 Address an issue in ma_sound_get_cursor_*().
When seeking, the seek does not immediately get applied to the data
source. Instead it is delayed. This results in a situation where the
sound can be seeked, but a small window will exist where querying the
seek point will not be consistent with the previous seek request.
2023-10-21 07:56:06 +10:00
David Reid 9bf256dcf3 Fix a documentation error. 2023-10-21 07:29:24 +10:00
David Reid ecf2a8b917 Fix a crash when using a node with more than 2 outputs. 2023-10-21 07:18:58 +10:00
Marek Maškarinec d282fba0fe Fix AudioContext creation fail if sampleRate is 0 (#745) 2023-10-18 16:38:19 +10:00
Christian Alonso-Daubney a185b99f12 Added pSound check to ma_sound_get_cone() 2023-10-15 07:34:09 +10:00
Christian Alonso-Daubney aef76e251c Added pEngine and listenerIndex check to ma_engine_listener_get_cone() 2023-10-15 07:34:09 +10:00