summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/Mixer.cpp
AgeCommit message (Collapse)Author
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
2016-01-05Throttler: Rename "framelimiter" to "emulation speed".degasus
We don't throttle by frames, we throttle by coretiming speed. So looking up VI for calculating the speed was just very wrong. The new ini option is a float, 1.0f for fullspeed. In the GUI, percentual values are used.
2015-11-03Throttler + Mixer: Configureable variancedegasus
2015-09-28Fix building with PCH disabled.Rohit Nirmal
2015-09-26Common: Remove other Common prefixed headers from Common.hLioncash
2015-09-12MathUtil: Convert Clamp into a constexpr functionLioncash
2015-08-09AudioCommon: Log to AUDIO, not DSPHLELioncash
This code is not related to DSPHLE.
2015-06-20Mixer: Fix erroneous global prefixes on class variablesLioncash
2015-06-20Mixer: Devirtualize DTK and DSP audio logging functionsLioncash
Their functionality is already complete in the base class; there's no need to allow overriding.
2015-05-28AudioCommon: Remove lock on Pause statedegasus
We had to lock audiocommon with the old asynchron HLE audio emulation, now our Mixer is just a plain FIFO which may underrun. Of course, this will stutter, but underruning the audio backend is likely worse.
2015-05-25Set copyright year to when a file was createdTillmann Karras
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-05-11Mixer: Convert volatile variables to atomics.Lioncash
2015-02-23Revert "High quality resampler"Markus Wick
2015-02-18High Quality Resampler, using FIR filterkamiyo
For more information: https://docs.google.com/document/d/1tBEgsJh7QiwNwepXI0eobfK3U8LkJButSyeuFt1degM/edit?usp=sharing removed: SSE includes (not used) added: 16bit -> float -> 16bit functions added: linear interpolator and high-quality (windowed-sinc) interpolator functions (including Resampler class) added: dithering changed: renamed variables and reformatted a few things to fit with style guide (braces, #include->const) changed: use s16, u16, s32, u32 etc changed: store samples and do all computations as floats changed: volume from 0 - 255
2015-01-24Clean UpBenjamin Przybocki
2014-10-09Proper Audio/Video DumpingFog
2014-09-07Route the wiimote speaker to the sound mixer (the host system's speakers). ↵skidau
Emulated Wiimote speaker sounds will go to the host system's speakers. Real Wiimotes will continue to use their own speaker for Wiimote speaker sounds. All Wiimote speaker sound can be disabled by unchecking the "Enable Speaker Data" option. Each emulated Wiimote can have its speaker routed from left to right via the "Speaker Pan" setting in the emulated wiimote settings dialog. Use any value from -127 for leftmost to 127 for rightmost with 0 being the centre. Added code in the InputConfig to use a spin control for non-boolean values. Defaulted the setting of "Enable Speaker Data" to disabled.
2014-09-07Hooked up the emulated Wiimote speaker.skidau
The Wiimotes are positioned as follows: Wiimote 0 = Center Wiimote 1 = Left Wiimote 2 = Right Wiimote 3 = Center The Wiimote speaker output can be disabled via the "Enable Speaker Data" checkbox in the Wiimote settings.
2014-08-30AudioCommon: Clean up brace placementsLioncash
2014-07-28Merge pull request #667 from RachelBryk/remove-audio-limitTony Wasserka
Remove audio frame limit.
2014-07-25Remove audio frame limit.Rachel Bryk
It serves no purpose and causes bugs and confusion for users.
2014-07-24AudioCommon/Mixer: Allow input sample rate changesbooto
2014-07-17Correct left/right volume for padded samples.Scott Mansell
2014-07-17Audio Mixer: move Static variable to a member variable.Scott Mansell
The two instances of this class were sharing a frac variable causing audio glitches when both were running (which is now all the time). Fixes issue 7463 (Since DTK merge, audio has staic in it).
2014-07-07Revert "Don't add segfault handler in interpreter mode"Pierre Bourdon
2014-07-05enum CPUState: rename CPU_* to STATE_*Tillmann Karras
2014-06-26AudioCommon: restore support for DTK volume setting.magumagu
2014-06-15Audio mixer: fix a couple compiler warnings.magumagu