Commit Graph

2286 Commits

Author SHA1 Message Date
David Reid 400aaf582d Rename ma_sound_set_start/stop_delay() to ma_sound_set_start/stop_time()
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.
2021-01-12 16:23:27 +10:00
David Reid d5b25502c1 Migrate start and stop delays to the node graph system.
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.
2021-01-12 12:40:22 +10:00
David Reid a6cd93401d Version 0.10.30 2021-01-10 22:42:17 +10:00
David Reid 369fb6fd8f Some small improvements to the resource manager.
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.
2021-01-10 22:38:00 +10:00
David Reid 085728fdcd Remove ma_mixer. 2021-01-10 20:47:22 +10:00
David Reid 66a20f0a87 Remove the old mixing code from ma_engine. 2021-01-10 20:39:36 +10:00
David Reid d72b6f1dca Begin work on integrating the engine with the routing system.
This commit has known issues which will be fixed in the next commits.
2021-01-10 19:48:24 +10:00
David Reid 67863c48f3 Fix a crash in ma_audio_buffer_read_pcm_frames(). 2021-01-10 17:18:21 +10:00
David Reid 8da4b4fa8b Add support for timing operations to the node graph system.
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.
2021-01-10 10:56:44 +10:00
David Reid 554c505f9c Work in progress on integrating ma_engine with the routing system.
This is not fully functional as of this commit.
2021-01-09 15:18:46 +10:00
David Reid 3e8a9ec040 Remove the ability to configure the engine's sample format.
The sample format is now always 32-bit floating point. This was done
for simplicity and practicality.
2021-01-09 09:15:26 +10:00
David Reid 72bc5bc043 Update ma_node_output_bus_set_volume() to allow amplification. 2021-01-07 20:44:38 +10:00
David Reid c394348d9a Remove ma_sound_set_effect() and ma_sound_group_set_effect().
Effects will now be implemented by plugging effect nodes into the node
graph at the appropriate location.
2021-01-07 20:43:31 +10:00
David Reid afcb46dbb1 Fix a typo. 2021-01-06 22:11:02 +10:00
David Reid d580e3043f Remove some unnecessary atomics. 2021-01-06 22:06:25 +10:00
David Reid 9f62d69669 Update documentation. 2021-01-06 22:04:39 +10:00
David Reid 79845b5ec6 Update documentation. 2021-01-06 21:27:41 +10:00
David Reid fb1e61cb06 Add ma_node_detach_all_output_buses(). 2021-01-06 21:19:55 +10:00
David Reid fb336f54e3 Make ma_node_detach() private and rename to ma_node_detach_full(). 2021-01-06 21:17:02 +10:00
David Reid bb0e486d95 Simplify node attachment APIs.
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.
2021-01-06 21:10:42 +10:00
David Reid 4f96309cbf Add experimental loop detection to the routing system. 2021-01-06 19:06:39 +10:00
David Reid c540366921 Improve performance of ma_node_uninit().
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.
2021-01-05 22:21:56 +10:00
David Reid 61c6e5b12a Typos. 2021-01-03 22:32:52 +10:00
David Reid 02f78d7787 Make channel counts per-bus rather than per-node.
This makes it possible to give individual input and output buses unique
channel counts which might be useful for specific kinds of effects.
2021-01-03 21:44:18 +10:00
David Reid c8e1438b11 Stop pre-converting input channel counts to output channel counts. 2021-01-03 21:03:47 +10:00
David Reid f6c563e523 Merge the new routing infrastructure into miniaudio_engine. 2021-01-03 18:41:40 +10:00
David Reid 5478074840 Update revision history. 2021-01-03 18:23:43 +10:00
David Reid 816a5a34dd Add ma_offset_pcm_frames_{const_}ptr_f32.
This also silences a warning on GCC.
2021-01-03 18:08:29 +10:00
David Reid 1dcdd44088 Fix some errors with the C++ build. 2021-01-03 18:07:17 +10:00
David Reid 8fc8d25bcd Qualify spinlock parameters as volatile. 2021-01-02 16:37:57 +10:00
David Reid a4967cced4 Merge branch 'master' into dev 2020-12-31 08:12:21 +10:00
David Reid 24ed1dd98b Update pull_request_template.md 2020-12-31 08:12:35 +10:00
David Reid d533bb4558 Update revision history. 2020-12-30 07:29:18 +10:00
David Reid da0cb334ee Merge pull request #254 from Masclaux/master
Remove some warnings (warning C4100: unreferenced formal parameter)
2020-12-30 07:21:26 +10:00
Jérémy Masclaux 7b24f95fe0 Remove some warnings (warning C4100: unreferenced formal parameter) 2020-12-29 17:49:21 +01:00
David Reid bed2fbd0b2 Merge pull request #253 from eliasku/patch-1
Fix issue #252
2020-12-29 08:56:58 +10:00
Elias Ku 475d6f1296 Fix issue #252 2020-12-28 14:54:37 +03:00
David Reid 8f675e6c31 Version 0.10.29 2020-12-26 18:09:28 +10:00
David Reid d92c2016ad Remove some debugging code that was accidentally committed. 2020-12-26 18:05:08 +10:00
David Reid 0e45b95e04 Rearrange some function parameters in miniaudio_engine. 2020-12-26 18:04:33 +10:00
David Reid 4e9becd5b3 Update dr_flac and dr_mp3. 2020-12-26 18:04:14 +10:00
David Reid daac3d3412 Update revision history. 2020-12-24 21:44:09 +10:00
David Reid 9cb1925c37 Fix a bug resulting in superfluous allocations with device enumeration.
Public issue https://github.com/mackron/miniaudio/issues/251
2020-12-24 21:19:31 +10:00
David Reid 18314d6afc Update revision history. 2020-12-22 21:12:50 +10:00
David Reid 10049067e7 Core Audio: Fix some compilation errors on iOS. 2020-12-22 17:59:05 +10:00
David Reid 5a8c88d129 Core Audio: Try fixing a possible re-routing bug.
Public issue https://github.com/mackron/miniaudio/issues/101
2020-12-22 17:25:59 +10:00
David Reid 8095b9bcfb Whitespace. 2020-12-19 21:28:05 +10:00
David Reid 1d0acd6a9c Update revision history. 2020-12-19 21:27:55 +10:00
David Reid ab8d87be23 Clean up some multithreading bugs due to incorrect use of atomics.
Public issue https://github.com/mackron/miniaudio/issues/237
2020-12-19 13:20:34 +10:00
David Reid bff79eb8c8 Fix some subtle multi-threading errors due to lacking atomic loads.
Public issue https://github.com/mackron/miniaudio/issues/237
2020-12-19 11:07:38 +10:00