ALSA Einstellungen für Lautstärke via Rotary Encoder

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

    ich bastel mir aktuell ein Webradio und würde gerne die Lautstärke via Rotary Encoder einstellen können.

    Hierfür nutze ich folgende Anleitung. Dort ist beschrieben, wie man mit dem Befehl

    Code
    amixer -c 0 controls

    ...eine ganze Reihe an Auswahlmöglichkeiten kommt, wie man die Lauststärke einstellen kann. Ziel für den Rotary Encoder ist es ja "Digital Playback Volume" einzustellen.

    Ich habe nun das Problem, dass ich diese Auswahlmöglichkeit gar nicht bekomme. Ich erhalte keine Liste, sondern nur einen einzigen Eintrag:

    Code
    numid=1,iface=MIXER,name='PCM'

    Was kann ich tun, damit ich mehr Einstellungen bekomme, bzw. die Einstellung "Digital Playback Volume" zur Verfügung bekomme?

    Alsa-utils habe ich schon aktualisiert.

    Das System welches ich nutze:

    - Raspberry Pi Zero

    - Raspbian stretch lite

    - I2S Soundkarte (Soundkarte ist die "0")

    Ansonsten läuft das Radio / die Soundkarte und kann händisch die Lautstärke im Alsamixer einstellen. Prinzipiell hatte ich dieses Setup vor ca 1,5Jahren schon einmal am laufen gehabt, allerdings auf einem Raspi3 mit stretch(full).

    Danke für eure Hilfe!

    Gruß ErdnussPi


    PS: ist mein erster Beitrag hier, wenn ich was falsch gemacht habe, dann sag ich schon einmal "Sorry" im voraus!

  • ALSA Einstellungen für Lautstärke via Rotary Encoder? Schau mal ob du hier fündig wirst!

  • Moin ErdnussPi,

    erstmal: Herzlich Willkommen im Forum!

    Noe, du hast nix falsch gemacht.

    Die Anleitung ist schon etwas älter. Da hat sich doch schon einiges geändert.

    Was sagt denn cat /proc/asound/cards

    Die Ausgabe hier posten. Bitte nutze dieses Zeichen </> für Code.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo Bernd!

    Danke für die schnelle Antwort. Hier die Ausgabe

    Code
    0 [sndrpihifiberry]: HifiberryDac - snd_rpi_hifiberry_dac
    snd_rpi_hifiberry_dac

    Danke für deine Hilfe!

    Gruß


    ErdnussPi

  • Moin ErdnussPi,

    du hast doch diese Karte: Adafruit MAX98357 I2S Class-D Mono Amp, oder?

    Dann ist die falsche Karte bei dir eingetragen.

    Wie hast du sie eingerichtet? Mit einem Overlay oder anders?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo Bernd,

    die Installation erfolgte nach der Anleitung auf der Seite von Adafruit, fast install --> Skript.

    Dass die Soundkarte als Hifiberry angezeigt ist, scheint normal zu sein. zumindest wird sie im Screenshot auf der nächsten Seite in der Anleitung auch so angezeigt. Das einzige, was mir auffällt: im Screenshot steht bei item: "softmaster", bei mir steht dort "pcm".

    Danke, dass du mir hilfst!

    Gruß

    ErdnussPi

  • Moin ErdnussPi,

    du schreibst das Lärm aus den Lautsprecher kommt, aber nicht regeln kannst. Richtig?

    Hast du denn die /etc/asound.conf erstellt?

    73 de Bernd

    /EDIT Welches Betriebssystem hast du?

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

    Einmal editiert, zuletzt von Bernd666 (7. September 2021 um 16:35)

  • Hallo Bernd,

    ich nutze Raspbian Stretch lite.

    die asound.conf-Datei ist vorhanden,hier der Auszug.

    EDIT: Über die Soundkarte kann ich aktuell ganz normal Musik abspielen, sie scheint also erst einmal ihre Aufgabe zu erledigen. Regeln der Lautstsärke geht, wenn ich via Terminal--> Alsamixer dann die Lautstärke händisch einstelle.

    Einmal editiert, zuletzt von ErdnussPi (7. September 2021 um 19:47)

  • Um bei der Anleitung zu bleiben...

    Was sagt denn bei Dir amixer cget numid=1 ?

    Code
    numid=1,iface=MIXER,name='PCM'
      ; type=INTEGER,access=rw---RW-,values=2,min=0,max=255,step=0
      : values=3,3
      | dBscale-min=-51.00dB,step=0.20dB,mute=0

    Und kannst Du die Lautstärke einstellen mit amixer -c 0 cset numid=1 <Wert zwischen min und max der vorherigen Ausgabe> ?

    Ja, funktioniert ohne Probleme.

    Zumindest scheint es nicht irgendetwas naheliegendes zu sein. Ich konnte bisher auch nirgends einen ähnlichen Fall im Netz finden...

  • Moin hyle,

    vielleicht will ErdnussPi ja das.

    Ich bastel mir aktuell ein Webradio und würde gerne die Lautstärke via Rotary Encoder einstellen können.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin hyle,

    gut das wir darüber geschrieben haben. ;)

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hi Bernd,

    in seiner Anleitung ist ja weiter unten ein Python-Skript für den Rotary Encoder. In dem muss er dann doch nur noch die GPIOs, min und max (aus der Ausgabe) anpassen.

    Hallo Hyle,

    ja das Skript habe ich natürlich geladen und modifiziert (und gespeichert!). Es tut aber nicht. Keine Sorge, die Anleitung bin ich mehr als einmal durch. Aber wie eben auch in der Anleitung beschrieben, sollte ich die Einstellung "Digital Playback Volume" auswählen. Nur Habe ich diese Auswahl gar nicht. Und eben deshalb habe ich idesen Threat hier eröffnet um zu verstehen, warum ich diese Auswahl nicht habe bzw. woran das liegen könnte.

    Prinzipiell hatte ich in einer anderen Umgebung die Lautstärkeregelung via Rotary Encoder und exakt diesem Skript am Laufen gehabt.

    PS: Verkabelung wurde ebenfalls noch einmal kontrolliert, ein weiterer Rotary Encoder wurde ebenfalls probiert

  • Aber wie eben auch in der Anleitung beschrieben, sollte ich die Einstellung "Digital Playback Volume" auswählen

    Du verwendest eine andere Soundkarte, als die aus der Anleitung. Vermutlich gibt es das bei Deiner einfach nicht.


    Zurück zum Thema. Wenn Du per CLI die Lautstärke ändern kannst, dann sollte imho das Skript auch funktionieren.

    Verkabelung wurde ebenfalls noch einmal kontrolliert,

    Beschreibe bitte trotzdem mal, was Du wo genau angeschlossen hast. Das Skript verwendet die GPIO/BCM Nummerierung, nicht dass hier eine Verwechslung mit Pin / BOARD vorliegt. Wäre auch nicht das erste mal.

    Bekommst Du Fehlermeldungen von diesem Skript?

  • Du verwendest eine andere Soundkarte, als die aus der Anleitung. Vermutlich gibt es das bei Deiner einfach nicht.


    Zurück zum Thema. Wenn Du per CLI die Lautstärke ändern kannst, dann sollte imho das Skript auch funktionieren.

    Beschreibe bitte trotzdem mal, was Du wo genau angeschlossen hast. Das Skript verwendet die GPIO/BCM Nummerierung, nicht dass hier eine Verwechslung mit Pin / BOARD vorliegt. Wäre auch nicht das erste mal.

    Bekommst Du Fehlermeldungen von diesem Skript?

    Hallo,

    die Soundkarte hat definitiv mit dem Skript schon funktioniert.

    Der Anschluss:

    Code
    CLK--GPIO10
    DT---GPIO09
    SW---GPIO11
    GND--GND
    5V---5V

    und GPIO10 ist der 10. Pin linksseitig der GPIO Leiste, die anderen beiden jeweils darunter.

    Wenn ich am Wochenende dazu komme, nehme ich einen zweiten Zero noch einmal in Betrieb, dann mit dem aktuellen Raspi OS.

    Danke und Gruß

    ErdnussPi

  • =O Hoffentlich hast Du Dir dabei nicht die GPIOs zerballert! Verwende einen 3V3 Pin! https://pinout.xyz/pinout/3v3_power#

    Hat es einen Grund warum Du die SPI-Pins verwendest oder ist das reiner Zufall? SPi ist hoffentlich deaktiviert.

    Nee, zerschossen ist da nichts.

    Habe es in meiner Doku ein wenig missverständlich dargestellt. Wobei der Rotary Encoder, KY-040, wohl recht tolerant ist. nun habe ich ihn an 3v3 angesteckt, mach aber kein Unterschied. Desweiteren Habe die betreffenen Pins ausprobiert mit Tastern, sie tun definitiv und sind nicht zerschossen. Habe zudem mal andere GPIOs ausprobiert für den Rotary Encoder (17,22,27), das Problem bleibt, selbst wenn ich einen weiteren Rotary Encoder ausprobiere. UNd ja, im Skript geändert und gespeichert!

    Danke für die Hinweise, der Fehler kann natürlich auch darin stecken. Bisher habe ich aber noch nicht den Grund gefunden. Nervig.

  • Hallo,

    nach einigen Wochen möchte ich auch noch einmal Rückmeldung geben. Ich habe auf einer weiteren SD Karte das gesamte System neu aufgesetzt und es funktioniert. ich habe keinen blassen Schimmer, was ich falsch gemacht haben könnte.

    Danke für den Support, ich habe auf jeden Fall was dazu gelernt.


    PS: Die Settings im Alsamixer werden mir auch angezeigt wie zuvor, also Item: PCM

    Gruß

    Erdnuss

Jetzt mitmachen!

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