Commit Graph

344 Commits

Author SHA1 Message Date
David Reid 9c761921ab Try fixing an infinite loop. 2021-03-09 19:28:13 +10:00
David Reid 61f5d4e027 Fix a typo. 2021-03-06 18:55:47 +10:00
Steven Noonan a5db7b6574 resource manager: fix tree hierarchy when removing nodes
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2021-03-06 08:49:10 +10:00
David Reid 91b4b62bf5 Minor clean up. 2021-03-06 08:42:25 +10:00
Steven Noonan 22414f8c01 miniaudio_engine: fix sample rate conversion for sounds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2021-03-06 08:40:39 +10:00
David Reid 062f150dc4 Fix a typo. 2021-03-05 17:39:46 +10:00
David Reid f8dd3780a2 Fix a typo. 2021-03-04 17:12:58 +10:00
David Reid 55e4e59bfa Add support for configuring rolloff. 2021-03-03 17:29:46 +10:00
David Reid 85cd9c1848 Fix a bug with ma_resource_manager_data_stream relating to seeking. 2021-02-28 06:49:36 +10:00
David Reid fc8f50457d Fixes to the C89 build. 2021-02-20 08:30:08 +10:00
David Reid f27a330a32 Experiment with improving async decoding on the Emscripten build. 2021-02-07 08:10:41 +10:00
David Reid b8f00dc4f9 Disable threading on the Emscripten build when init-ing the engine. 2021-02-07 07:51:43 +10:00
David Reid 1e0ccd6201 Fix a bug with start and stop times. 2021-02-05 22:11:12 +10:00
David Reid 2e32eca6dd Ensure the engine device uses ma_format_f32 for it's format. 2021-02-05 20:54:23 +10:00
David Reid 553c7f0093 Add some new APIs.
* ma_sound_set_start_time_in_milliseconds()
  * ma_sound_set_stop_time_in_milliseconds()
  * ma_sound_group_set_start_time_in_milliseconds()
  * ma_sound_group_set_stop_time_in_milliseconds()
2021-02-05 20:29:06 +10:00
David Reid 76640272be Rename some APIs for consistency with other APIs.
* ma_sound_set_fade_in_frames()       > ma_sound_set_fade_in_pcm_frames()
  * ma_sound_get_time_in_frames()       > ma_sound_get_time_in_pcm_frames()
  * ma_sound_set_start_time()           > ma_sound_set_start_time_in_pcm_frames()
  * ma_sound_set_stop_time()            > ma_sound_set_stop_time_in_pcm_frames()
  * ma_sound_group_set_fade_in_frames() > ma_sound_group_set_fade_in_pcm_frames()
  * ma_sound_group_get_time_in_frames() > ma_sound_group_get_time_in_pcm_frames()
  * ma_sound_group_set_start_time()     > ma_sound_group_set_start_time_in_pcm_frames()
  * ma_sound_group_set_stop_time()      > ma_sound_group_set_stop_time_in_pcm_frames()
2021-02-05 19:33:37 +10:00
David Reid cc2365b2b8 Fix a warning due to use of non-standard functionality. 2021-02-05 19:19:33 +10:00
David Reid 59db61d9f3 Add ma_sound_get_engine(). 2021-02-05 19:17:28 +10:00
David Reid fbb953ff01 Fix an unused variable warning. 2021-02-05 18:30:23 +10:00
David Reid 3265107cbd Fix a bug in ma_sound_is_playing().
This bug is due to the current time not being taken into account when
determining the node state.

Public issue https://github.com/mackron/miniaudio/issues/269
2021-02-05 17:16:30 +10:00
David Reid 1bd587e59f Fix the C++ build. 2021-01-31 19:52:35 +10:00
David Reid 626463a13e Fix a bug where a base node is being uninitialized twice. 2021-01-29 17:40:14 +10:00
David Reid 6281ed3165 Add some optimizations to inlined sounds. 2021-01-28 17:59:28 +10:00
David Reid 0f29839549 Remove the notification parameter from ma_sound_init_from_file().
This is buggy and unsafe. A complete rethink of the resource management
notification system needs to be done.
2021-01-28 17:46:09 +10:00
David Reid 8f6f72f188 Fix compilation error. 2021-01-27 18:12:58 +10:00
David Reid 8cd72f46a0 Temporary hack to fix some clicking glitches relating to resampling. 2021-01-26 17:21:31 +10:00
David Reid 243df7ebe0 Fix a copy/paste bug in ma_sound/group_set_positioning(). 2021-01-26 15:12:04 +10:00
David Reid a364b4ef96 Fix a bug with pitch shifting.
This bug results in the first period of samples being pitched at 1.0
regardless of whether or not ma_sound_set_pitch() had been called. What
happens is that the first period is processed at a rate of 1.0, and
then the pitch is applied after the fact. Then, the next period comes
along and resamples at the pitch set by ma_sound_set_pitch() which
results in a harsh sounding glitch.
2021-01-26 09:27:49 +10:00
David Reid 9fcb167476 Fix a bug relating to doppler pitching. 2021-01-26 08:20:51 +10:00
David Reid bd80a409d3 Remove some stale and misleading comments. 2021-01-25 16:04:53 +10:00
David Reid 78910a922a Simplify some APIs. 2021-01-25 15:39:42 +10:00
David Reid d571435566 Remove a debugging printf(). 2021-01-25 15:02:55 +10:00
David Reid cfff5f3192 Add support for angular attenuation to the spatializer. 2021-01-25 15:01:40 +10:00
David Reid 525dd7cb23 Add support for multiple listeners. 2021-01-25 11:38:18 +10:00
David Reid 33025bace2 Add support for doppler effect to the engine. 2021-01-25 10:12:05 +10:00
David Reid 4cdd892c54 Prep work in preparation for doppler effect. 2021-01-25 09:18:22 +10:00
David Reid 9677cdc1e9 Initial work on spatialization.
This does not yet support the following:

  * Cone based attenuation
  * Doppler effect
  * Multiple listeners
2021-01-24 21:06:15 +10:00
David Reid 8bd061b6c8 Add support for channel maps to ma_convert_pcm_frames_channels_f32(). 2021-01-24 16:54:33 +10:00
David Reid f040e3a1c1 Clean up in preparation for some spatialization work. 2021-01-24 09:03:32 +10:00
David Reid 722089d928 Fix the duplex_effect example.
This had the naming of source and excite the wrong way around.
2021-01-24 09:00:43 +10:00
David Reid 9ab7866237 Minor changes to resource_manager_advanced example. 2021-01-22 09:32:54 +10:00
David Reid f194a8bb59 Fix a bug in the resource_manager_advanced example. 2021-01-22 09:29:28 +10:00
David Reid 1b185878a1 Update the resource_manager_advanced example. 2021-01-22 07:19:01 +10:00
David Reid a389b65a75 Fix some bugs with notifications. 2021-01-20 19:43:18 +10:00
David Reid 776d7ddd91 Fix compilation errors with the C++ build. 2021-01-19 19:22:52 +10:00
David Reid ef9099a6f2 Bug fix an update documentation. 2021-01-18 21:42:56 +10:00
David Reid da42dfcd4b Add support for wide strings (wchar_t) to the engine. 2021-01-17 21:20:11 +10:00
David Reid 3eb0f400e6 Add support for wide strings (wchar_t) to the resource manager. 2021-01-17 21:11:21 +10:00
David Reid 361983f770 Update the resource manager example to work with Emscripten. 2021-01-17 18:51:44 +10:00
David Reid 30b55db681 Fix a bug with looping streaming sounds. 2021-01-17 18:38:17 +10:00