Ich bin dabei einen Audioplayer zu bauen.
Nach ausgiebiger Suche, finde ich keine Lösung für das Importieren von Audio-CD's.
PYVLC kann zwar Audiodisks lesen, kann aber keine Informationen zu den Tracks anzeigen, was für einen Import eine Voraussetzung ist. Ausserdem import es Audio Dateien nur im WAV format das sämtliche Metadaten ausschliesst.
Pygame kann schon gar keine CDRoms mehr lesen.
Ich suche nach einer Möglichkeit CDROM Daten direkt von der CD zu lesen um mit denen dann zu tun was ich gedenke.
Was für mich ebenfalls etwas schwierig ist, dass ich die CD-rom nicht im Dateisystem finde.
Die CROM ist gemountet aber angezeigt wird sie nirgends. Weder im Terminal noch im Desktop Dateiverzeichnis noch in dev.
In Media wird nur ein USB-Stick angezeigt aber keine CDROM, die ist allerdings vorhanden, sonst würde vlc Desktop diese nicht abspielen.
Ich bin so ziemlich ratlos wie ich weiter gehen soll.
Für Ratschläge und Lösungsansätze bin ich dankbar.
Audioplayer, cd importieren
- __blackjack__
- User
- Beiträge: 14045
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@ChristophS: Du vermischst da gerade Audio-CDs und CD-ROMs. Das eine ist für Audio, das andere ist für Daten. Wobei man auch beides auf einer CD haben kann. Im Dateisystem werden immer nur die Daten auftauchen, nicht die Audio-Tracks.
Audiotracks *können* zwar Metadaten haben, auf den allermeisten kommerziellen CDs haben sie aber AFAIK keine, weil die meisten CD-Player die auch gar nicht anzeigen würden.
Abspielen von Audio-Tracks funktioniert ”klassisch” so, dass das CD-Laufwerk einen analogen Audioausgang hat, und die Abspielsoftware dem Laufwerk mitteilt es soll den entsprechenden Track darüber abspielen. Die Audiodaten gehen dann direkt zu den Kopfhörern/Boxen oder werden intern über eine Soundkarte geleitet. Keine Ahnung ob es da heute noch Soundkarten gibt die einen Eingang für CD-Laufwerke haben. Das dürfte vielleicht der Grund sein warum Pygame das entsprechende Modul nicht mehr hat: diese Hardware-Konfiguration macht heute keinen Sinn mehr.
Abspielprogramme auf dem PC scheinen dazu übergegangen zu sein die Sampledaten der Tracks auszulesen und über die Soundkarte abzuspielen, so dass es keinen Sinn mehr macht Audio-Tracks zu einem Spiel auf die CD zu packen, weil die Daten sowieso über CPU/RAM/IO laufen, und dann kann man die nicht nur gleich als Datendatei auf das Medium packen, sondern auch in einem komprimierten Format.
Du wirst Dich damit beschäftigen müssen wie man die Audiodaten von der CD lesen kann. Und das ist sehr low-level und damit nicht plattformunabhängig.
Audiotracks *können* zwar Metadaten haben, auf den allermeisten kommerziellen CDs haben sie aber AFAIK keine, weil die meisten CD-Player die auch gar nicht anzeigen würden.
Abspielen von Audio-Tracks funktioniert ”klassisch” so, dass das CD-Laufwerk einen analogen Audioausgang hat, und die Abspielsoftware dem Laufwerk mitteilt es soll den entsprechenden Track darüber abspielen. Die Audiodaten gehen dann direkt zu den Kopfhörern/Boxen oder werden intern über eine Soundkarte geleitet. Keine Ahnung ob es da heute noch Soundkarten gibt die einen Eingang für CD-Laufwerke haben. Das dürfte vielleicht der Grund sein warum Pygame das entsprechende Modul nicht mehr hat: diese Hardware-Konfiguration macht heute keinen Sinn mehr.
Abspielprogramme auf dem PC scheinen dazu übergegangen zu sein die Sampledaten der Tracks auszulesen und über die Soundkarte abzuspielen, so dass es keinen Sinn mehr macht Audio-Tracks zu einem Spiel auf die CD zu packen, weil die Daten sowieso über CPU/RAM/IO laufen, und dann kann man die nicht nur gleich als Datendatei auf das Medium packen, sondern auch in einem komprimierten Format.
Du wirst Dich damit beschäftigen müssen wie man die Audiodaten von der CD lesen kann. Und das ist sehr low-level und damit nicht plattformunabhängig.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
-
- User
- Beiträge: 52
- Registriert: Montag 7. August 2017, 12:52
Herzlichen dank für Deine Antwort trotz meines etwas konfusen Posts von Gestern.
Es geht natürlich nur um Audio-Cds und am Ende um Linux/Raspian.
In OSX kann ich mir alle vorhandenen Datenträger (inklusive CD) in /Volumes anzeigen lassen. Sofern eine Cd eingelegt ist kann ich mit irgend einem Player die Audio Dateien abspielen.
Beim Raspberry weiss ich nicht wo ich nach dem CD-Player suchen kann. Unter /media/<user> ist er nicht zu finden, auch dann nicht wenn eine CD eingelegt ist.
Es geht natürlich nur um Audio-Cds und am Ende um Linux/Raspian.
In OSX kann ich mir alle vorhandenen Datenträger (inklusive CD) in /Volumes anzeigen lassen. Sofern eine Cd eingelegt ist kann ich mit irgend einem Player die Audio Dateien abspielen.
Beim Raspberry weiss ich nicht wo ich nach dem CD-Player suchen kann. Unter /media/<user> ist er nicht zu finden, auch dann nicht wenn eine CD eingelegt ist.
- __blackjack__
- User
- Beiträge: 14045
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@ChristophS: OSX hat da ein virtuelles Dateisystem das Dateien für die Audio-Tracks anzeigt. Die gibt es ja nicht wirklich diese Dateien. Wenn man darauf zugreift, dann ”rippt” das System die ”on the fly” und wandelt die rohen PCM-Daten auf der CD in, ich glaube AIFF-Dateien um. Was ja nicht wirklich schwierig ist, denn AIFF ist genau wie RIFF ein recht einfach aufgebautes Containerformat.
Unter Linux machen das die Desktopumgebungen. KDE und GNOME haben beide ein ”virtuelles” Dateisystem das verschiedene Protokolle über Plugins realisiert. Bei GNOME heisst die Bibliothek gvfs und bei KDE heisst das KIO wenn ich mich recht erinnere. Das wäre ein Ansatzpunkt wo man weiterforschen könnte.
Welche GUI-Bibliothek verwendest Du denn für Deinen Player?
Unter Linux machen das die Desktopumgebungen. KDE und GNOME haben beide ein ”virtuelles” Dateisystem das verschiedene Protokolle über Plugins realisiert. Bei GNOME heisst die Bibliothek gvfs und bei KDE heisst das KIO wenn ich mich recht erinnere. Das wäre ein Ansatzpunkt wo man weiterforschen könnte.
Welche GUI-Bibliothek verwendest Du denn für Deinen Player?
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
- DeaD_EyE
- User
- Beiträge: 1238
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Für Python gibt es ziemlich viele Bibliotheken. Einige sind veraltet.
- http://pymedia.org/ (letztes Update 2015)
- https://github.com/whipper-team/whipper (letzter commit letztes Jahr)
- Und whipper basiert auf https://github.com/thomasvs/morituri (2015)
- https://pypi.org/project/pycdio/ (letztes Update 2022)
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
-
- User
- Beiträge: 52
- Registriert: Montag 7. August 2017, 12:52
Das GUI ist GNOME. Die Files liegen unter dem virtuellen Verzeichnis cdda; kann aber imTerminal nicht darauf zugreifen.
pycdio könnte die Lösung bringen. Allerdings scheitere ich bei der Installation. Pycdio benötigt libcdio 2.0.0, die ich auch gefunden habe. Allerdings habe ich keine Ahnung wie ich diese installieren kann. Mit tar wird sie entpackt, aber nicht installiert.
Versuche ich apt install, dann dann kommt die Meldung die Datei sei nicht vorhanden, ist sie aber. Irgendwie stehe ich auf dem Schlauch ...
pycdio könnte die Lösung bringen. Allerdings scheitere ich bei der Installation. Pycdio benötigt libcdio 2.0.0, die ich auch gefunden habe. Allerdings habe ich keine Ahnung wie ich diese installieren kann. Mit tar wird sie entpackt, aber nicht installiert.
Versuche ich apt install, dann dann kommt die Meldung die Datei sei nicht vorhanden, ist sie aber. Irgendwie stehe ich auf dem Schlauch ...
Bist du dir sicher, dass es unbedingt die 2.0.0 sein muss, Debian bookworm zum beispiel bringt die 2.1.0 mit und libcdio ist aus dem gnu Umfeld. Da ist es eigentlich immer Praxis das die API sich bei minor Updates nicht ändert.ChristophS hat geschrieben: Freitag 11. August 2023, 21:55 pycdio könnte die Lösung bringen. Allerdings scheitere ich bei der Installation. Pycdio benötigt libcdio 2.0.0
Ganz generell, du solltest dich an die Beschreibung halten, welche pycdio mitbringt. Die haben in der Readme https://github.com/rocky/pycdio#to-buil ... -eg-ubuntu ein artikel wie man auf debian /ubuntu baut.
Außerdem gilt unter Linux grundsätzlich, dass man, nachdem das Tar Paket entpackt wurde, es mit dem Dreiklang
Code: Alles auswählen
./configure
make
make install
-
- User
- Beiträge: 52
- Registriert: Montag 7. August 2017, 12:52
Ich habe viel dazu gelernt. Mittlerweile kann ich tar Objekte installieren. Allerdings habe ich bis jetzt noch keine Lösung für mein Problem gefunden.
https://github.com/rocky/pycdio#to-buil ... -eg-ubuntu hat folgende Anleitung:
$ apt-get install python-dev
$ apt-get install libcdio-dev
$ apt-get install libiso9660-dev
$ apt-get install swig pkg-config
$ pip install -e .
$ make check
Bei pip install -e kommt die Meldung:
Directory '.' is not installable. File 'setup.py' not found
Infolgedessen funktioniert auch make check nicht.
P.S. Ich habe die Frage im Raspberry Forum ebenfalls gestellt, weil ich ich mittlerweile fest gestellt habe, dass mein Problem nicht unbedingt ein Python Problem ist, sondern eher Raspberry und Debian (Raspian) betrifft. Tut mir leid. Ich bleibe dem Python Forum treu und falls es eine Interessante Antwort im andern Forum gebe, werde ich diese hier posten.
https://github.com/rocky/pycdio#to-buil ... -eg-ubuntu hat folgende Anleitung:
$ apt-get install python-dev
$ apt-get install libcdio-dev
$ apt-get install libiso9660-dev
$ apt-get install swig pkg-config
$ pip install -e .
$ make check
Bei pip install -e kommt die Meldung:
Directory '.' is not installable. File 'setup.py' not found
Infolgedessen funktioniert auch make check nicht.
P.S. Ich habe die Frage im Raspberry Forum ebenfalls gestellt, weil ich ich mittlerweile fest gestellt habe, dass mein Problem nicht unbedingt ein Python Problem ist, sondern eher Raspberry und Debian (Raspian) betrifft. Tut mir leid. Ich bleibe dem Python Forum treu und falls es eine Interessante Antwort im andern Forum gebe, werde ich diese hier posten.
- __blackjack__
- User
- Beiträge: 14045
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@ChristophS: Im Verzeichnis mit den Quelltexten gibt es aber eine ``setup.py``. Bist Du nicht im richtigen Verzeichnis oder musst Du die ``setup.py`` die dort liegt eventuell ausführbar machen‽
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Warum jetzt den Umstand mit tar-Paketen und nicht einfach, wie schon von imonbln empfohlen, den Paketmanager nutzen und python3-cdio [vermutlich ist das das richtige Paket]?ChristophS hat geschrieben: Sonntag 13. August 2023, 13:23 Ich habe viel dazu gelernt. Mittlerweile kann ich tar Objekte installieren.
imonbln hat geschrieben: Samstag 12. August 2023, 09:00 Aber davon würde ich dir abraten, denn zum einen installierst du da mit dinge am Paketmanager vorbei und zum anderen ist das nicht nötig, da du mit "apt-get install libcdio-dev" auch gleich die libcidio mit installiert wird.
_______________________________________________________________________________
https://www.python-kurs.eu/index.php
https://learnxinyminutes.com/docs/python/ https://learnxinyminutes.com/docs/de-de/python-de/
https://quickref.me/python https://docs.python-guide.org/
Würde ich auch vorschlagen, folgendes liefert mir ( auf einem Raspberry 4b mit Debian Bullseye )grubenfox hat geschrieben: Sonntag 13. August 2023, 16:33 Warum jetzt den Umstand mit tar-Paketen und nicht einfach, wie schon von imonbln empfohlen, den Paketmanager nutzen und python3-cdio [vermutlich ist das das richtige Paket]?
Code: Alles auswählen
sudo apt-get install python3-cdio
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Die folgenden zusätzlichen Pakete werden installiert:
libiso9660-11
Die folgenden NEUEN Pakete werden installiert:
libiso9660-11 python3-cdio
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 228 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 544 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]

-
- User
- Beiträge: 52
- Registriert: Montag 7. August 2017, 12:52
Vielen Dank für Eure Hilfe.
Am ende lag es daran, dass ich die Falsche Bibliothek importierte (cdio statt python3-cdio)
Am ende lag es daran, dass ich die Falsche Bibliothek importierte (cdio statt python3-cdio)