feat: Add an option to preserve audio pitch when emulation speed changes, integrating it into core configuration and both Qt and Android UIs.

This commit is contained in:
Sam Belliveau
2026-01-27 18:48:22 -05:00
parent bb7e011673
commit 51c8f18b73
9 changed files with 30 additions and 3 deletions
@@ -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,
@@ -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,
@@ -188,6 +188,8 @@
<string name="audio_buffer_size_description">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.</string>
<string name="audio_fill_gaps">Fill Audio Gaps</string>
<string name="audio_fill_gaps_description">Repeat existing audio during lag spikes to prevent stuttering. If unsure, leave this checked.</string>
<string name="audio_preserve_pitch">Preserve Audio Pitch</string>
<string name="audio_preserve_pitch_description">Keeps audio at normal pitch when changing emulation speed. Without this, audio pitch changes proportionally with speed. If unsure, leave this unchecked.</string>
<string name="audio_volume">Audio Volume</string>
<!-- Path Settings -->