diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 45f9fd78d..b9cf6c366 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -985,6 +985,8 @@ "playerbarWaveformBarWidth": "waveform bar width", "playerbarWaveformGap": "waveform gap", "playerbarWaveformRadius": "waveform radius", + "playerbarWaveformStretch": "waveform stretch", + "playerbarWaveformStretch_description": "stretches the waveform to fill the available space", "preferLocalLyrics_description": "prefer local lyrics over remote lyrics when available", "preferLocalLyrics": "prefer local lyrics", "showLyricsInSidebar_description": "a panel will be added to the attached play queue that displays the lyrics", diff --git a/src/renderer/features/player/components/playerbar-waveform.tsx b/src/renderer/features/player/components/playerbar-waveform.tsx index 488f41ed6..dea782a98 100644 --- a/src/renderer/features/player/components/playerbar-waveform.tsx +++ b/src/renderer/features/player/components/playerbar-waveform.tsx @@ -58,7 +58,7 @@ export const PlayerbarWaveform = () => { height: 18, interact: false, media: audioElementRef.current, - normalize: false, + normalize: playerbarSlider?.stretched ?? false, progressColor: primaryColor, waveColor, }); diff --git a/src/renderer/features/settings/components/general/control-settings.tsx b/src/renderer/features/settings/components/general/control-settings.tsx index e0a47060a..55294d492 100644 --- a/src/renderer/features/settings/components/general/control-settings.tsx +++ b/src/renderer/features/settings/components/general/control-settings.tsx @@ -477,6 +477,32 @@ export const ControlSettings = memo(() => { postProcess: 'sentenceCase', }), }, + { + control: ( + + setSettings({ + general: { + ...settings, + playerbarSlider: { + ...playerbarSlider, + stretched: e.currentTarget.checked, + }, + }, + }) + } + /> + ), + description: t('setting.playerbarWaveformStretch', { + context: 'description', + postProcess: 'sentenceCase', + }), + isHidden: false, + title: t('setting.playerbarWaveformStretch', { + postProcess: 'sentenceCase', + }), + }, { control: (