summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/Mixer.cpp
AgeCommit message (Collapse)Author
2026-01-27feat: Add an option to preserve audio pitch when emulation speed changes, ↵Sam Belliveau
integrating it into core configuration and both Qt and Android UIs.
2025-08-05Merge pull request #13725 from Sam-Belliveau/more-consistent-loopingJMC47
Fade audio after an entire loop
2025-07-23AudioCommon/Mixer: Skip sample processing when NullSoundStream is being used.Jordan Woyak
2025-07-11AudioCommon/Mixer: make large array in Mixer::MixerFifo::Enqueue() static ↵ITotalJustice
so that it's not created on the stack.
2025-06-02Fade audio after an entire loopSam Belliveau
2025-05-30AudioCommon: Remove unused qualifiers and make variables constantDr. Dystopia
2025-04-05Mixer: Use Doubles for Sample Rate Conversion.Sam Belliveau
2025-04-01Improve Performance of Granular Buffering + User Adjustable Buffer SizeSam Belliveau
2025-03-14AudioCommon: Added Granular SynthesisSam Belliveau
2023-03-13Skylander Portal: Play Trap Team AudioJoshua de Reeper
Asserts and length handling
2023-01-06CoreTiming: Throttle Before Every Event Using ChronoSam Belliveau
2022-12-23New FrameTime/VBlank Analyzer + GraphSam Belliveau
2022-09-08Mixer: Add assertions regarding num_samples versus buffer lengthPokechu22
2022-09-08Mixer: Use smaller array for PushWiimoteSpeakerSamplesPokechu22
2022-07-03Do not directly store input sample rate, rather just store a divisor for ↵CasualPokePlayer
that sample rate, with it using a fixed dividend of 54000000 * 2. This should reduce (but not completely eliminate) gradual audio desyncs in dumps. This also allows for accurate sample rates for the GameCube. Completely eliminating gradual audio desyncs will require resampling to an integer sample rate, as nothing seems to support a non-integer sample rate.
2022-06-10have audio dumps apply volume (fixes cases of audio dumps being "too loud" ↵CasualPokePlayer
and in game audio controls having no effect)
2022-01-06Core/AudioCommon: Add config caching to Mixer.Admiral H. Curtiss
2022-01-06Config: Port TimingVariance setting to new config system.Admiral H. Curtiss
2022-01-06Config: Port emulation speed setting to new config system.Admiral H. Curtiss
2021-12-10Treewide: Adjust order of includesPokechu22
2021-10-15Port Main.DSP to MainSettingssowens99
While trying to work on adding audiodump support for CLI, I was alerted that it was important to first try moving the DSP configs to the new config before continuing, as that makes it substantially easier to write clean code to add such a feature. This commit aims to allow for Dolphin to only rely on the new config for DSP-related settings.
2021-07-13Mixer: Support GBA samples mixingBonta
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2020-10-21AudioCommon: Migrate logging over to fmtLioncash
printf specifiers, begone!
2019-10-22DSP must be set to LLE to select the decoderLAGonauta
2019-10-22Allow user to change DPLII decoding qualityLAGonauta
2019-05-04Replace MathUtil::Clamp with std::clampLéo Lam
2019-02-13Swapped FFDShow's DPL2 decoder by FreeSurroundLAGonauta
Added class in AudioCommon for the surround decoder
2017-11-06Fix DTK audio not working after loading a savestateJosJuice
The main problem was that the volume of the mixer wasn't savestated. The volume is typically 0 at the beginning of a game, so loading a savestate at the beginning of a game would lead to silent DTK audio. I also added savestating to StreamADPCM.cpp.
2017-06-26Rename CMixer to MixerMichael Maltese
2017-06-03AudioStretcher: split StretchAudio into ProcessSamples / GetStretchedSamplesMichael Maltese
2017-06-03AudioCommon: extract AudioStretcher class for time-stretchingMichael Maltese
2017-06-03AudioCommon: move DPL2 decoding into MixerMichael Maltese
2017-04-12Mixer: Tweak audio stretch parametersMerryMage
2017-04-12Mixer: Use a temporary buffer when stretching audioMerryMage
2017-04-12Mixer: Calculate actual_samples based on availability in all FIFOsMerryMage
2017-04-12Mixer: Disable frequency shifting when stretching is enabledMerryMage
2017-04-12Add audio stretching as a configuration optionMerryMage
2017-04-12Mixer: Implement audio stretchingMerryMage
2017-04-12Mixer: Return actual number of samples mixed into buffer from MixerFifo::MixMerryMage
No code in the codebase currently depends on the return value of this function.
2017-03-13Merge pull request #4548 from stenzek/gcc-sseMarkus Wick
Support SSSE3 texture decoders and CRC32 hashing on non-native builds (gcc)
2017-03-03Common: Move byte swapping utilities into their own headerLioncash
This moves all the byte swapping utilities into a header named Swap.h. A dedicated header is much more preferable here due to the size of the code itself. In general usage throughout the codebase, CommonFuncs.h was generally only included for these functions anyway. These being in their own header avoids dumping the lesser used utilities into scope. As well as providing a localized area for more utilities related to byte swapping in the future (should they be needed). This also makes it nicer to identify which files depend on the byte swapping utilities in particular. Since this is a completely new header, moving the code uncovered a few indirect includes, as well as making some other inclusions unnecessary.
2017-01-24AudioCommon: Remove unused _M_SSE testStenzek
2016-12-17Display warning when dumping audio if file existsChris Burgener
2016-06-24Split Audio Dumps on Sample Rate ChangesChris Burgener
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-05-13Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer)EmptyChaos
Fix Frame Advance and FifoPlayer pause/unpause/stop. CPU::EnableStepping is not atomic but is called from multiple threads which races and leaves the system in a random state; also instruction stepping was unstable, m_StepEvent had an almost random value because of the dual purpose it served which could cause races where CPU::Run would SingleStep when it was supposed to be sleeping. FifoPlayer never FinishStateMove()d which was causing it to deadlock. Rather than partially reimplementing CPU::Run, just use CPUCoreBase and then call CPU::Run(). More DRY and less likely to have weird bugs specific to the player (i.e the previous freezing on pause/stop). Refactor PowerPC::state into CPU since it manages the state of the CPU Thread which is controlled by CPU, not PowerPC. This simplifies the architecture somewhat and eliminates races that can be caused by calling PowerPC state functions directly instead of using CPU's (because they bypassed the EnableStepping lock).
2016-01-15Mixer: Convert defines into concrete variablesLioncash
Gets defines out of global scope.
2016-01-14Mixer: Directly initialize class membersLioncash
2016-01-14Mixer: DevirtualizeLioncash
Nothing in the codebase inherits from this class