Регулировка громкости на Raspberry Pi через Bash

Разберёмся, как объяснить малинке через коммандную строку, с какой громкостью должен воспроизводиться звук. Самый простой способ — через псевдографическую программу alsamixer (вроде из пакета alsa-utils) — запускаем и двигаем ползунок вверх-вниз, соответственно регулируется громкость. Выход кнопкой Esc.

┌───────────────────────────── AlsaMixer v1.0.28 ──────────────────────────────┐
│ Card: bcm2835 ALSA                                   F1:  Help               │
│ Chip: Broadcom Mixer                                 F2:  System information │
│ View: F3:[Playback] F4: Capture  F5: All             F6:  Select sound card  │
│ Item: PCM [dB gain: -10.00]                          Esc: Exit               │
│                                                                              │
│                                                                              │
│                                     ┌──┐                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     ├──┤                                     │
│                                     │OO│                                     │
│                                     └──┘                                     │
│                                      58                                      │
│                                  <  PCM   >                                  │
│                                                                              │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

Для интерактивного режима alsamixer пойдёт, но для скрипта нет. Для скрипта нам подойдёт программа amixer. Используется так:

pi@kmsvsr-raspberrypi ~/usr/bin $ amixer cset numid=1 -- 400
numid=1,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
  : values=400
  | dBscale-min=-102.39dB,step=0.01dB,mute=1

Здесь громкость регулируется последним числом, оно должно быть в интервале от -10239 (тишина) до 400 (на полную), при этом половина громкости соответствует примерно -1000.