* Add support for volume control to ma_mixer_mix_*().
* Add support for specifying an effect to apply before mixing.
* Add optimized pipeline for memory mappable data sources.
* Remove some unnecessary functions:
- ma_mixer_mix_pcm_frames_ex()
- ma_mixer_mix_callbacks()
- ma_mixer_mix_decoder()
- ma_mixer_mix_audio_buffer()
- ma_mixer_mix_waveform()
- ma_mixer_mix_noise()
- ma_mixer_mix_rb_ex()
The ma_audio_buffer object is used for storing raw audio data in memory
and reading from it like any other data source. It supports flexible
memory management, reading, seeking, memory mapping and looping.
See documentation under "Audio Buffers" for a detailed description.
Previously this would result in a glitch, however in the interest of
avoiding as many sources of glitching as possible, changing the format
and/or channel count of a biquad filter (and by extension, anything
derived from it, such as low-pass filters) will now result in an error.
This change reduces memory usage by removing half the number of delay
registers.
This commit also sets up some infrastructure for future work on a fixed
point implementation. Both the floating and fixed point implementations
will run on a 32-bit pipeline for now.
This changes the the lpfCutoffFrequency config variable from a uint32
to a double. This is required because we simplify the sample rate
fraction which cant result in cases where the cutoff frequency is too
aggressively rounded down due to dividing tiny integers.
* ma_resampler_get_required_input_frame_count()
* ma_resampler_get_expected_output_frame_count()
These have not yet been implemented for the Speex backend.
This commit also adds an APIs for setting changing the rate:
* ma_resampler_set_rate()
* ma_resampler_set_rate_ratio()