Beiträge von Herr Kaiser

    Habe gerade ausprobiert, ob man die Messung durch eine Kabelverbindung zwischen Soundkarte und Handy vereinfachen und verbessern kann: ja, man kann! :)

    Es funktioniert nur nicht mit einer regulären Klinkenverbindung, da das Smartphone statt eines 3- einen 4-poligen Klinkenstecker erwartet (um Ein- und Ausgang zu trennen). Mit einem preiswerten Splitter funktioniert es dann tadellos. Ich würde nur vor der Verbindung die Lautstärke des Audioausgangs erst auf 0 herunterfahren und dann zunehmende steigern, um eine Übersteuerung zu verhindern. Ich hab die Lautstärke so eingestellt, dass Werte im Bereich zwischen ca. 70 und 80 dBA gemessen werden, das entspricht meiner üblichen Radiolautstärke.

    mit welchem Display läuft kivi bei Dir?

    Hi kle,

    ich habe zwei Touch-Displays. Bei beiden funktioniert es:

    https://www.amazon.de/gp/product/B075JFT9SF/ref=oh_aui_detailpage_o00_s01?ie=UTF8&psc=1&tag=psblog-21 [Anzeige]

    https://www.amazon.de/gp/product/B0765VZGWG/ref=oh_aui_detailpage_o08_s00?ie=UTF8&psc=1&tag=psblog-21 [Anzeige]

    Edit (Ergänzung): bei ersterem musste ich entsprechende Treiber installieren, bei letzterem funktionierte es - wenn ich mich richtig erinnere - out of the box.

    So, meine erste "vernünftige" Python-Kivy-App ist quasi fertig.

    Ich habe einige Buttons noch mit Bestätigungsdialogen verknüpft, damit man keine versehentlichen Aktionen auslöst, und mit der Ausgabe von Meldungen versehen, damit man erfährt, ob Aufträge im Hintergrund ausgeführt worden sind. Das Radio hat noch eine Art Favoritenfunktion. Wenn man zufällig einen Song hört, der einem gefällt und den man sich merken möchte, betätigt man den Stern-Button. Dann werden Datum, Sender und Titel in der Datei "guteSongs.txt" gespeichert. Wenn man den Mail-Button drückt, wird einem die so erstellte Liste per Mail zugeschickt.

    Ich bin ja CreativeCommons- und OpenSource-Fan. Besteht Interesse? Dann kann ich den Code hier gerne zur Verfügung stellen.


    Ups, habe oben behauptet, Schaldruckpegel-Werte seien linear. Irrtum meinerseits. Ist schon zu lange her, dass ich das alles mal gelernt habe. :blush:. Auch wenn die Ergebnisse ganz gut passen, ist die Umrechnung in SPL vielleicht gar nicht erforderlich. Ich muss das bei Gelegenheit mal vergleichen ...

    Falls jemand soetwas auch mal gebrauchen kann: Hier ist der Link zur App: https://play.google.com/store/apps/det…oanalyzer&hl=de

    So, da bin ich wieder. Hat prima geklappt, mit der App. Es wurden sehr plausible Lautstärke-Werte geliefert, die ziemlich gut zu meinem subjektiven Eindruck passten. Wegen der logarithmischen dbA-Skalierung habe ich die Werte in linearskalierte Schalldruckpegel-Werte umgerechnet und dann noch eine Transformation vorgenommen, so dass sich für den lautesten Sender ein Wert von 70 ergibt (zuvor durch Ausprobieren ermittelt, dass beim lautesten Sender eine Reduktion der Lautstärke auf 70% eine Lautstärke ergibt, die der des leisesten Senders bei 100% entspricht) und für den leisesten ein Wert von 100. Jetzt habe ich für jeden Sender meiner MPD-Playlist einen Wert, der mittels mpc volume wert eingestellt wird - jetzt muss ich beim Umschalten auf bestimmte Sender nicht mehr vor Schreck zucken ;)

    Problem gelöst :)

    Danke für eure Vorschläge und Ideen! :)

    Tools zum Normalisieren von mp3s waren mir schon bekannt. Hab ich häufig eingesetzt, um Tracks von selbst zusammengestellten Sampler-CDs anzugleichen. Für Streamingdaten habe ich eher nach einem Ansatz gesucht, den Soundpegel on the fly für einen definierten Zeitabschnitt zu messen und entsprechende Max- oder Durchschnittswerte zu erhalten. Als Behelf könnte ich natürlich das Radioprogramm mitschneiden und als mp3 abspeichern, um es nachträglich durch mp3gain untersuchen zu lassen. Vielleicht ist eine andere Idee, die mir gerade kam, aber etwas einfacher (wenn auch sicherlich ungenauer): Hab mir die Android "Sound Analyzer App" installiert, die eine Schalldruckmessung über das Mikro vornimmt und statistische Werte ausgibt. Ich werde berichten, ob man dadurch zu verwertbaren Daten kommt ...

    Hallo Forum,

    kennt Ihr eine Möglichkeit, den durchschnittlichen Lautstärkepegel eines Audiostreams zu ermitteln?

    Hintergrund: die in meinem Raspi-Internetradio eingespeicherten Sender senden in sehr unterschiedlicher Lautstärke, so dass man beim Skippen von einem zum nächsten Programm ständig manuell die Lautstärke anpassen muss. Wenn ich die typische Sendelautstärke eines Programms ermitteln könnte, könnte ich das Volumen der Soundkarte beim Umschalten automatisch anpassen lassen. Hättet Ihr einen Tip - oder müsste ich das ohrentechnisch über trial&error ermitteln?

    Also die Idee ist irgendwas (z. B. Konfiguration) in einem Textfile mittels Emulator am PC auf der Raspbian Partition ändern (schreiben), die Karte aus dem PC nehmen und in den Raspi stecken.

    Musst du dazu das System extra booten? Es würde für diesen Anwendungsfall ein einfaches Mounten der SD-Karte auf dem PC reichen. Oder hast du noch speziellere Sachen damit vor?

    EDIT: ach so, sorry, hattest du oben ja schon geschrieben. Hat sich damit erledigt.

    Würdest du mir dein Script zum Nachbau zur Verfügung stellen? Gerne per PM. Mein Programmierkentnisse sind noch sehr rudimentär

    Ich bin auch kein Python-Profi. Deshalb ist das Script vermutlich stilistisch verbesserungsfähig - aber es funktioniert.

    Danke nochmal an hyle für den entscheidenden Hinweis!



    Das Skript wird automatisch beim Booten gestartet (sudo crontab -e und dann angefügt: @reboot python3 wifiLedButton.py

    Hi Doni,

    zu deinen Punkten:

    1. Ich hab zweierlei Schalter für das Hoch- bzw. Runterfahren eingebaut. Unten links in dem Bild von der neuesten Version des Radios der Kippschalter (einfach zwischen Powerbank und Raspi gschaltet) stellt die Stromversorgung her, so dass das Radio beim Einschalten automatisch hochfährt. Der Taster unten rechts ist mit GPIO-Pins verbunden und für das sichere Herunterfahren zuständig. Ich habe das Script, das die Wifi-LED steuert, um eine Abfrage des Buttonstatus erweitert, so dass es beim Drücken des Tasters den Shutdown veranlasst. Danach kann mit dem Kippschalter die Stromversorung wieder komplett getrennt werden.

    2. Der Sound über den Klinkenausgang des Raspberry ist wohl nicht so ideal. Deshalb habe ich oben in der ersten Version eine USB-Soundkarte mit Klinkenausgang angeschlossen, in der zweiten Version das HDMI-Audio-Signal über den Klinkenausgang des Displays abgegriffen.

    !

    3., 4., 5. Ja, genau so!

    Inzwischen bin ich von Volumio abgekommen. Für die Steuerung per Web-Interface ist es eine feine Sache, aber Bedienung auf dem 3,5-Zoller macht nicht wirklich Spaß. Die Bedienelemente, insbesondere die Scrollbar, sind zu klein. Da wird die Steuerung zum Glückspiel. Außerdem muss man durch zu viele Ebenen navigieren, um den gewünschten Sender zu erreichen.

    Deshalb hab ich jetzt eine eigene, mpd/mpc-basierte Internetradio-Anwendung geschrieben mit einem per Kivy gebastelten UI. Mein Ziel war die möglichst einfache und bequeme Bedienung per Touch. Die App hat nur 2 Screens, zwischen denen einfach hin- und hergeswiped werden kann. Funktioniert ganz gut :)



    Hallo Mollo,

    hab deinen Beitrag erst jetzt gesehen. Bist du zwischenzeitlich weitergekommen? Falls nicht: Hast du die notwendigen Treiber installiert? Über das Web-Interface von Volumio kannst du das Touch-Display-Plugin installieren. Alternativ kannst du nach dem Login auf Kommandozeilenebene auch die mit dem Display mitgelieferten Treiber installieren. Eine Einleitung dazu ist in den Amazon-Kundenbewertungen zum Display zu finden. Ich kann dir leider nicht genau sagen, wie ich vorgegangen bin, weil ich vor längerer Zeit den Raspi für ein anderes Touch-Display eingerichtet hatte, und da funktionierte jetzt das hier genannte Display out of the box.

    Falls das Problem noch nicht gelöst ist, kannst du ja vielleicht deinen aktuellen Stand kurz darstellen - am besten in einem neuen Thread in der Abteilung "Hardwar/Displays", dann finden es andere Interessenten leichter.

    Imports finden auf globaler Ebene, nicht in Funktionen/Methoden statt. Sonst wird bei jedem Aufruf auf's neue importiert.

    Ja, das hab ich hier auch nur schnell und schmutzig zum Testen so reingehauen. Da hast du natürlich Recht!

    Danke für den Kommentar, denn auch wenn man nur schnell etwas testet sollte man kein schlechtes Vorbild abgeben :blush:

    Ich verstehe es auch nicht. Das Problem ist, dass die mpc-Kommandos manuell in die Shell eingegeben andere Ergebnisse zeigen, als die Rückgabe des entsprechenden subprocess in Python. "mpc -f %title% current" bspw. ergibt bei mir per subprocess aufgerufen einen leeren String. Die Lösung des Mehrfachaufrufs habe ich durch Ausprobieren herausgefunden. Aber warum es bisher nur so geht, erschließt sich mir auch nicht :conf:

    Threadtitel wird gleich geändert ...