From b25090d96064cf4658c29ef186a609cd841788db Mon Sep 17 00:00:00 2001 From: Kelebek1 Date: Fri, 12 Aug 2022 16:57:29 +0100 Subject: [PATCH 1/2] Allow audio volume up to 200% --- src/common/settings.cpp | 2 +- src/common/settings.h | 2 +- src/yuzu/configuration/config.cpp | 2 +- src/yuzu/main.cpp | 10 ++++------ 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 1c7b6dfae6..7282a45d32 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -105,7 +105,7 @@ float Volume() { if (values.audio_muted) { return 0.0f; } - return values.volume.GetValue() / 100.0f; + return values.volume.GetValue() / static_cast(values.volume.GetDefault()); } void UpdateRescalingInfo() { diff --git a/src/common/settings.h b/src/common/settings.h index 1079cf8cb4..14ed9b2377 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -374,7 +374,7 @@ struct Values { Setting audio_output_device_id{"auto", "output_device"}; Setting audio_input_device_id{"auto", "input_device"}; Setting audio_muted{false, "audio_muted"}; - SwitchableSetting volume{100, 0, 100, "volume"}; + SwitchableSetting volume{100, 0, 200, "volume"}; Setting dump_audio_commands{false, "dump_audio_commands"}; // Core diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 58f1239bfb..da6e5aa885 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -73,7 +73,7 @@ const std::array Config::default_ringcon_analogs{{ const std::array Config::default_hotkeys{{ {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Mute/Unmute")), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+M"), QStringLiteral("Home+Dpad_Right"), Qt::WindowShortcut}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Volume Down")), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("-"), QStringLiteral("Home+Dpad_Down"), Qt::ApplicationShortcut}}, - {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Volume Up")), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("+"), QStringLiteral("Home+Dpad_Up"), Qt::ApplicationShortcut}}, + {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Volume Up")), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("="), QStringLiteral("Home+Dpad_Up"), Qt::ApplicationShortcut}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Capture Screenshot")), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+P"), QStringLiteral("Screenshot"), Qt::WidgetWithChildrenShortcut}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Change Adapting Filter")), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F8"), QStringLiteral("Home+L"), Qt::ApplicationShortcut}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Change Docked Mode")), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F10"), QStringLiteral("Home+X"), Qt::ApplicationShortcut}}, diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 44d7feddce..8bd1f92f7c 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -1094,7 +1094,7 @@ void GMainWindow::InitializeHotkeys() { connect_shortcut(QStringLiteral("Audio Mute/Unmute"), [] { Settings::values.audio_muted = !Settings::values.audio_muted; }); connect_shortcut(QStringLiteral("Audio Volume Down"), [] { - const auto current_volume = static_cast(Settings::values.volume.GetValue()); + const auto current_volume = static_cast(Settings::values.volume.GetValue()); int step = 5; if (current_volume <= 30) { step = 2; @@ -1102,11 +1102,10 @@ void GMainWindow::InitializeHotkeys() { if (current_volume <= 6) { step = 1; } - const auto new_volume = std::max(current_volume - step, 0); - Settings::values.volume.SetValue(static_cast(new_volume)); + Settings::values.volume.SetValue(std::max(current_volume - step, 0)); }); connect_shortcut(QStringLiteral("Audio Volume Up"), [] { - const auto current_volume = static_cast(Settings::values.volume.GetValue()); + const auto current_volume = static_cast(Settings::values.volume.GetValue()); int step = 5; if (current_volume < 30) { step = 2; @@ -1114,8 +1113,7 @@ void GMainWindow::InitializeHotkeys() { if (current_volume < 6) { step = 1; } - const auto new_volume = std::min(current_volume + step, 100); - Settings::values.volume.SetValue(static_cast(new_volume)); + Settings::values.volume.SetValue(current_volume + step); }); connect_shortcut(QStringLiteral("Toggle Framerate Limit"), [] { Settings::values.use_speed_limit.SetValue(!Settings::values.use_speed_limit.GetValue()); From 85c9e31791a38d895d8d940b900e4bd94e866901 Mon Sep 17 00:00:00 2001 From: Kelebek1 Date: Fri, 12 Aug 2022 19:59:09 +0100 Subject: [PATCH 2/2] Do some log memes to help perceived volume --- src/audio_core/sink/cubeb_sink.cpp | 3 +++ src/yuzu/configuration/configure_audio.ui | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/audio_core/sink/cubeb_sink.cpp b/src/audio_core/sink/cubeb_sink.cpp index a4e28de6de..90d049e8e4 100644 --- a/src/audio_core/sink/cubeb_sink.cpp +++ b/src/audio_core/sink/cubeb_sink.cpp @@ -185,6 +185,9 @@ public: constexpr s32 max{std::numeric_limits::max()}; auto yuzu_volume{Settings::Volume()}; + if (yuzu_volume > 1.0f) { + yuzu_volume = 0.6f + 20 * std::log10(yuzu_volume); + } auto volume{system_volume * device_volume * yuzu_volume}; if (system_channels == 6 && device_channels == 2) { diff --git a/src/yuzu/configuration/configure_audio.ui b/src/yuzu/configuration/configure_audio.ui index a5bcee4152..6034d8581d 100644 --- a/src/yuzu/configuration/configure_audio.ui +++ b/src/yuzu/configuration/configure_audio.ui @@ -120,10 +120,10 @@ - 100 + 200 - 10 + 5 Qt::Horizontal