29.08.2013, 12:15
Hallo,
mein Programm soll zwei csv-Dateien einlesen und diese über den Lautsprecher ausgeben können.
Ich habe zwei Producer-Schleifen, in der jeweils eine State-Machine läuft, die die Dateien einliest und in eine Queue schiebt.
In einer Consumer-Schleife wird der Inhalt der beiden Queues überlagert und in eine weitere Queue geschoben. Die zweite Consumer-Schleife entnimmt dann die Überlagerten Queue-Elemente und gibt sie an die Soundkarte ab.
Man kann beide Soundinputs hinzuschalten und abschalten. Sobald ein zweiter Soundinput aktiviert wird, ist dieser sehr verzögert zu hören, obwohl Queue-Größe des Überlagerns gleich 1. Damit müsste doch eigentlich gewährleistet werden, dass spätestens bei der nächsten Iteration in der Queue sich das Element befindet, wo beide Inputs überlagert worden sind.
Das Aktivieren und Deaktivieren des Inputs (wenn nur eins aktiv ist) verläuft ja sehr zeitnah. Um genau zu sein um eine Queue-Element. Nur hapert es halt, wenn zwei Inputs aktiv sind.
Ich hoffe ihr könnt mein Problem nachvollziehen. Nimmt am besten Advent.csv (liegt im Ordner "Other Files") als Input 1 und schaltet White Noise.csv als Input 2 hinzu.
Vielen Grüße,
YYYs
mein Programm soll zwei csv-Dateien einlesen und diese über den Lautsprecher ausgeben können.
Ich habe zwei Producer-Schleifen, in der jeweils eine State-Machine läuft, die die Dateien einliest und in eine Queue schiebt.
In einer Consumer-Schleife wird der Inhalt der beiden Queues überlagert und in eine weitere Queue geschoben. Die zweite Consumer-Schleife entnimmt dann die Überlagerten Queue-Elemente und gibt sie an die Soundkarte ab.
Man kann beide Soundinputs hinzuschalten und abschalten. Sobald ein zweiter Soundinput aktiviert wird, ist dieser sehr verzögert zu hören, obwohl Queue-Größe des Überlagerns gleich 1. Damit müsste doch eigentlich gewährleistet werden, dass spätestens bei der nächsten Iteration in der Queue sich das Element befindet, wo beide Inputs überlagert worden sind.
Das Aktivieren und Deaktivieren des Inputs (wenn nur eins aktiv ist) verläuft ja sehr zeitnah. Um genau zu sein um eine Queue-Element. Nur hapert es halt, wenn zwei Inputs aktiv sind.
Ich hoffe ihr könnt mein Problem nachvollziehen. Nimmt am besten Advent.csv (liegt im Ordner "Other Files") als Input 1 und schaltet White Noise.csv als Input 2 hinzu.
Vielen Grüße,
YYYs