Töne erzeugen durch direktes Ansprechen der Soundkarte...
-
Hallo,
ich bin relativ neu in der Programmierwelt und befasse mich mit C/C++ seit ca. einem halben Jahr intensiv.Mich würde interessieren wie man einen Ton ausgibt, aber durch direktes Ansprechen der entsprechenden Register in der Soundkarte, bzw. des Motherboard-Lautsprechers...
Der Befehl "Beep" macht schließlich auch nichts anderes, mich interessiert aber was genau dahinter alles so steckt... würde mich freuen wenn jemand ein Codebeispiel postet.
Gruß,
Thomas
-
"Wissen was dahinter steckt" ist eine Sache, es anwenden eine andere...
Ich nehme an, du arbeitest mit WinNT5+ (also WinXP oder neueres)?
Da kannst/solltest du das direkte Rumspielen an irgendwelcher Hardware erstmal wieder abschreiben. Sowas kannst du in DOS machen, oder wenn du einen Hass auf Microsoft hast auch in Win9x, sonst wird das auf Ebene normaler Anwendungen nichts.
Beep zB. macht in Windows selbst nichts an der Hardware, sondern sagt dem OS, dass es mal machen soll.Vor diesem Hintergrund, wuerde ich dir dringend raten, wenn du wirklich Interesse an Soundausgabe via Hardware hast, dich auf den PC-speaker zu beschraenken, weil der im Gegensatz zum wilden Durcheinander an Soundkarten noch standardisiert ist. Infos zum Programmieren der Hardware gibt's zB. auch in der Assembler-FAQ/OS-Dev.
-
Danke für deine Anwort.
Ja ich arbeite unter Windows.Soundausgabe via PC-speaker würde mir auch schon genügen, das ganze brauche ich für ein Schulprojekt "Hardware". Wie gesagt ich will direkt mit C++ Code etwas ausgeben... könnt ihr mir weiterhelfen, bzw. wo gibt's konkretes Material...
Vielen Dank!
Grüße,
Thomas
-
Schau in den Quelltext von ReactOS.
-
Wie gesagt: In der Assembler-FAQ stoebern (ist aber eher theoretisch, bzw. Assembler), oder zB. von meiner HP die PCGPE 10 runterladen -> PIT.txt
Das enthaelt allerdings auch keinen C++-Code, sondern Pascal.
Google wird mit Sicherheit sonst auch noch einiges ausspucken.Ich merke allerdings nochmal an, dass ein Windows-programm an sich keinen direkten Zugriff auf die Hardware hat. Dazu wirst also wohl ein DOS-Programm (nein, kein Win32-Konsolenprogramm - echtes DOS) schreiben muessen.
-
Dazu wirst also wohl ein DOS-Programm (nein, kein Win32-Konsolenprogramm - echtes DOS) schreiben muessen.
Geht doch auch per Treiber!?
-
Aeh, ja. Ich gehe einfach davon aus, dass er als "relativ neu in der Programmierwelt" nicht unbedingt darauf aus ist, sich mit dem MS Treiber-SDK das Hirn zu f.....
-
-
also kann ich nicht mit Hilfe von C oder C++ direkt in Register vom PC-Spekaer schreiben und damit ein Ton auslösen...??
Beachtet mal den Satz "Ich arbeite unter Windows" nicht...
konkreter c++/c Code wäre sehr nett, zur not auch Assembler...
Unter Google und etc. finde ich wirklich nichts, oder habt ihr was konkretes gefunden ?!
Vielen Dank soweit...
Thomas
-
Das mit dem ReactOS Code wäre eine gute Idee... Allerdings kann ich nach vielen Funktionen suchen, die nur in einer .def Dateien zum Export in einer DLL gefunden werden. Von einer Implementation nichts zu sehen, genauso auch bei Beep ().
-
mikey schrieb:
Das mit dem ReactOS Code wäre eine gute Idee... Allerdings kann ich nach vielen Funktionen suchen, die nur in einer .def Dateien zum Export in einer DLL gefunden werden. Von einer Implementation nichts zu sehen, genauso auch bei Beep ().
sagt mir gar nichts...?
kann mir keiner Helfen und konrketen Code posten wie ich direkt mit der HW sprechen kann...
-
sagt mir gar nichts...?
www.cpp-world.de -> News -> React OS - Eine Alternative zu Windows
-
Hya !
http://de.wikipedia.org/wiki/DirectX#Aufbau_von_DirectX
http://www.stud.fh-hannover.de/~heineman/blasterx/proginfo.htm
-
Heya !
http://www.nondot.org/sabre/os/articles/SoundDevices/C++ Classes for Digital SoundBlaster Audio:
http://www.nondot.org/sabre/os/files/Sound/SoundBlaster/SBPROG10.ZIP
-
Hast du dir meinen Link nicht angeschaut? Mit dieser Library/Treiber sollte es gehen.