Audio Mixer

The Audio Mixer page, under OS Configuration in the sidebar, shows the host’s live ALSA mixer controls — the same settings as alsamixer, in the web UI. It isn’t a service or manifest, so it’s always there as long as hamctl is running.

It’s useful because a sound codec that’s just been enabled usually comes up with its capture switches muted (playback on, capture off). An FRN or digital-voice client then opens the device, gets no audio, and quits — for example AFRN’s FATAL: Audio is not responding. The mixer page lets you turn the capture source on, set ADC/mic gain and output levels, and pick routes without SSHing in to run amixer.

Using it

  • If the host has more than one card, pick it from the Sound card dropdown.
  • Controls are grouped into Playback, Capture, and Other, and rendered by type:
    • switches become toggles (e.g. Line In Capture Switch)
    • volumes and gains become sliders with a live readout (e.g. Line Out Playback Volume)
    • routes become dropdowns (e.g. Line Out Source Playback Route)
  • Changes apply as you make them, like a hardware mixer. Each control shows a brief ✓ when applied, or an error if it was rejected.
  • Click Persist across reboot to run alsactl store, which saves the card’s state to /var/lib/alsa/asound.state for alsa-restore to replay at boot. Without it, the live changes are lost on the next reboot.

Notes

  • The page reads and writes through amixer and alsactl. On a host without them, or with no sound card, it shows an empty state.
  • Persist across reboot writes a system file and may need root; if hamctl runs unprivileged the action reports the error instead of failing silently.
  • Values are checked before they reach amixer: volumes are clamped to the control’s range, switches are on or off, and a route must be one of the listed options.