diff --git a/main.py b/main.py index c060efa..04b5c79 100644 --- a/main.py +++ b/main.py @@ -70,8 +70,11 @@ def playback_thread(file_path, state): # Apply volume 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) - multiplier = max(0.0, (vol / 100.0) ** 3) + multiplier = max(0.0, (mapped_vol / 100.0) ** 3) arr = arr.astype(np.float32) * multiplier arr = np.clip(arr, -32768, 32767).astype(np.int16)