amixer verhält sich seltsam

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
StYxXx
Beiträge: 14
Registriert: 25.08.2008 21:26:41
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

amixer verhält sich seltsam

Beitrag von StYxXx » 07.11.2013 00:12:05

Hallo,

ich habe ein Problem mit amixer, das Programm macht nämlich alles mögliche, aber nicht das, was es soll ;) Keines der Beispiele im manual funktioniert daher. alsamixer dagegen ist tadellos.

Beispiele:

Code: Alles auswählen

$ amixer set PCM 1%-
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback 400 [100%] [4.00dB] [on]
Eigentlich sollte die Lautstärke um 1% reduziert werden, sie springt jedoch auf 100% (die Lautsärke ist wirklich maximal).

Code: Alles auswählen

$ amixer set PCM 1%+
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback -9732 [5%] [-97.32dB] [on]
Statt 1% zu erhöhen habe ich auf einmal 5%. Aber nicht immer, wie folgendes zeigt:

Code: Alles auswählen

$ amixer set PCM 1%+
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback -10239 [0%] [-99999.99dB] [on]
Nette Werte (Alsamixer sagt, es wäre 2%).

Code: Alles auswählen

 amixer set PCM 0.5db+
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback 0 [96%] [0.00dB] [on]
Es passiert gar nichts. Man beachte auch die angeblichen 0.00dB, die aber nicht stimmen. Lautstärke unverändert zu vorherigem Wert. Das gleiche auch mit 0.5db-. Die Prozentangabe stimmt mit alsamixer auch nicht überein.

Code: Alles auswählen

$ amixer set PCM 1.5db-
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback 1 [96%] [0.01dB] [on]
Es wird lauter, um einen anscheinend willkürlichen Wert. 0.01dB ist noch immer falsch, ebenso die 96%. Die angezeigten Werte bleiben so, auch wenn man nochmal lauter macht.

Code: Alles auswählen

$ amixer set PCM 1.5db+
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback 1 [96%] [0.01dB] [on]
Gar nix passiert.



Dabei ist auch auffallend, dass immer "Mono" dran steht, was jedoch nicht stimmt.

Das ganze ist auf einem raspberry pi

Code: Alles auswählen

Linux pi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l GNU/Linux
.
Alsamixer tut wie gesagt fehlerlos, zeigt anscheinend auch die korrekten Werte an. amixer dagegen ist recht unberechenbar, was mich recht verwirrt. :?

Ich freue mich über Tipps!

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: amixer verhält sich seltsam

Beitrag von Cae » 07.11.2013 02:46:22

Diese prozentuale Einstellung ist fuer die Tonne, das hat bei mir auch nicht funktioniert. Ich habe jetzt in einer Datei den "aktuellen" Wert stehen, den ich amixer uebergebe, und wenn in/dekrementiere das haendisch. Das Skript drum herum tut noch ein bisschen mehr, zusammengestutzt auf's Wesentliche:

Code: Alles auswählen

#!/bin/sh
# MIT License, author <cae@debianforum.de>

file="$(readlink -f "$0").save";
step=5;
min=0; max=100;
amixer="amixer -c 0 -q sset Master"

if [ -e "$file" ]; then
        read volume fnord <"$file";
else
        volume=10;
fi

case "$1" in
        inc)
                newvolume=$(($volume + $step));
                [ "$newvolume" -gt "$max" ] && newvolume="$max";
                ;;
        dec)
                newvolume=$(($volume - $step));
                [ "$newvolume" -lt "$min" ] && newvolume="$min";
                ;;
        *)
                echo "Usage: $0 [inc|dec]" >&2;
                exit 1;
esac

$amixer "$newvolume";
printf '%s\n' "$newvolume" >"$file"

exit $?
Ich hoffe, beim Zusammenstutzen ist nix kaputt gegangen. Bei mir (kein Pi) heisst der relevante Ausgang "Master", das muesstest du dann aendern.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: amixer verhält sich seltsam

Beitrag von rendegast » 07.11.2013 12:04:44

Dreht das System vielleicht noch daran herum,
per Sound-Damon o.ä.?

Hier mit wheezy alsa-utils, alsa "pur", emu10k1 (momentan kernel 3.11 sid) tut amixer.

Die dB-Auflösung bei niedrigen Werten funktioniert wohl generell nicht mehr, ein

Code: Alles auswählen

amixer set Master 5dB-
springt dann gerne auf

Code: Alles auswählen

  Mono: Playback 0 [0%] [-99999.99dB]

Mono: Playback -9732 [5%] [-97.32dB] [on]
Da sollte eigentlich eher

Code: Alles auswählen

  Mono: Playback 5 [5%] [-38.00dB]
Die alsa-utils des rasppi sind buggy?
Oder die Sound-Module des kernel 3.6?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten