Skip to content

Qt: sync fast forward volume#14255

Open
BarretoJuan wants to merge 1 commit intoPCSX2:masterfrom
BarretoJuan:feat/sync-fast-forward-volume
Open

Qt: sync fast forward volume#14255
BarretoJuan wants to merge 1 commit intoPCSX2:masterfrom
BarretoJuan:feat/sync-fast-forward-volume

Conversation

@BarretoJuan
Copy link
Copy Markdown

Adds a feature in which changing the value of the standard volume slider also changes the value of the fast forward slider.

  • Tested both in global settings and in game-specific settings
  • Adjustments on the fast-forward volume slider stay independent

Description of Changes

User adjustments to the standard volume value also adjust the fast-forward volume value.

Rationale behind Changes

Currently, these two volume sliders are completely independent of each other. A couple of days ago, I identified the following situation:

I was using the emulator, and lowered the global standard volume from the 100% default value to 3%, but didn’t adjust the fast-forward volume value. Later on during that gaming session, I fast-forwarded the game, and, as a consequence, got a volume jump back to 100%.

I started thinking about that situation and considered that people would be inclined to have fast-forward volume values that are equal to or lower than the standard volume. Then, I came up with this idea, synchronizing the standard volume changes with the fast forward volume value, while still allowing users to adjust the fast-forward volume independently afterwards. The goal of this is to prevent users from having accidental spikes of volume while fast-forwarding due to forgetting to adjust the value in the first place.

Suggested Testing Steps

I performed the following tests:

  1. Adjusting the global standard volume value while playing a game, checking that it also updates the fast forward volume value
  2. Adjusting the global fast forward volume value while playing a game, checking that the global standard volume value remains unchanged
  3. Tests 1 and 2, but adjusting game-specific settings instead of global values.

Did you use AI to help find, test, or implement this issue or feature?

No

@github-actions github-actions bot added the GUI/Qt label Apr 4, 2026
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for submitting a contribution to PCSX2

As this is your first pull request, please be aware of the contributing guidelines.

Additionally, as per recent changes in GitHub Actions, your pull request will need to be approved by a maintainer before GitHub Actions can run against it. You can find more information about this change here.

Please be patient until this happens. In the meantime if you'd like to confirm the builds are passing, you have the option of opening a PR on your own fork, just make sure your fork's master branch is up to date!

@BarretoJuan BarretoJuan changed the title feat: sync fast forward volume Qt: sync fast forward volume Apr 4, 2026
@BarretoJuan BarretoJuan force-pushed the feat/sync-fast-forward-volume branch from f564d50 to 859b564 Compare April 4, 2026 20:08
Copy link
Copy Markdown
Contributor

@kamfretoz kamfretoz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall it works but i highly suggest you to add a "Sync Fast Forward Volume to Standard Volume" Checkbox next to the mute all sound checkbox and grey out the fast forward slider if the option is enabled.

Image

@BarretoJuan
Copy link
Copy Markdown
Author

@kamfretoz Hello! nice to meet you. Thank you for your feedback

The initial use case I had considered for this feature was to help users keep these two volume sliders in sync, while still giving them the option to manually adjust the fast-forward volume if desired.

For example:

1. User lowers the standard volume from 100% to 50%, and the fast-forward slider updates to 50% too.
2a. If the user forgets to adjust the fast-forward volume as well, they won't get the volume blasted back to 100% if they fast-forward.
2b. If they user does want to adjust the fast-forward volume, they can do so by directly changing the slider.

If I implement this synchronization checkbox, and keep it checked by default, the steps 1 and 2a will continue working the same, but for the user to execute the step 2b, they would need to uncheck this checkbox first.

Do you consider this additional step necessary? If so, I will gladly implement it. I just have this confirmation question: Would the sync volume checkbox be checked by default?

@BarretoJuan
Copy link
Copy Markdown
Author

Thinking more about it I do think it is a really good addition. I thought of the following use case where I consider not implementing the checkbox leads to a bad user experience:

  1. The user lowers the standard volume to 50% and the fast-forward volume gets synchronized to 50% as well
  2. The user lowers the fast-forward volume to 5%

After the user had played for a while, they realize that the fast-forward volume is just right. But the standard volume is still a bit too loud.

  1. The user adjusts the standard volume down to 30%, and, even though they didn't want to adjust the fast-forward volume again, it still gets synchronized to 30%

Implementing the checkbox prevents this situation from happening

@BarretoJuan
Copy link
Copy Markdown
Author

@kamfretoz Done! Let me know what you think when you have the chance. Thank you!

@kamfretoz
Copy link
Copy Markdown
Contributor

Done! Let me know what you think when you have the chance. Thank you!

Looks good

Implemented a checkbox in the Audio Settings Widget that allows the user to enable and disable the audio volume synchronization between the standard volume and the fast forward volume
- Volume synchronization is enabled by default. In that state, the fast-forward volume slider and reset button are disabled, and the fast-forward volume value is equal to the standard volume value
- When volume synchronization is disabled, the fast-forward volume slider and reset button are re-enabled, and work independently

Additional synchronization behavior:
- Adjustments on the standard volume will only affect the fast-forward volume when syncVolume is enabled
- Whenever the volume synchronization is enabled, it will update the fast-forward volume to make it match the current standard volume value
- The standard volume reset button also resets the fast-forward volume if the volume synchronization is enabled
@BarretoJuan BarretoJuan force-pushed the feat/sync-fast-forward-volume branch from bf426e0 to 7834598 Compare April 8, 2026 13:50
@BarretoJuan
Copy link
Copy Markdown
Author

Rebased

@TellowKrinkle
Copy link
Copy Markdown
Member

Is there any reason someone would want a FF that's louder than non-FF?
If not, what if you have the FF volume be a percentage of the main volume? Then it will always change with main volume, while still being adjustable in the range 0 to <current non-FF volume>. Rename it to "Fast Forward Adjustment" or something.

@BarretoJuan
Copy link
Copy Markdown
Author

BarretoJuan commented Apr 10, 2026

@TellowKrinkle

Hello! thank you for your feedback. I can't think of a use case in which a user would like to set the fast forward volume to be higher than the standard volume.

What do you think of the idea of making the fast-forward volume a multiplier of the standard volume instead? The way in which I am imagining it working is by replacing the fast-forward volume slider with a dropdown called fast-forward volume multiplier. Inside said dropdown there would be the following options:

0x Standard (Muted)
0.1x Standard
0.25x Standard
0.5x Standard
0.75x Standard
1x Standard (Default)

(This dropdown would be similar to the dropdown present in Graphics->Rendering->Internal Resolution)

This approach would achieve the following:

  1. It would prevent users from being accidentally blasted by the fast-forward volume (it would always be less than or equal to the standard volume)
  2. It would replace the fast-forward volume slider with the fast-forward multiplier dropdown
  3. It would also remove the volume sync checkbox, as it would not be necessary anymore

What do you think about this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants