Hallo, ich wollte fragen ob es möglich ist an dem Druckerport lpt1 einen dac anzuschließen was ja möglich ist aber dann mit 8 bit über die echte soundkarte im mono was aufnehmen und über den Druckerport abzuspielen also ich muss mit c++ irgendwie ein Programm schreiben. Also ist es überhaupt möglich??
Ja, ist es. Aber nicht unter einem aktuellen Betriebssystem, da da der erforderliche direkte Hardwarezugriff problematisch ist und -noch kritischer- das wichtige exakte Timing ("Samplerate") nicht einzuhalten ist. Theoretisch kannst Du das ganze auch ohne Programm machen: Einfach 'ne Binärdatei mit copy datei.wav /b lpt1: ausgeben. Damit das funktioniert, müssen einige Handshakeleitungen auf den korrekten Pegel gelegt werden - und die "Samplerate" dürfte ziemlich hoch sein. (Die .wav-Datei sollte 8-Bit-Mono-Format haben; am Anfang stört kurzzeitig der Dateiheader)
Früher gab es verschiede Soundkarten am Parallelport, die aber auch wegen der hohen CPU-Last ausgestorben sind. Man kann mit harte Echtzeit, z. B. Linux +RTAI, bis zu 400 kHz Sample-Frequenz stabil erreichen, aber mit einer gewöhnlichen PCI-Soundkarte kann man besseren Sound ausgeben. Übrigens hat der Parallelport 12 Ausgänge; man kann mono 12-Bit-Sound ausgeben.
Aber sicher geht das: http://www.radiolocman.com/electrical-engineering/circuit-cache.html?di=81 Die beiden Schaltungen hab ich in grauer Vorzeit, vor meiner ersten Adlib-Soundkarte, im Einsatz gehabt. Jeder gute MOD-Player unter DOS konnte den Sound über den "Centronics-Port" ausgeben. Für damalige Zeiten hat das nicht mal schlecht geklungen. Teste aber erst mal mit der Wiederstandsschaltung. Der Aufbau mit D/A-Wandler lohnt sich nicht wirklich. Ich habe jedenfalls keinen Unterschied im Klang feststellen können. Toni
. "unter DOS" Das ist der Knackpunkt. DOS ist kein Betriebssytem, so kann jedes Programm selbst wild in der Hardware herumfuhrwerken und beispielsweise den Timerinterrupt umbiegen und die Timerrate an die gewünschte Samplerate anpassen. Unter einem Betriebssystem geht das aber nicht.
Mit Linux geht das ganz easy, auch ohne device driver. Musst dem Programm nur root Rechte geben und kannst direkt den LPT port ansprechen.
Das Ansprechen des Parallelports ist auch nicht das große Problem; das bekommt man dank Perversionen wie giveio.sys auch unter ernstgemeinten Windows-Versionen hin. Alternativ kann man auch einen besseren Devicetreiber dafür verwenden. Was aber nicht drin ist (und das dürfte auch unter Linux nicht drin sein), ist das Umbiegen des Timerinterrupts auf eigenen Code sowie das Umprogrammieren des Timers. Ohne das gibt es keine Kontrolle über die Abspielgeschwindigkeit der Audiodaten.
Unter Linux +RTAI wird ein Timer-Interrupt für die harte Echtzeit benutzt; anders geht es auch gar nicht. Man hat dann nur das Problem der schwankenden Interruptlatenzzeit, aber bei 400 kHz ist das nicht hörbar.
Unter Windows 3.1 und noch Win95 gabs einen Treiber, der konnte mit dem eingebauten Piepser Über Pulsbreitenmodulation Töne ausgeben, auch wav-Daten. Hat damals allerdings das Windows meines 386SX mit 33MHz Takt gewaltig ausgebremst, die Maus ruckelte nur noch über den Schirm. Besonders ärgerlich war das tönende Intro der t-online-Software, ein modifizierter Netscape-Browser... 73 Christoph
Ja, das kenne ich auch, aber das hat nicht bei jedem PC funktioniert. Auf einigen hatte man relativ guten Sound, den man gut zum Musik abspielen nutzen konnte und auf anderen war nicht viel davon zu erkennen, weil der Sound mieserabel war.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.