Forum: PC Hard- und Software Programmierung der PC Soundkarte


von Stephan (Gast)


Lesenswert?

Hallo,
ich habe schon ne ganze Weile überall gesucht und bin nicht so richtig 
fündig geworden. Also was ich möchte ist, eine im PC eingebaute 
Soundkarte anzusteuern. Am ehesten in einem C Programm. Natürlich gibt 
es in fast jeder Programmiersprache Pakete, um z.B. Wave Dateien 
abzuspielen. Aber das ist nicht das was ich will. Die Abarbeitung soll 
quasi in Echtzeit laufen. So wie man dieses von einem Mikrocontroller 
kommst. Man bekommt alle x Samples automatisch einen Funktionsaufruf, 
der es gestattet, neue Daten an die Soundkarte zu übergeben.
Ich hoffe ich konnte man Bedürfnis klar machen. Hat jemand eine Lösung 
dafür? Vielen Dank...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Betriebssystem?

von Stephan (Gast)


Lesenswert?

ich wollte so lange wie möglich unabhängig bleiben. Wenn es eine Lösung 
für Windows oder Linux gibt, reicht mir das. Ich bin in diesem Falle 
sehr flexibel, da auf dem entsprechenden Rechner beiden gut läuft. Daher 
würde ich die Möglichkeiten durch Festlegung auf ein bestimmtes 
Betriebsystem nicht einschränken wollen.
Vielen Dank...

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Es gibt ein Buch mit Begleit-CD mit einer Studentenversion der Software 
DASYLab (Version 7), die die Soundkarte und die serielle Schnittstelle
mit grafischer Programmierung ähnlich Labview ansteuert:
http://www.amazon.de/Signale-Prozesse-Systeme-Ulrich-Karrenberg/dp/3540241787/sr=8-6/qid=1169111026/ref=sr_1_6/303-1342481-6991418?ie=UTF8&s=books

und ein Programm mit Erweiterungsschnittstelle oder so ähnlich. auch für 
Soundkarte:
http://www.qsl.net/dl4yhf/speclab/index.htm

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Unter Windows ist das kein besonderes Problem; die Multimediafunktionen 
eignen sich dafür ganz gut. Und funktionieren daher mit jeder beliebigen 
Soundkarte (so sie denn Waveform-Audio wiedergeben kann).

waveOutOpen öffnet ein Waveform-Audio-Device (sprich: Deine Soundkarte)

Mit dem letzten Parameter kann spezifiziert werden, wie die 
Datenübergabe stattfindet - CALLBACK_EVENT signalisiert ein Event, wenn 
neue Daten benötigt werden. Auf dieses Event kannst Du in einem Thread 
warten und dann per waveOutWrite einen Block mit Daten absetzen.

Mit waveOutPrepareHeader bereitest Du Daten für das gewünschte Format 
vor; das ist vor dem Schreiben mit waveOutWrite erforderlich.


(Alle genannten Funktionen gehören zur Win32-API und sind in mmsystem.h 
deklariert)

von Stephan (Gast)


Lesenswert?

das klingt nicht schlecht. Werde mir das mal anschauen. Gibt es eine 
Möglichkeit, es universell zu getalten? So dass es bei Bedarf portierbar 
ist? Ich denke da an irgendeine Header oder sowas. Habe da nicht so viel 
Anhnung, ihr merkt das sicherlich schon...

von Gast2 (Gast)


Lesenswert?

SDL vielleicht

Ansonsten bietet sich je nach Anwendung vielleicht Octave oder Scilab 
an...

von SiO2 (Gast)


Lesenswert?

Kann man unter Linux ne Wave nicht direkt an die soundkarte schicken? 
Wenn ja, brauchst du nur das device zu öffnen und die wave reinschreiben 
(alles ist eine datei ;) ).

von Andreas Weschenfelder (Gast)


Lesenswert?

Delphi + TAudio

- puffer für eingang und ausgang (zahl einstellbar)
- Interrupt bei Leerlauf (Ausgangspuffer)/Volllaufen (Eingangspuffer)

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
Noch kein Account? Hier anmelden.