======Beispiel für kontinuierliche Audio-Verarbeitung====== Bei den Projekten, die die Umwandlung $$\mathrm{Audiosignal} \longrightarrow \mathrm{Daten} \longrightarrow \mathrm{Bildsignal}$$ oder umgekehrt $$\mathrm{Bildsignal} \longrightarrow \mathrm{Daten} \longrightarrow \mathrm{Audiosignal}$$ empfiehlt es sich, die Entwicklung in einzelnen Modulen durchzuführen, die an Beispielsignalen getestet werden. Später aber wird es interessant sein, in Echtzeit das von einem Mikrophon oder einer Kamera aufgezeichnete Signal solchen Umwandlungen zu unterziehen und wiederum in Echtzeit darau Bilder oder Töne zu machen. Dafür benötigt ihr über die Umwandlungsalgorithmen hinaus noch eine Infrastruktur, von der in der Einführung bisher nicht die Rede war. Deren Grundidee ist die parallele Durchführung von Prozessen. Ein Prozess kümmert sich darum, die jeweils neusten Daten des Mikrophons bzw der Kamera zu lesen, ein anderer kümmert sich um die Umwandlung und Darstellung des umgewandelten Signals. Ein Beispiel (eines 'Oszilloskops') will ich hier zwei Varianten vorstellen: - Variante: [[1. Variante Oszilloskop|Tonaufnahme in einem parallelen Prozess, graphische Darstellung in einer Schleife des Hauptprogramms]] - Variante: [[2. Variante Oszilloskop|Tonaufnahme in einem Prozess, graphische Darstellung in einem anderen, Hauptprogramm startet nur die beiden Prozesse]] Die 2. Variante ist für größere Projekte besser geeignet. Sie hat außerdem den Vorteil, dass die Anzeige des Schallsignals veränderbar ist. Während das Signal dargestellt ist, kann man beispielsweise 'zoomen'. Die beiden Programme finden sich hier: {{:ws1415:kont_aufn.zip|}} Soeben habe ich das Ganze um eine [[3. Variante Oszilloskop|dritte Variante]] ergänzt, die modular aufgebaut ist. Auch diese gibt es als .zip-Datei: {{:ws1415:kont_aufn_modular.zip|}} p.s. Für ein richtiges Oszilloskop fehlt übrigens noch der 'Trigger'-Mechanismus, dieser aber lässt sich leicht realisieren. (Übungsaufgabe!)