LabVIEWForum.de - Fragen zum ExampleFinder Beispiel "Simultaneous Sound IO"

LabVIEWForum.de

Normale Version: Fragen zum ExampleFinder Beispiel "Simultaneous Sound IO"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

"Simultaneous Sound IO.vi" funktioniert mit 2 Soundkarten problemlos....

Aber kann mir jemand erklären warum

1.) beim "Sound Input Read" vorher die Samples/ch halbiert werden? (Ohne diesem Trick lauft das Beispiel nach einem Durchlauf auf Grund, Einkanalig verwendet - also MONO). Also im Detail: das Ding erschießt sich ansonsten mit ERR 4823 und/oder ERR -4820, Fehlererläuterungen (für mich) auch nicht sehr hilfreich

2.) Wieso muss ich ein Sound Output Write mit Stille vorsetzen um (Zitat aus der üppigen Erläuterung) "Write some silence as an initial buffer to prevent underflow."

Eine Hilfe wäre sehr wertvoll

Danke

Gottfried
Also ich vermute stark folgendes:

Du hast im Allgemeinen das Problem, dass du die Aufnahme/Ausgabe auf kontinuierlich stellst. Das heißt, dass der Buffer dauernd mit der angegeben Samplerate gefüllt bzw. ausgegeben wird. Während deine Schleife nun durchläuft leer /füllt sich also derweil der Buffer. Brauchst du zu lange läuft der Buffer über / unter.

Das begründet beide Punkte:

- Das Programm liest immer nur den halben Buffer bei read aus, da sonst eventuell der Buffer des Write übervoll wird, wenn noch nicht alle Daten abgearbeitet sind, also noch was im Buffer steckt, du aber schon wieder Daten in Buffergröße nachlieferst.
- Es füllt vor der Schleife den Ausgabebuffer mit Daten, damit falls bevor zum ersten mal Daten geliefert werden schon die Ausgabe startet Daten vorhanden sind.

Durch diese zwei Sicherheitsmaßnahmen reagierst du also auf mögliche Schwankungen in der Schleifendurchlaufszeit.
Danke

Gottfried
Referenz-URLs