Commit Graph

434 Commits

Author SHA1 Message Date
Adam Moss 2c892c7b68 OpenAL: Fix volume of sample conversion 2015-01-07 12:34:02 +00:00
Adam Moss 7580069dea Audio: Fuller subwoofer processing for software 5.1 decode
Code was only using front-left and front-right to calculate bass, but
HRTF code - which this was once based on - uses all five channels and
this sounds fuller.
2015-01-07 11:58:02 +00:00
Adam Moss f324f3f68f Audio: Fix subwoofer output in software 5.1 decoding
The FIR filter was only using the first sample of each input packet.
2015-01-07 10:24:25 +00:00
Tillmann Karras 6bcdb10eee CMake: simplify some expressions 2015-01-03 13:17:57 +01:00
FL.dolphinemu 78f8bf7423 Issue 7968: Added keybinds for increasing, decreasing, and muting audio. 2014-12-28 22:03:21 +01:00
comex b36b55cfcb Upgrade AudioUnit API usage.
weird that such a simple change doesn't seem to have any obvious
documentation on Apple's website or elsewhere...
2014-11-25 00:42:21 -05:00
comex aae234c5d7 Fix name conflict between SoundTouch BOOL and ObjC BOOL. 2014-11-25 00:27:13 -05:00
Stevoisiak b25e1a2eb4 Various formatting and consistency fixes 2014-11-13 22:42:18 -05:00
Ryan Houdek 5204acd5ee Fixes OpenSLES's sample rate.
I was statically setting the sample rate to 44.1Khz when we default to run at 48Khz.
This was causing audio to sound much too low.
2014-10-23 11:29:49 -05:00
Ryan Houdek 73512ad38f Fix a race condition in our OpenSL ES audio backend.
After calling enqueue the callback would fire before we had assigned g_mixer a value.
This would cause a fun crash to happen.
2014-10-18 08:32:14 -05:00
skidau 0d1f8527c7 Merge pull request #1297 from RisingFog/audio-dump-during-emulation
Start/Stop Audio Dump During Emulation
2014-10-18 13:16:41 +11:00
Fog 108087bb68 Flipped Wave File Channels
This change was done because with the previous method of dumping audio, the mixer would handle switching the RL being emitted by the DSP to LR, and thus would provide the proper channel orientation. Because we're now dumping directly from PushSamples() and PushStreamingSamples(), it was writing the right channel to the left channel of the wave file and vice versa.
2014-10-15 23:16:48 -04:00
Fog f2ed533841 Start/Stop Audio Dump During Emulation 2014-10-15 20:50:38 -04:00
Fog fc4125cdd1 Proper Audio/Video Dumping 2014-10-09 00:06:04 -04:00
Lioncash 7f7fb5e70c AudioCommon: Prefix soundStream global with g_ 2014-09-30 03:06:16 -04:00
Rohit Nirmal 46057db37d Fix build failing when disabling precompiled headers. 2014-09-19 18:17:51 -04:00
Ryan Houdek 71cb09f1ca Merge pull request #1027 from rohit-n/change-include
Include CommonTypes.h instead of Common.h.
2014-09-10 00:35:16 -05:00
Rachel Bryk f93aa7087c Kill Core::g_CoreStartupParameter. 2014-09-09 00:24:49 -04:00
Rohit Nirmal fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Lioncash 789a500ddc AudioCommon: Remove unnecessary usages of mem_fn 2014-09-08 13:41:02 -04:00
skidau 8abe9622fd Route the wiimote speaker to the sound mixer (the host system's speakers). 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-07 14:16:20 +10:00
skidau 3caab10df8 Hooked up the emulated Wiimote speaker.
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-09-07 14:16:20 +10:00
Lioncash daddc3317e AudioCommon: Use std::string for the filename parameter of StartLogAudio 2014-09-06 23:26:08 -04:00
Lioncash 27cecf46a8 AudioCommon: Make WaveFileWriter inherit NonCopyable 2014-09-06 11:27:36 -04:00
Lioncash 019ef844d4 AudioCommon: Remove unused parameter from OpenSLESStream constructor 2014-09-06 01:42:56 -04:00
Lioncash e10b0d1008 Merge pull request #930 from skidau/openal-seq-ms
Removed the auto setting of SEQUENCE_MS because the synchronised audio c...
2014-09-02 09:56:46 -04:00
Shawn Hoffman 266992684d msvc: remove some remnants of SDL and DSound from projects and general cleanup. 2014-09-01 21:27:44 -07:00
skid c2d7801ceb Removed the auto setting of SEQUENCE_MS because the synchronised audio code has made it unnecessary. 2014-09-01 20:28:29 +10:00
Lioncash 377a1c8f20 AudioCommon: Get rid of now unused handle param for InitSoundStream() 2014-08-30 23:36:00 -04:00
Lioncash 2f7df4a803 AudioCommon: Declare iterator variable in loop body in DPL2Decoder 2014-08-30 21:10:18 -04:00
Lioncash f94e764df5 AudioCommon: Clean up brace placements 2014-08-30 18:06:42 -04:00
Shawn Hoffman af2405eefd Remove dsound audio backend.
There isn't any reason to use dsound over xaudio.
2014-08-23 11:19:19 -07:00
Shawn Hoffman 1332805bb6 Add headers required by XAudio2_7 to externals.
This makes all builds' audio compatible with downlevel Windows and removes
the need for developers to install the June 2010 DirectX SDK.
2014-08-23 11:03:07 -07:00
Lioncash 4759510f70 Get rid of instances of "using namespace std;" in the project 2014-08-17 02:05:33 -04:00
Lioncash d18d3e1f3e Common: Get rid of StdConditionVariable, StdMutex, and StdThread.
All of the compilers we support have support for these now.
2014-08-16 23:33:19 -04:00
Shawn Hoffman f1b82a34b2 Windows: Use a shared precompiled header for dolphin code under Source/ 2014-08-14 23:51:13 -07:00
Pierre Bourdon 87e7c1ee46 Merge pull request #724 from lioncash/mem_fn
AudioCommon: Get rid of some unnecessary mem_fn calls
2014-08-03 21:25:24 -07:00
Lioncash 47847bc8dd AudioCommon: Remove an unnecessary parameter from the OpenAL constructor
This wouldn't even be saved to anything.
2014-08-02 23:48:26 -04:00
Lioncash 17e79a966a AudioCommon: Get rid of some unnecessary mem_fn calls 2014-08-02 23:42:34 -04:00
Tony Wasserka 9c7d4b6408 Merge pull request #667 from RachelBryk/remove-audio-limit
Remove audio frame limit.
2014-07-28 14:38:35 +02:00
Lioncash 4fa71dd59e Remove fakepoll.h.
It was only used for Windows XP and lower.

This also bumps the _WIN32_WINNT define in the stdafx precompiled headers to set the minimum version as Windows Vista.
2014-07-26 22:53:40 -04:00
Rachel Bryk acaac51077 Remove audio frame limit.
It serves no purpose and causes bugs and confusion for users.
2014-07-25 12:17:10 -04:00
booto 7d920bbb3a AudioCommon/Mixer: Allow input sample rate changes 2014-07-24 22:42:29 +08:00
Scott Mansell 48afab2685 Correct left/right volume for padded samples. 2014-07-17 18:41:18 +12:00
Scott Mansell a0101c5d29 Audio Mixer: move Static variable to a member variable.
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-17 18:26:21 +12:00
Lioncash 2c73472671 Correct the function casing for DPL2Decoder
Brings it more in-line with the rest of the codebase.
2014-07-14 03:34:40 -04:00
Tillmann Karras 0ccee6c87b Fix warnings unearthed by #579 2014-07-13 02:16:51 +02:00
degasus 6d3f249dcc mark all local variables as static 2014-07-11 16:10:20 +02:00
degasus 22e1aa5bb4 mark all local functions as static 2014-07-11 16:07:23 +02:00
Pierre Bourdon b0b70381f7 Revert "Don't add segfault handler in interpreter mode" 2014-07-07 05:30:06 +02:00
Tillmann Karras 20a16beabd enum CPUState: rename CPU_* to STATE_* 2014-07-05 11:01:49 +02:00
Tillmann Karras d3fa8a6167 Reorder class initializer lists 2014-07-04 03:53:22 +02:00
Lioncash 11d304ae29 Merge pull request #259 from magumagu/dtk-rewrite
DTK rewrite
2014-06-26 20:01:07 -04:00
magumagu ca0203a1cc AudioCommon: restore support for DTK volume setting. 2014-06-26 16:56:57 -07:00
Lioncash 8b13afbb8e Remove the 32-bit config platform from the VS solution and projects 2014-06-24 22:07:26 -04:00
magumagu affb7c17fc Audio mixer: fix a couple compiler warnings. 2014-06-15 14:51:33 -07:00
magumagu 40e2ce4f27 Audio mixer: remove check for ratio > 1.0.
The code actually handles this case correctly; the algorithm is linear
interpolation between the two closest samples, and the way it is written
should work correctly with any ratio.
2014-06-15 14:51:20 -07:00
magumagu d43ecd0bd1 Rewrite handling of DTK (streaming) audio.
The primary motivation here is to make sure we submit samples from the
CPU thread. This makes sure the timing of related interrupts accurate,
and generally keeps the different kinds of audio synchronized.  This will also
allow improvements to audio dumping functionality.

The new code is also more concise because it gets rid of some duplicated
audio mixing code.
2014-06-14 15:55:20 -07:00
magumagu 87a804fdfc Revert "DSound: use DSound notifications to produce sound."
This reverts commit 4990b8910b.

The commit is causing substantial performance issues for the DSound
backend which I somehow didn't catch during testing.
2014-05-31 13:35:46 -07:00
Lioncash 49b0eef393 Remove the min/max functions in CommonFuncs.
The algorithm header has the same functions.
2014-05-29 21:44:41 -04:00
shuffle2 ca3002977b Merge pull request #256 from magumagu/dsound-notify
DSound: use DSound notifications to produce sound.
2014-05-23 17:02:55 -07:00
degasus 30586f4d29 Add set/get functions for IsFramelimiterTempDisabled 2014-04-30 12:51:13 +02:00
degasus 8483811b39 Add a hotkey for disabling the framelimit.
Atm this is hardcoded to '\t'.
2014-04-30 12:50:53 +02:00
Pierre Bourdon 6bdcbad3e4 Common: Move the Event class to a separate file, and add tests for it. Fix includes everywhere to match this. 2014-04-14 10:54:07 +02:00
magumagu 4990b8910b DSound: use DSound notifications to produce sound.
Pretty straightforward; IDirectSoundNotify lets you register for
notifications after a certain amount of sound has played, so use that
instead of depending on Update() notifications from the CPU thread.

Also, while I'm here, reduce the buffer size by a factor of 4; this seems
to reduce the latency, although the difference is sort of subtle.
2014-04-09 13:41:27 -07:00
lioncash e79895e372 Replace use of the deprecated mem_fun function with mem_fn. 2014-04-01 12:09:22 -04:00
Pierre Bourdon 76fafb1c7b Merge pull request #220 from magumagu/audio-handling-cleanup-v2
Audio handling cleanup v2
2014-03-30 13:24:52 +02:00
magumagu 3afa17f752 Move audio handling out of DSP emulation.
This is good for a couple of reasons: one, it gets rid of duplicated code,
and two, DSP emulation shouldn't need to interact with audio in the first
place.
2014-03-29 11:19:32 -07:00
magumagu 78499e5b7c Delete AudioCommon::UseJIT(). 2014-03-29 11:19:31 -07:00
magumagu 102ea55f20 Move mixer construction to AudioCommon.cpp. 2014-03-29 11:19:30 -07:00
magumagu aac4206664 Move UDSPControl structure into DSP.h . 2014-03-29 11:19:19 -07:00
Pierre Bourdon 664c8d30a0 Remove all trailing whitespaces from our codebase. 2014-03-29 11:05:44 +01:00
magumagu ae9367a89b Delete a bunch of old audio HLE cruft.
This commit intentionally breaks audio output from HLE Zelda UCode; no other functional change.
2014-03-26 11:17:19 -07:00
lioncash aecc8ea666 Remove usesMixer function from the sound streams.
This isn't used anywhere in the codebase. Not even the base SoundStream has it as part of its interface.
2014-03-18 10:42:07 -04:00
lioncash 5e5ab61d0c Mark the audio streams as final.
These aren't intended to be continually extended.
2014-03-18 10:37:45 -04:00
Lioncash a82675b7d5 Kill off some usages of c_str.
Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-14 13:51:23 -04:00
Matthew Parlane 31cfc73a09 Fixes spacing for "for", "while", "switch" and "if"
Also moved && and || to ends of lines instead of start.
Fixed misc vertical alignments and some { needed newlining.
2014-03-11 00:35:07 +13:00
Tillmann Karras d802d39281 clang-modernize -use-nullptr
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
Tillmann Karras f28116b7da clang-modernize -add-override 2014-03-09 21:12:01 +01:00
Tillmann Karras c89f04a7c5 clang-modernize -loop-convert
and some manual adjustments
2014-03-09 21:11:59 +01:00
Tillmann Karras 315a8ba1c0 Various changes suggested by cppcheck
- remove unused variables
- reduce the scope where it makes sense
- correct limits (did you know that strcat()'s last parameter does not
  include the \0 that is always added?)
- set some free()'d pointers to NULL
2014-02-28 12:43:20 +01:00
Tillmann Karras 6914eca167 Fix various warnings reported by clang
- mostly remove unused variables
- rename some generic JIT identifiers
2014-02-28 12:28:19 +01:00
Pierre Bourdon fca12c4c4e Fix more header sorting issues in AudioCommon/ (now check-includes clean). 2014-02-20 01:01:10 +01:00
Lioncash 2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Lioncash 3fd87a7636 Second and final pass of clearing out tabs. 2014-02-17 02:19:41 -05:00
Lioncash 6c4ee1753a Fix some vertical alignments
ie. uses spaces for alignment.
2014-02-16 20:12:05 -05:00
degasus 9e56b1d343 Disable framerate correction for OpenAL
OpenAL itself stretch the time on slowdowns, so the Mixer isn't allowed also to change the rate.
2014-02-13 13:22:29 +01:00
degasus bbd58b8f6a change AI sampling rate based on framelimit 2014-02-11 14:53:53 +01:00
degasus ca9fd64df9 controll the interpolation frac by the fifo size 2014-02-11 14:35:19 +01:00
degasus d20dbbc92f audiocommon: sync mixer by fifo instead of estimate values 2014-02-11 07:25:58 +01:00
degasus 2956ffa5be audiocommon: remove 1:1 interpolation
The usual one is 32->48 khz interpolation. So there is no need in a special 1:1 interpolation only for performance.
2014-02-11 07:25:58 +01:00
lioncash d2038049f5 Replace all include guard ifdefs with "#pragma once" 2014-02-10 18:07:16 -05:00
degasus ab124b96c4 Atomic Stores / Loads 2014-02-07 00:20:10 +01:00
degasus 5c646d334a Pulseaudio: rewrite the pa backend with the async api
The default async api allow us to set some latency options. The old one (simple API) was the lazy way to go for usual audio where latency doesn't matter.

This also streams audio, so it should be a bit faster then the old one.
2014-02-07 00:20:10 +01:00
Lioncash 249b00c469 Change the modified parameter in the Clamp function to be a pointer.
Makes it easier to identify the one being modified.
2014-02-05 04:04:35 -05:00
Lioncash 6b87a0ef20 Introduce a generic clamp function to clean up some similarly duplicated code. 2014-02-04 20:43:07 -05:00
Jasper St. Pierre 34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00
Jasper St. Pierre 43e618682e Convert all vcxproj files to UNIX line endings 2013-12-31 14:03:18 -05:00
Lioncash e0aa674c72 Minor const-correctness for some functions in FifoPlayer and some AudioCommon headers. 2013-12-11 08:43:58 -05:00
Shawn Hoffman 33d56f50a4 Re-plumb window handle to the dsound backend.
Reverts parts of commit 71c01d83ab614b9e0c421d03ca694713dbabff48.
Fixes issue 6800
2013-11-07 09:24:56 -08:00