List audio devices:
RPi5:~ # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
In my case this is an RPi5 and I'm using the HDMI-0 connector (nearest the PSU) which is vc4-hdmi-0 .. so 0 is the card.
List simple controls available on the device:
RPi5:~ # amixer
Simple mixer control 'PCM',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 255 [100%] [0.00dB]
Front Right: Playback 255 [100%] [0.00dB]
Using amixer to reduce the volume to 80%:
Checking:
RPi5:~ # amixer
Simple mixer control 'PCM',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 204 [80%] [-10.20dB]
Front Right: Playback 204 [80%] [-10.20dB]
More granular control is achieved using amixer set commands and using amixer controls and amixer contents to understand what can be set and what current values are. The alsamixer tool just provides a console GUI onto the same capabilities.
I'm not sure we can set/store the changes in a persistent way, but the workaround is to use /storage/autostart.sh scripts or (better) a systemd service to run commands on boot. The example WireGuard service in /storage/.config/system.d/ shows an example of running connmanctl commands to start a connection. You can adapt that to run amixer commands, and schedule dependencies so the service runs after alsa is setup (sound.target) and before Kodi runs (kodi.target).