rockbox/firmware
Aidan MacDonald 5b27e2255a Add perceptual volume adjustment
The perceived loudness change of a change in volume depends
on the listening volume: at high volumes a 1 dB increment is
noticeable, but at low volumes a larger increment is needed
to get a comparable change in loudness.

Perceptual volume adjustment accounts for this fact, and
divides the hardware volume range into a number of steps.
Each step changes the dB volume by a variable amount, with
most of the steps concentrated at higher volumes. This
makes it possible to sweep over the entire hardware volume
range quickly, without losing the ability to finely adjust
the volume at normal listening levels.

Use "Volume Adjustment Mode" in the system settings menu
to select perceptual volume mode. The number of steps used
is controlled by "Number of Volume Steps". (Number of steps
has no effect in direct adjustment mode.)

It's still possible to set a specific dB volume level from
the sound settings menu when perceptual volume is enabled,
and perceptual volume does not affect the volume displayed
by themes.

Change-Id: I6f91fd3f7c5e2d323a914e47b5653033e92b4b3b
2023-01-22 21:19:57 +00:00
..
asm Revert "Remove YUV blitting functions and LCD modes" 2022-10-13 11:08:06 -04:00
common Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
drivers ErosQNative: Enable Line Out capabilities on new revision players 2023-01-22 15:11:35 -05:00
export Add perceptual volume adjustment 2023-01-22 21:19:57 +00:00
include chunk alloc add buflib_get_pinned and chunk caching 2023-01-19 00:04:25 -05:00
kernel buflib: Refactor various debugging features 2023-01-13 10:32:57 +00:00
libc Remove strtok_r.c 2022-11-20 23:37:20 -05:00
target ErosQNative: Enable Line Out capabilities on new revision players 2023-01-22 15:11:35 -05:00
usbstack usb: Attempt to handle overlapped control requests in legacy drivers 2023-01-18 14:22:26 -05:00
arabjoin.c
arabjoin.h
ata_idle_notify.c
backlight-sw-fading.c
backlight.c clean up button.c optimize !filter_first_keypress 2023-01-02 11:04:47 -05:00
bidi.c
buflib_malloc.c buflib_malloc: fixed signed/unsigned comparison 2023-01-16 16:57:23 +00:00
buflib_mempool.c buflib: Add pinned get/put data functions 2023-01-15 11:06:27 +00:00
chunk_alloc.c chunk alloc add buflib_get_pinned and chunk caching 2023-01-19 00:04:25 -05:00
COPYING
core_alloc.c buflib: Add CONFIG_BUFLIB_BACKEND for selecting a buflib backend 2023-01-15 10:04:13 +00:00
debug.c
eeprom_settings.c
enc_base.c
events.c events.c clean-up 2022-12-30 07:23:29 -05:00
firmware.make
font.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
font_cache.c
general.c replace strlcpy with strmemccpy 2022-11-14 23:56:16 -05:00
hangul.c
linuxboot.c buflib_shrink use NULL to signal start isn't changing 2023-01-13 09:50:29 -05:00
load_code.c
logf.c
lru.c
panic.c mips: consolidate exception handling, add exception backtraces 2022-10-17 09:04:18 -04:00
pcm.c
pcm_mixer.c
pcm_sampr.c
pcm_sw_volume.c
powermgmt.c apps: Add ability to do a clean reboot 2022-04-16 14:36:39 +01:00
profile.c
README
rolo.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
rom.lds
screendump.c
scroll_engine.c lcd: Remove internal function get_viewport() 2022-10-09 22:07:48 +01:00
sdmmc.c
sound.c
SOURCES buflib: Add malloc-backed buflib 2023-01-15 10:04:13 +00:00
storage.c
system.c
timer.c
tuner.c
usb.c usb: add debounce interval for USB status by event 2022-09-25 06:49:11 -04:00

See docs/README