summaryrefslogtreecommitdiff
path: root/src/audio_core (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | compressor: Simplify memset in InitializeCompressorEffectGravatar Lioncash2022-09-131-1/+1
| | | | | | | | | | | | Provides equivalent behavior while being significantly smaller.
* | | compressor: Mark params parameters as constGravatar Lioncash2022-09-131-3/+3
| | | | | | | | | | | | These functions don't modify the parameters.
* | | compressor: Remove unneeded casts in ApplyCompressorEffectGravatar Lioncash2022-09-131-2/+1
|/ / | | | | | | | | Same behavior, but also silences a -Wcast-qual warning, since the second cast casts away const.
* / Remove a pragma once from a cpp fileGravatar Kelebek12022-09-121-2/+0
|/
* Don't stall with nvdecGravatar Kelebek12022-09-043-1/+29
|
* Rework audio output, connecting AudioOut into coretiming to fix desync ↵Gravatar Kelebek12022-09-0222-842/+549
| | | | during heavy loads.
* Do some log memes to help perceived volumeGravatar Kelebek12022-08-121-0/+3
|
* audio_core: fix -Wuninitialized when compiling with ASanGravatar Liam2022-07-291-4/+4
|
* Avoid depop out of boundsGravatar Kelebek12022-07-272-2/+2
|
* chore: make yuzu REUSE compliantGravatar Andrea Pappacoda2022-07-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
* Project AndioGravatar Kelebek12022-07-22237-7621/+30231
|
* Rework CoreTimingGravatar Kelebek12022-07-102-5/+10
|
* core: Replace all instances of ResultCode with ResultGravatar german772022-06-265-15/+14
|
* Merge pull request #8383 from Morph1984/shadow-of-the-pastGravatar Mai2022-06-141-3/+0
|\ | | | | yuzu: Make variable shadowing a compile-time error
| * audio_core: Remove -Werror=unused-parameterGravatar Morph2022-06-131-1/+0
| | | | | | | | Removing this as we don't enforce unused parameter warnings elsewhere in the project, and explicitly specify -Wno-unused-parameter in the main CMakeLists.
| * CMakeLists: Make variable shadowing a compile-time errorGravatar Morph2022-06-131-2/+0
| | | | | | | | Now that the entire project is free of variable shadowing, we can enforce this as a compile time error to prevent any further introduction of this logic bug.
* | common: Change semantics of UNREACHABLE to unconditionally crashGravatar Liam2022-06-134-7/+7
|/
* command_generator: Use u8 for tap index lutGravatar Morph2022-05-131-8/+8
| | | | Using this smaller type saves 1024 bytes in the compiled executable.
* general: Convert source file copyright comments over to SPDXGravatar Morph2022-04-2343-129/+86
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* audio_core: remove time stretcherGravatar Andrea Pappacoda2022-04-015-131/+3
| | | | Also drop the SoundTouch dependency
* audio_core: Update current process revisionGravatar lat9nq2022-02-111-1/+3
| | | | | | | Update CURRENT_PROCESS_REVISION from REV9 to REVA. Used by Nintendo Entertainment System - Nintendo Switch Online 6.0.0 and Super Nintendo Entertainment System - Nintendo Switch Online 3.0.0.
* audio/stream: Adjust volume scale factorGravatar german772022-01-151-2/+2
|
* general: Add missing copyright noticesGravatar ameerj2021-12-052-0/+8
|
* common/logging: Move Log::Entry declaration to a separate headerGravatar ameerj2021-10-013-0/+7
| | | | This reduces the load of requiring to include std::chrono in all files which include log.h
* Merge pull request #6571 from Kelebek1/MixGravatar bunnei2021-07-121-0/+9
|\ | | | | audio_core: Replace NaN mix volume samples with silence
| * Replace NaN mix volume samples with silence.Gravatar Kelebek12021-07-081-0/+9
| | | | | | | | Fixes Xenoblade Chronicles 2 blowing out the audio.
* | Merge pull request #6539 from lat9nq/default-settingGravatar Ameer J2021-07-081-1/+2
|\ \ | | | | | | general: Move most settings' defaults and labels into their definition
| * | general: Make most settings a BasicSettingGravatar lat9nq2021-06-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting.
* | | Merge pull request #6564 from Kelebek1/AudioGravatar Morph2021-07-082-18/+51
|\ \ \ | |_|/ |/| | Support more PCM formats
| * | Support more PCM formats. Fixes Ys IX audio.Gravatar Kelebek12021-07-062-18/+51
| | |
* | | audio_core: Preserve front channel volume after 6 to 2 downmixGravatar Kelebek12021-07-085-75/+81
| | | | | | | | | | | | | | | | | | Many games report 6 channel output while only providing data for 2. We only output 2-channel audio regardless, and in the downmixing, front left/right only provide 36% of their volume. This is done assuming all of the other channels also contain valid data, but in many games they don't. This PR alters the downmixing to preserve front left/right, so volume is not lost. This improves volume in Link's Awakening, New Super Mario Bros U, Disgaea 6, Super Kirby Clash.
* | | CMakeLists: Treat -Wsign-compare as an error on GCC/ClangGravatar Morph2021-07-061-3/+0
|/ / | | | | | | Treats (un)signed comparison mismatches as errors to be consistent with MSVC
* | Fix XC2/VOEZ crashing, add audio looping and a few misc fixesGravatar Kelebek12021-07-016-131/+187
| |
* | Decouple audio processing and run at variable rateGravatar Kelebek12021-06-272-75/+109
| | | | | | | | | | | | Currently, processing of audio samples is called from AudioRenderer's Update method, using a fixed 4 buffers to process the given samples. Games call Update at variable rates, depending on framerate and/or sample count, which causes inconsistency in audio processing. From what I've seen, 60 FPS games update every ~0.004s, but 30 FPS/160 sample games update somewhere between 0.02 and 0.04, 5-10x slower. Not enough samples get fed to the backend, leading to a lot of audio skipping. This PR seeks to address this by de-coupling the audio consumption and the audio update. Update remains the same without calling for buffer queuing, and the consume now schedules itself to run based on the sample rate and count.
* | audio_core: common: Bump audio revision to 9.Gravatar bunnei2021-06-241-1/+1
|/ | | | - This is used in fw 12.x.x games.
* Add missing includes (#6521)Gravatar Chloe2021-06-241-0/+2
| | | | | * Add missing includes * Add array
* Implement audout GetAudioOutPlayedSampleCountGravatar Kelebek12021-06-222-2/+11
| | | | Used in Ninja Gaiden games.
* Various suggestions by v1993 and lioncashGravatar Clément Gallet2021-06-071-10/+6
|
* Add SDL2 audio backendGravatar Clément Gallet2021-06-064-0/+211
|
* general: Replace RESULT_SUCCESS with ResultSuccessGravatar Morph2021-06-022-2/+2
| | | | Transition to PascalCase for result names.
* common: Move settings to common from core.Gravatar bunnei2021-04-144-4/+4
| | | | - Removes a dependency on core and input_common from common.
* revert to std::sin and std::cosGravatar Chloe Marcec2021-02-123-6/+6
|
* address issuesGravatar Chloe Marcec2021-02-123-22/+25
|
* audren: Implement I3dl2ReverbGravatar Chloe Marcec2021-02-128-18/+569
| | | | Most notable fix is the voices in Fire Emblem Three Houses
* Merge pull request #5868 from german77/HandheldFixGravatar bunnei2021-02-081-1/+8
|\ | | | | Prevent over scheduling audio events and add motion update unschedule event
| * Prevent over scheduling audio events and terminate properly the motion ↵Gravatar german2021-02-021-1/+8
| | | | | | | | update event
* | audren: Disable reverb for the time beingGravatar Chloe Marcec2021-02-011-1/+4
| | | | | | | | As this is causing issues in a few games, it's best to have it disabled until it's completely implemented
* | audout: FlushAudioOutBuffersGravatar Chloe Marcec2021-01-242-0/+11
| | | | | | | | Fixes Devil May Cry
* | core: Silence Wclass-memaccess warningsGravatar ReinUsesLisp2021-01-151-18/+18
|/ | | | | This requires making several types trivial and properly initialize them whenever they are called.
* common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINITGravatar ReinUsesLisp2021-01-151-3/+3
| | | | INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.