feat: map volume range to 25-100 before cubic scaling

Co-authored-by: aider (gemini/gemini-3.1-pro-preview) <aider@aider.chat>
This commit is contained in:
Tanner
2026-07-30 14:42:23 -06:00
parent 8a1d240341
commit 95cae1a1d5
+4 -1
View File
@@ -70,8 +70,11 @@ def playback_thread(file_path, state):
# Apply volume # Apply volume
if vol != 100.0: if vol != 100.0:
# Linearly map 0-100 to 25-100 so low volumes aren't too quiet
mapped_vol = 25.0 + (vol / 100.0) * 75.0
# Use cubic curve for more natural volume adjustment (human hearing is logarithmic) # Use cubic curve for more natural volume adjustment (human hearing is logarithmic)
multiplier = max(0.0, (vol / 100.0) ** 3) multiplier = max(0.0, (mapped_vol / 100.0) ** 3)
arr = arr.astype(np.float32) * multiplier arr = arr.astype(np.float32) * multiplier
arr = np.clip(arr, -32768, 32767).astype(np.int16) arr = np.clip(arr, -32768, 32767).astype(np.int16)