Suche Python Befehl für den Alsa Amixer!

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    Ich suche einen Python Befehl für mein Haustür Klingel System,
    Momentan habe ich diesen funktionierenten Code:


    Momentan habe ich Stereo Lautsprecher angeschlossen, der linke Kanal ist für das Untergeschoß im Haus zuständig und der rechte für das Obergeschoß.

    Jetzt ist meine Idee das ich einen Kippschalter an das PiFace hänge und wenn dieser auf EIN ist, sollte es im Obergeschoß und im Untergeschoß klingeln. wenn der Schalter auf AUS steht sollte es nur unten klingeln also soll das rechte Audiosignal auf Mute geschaltet werden.

    Aber ich habe leider keine Ahnung wie das unter Python funktioniert.

    Kann mir Bitte Jemand helfen ??

    mfg
    Frosch007


    mfg

    • Offizieller Beitrag

    Kennst du denn den Befehl der auf der Konsole aufgerufen wird um diese Ergebnis zu erzeugen oder suchst du diesen? (muten eines bestimmten Kanals?).
    Für Python gibt es ein extra alsa modul aber ich glaube nicht das du das meinst....denn bis jetzt rufst du ja Konsolenbefehle über os.system auf.

    • Offizieller Beitrag

    Ok, dachte ich mir :)

    Code
    amixer controls


    damit listet du dir alle Devices auf und suchst den, der "Master Playback Volume" heißt und merkst dir die numID.

    Code
    amixer cset numid=2 0%,100%


    Jetzt ist der linke Kanal Stumm, rechts 100%. die 2 ist ein Beispiel und sollte der im obigen schritt gemerkten numID entsprechen.

    Edit: in python bindest du den letzten Befehl dann mittels

    Code
    os.system('amixer cset numid=2 0%,100%')

    ein

  • Code
    amixer controls


    damit listet du dir alle Devices auf und suchst den, der "Master Playback Volume" heißt und merkst dir die numID.

    Code
    amixer cset numid=2 0%,100%


    Jetzt ist der linke Kanal Stumm, rechts 100%. die 2 ist ein Beispiel und sollte der im obigen schritt gemerkten numID entsprechen.

    Edit: in python bindest du den letzten Befehl dann mittels

    Code
    os.system('amixer cset numid=2 0%,100%')


    ein


    hmmm, Frage dazu,

    ich habe raspbmc 12.2 und find liefert

    pi@raspbmc:/usr/bin$ ls a*mixer
    alsamixer amixer
    pi@raspbmc:/usr/bin$

    und dann

    /usr/bin/amixer controls

    liefert:
    amixer: Control default open error: No such file or directory

    aber mit:
    /usr/bin/amixer -h

    gibt es:
    Available commands:
    controls show all controls for given card

    aber warum dann die Fehlermeldung ?

    dankeschön

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (25. Juli 2013 um 12:21)

    • Offizieller Beitrag

    Hi jar,

    probier mal

    Code
    sudo apt-get install alsa-utils
    sudo modprobe snd_bcm2835


    Dann setze den default output

    Code
    sudo amixer cset numid=3 <n>


    wobei <n>: 0=auto, 1=analog, 2=hdmi

    wie immer. Raspbmc ist extrem zickig wenn man am System rumspielt also nicht wundern wenn du nachher Ton Probleme hast ;)


  • probier mal

    Code
    sudo apt-get install alsa-utils
    sudo modprobe snd_bcm2835


    Raspbmc ist extrem zickig wenn man am System rumspielt

    eben drum finde ich

    Code
    sudo apt-get install

    nicht sinnvoll

    die Frage stellt sich mir:
    wenn RASPBMC eine angepasste Version ist, warum werden alsamixer amixer mitgeliefert ? wenn sie out of the box nicht funktionieren ?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (25. Juli 2013 um 13:01)

    • Offizieller Beitrag

    Warum nicht sinnvoll? Es gibt Menschen, wie mich, die probieren Sachen einfach mal aus und sichern notfalls das Backup zurück.
    Wie soll man sonst rauskriegen ob es funktioniert :denker:
    Alsa Support wurde nachträglich hinzugebaut und ist glaub ich immer noch nicht 'stable' weswegen es einen manuellen eingriff benötigt.


  • Wie soll man sonst rauskriegen ob es funktioniert :denker:
    Alsa Support wurde nachträglich hinzugebaut und ist glaub ich immer noch nicht 'stable' weswegen es einen manuellen eingriff benötigt.

    und ich habe mir gerade bei RASPBMC mit derlei Versuchen öfter mal meine funktionierende Version gekillt

    und hart lernen dürfen das sich eben manches mit update verbietet, dummerweise hatte ich auch 16- 32 GB Images und jede Sicherung füllte meine Platte, wobei ich jetzt für RASPBMC auf vernünftige (?) 8GB runter bin

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (25. Juli 2013 um 13:56)

  • Hallo,
    ich habe jetzt die Befehle ausprobiert aber,
    es funktioniert nicht ganz wenn ich z.B. den linken kanal auf 0% und den rechten auf 100% dann ist alles auf 0%

    Kann der Raspberry nur Mono ??

    mfg
    Frosch007

  • Hallo ich nochmal :)

    wie oben geschrieben hat die Ausführung des Befehls

    Code
    os.system('amixer cset numid=2 0%,100%')


    funktioniert,

    aber der linke und rechte Kanal sind trotzdem auf 100%
    Kann es sein das der Raspberry nur Mono kann ?

    mfg
    Frosch007

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!