From 51c8f18b73727afaea0991e10789998eaacbe487 Mon Sep 17 00:00:00 2001 From: Sam Belliveau Date: Tue, 27 Jan 2026 18:48:22 -0500 Subject: feat: Add an option to preserve audio pitch when emulation speed changes, integrating it into core configuration and both Qt and Android UIs. --- .../dolphinemu/features/settings/model/BooleanSetting.kt | 1 + .../dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt | 8 ++++++++ Source/Android/app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 11 insertions(+) (limited to 'Source/Android/app/src') diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt index bcb61a97f1..06680cdf44 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt @@ -31,6 +31,7 @@ enum class BooleanSetting( false ), MAIN_AUDIO_FILL_GAPS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AudioFillGaps", true), + MAIN_AUDIO_PRESERVE_PITCH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AudioPreservePitch", false), MAIN_BBA_XLINK_CHAT_OSD( Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt index 09b71966a2..7cf0d0ecad 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt @@ -556,6 +556,14 @@ class SettingsFragmentPresenter( R.string.audio_fill_gaps_description ) ) + sl.add( + SwitchSetting( + context, + BooleanSetting.MAIN_AUDIO_PRESERVE_PITCH, + R.string.audio_preserve_pitch, + R.string.audio_preserve_pitch_description + ) + ) sl.add( IntSliderSetting( context, diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 7ebc5867e3..b1630def81 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -188,6 +188,8 @@ Controls the number of audio samples buffered. Lower values reduce latency but may cause more crackling or stuttering. If unsure, set this to 80 ms. Fill Audio Gaps Repeat existing audio during lag spikes to prevent stuttering. If unsure, leave this checked. + Preserve Audio Pitch + Keeps audio at normal pitch when changing emulation speed. Without this, audio pitch changes proportionally with speed. If unsure, leave this unchecked. Audio Volume -- cgit v1.2.3