Kann man die CPU theoretisch als Soundkarte nutzen?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Genau das macht ein PC ja.

Daten werden von der CPU aus einer Datei gelesen, ggf umgewandelt (z.B. bei MP3 oder anderer Kompression) und dann auf ein Ausgabegerät gegeben. Das Ausgabegerät kann eine Soundkarte direkt im PCIe Bus sein, eine USB Soundkarte oder USB Kopfhörer oder ein Bluetoothgerät.

Interessant wird es beim Raspberry Pi. Hier ist ein PWM Generator in der CPU eingebaut. Man gibt den einen Wert und der wird dann in eine Pulsfolge umgewandelt deren Einschalt zu Ausschaltverhältnis diesem Wert entspricht. Mit einem Kondensator kann man diese Pulse in eine Spannung umwandeln. So werden dann die Zahlen die man in der CPU in ein bestimmtes Register schreibt zu einer Spannung an der der Audioausgang angeschlossen ist. Die CPU treibt also über einen kleinen Verstärker direkt den Lautsprecher an.

Der Raspberry macht also den Ton direkt mit der CPU mit einem in der CPU eingebautem PWM Generator der eigentlich dazu gedacht ist z.B. die Leistung eines Motors einzustellen oder eine LED zu dimmen.

Der Atari 2600, also die allererste Massen Spielekonsole schaltet über ein Ein-/Ausgaberegister einfach nur 5V ein und aus um Töne zu erzeugen. Damit kann man nur Piepstöne,a lso Rechtecksignale erzeugen. Die Software muss die Leitung also selber passend schalten.

Noch interessanter ist der ALtair 8800, der allererste Seriengefertigte Homecomputer. Der hat gar keinen Ton, man kann damit aber Musik machen. Da gibt es zwei Wege:

Jemand hat bemerkt, dass sein Altair 8800 ein Mittelwellenradio stört. Die LEDs die den Zustand der Adress und Datenleitungen des Prozessors anzeigen erzeugen beim umschalten Störimpulse. Schalten die schnell genug, senden die ein Radiosignal auf vielen verschiedenen Freuqenzen. Stellt man ein Mittelwellenradio direkt auf den Altair 8800 drauf und lässt eine Software die Adressen in der CPU in einem Muster schnell durchlaufen, macht das Radio Piepsöne. Durch geschickte Programmierung spielt der Altair dann ganz ohne Audio Hardware Musik auf einem Radio ab.

Auch hatte man schnell erkannt, dass eine bestimmte Statusleitung des Prozessors mit der Software gesteuert werden kann frei programmierbar ist und man da einen Lautsprecher anschließen kann. Schaltet die Software dann diese Leitung schnell in einem bestimmten Muster, entsteht Musik wie beim Atari 2600.

Im Film "Wargames" hat der Junge einen Altair 8800. Da schleißt der einen sogenannten "Vocoder" an für seine Freundin. Das ist ein Spezialchip der numerische Zahlen in einzelne Sprachlaute umwandeln kann und bei geschickter Ansteuerung dann relativ gut verständliche Sprache erzeugen kann. So kann der dann mit einem speziellen Programm Text in gesprochene Worte umwandeln. Erfunden wurde das damals für Telefonsysteme die jemanden Anrufen können um z.B. eine Alarmmeldung durch zu geben. In den USA war das dann auch weit verbreitet bei Bibliotheken wo der Computer dann die Kunden anrief und daran erinnerte, dass die geliehenen Bücher überfällig sind.

Woher ich das weiß:Berufserfahrung
 den Ton einfach über die CPU verarbeiten zu lassen und dann über USB ausgeben zu lassen?

Die CPU kann an die USB-Schnittstelle und ein daran angeschlossenes Gerät durchaus die Information übertragen, einen Ton mit vorgegebener Frequenz in vorgegebener Länge zu erzeugen. Viel mehr macht die CPU nicht. Und das war schon seit den Anfängen der PCs so. Die CPU bestimmt die Tonlänge und -höhe, der Soundchip (auch schon bei Boards für Intels 8086/8088 vorhanden) hat den Ton dann erzeugt.
Damals war das allerdings gerade mal für die Signaltöne auf dem PC-Buzzer bzw. zur Datenspeicherung auf Magnetbändern vorgesehen. Mehr als einstimmiges Audio gab es damals nicht.


KolnFC  17.07.2023, 07:59

Wenn der Sound über USB übertragen wird, wird er auf dem Endgerät gewandelt, nicht der CPU. USB ist digital, Einsen und Nullen, ein Soundchip erstellt daraus eine Amplitude (DA Wandler) und verstärkt diese (amplifier), sie bringt dann die Mebranen von Kopfhörern/ Lautsprechern (letztere müssen nochmal verstärkt werden) über eine Spule in Schwingung.

0

Hallo,

die CPU übernimmt hier ja schon die meiste Arbeit.

ja das könnte man schon machen.

Und es würde auch gemacht,
wenn die Aufarbeitung nicht gar so umfangreich wäre.

Denn nicht umsonst, gibt es gute und weniger gute, digitale Soundchips.

Irgendwo muss das Signal ja verstärkt und wieder aufbereitet werden.
Dazu kommt noch der Digital-Analog-Wandler.
Da unsere Ohren ja auf analoge Luftschwingungen optimiert sind.

Und dann müsste man die CPUs erweitern.
Das macht sie langsamer, stromhungriger und teurer.

So wie die Grafik-Adapter in manchen CPUs.
Auch wurde der North-Bridge-Controller bereits in die CPUs verlegt.
Was halt dann zu den großen Kühllösungen führte.

Hansi

Die Berechnungen für den Sound, kann auch die CPU durchführen, aber um Sound auszugeben, ist sie nicht geeignet.


sintaxxing 
Fragesteller
 17.07.2023, 03:17

Ich weis das sie dafür nicht gebaut ist und das wahrscheinlich dazu führt, dass das ganze ineffizienter ist, aber könnte man sich nicht somit eine teure Soundkarte sparen, wenn man eine gute CPU hat?

0
SirSulas74  17.07.2023, 03:21
@sintaxxing

Kenne mich da nicht so wirklich aus, aber für Sound ist mehr nötig, als allein die Berechnung dessen. Das sind spezielle Schaltungen, die nur dafür gemacht sind.

0

In der Theorie ja, und ursprünglich war es wohl auch so, aber es war dann doch sinnvoller spezifische Funktionen auszulagern. Kann mich irren, aber D/A-Wandler hat eine CPU zB nicht integriert, auch wenn sie grundsätzlich Sound berechnen kann.