1. Internetradio
2. CD-Spieler
Das Internetradio habe ich mit VLC realisiert. Läuft wunderbar, mit einer spartanischen Oberfläche.
Zuerst wollte ich den CD-Player auch mit VLC realisieren, bin aber an den fehlenden, bzw. nicht gefundenen, Statusmeldungen gescheitert. Ich fand auch keinen Weg die Infos über die CD auszulesen und habe mir die mit dem UNIX-Befehl cdparanoia -Q selbst erstellt. Ich fand keinen Weg sowohl die ganze CD abzuspielen – als auch beliebige Titel auszuwählen. Ich konnte nur entweder das eine oder das andere realisieren. Also frustriert aufgegeben und einen anderen Player gesucht.
Deswegen wollte ich nun mit PyGame meine Audio-CD-Sammlung auf dem Raspberry Pi4 mit Python3 abzuspielen.
Ich fand hier im Forum eine Lösung von ‚‘ Bueroklammer_xy‘ vom 28 Juli 2018 (CD auslesen und abspielen) die unter Windows einwandfrei funktioniert, allerdings nicht auf meinem RaspBerry Pi. Die CD wird gesteuert, jedoch kommt keine Musik vom Lautsprecher. Zur Verdeutlichung ein einfaches Beispiel.
Funktioniert unter Windows 10 über die Python-Befehlszeile und in PyCharm:
from pygame import cdrom
import pygame
import time
pygame.init()
cdrom.init()
cdrom.CD(0).init()
i = 0
while i == 0:
cdrom.CD(0).play(5)
time.sleep(10)
i = 1
cdrom.CD(0).stop()
Auf meinem RaspBerry Pi 4 läuft das Programm ohne Fehler, gibt jedoch keinen Ton aus.
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> #!/usr/bin/python3
... import pygame
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
>>> from pygame import *
>>> from pygame import cdrom
>>> import time
>>>
>>> pygame.init()
(6, 0)
>>> cdrom.init()
>>> cdrom.CD(0).init()
>>>
>>> i = 0
>>> while i == 0:
... print('cdrom bussy, but I hear no music')
... cdrom.CD(0).play(5)
... time.sleep(20)
... i = 1
... cdrom.CD(0).stop()
... print("no idea what's went wrong

Das CD-Laufwerk beginnt zu arbeiten, aber es kommt kein Ton.
Ich gebe den Ton über die analogen Buchse aus.
Spiele ich dieselbe CD mit VLC ab, wird der Ton ausgegeben.
Folgende Tests zeigen keine Fehler:
pi@raspberrypi:~ $ speaker-test -t wav -c 2
speaker-test 1.1.8
Playback device is default
Stream parameters are 48000 Hz, S16_LE, 2 channels
WAV file (s)
Rate is 48000 Hz (requested: 48000 Hz)
Buffer size from 480 to 32768
Period size from 480 to 32768
Use maximum buffer size 32768
Periods = 4
set: period_size = 8192
set: buffer_size = 32768
0 - Front left
1 - Front right
pi@raspberrypi:~ $ omxplayer /home/pi/test.wav
Audio codec pcm_u8 channels 1 samplerate 11025 bitspersample 8
Subtitle count: 0, state: off, index: 1, delay: 0
have a nice day

pi@raspberrypi:~ $ omxplayer /home/pi/song1.mp3
Audio codec mp3float channels 2 samplerate 44100 bitspersample 16
Subtitle count: 0, state: off, index: 1, delay: 0
have a nice day

Der Raspberry hat offensichtlich keine Probleme mit wav/mp3 der VLC hat keine mit PCM von der CD.
Spiele ich die CD mit VLC ab und öffne parallel ```alsamixer```, kann ich die Lautstärke steuern.
Meine Vermutungen/Befürchtungen:
1. Das Problem liegt zwischen meinen Ohren.
2. Ich muss für PyGame irgend etwas am RaspBerry Pi einstellen.
3. PyGame kann keine Musik über ALSA wiedergeben. Ich meine nicht Sound oder MIDI.
4. PyCharm kann keine CD-Musik-Daten verarbeiten.
Ich bin mit meinem Latein am Ende und hoffe auf Hilfe aus dem Forum..