Discussion:
Linuxrechner als Musikserver mit mehreren USB-Soundkarten?
(zu alt für eine Antwort)
Edzard Egberts
2009-12-07 17:57:38 UTC
Permalink
Hallo,

für eine Musikauswahl soll ein Linux-Rechner (Hardware und Distribution
kann ich frei wählen) mehrere Streams ausgeben, also z.B. MP3 und
Internet-Radio. Wenn ich jetzt mehrere USB-Soundkarten habe, wie
schwierig ist es, für jede Soundkarte einen separaten Stream zu starten?
Wo ist die Grenze, 2, 3, 4 externe Soundkarten? Wenn das Streaming
anschlägt?

Geht das vielleicht sogar mit "Bordmitteln", oder muss ich zur C++-Keule
greifen - ich habe da gerade die libSDL im Auge?

Zu ALSA habe ich bei http://wiki.ubuntuusers.de/Soundsystem gerade den
folgenden Text gefunden und auch schon das alsa-project.org:

"Bei ALSA wird direkt auf Hardware-Ebene (hw) die erste Soundkarte
(Nummer Null) angesprochen, z. B. "hw:0". Hat man mehrere Soundkarten so
lässt sich die zweite mit "hw:1" ansprechen. Dies benötigt man aber selten."
Pulseaudio Manager und Mixer habe ich auch...

Mich erschlägt mal wieder die schiere Menge - wo anfangen?

Wäre ja blöd, wenn ich mich in irgend eine Library einarbeite und mein
Problem z.B. gelöst werden kann, indem ich beim Programmaufruf des
Players ein Device umleite und dann eben mehrere Player aufrufe.

Danke für Feedback,

Ed
Bernd Hohmann
2009-12-07 18:17:27 UTC
Permalink
Post by Edzard Egberts
für eine Musikauswahl soll ein Linux-Rechner (Hardware und Distribution
kann ich frei wählen) mehrere Streams ausgeben, also z.B. MP3 und
Internet-Radio. Wenn ich jetzt mehrere USB-Soundkarten habe, wie
schwierig ist es, für jede Soundkarte einen separaten Stream zu starten?
Wenn ich das vereinfache, habe ich es dann noch richtig verstanden?

Du möchtest also gleichzeitig "rollingstones.mp3" auf Lautsprecherpaar
1, "mozart.mp3" auf Lautsprecherpaar 2 und "kindermärchen.mp3" auf
Lautsprecherpaar 3 ausgeben?

Sollte mit ALSA problemlos gehen: alle USB-Soundkarten rein und hoffen,
dass sie spätestens nach einem Reboot alle erkannt werden.

zb mit "aplay --list-devices" auflisten lassen.

Da kommt was mit "Karte 0: ... Gerät 0", "Karte 1: ... Gerät 0"

Und dann

mplayer rollingstones.mp3 --ao alsa:device=hw=0.0
mplayer mozart.mp3 --ao alsa:device=hw=1.0
mplayer kindermärchen.mp3 --ao alsa:device=hw=2.0

(nagel mich da aber nicht fest, was bei "hw" wo ist, sollte aber stimmen).

Bernd
--
Visit http://www.nixwill.de and http://www.spammichvoll.de
***@nixwill.de & ***@spammichvoll.de
Amok
2009-12-07 18:44:54 UTC
Permalink
Post by Bernd Hohmann
Du möchtest also gleichzeitig "rollingstones.mp3" auf Lautsprecherpaar
1, "mozart.mp3" auf Lautsprecherpaar 2 und "kindermärchen.mp3" auf
Lautsprecherpaar 3 ausgeben?
Die Betonung liegt auf "Sollte".
Daniel Seuthe
2009-12-07 19:07:27 UTC
Permalink
Post by Amok
Post by Bernd Hohmann
Du möchtest also gleichzeitig "rollingstones.mp3" auf Lautsprecherpaar
1, "mozart.mp3" auf Lautsprecherpaar 2 und "kindermärchen.mp3" auf
Lautsprecherpaar 3 ausgeben?
Die Betonung liegt auf "Sollte".
Geht ja auch. Eine Zeit lang habe ich immer wahlweise den Ton über den
SPDIF-Ausgang oder/und den Mehrkanalausgang einer Soundkarte
geschickt. Entscheidend ist da ja nur die Wahl des ALSA-Devices.
Selbst vier Kanäle lassen sich in zwei Stereokanäle aufteilen und
getrennt benutzen.

Unter Pulse Audio verwende ich eine ähnliche Konfiguration nur halt
mit zwei Senken (einmal Digital, einmal Analog).

Daniel
--
http://seuthe.org
Michael Limburg
2009-12-07 23:37:58 UTC
Permalink
Post by Bernd Hohmann
z.B. MP3 und Internet-Radio. Wenn ich jetzt mehrere USB-Soundkarten
habe, wie schwierig ist es, für jede Soundkarte einen separaten
Stream zu starten?
Sollte mit ALSA problemlos gehen: alle USB-Soundkarten rein und
hoffen, dass sie spätestens nach einem Reboot alle erkannt werden.
Zumindest mit PCI-Karten lief es annähernd einfach. Bei USB-Soundkarten
sei allerdings bedacht, daß sich diese die Resource USB bei Bandbreite
und Stromversorgung teilen, auch mit allen Geräten, die sonst noch an
diesem Bus hängen.

Michael
Edzard Egberts
2009-12-08 08:56:37 UTC
Permalink
Post by Michael Limburg
Zumindest mit PCI-Karten lief es annähernd einfach. Bei USB-Soundkarten
sei allerdings bedacht, daß sich diese die Resource USB bei Bandbreite
und Stromversorgung teilen, auch mit allen Geräten, die sonst noch an
diesem Bus hängen.
Stimmt, da muss ich mal ausprobieren, wann es eng wird mit der
Bandbreite. Notfalls werden eben PCI-Karten genommen - Hauptsache, es
läuft irgendwie und da bin ich schon sehr optimistisch! :o)
Bernd Hohmann
2009-12-08 09:33:16 UTC
Permalink
Post by Michael Limburg
Zumindest mit PCI-Karten lief es annähernd einfach. Bei USB-Soundkarten
sei allerdings bedacht, daß sich diese die Resource USB bei Bandbreite
und Stromversorgung teilen, auch mit allen Geräten, die sonst noch an
diesem Bus hängen.
Das gilt aber pro USB Root-Hub, dh. jeder weitere Root-Hub kann soviele
Soundkarten aufnehmen bis er wieder dicht ist. Begrenzt wird das dann in
der Summe von dem, was der PCI(e)-Bus anschaufeln kann.

Ich bin da nicht so der Experte und aus dem Kopf: Die PCM-Daten müssten
mit 128kBit per Kanal an die USB-Soundkarte durchgereicht werden, also
256kBit für ein Stereosignal. Grosszügiger Protokolloverhead dazu wäre
300kBit. USB 2.0 kann 480MBit, also hinreichend Luft.

Leider hab ich nirgends irgendwas über den Stromverbrauch einer USB
Soundkarte gelesen, es ist durchaus möglich dass erst die
Stromversorgung in die Knie geht ehe die USB2.0 Bandbreite ausgeschöpft
ist (aber da kann man mit einem aktiven USB-Hub weitermachen).

Ansonsten halt 4er PCI Root Hubs ins Gehäuse schrauben und gut ist.

Bernd
--
Visit http://www.nixwill.de and http://www.spammichvoll.de
***@nixwill.de & ***@spammichvoll.de
Daniel Seuthe
2009-12-08 12:35:28 UTC
Permalink
Post by Bernd Hohmann
Post by Michael Limburg
Zumindest mit PCI-Karten lief es annähernd einfach. Bei USB-Soundkarten
sei allerdings bedacht, daß sich diese die Resource USB bei Bandbreite
und Stromversorgung teilen, auch mit allen Geräten, die sonst noch an
diesem Bus hängen.
Ich bin da nicht so der Experte und aus dem Kopf: Die PCM-Daten müssten
mit 128kBit per Kanal an die USB-Soundkarte durchgereicht werden, also
PCM benötigt schon ein bißchen mehr Bandbreite (ca. 1,5 MBit). Es wird
ja intern nicht als MP3 an die Soundkarte geschickt.
Post by Bernd Hohmann
Leider hab ich nirgends irgendwas über den Stromverbrauch einer USB
Soundkarte gelesen, es ist durchaus möglich dass erst die
Stromversorgung in die Knie geht ehe die USB2.0 Bandbreite ausgeschöpft
ist (aber da kann man mit einem aktiven USB-Hub weitermachen).
Ich habe eine recht aufwendige USB-Lösung von Creative, welche über
ein externes Netzteil verfügt. Der Stromverbrauch über USB ist da
egal.

Daniel
--
http://seuthe.org
Edzard Egberts
2009-12-08 08:45:30 UTC
Permalink
Post by Bernd Hohmann
Du möchtest also gleichzeitig "rollingstones.mp3" auf Lautsprecherpaar
1, "mozart.mp3" auf Lautsprecherpaar 2 und "kindermärchen.mp3" auf
Lautsprecherpaar 3 ausgeben?
Nicht ganz, an jedem Lautsprecherpaar ist ein "Drehschalter", mit dem
der Zuhörer aus den Sparten "rollingstones", "mozart" und
"kindermärchen" wählen kann.
Post by Bernd Hohmann
Da kommt was mit "Karte 0: ... Gerät 0", "Karte 1: ... Gerät 0"
Stimmt.
Post by Bernd Hohmann
mplayer rollingstones.mp3 --ao alsa:device=hw=0.0
mplayer mozart.mp3 --ao alsa:device=hw=1.0
mplayer kindermärchen.mp3 --ao alsa:device=hw=2.0
Cool, klappt!

Danke, das hilft mir richtig weiter!
Manfred Schenk
2009-12-08 09:03:22 UTC
Permalink
Post by Edzard Egberts
Post by Bernd Hohmann
Du möchtest also gleichzeitig "rollingstones.mp3" auf Lautsprecherpaar
1, "mozart.mp3" auf Lautsprecherpaar 2 und "kindermärchen.mp3" auf
Lautsprecherpaar 3 ausgeben?
Nicht ganz, an jedem Lautsprecherpaar ist ein "Drehschalter", mit dem
der Zuhörer aus den Sparten "rollingstones", "mozart" und
"kindermärchen" wählen kann.
Baust du gerade das Musikprogramm in den alten ICEs der Bahn nach?

Ansonsten kann ich nur bestätigen was die anderen gesagt haben: prinzipiell
unterstützen die Player in Kombination mit dem entsprechenden "Soundsystem"
(ALSA, ...) mehrere Soundkarten pro Rechner und das auch gleichzeitig.
Allerdings ist z.B. bei USB zu beachten dass dann evtl. der Bus zum Engpass
wird wenn alle Soundkarten über den selben Bus versorgt werden.

cu,
Manfred
--
| Manfred Schenk | born between RFC638 and RFC640
| PGP-Keys unter |
| http://www.ZEROByte.de/pgp/ | WWW: http://www.ZEROByte.de/
Edzard Egberts
2009-12-08 15:35:42 UTC
Permalink
Post by Manfred Schenk
Post by Edzard Egberts
Nicht ganz, an jedem Lautsprecherpaar ist ein "Drehschalter", mit dem
der Zuhörer aus den Sparten "rollingstones", "mozart" und
"kindermärchen" wählen kann.
Baust du gerade das Musikprogramm in den alten ICEs der Bahn nach?
Nicht bewusst, aber ich habe tatsächlich einen Nachbauauftrag bekommen,
der ein automatisches Musikprogramm einschließt. Das einzige Problem an
der Sache ist jetzt gelöst...
Post by Manfred Schenk
Ansonsten kann ich nur bestätigen was die anderen gesagt haben: prinzipiell
unterstützen die Player in Kombination mit dem entsprechenden "Soundsystem"
(ALSA, ...) mehrere Soundkarten pro Rechner und das auch gleichzeitig.
Allerdings ist z.B. bei USB zu beachten dass dann evtl. der Bus zum Engpass
wird wenn alle Soundkarten über den selben Bus versorgt werden.
Ich habe den Vorteil, dass das nicht auf irgendeiner Hardware laufen
muss, sondern ich die passende Hardware nehmen kann, bis zur Auswahl des
Motherboards. Damit bin ich mir sehr sicher, dass ich das Ding zum
Laufen kriege. :o)

Noch mal Danke an alle,

Ed
Edzard Egberts
2010-01-14 11:29:56 UTC
Permalink
Ähm!

Nach Abschluß meiner Experimente und Entfernen der USB-Soundkarte habe
ich zwei Lautstärkeregler in der Taskleiste der GNOME-Oberfläche, die
sich gegenseitig beeinflussen. Das finde ich ziemlich lästig und würde
gerne einen davon entfernen.
Der eine gehört zu "GMixer - HDA Intel (Alsa mixer) und der andere
gehört zu "Internes Audio Analog Stereo" und ich verstehe nicht so
recht, wie die zusammen hängen und wo die herkommen - kann mir da jemand
auf die Sprünge helfen und einen Tipp geben? Oder einfach sagen, wie ich
einen Regler los werde - dazu muss ich vielleicht nicht gleich das
gesamte Soundsystem von Linux verstehen lernen?

Gruß,

Ed

Loading...