Python Audio CD-Player

  • Bei meinem Projekt geht es um ein Audiosystem. Ich weiss es gibt dazu schon viele Lösungen mit GUI's. Da mein Audio System auch AUX Eingänge haben soll (Phono / Tape) und ich ebenfalls eine DAB+ einbinden möchte muss ich eine eigene GUI dazu schreiben.

    Bei der Implementierung des CD-Players stehe ich an.

    Folgendes habe ich bis jetzt getestet

    Spielen der CD's mit VLC, das geht soweit, allerdings kann ich die CD-Informationen nicht auslesen. Auch mit der VLC GUI werden die CD-Informationen nicht angezeigt.

    Eine andere Lösung ist cdio und pycdio. Das würde ich bevorzugt verwenden. Dabei steh ich an zwei Punkten an. Ich kann Anzahl der Tracks anzeigen. Allerdings liegen die in der Form von Trackobjektes an, und ich habe bis jetzt nicht heraus gefunden, wie diese Objekte in zB. WAV Formate konvertiert werden können. Das ist aber nötig, damit eine Player damit etwas anfangen kann. Das zweite Problem, das ist das lesen der 'media catalog number'. Diese ist leer bzw. '000...000'. Starte ich dieselbe CD auf meine Mac auf, werden alle Informationen angezeigt, das bedeutet, dass die 'media catalog number' vorhanden sein muss.

    Kann mir jemand weiterhelfen?

    Vielen Dank schon im Voraus.

  • Ping schlizbäda Sorry dafür! ;)

    Ein anderer "Irrer", der sich mit einem CD-Player auseinandergesetzt hat, fällt mir gerade jedenfalls nicht ein.

    ((Edit

    schlizbäda
    December 10, 2017 at 8:32 PM
  • Betagt ja, aber Irre?

    Ich weiss, CD' sind etwas angegraut, trotzdem besitze ich noch welche. Letztlich geht es darum die Audio Daten einer CD zu lesen und in ein gängiges Audio Format zu konvertieren.

    Danke für den angegebenen Thread. Dort wird allerdings nicht nur mein Frage behandelt, sondern vieles drum herum, was mich nun nicht so interessiert.

  • Das "irre" war im positiven Sinn gemeint und keinesfalls herabwürdigend. Ganz im Gegenteil! ;) Ich wollte schlizbäda durch Erwähnung seines Namens nur auf diesen Thread hier aufmerksam machen. Vermutlich kennt er einen guten Weg zu Deiner Frage.

    Oder ggf. findest Du hier https://wiki.ubuntuusers.de/CDs_rippen/ etwas passendes.

  • Hi Christophe ,

    zum Abspielen von CDs verwende ich auf dem Raspiblaster die Software audacious ("produktiv" verwendet von den Kindern) oder als zweite Option den alsaplayer. Hier ist zwar die GUI etwas puristischer, aber man kann CDs und Audiodateien auch schneller oder langsamer abspielen (pitch) und sogar rückwärts.

    Mit audacious werden auch die Informationen aus CD-TEXT angezeigt. Dies konnte ich zweifelsfrei mit einer neuen CD feststellen, die ich ins Gerät eingelegt habe als gerade keine Internetverbindung bestand. Bei bestehender Internetverbindung holt sich das Programm Metainformationen aus dem Netz.

    Mit Deiner Anwendung cdio bzw. pycdio habe ich mich bisher nicht befasst und kann Dir dazu leider keine konkrete Hilfe geben.

    Jetzt zur Thematik CDs rippen (ubuntuusers.de) und wie ich das mit meinem Raspiblaster mache:

    Die verwendete Software heißt tatsächlich abcde (A Better CD Encoder), deren Homepage lautet https://abcde.einval.com/wiki/

    Auch dazu gibt es hier im Forum einen eigenen Thread: RaspiBlaster: Gerät zum Rippen von CDs missbraucht

    schlizbäda
    August 12, 2018 at 1:26 AM

    Beschrieben habe ich das in meiner Anleitung zum Raspiblaster auf github in Kapitel 4. Dort kann das mit LaTeX erstellte PDF heruntergeladen werden:

    deutsche Version

    englische Version (da bin ich so stolz, dass ich das als mehrsprachiges LaTeX-Projekt hinbekommen habe :) )

    Natürlich gibt es auch etliche grafische Programme zum Rippen von CDs, aber ich bin tatsächlich bei abcde hängen geblieben.

    Nachdem ich seinerzeit noch unter Windows mit dem Audiograbber MP3-Dateien (128kbit/s) von einigen meinen CDs erstellt habe, störte mich irgendwann, dass MP3 verlustbehaftet komprimiert (und ich mir einbildete, dass ich es sogar höre. Kann bei 128kbit/s durchaus sein, da heutzutage etwas zu wenig).

    Deshalb stieg ich dann auf FLAC um, ein verlustfreies Audioformat, das aber gegenüber dem ungepackten WAV etwa 1/3 weniger Speicher braucht. Kompression auf 75% - 50% der Größe von WAV-Dateien. Auch FLAC ist mit den meisten Audioplayern auf einem PC (oder Raspberry Pi) abspielbar. Nur manche Autoradios streiken damit auch noch 2023.

    Und auch mit DAB+ habe ich schon experimentiert:

    schlizbäda
    January 21, 2019 at 11:05 PM

    Hier habe ich auch schon etliche Erkenntnisse gewonnen, insbesondere hinsichtlich der Antennentechnik (Optimierung des Empfangs), aber zu meiner Schande muss ich gestehen, dass das DAB-Radio-Projekt noch nicht abgeschlossen ist, da die Software nur prinzipiell läuft, eher in Form eines proof of concept. Derzeit null WAF!

    Achtung: Produktplatzierung!

    Bezüglich AUX-IN-Anschlüssen fällt mir mein RPi400extBrd ein, das man mit externer Relaisschaltung evtl. dahingehend erweitern könnte, aber das müsste ich erst noch genau ausarbeiten.

    Nur kurz: das Board ist ein RPi-kompatibler HAT, u.a. mit kleinem Audioverstärker, kompatibel zum HifiBerry DAC+ und einer batteriegepufferten RTC (Echtzeituhr). Außerdem besteht als Alleinstellungsmerkmal gegenüber allen anderen mir bekannten RPi-Soundkarten die Anschlussmöglichkeit für ein klassisches Poti zur Lautstärkeregelung.

    ...und jetzt wünsche ich Dir und allen anderen Lesern einen guten Rutsch ins neue Jahr!

  • wie gesagt, wenn's konkret wird, helfe ich beim ein oder anderen Detail gerne weiter...

  • und funktioniert es?

    So wie Du es oben angegeben hast, ist die Reihenfolge der Titelsuche aber

    1. MusicBrainz (mit höchster Priorität)

    2. CDDB

    3. CD-TEXT

    Nachdem das freie Pendant zu CDDB, freeDB bereits 2020 abgeschaltet wurde, bin ich zu MusicBrainz gewechselt. Seitdem findet abcde zu fast allen CDs die dazugehörigen Metadaten. Bei MusicBrainz gefällt mir außerdem besser, dass die Disc-ID wesentlich länger ist und daher die Wahrscheinlichkeit für Kollisionen von zwei unterschiedlichen CDs wesentlich geringer ist.

    Bei den Metadaten ist aber die Hauptsache dass es zufriedenstellend funktioniert.

  • Es funktioniert so weit. Nun bin daran mir eine Python Oberfläche zu schreiben. Sobald das soweit ist sende ich ein paar screen shots.

    An einem Punkt stehe ich aber noch etwas an, das ist mit dem automatischen Einlesen einer neu eingelegten CD.

    Ja, das mit freedb weiss ch, ich bauche neben musikrainz GNUDB. Das hat alle Daten von FreeDB übernommen und die gleichen such Algorithmen. Aber ich muss Dir recht geben, die längere CdID von Musikbrainz hat so seine Vorteile.

    Dann muss ich meine Raspberry noch abgewöhnen, beim Einlegen der CD ein Fenster mit den Virtuellen Tracks zu öffnen.

  • Ach, das mit dem automatischen Einlesen und Starten einer CD bzw. das nervige(?) Dialogfenster dazu habe ich komplett verdrängt:

    Die Kids schließen das Fenster offenbar einfach und spielen die CD dann wie gewohnt mit Audacious ab.

    Wenn ich mich zum Rippen auf dem RaspiBlaster per ssh -X pi@raspiblaster einlogge, erscheint diese Meldung zwar auf dem Desktop des RPi im 7"-Display, aber das ist mir gar nicht so direkt bewusst und ich ignoriere es.

    Wie man solche Fenster jetzt konkret abschaltet, weiß ich nicht, dazu bin ich ein zu großer Linux-Dauernoob :)

    Wahrscheinlich irgendwie mit udev oder so...

  • Sorry,

    heute bin ich mit dem RPi400 im Internet, die Raspiblaster stehen netzwerklos in den Zimmern der Buben, ich komme also nicht direkt drauf für einen Screenshot. Also Handy genommen, fotografiert und ins Forum reingestellt. Auf dem 400er kein gescheites Grafikprogramm & deswegen steht das Bild schief :P

    I'm so sorry!

    ...und weil das nicht reicht, das Bild ist nicht nur um 90° gedreht, sondern auch noch wegen des Handyfotos der-moiré-t.

  • Vielleicht ist der Sundtek DAB/DAB+/FM Radio USB Tuner für das Projekt interessant.

    Audio kann leicht als PCM ausgelesen und abgespielt werden und kann entweder direkt von den Schnittstellen oder von einem Streamingserver ausgelesen werden.

    Die Senderdaten können vom Streamingserver im JSON Format ausglesen werden, auch kann mittels HTTP / JSON Requests überhaupt ein Scan getriggert werden.

    Sundtek DAB/DAB+/FM/FM HD Howto

    Alternativ kann auch direkt auf die Schnittstellen zugegriffen werden

    DAB/DAB+ - Sundtek Wiki

  • Wende dich via Mail an den Support kontakt at sundtek com. Der Shop läuft aktuell nur über PayPal.


    Der Tuner funktioniert soweit mittlerweile auch mit Kodi über UPnP.


    Zuerst den Streamingserver installieren

    /opt/bin/mediaclient --installstreamer

    Dann via http://localhost:22000 FM/DAB+ Radio scannen, eine Playlist/Gruppe erstellen und die Radio Sender zuordnen.


    Danach entweder mit VLC oder Kodi:

    Kodi > Music > Files > UPnP Media Servers (auto discover) -> Sundtek DLNA Server -> Radio Kanal auswählen.

    An DVBViewer kann auch gestreamed werden.

    Edited 2 times, last by sundtek (February 20, 2024 at 8:26 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!