magneton hat geschrieben:das thema geistert hier ja durch verschiedene threads: sinn und unsinn von eventloops. mich würde ein konkretes beispiel interessieren:
ein event-taktgeber (clock-osc oder rechteck-LFO) triggert eine mathematische berechnung und das resultat wird wieder als ausgangswert eingesetzt.
ohne eventloops.
wo ist das Problem?
Ich habe nicht gesagt, dass ich eventloops unsinnig finde. Nur ich vermeide sie möglichst; das ist mir bei allen bisher erstellten ensembles gelungen.
Das kann natürlich daran liegen, dass ich an solchen oben angegebenen Anwendungen im Moment kein Interesse habe.
Wenn ich eventloops in anderen ensembles begegnet bin, dann waren sie so konstruiert, dass gar nichts mehr funktionierte, wenn die Option "globally disable eventloops" aktiviert war.
Meine Forderung ist, dass man die Lösung einer bestimmten Ensemble-Struktur so formulieren sollte, dass kein eventloop nötig ist.
Dabei muss man natürlich sehen, was überhaupt an einem eventloop problematisch ist. Für mich ist der Fall problematisch, dass quasi ein gleichzeitiges Abarbeiten eines Eingangswertes und eines Feedback-Wertes zeitgleich mit dem dann wieder erstellten Feedback-Wert erfolgen soll; das kann natürlich ohne eine Abbruchregel nicht geschehen.
REAKTOR vermeidet dies durch Taktung.
Dass überhaupt diese Option (Ausschalten der eventloops) existiert, ist meiner Ansicht nach ein reines Entgegenkommen der Entwickler von REAKTOR. Aber es gibt natürlich jede Menge Eventloops, die ohne Fehlermeldung erforderlich sind, alleine schon jeder Oszillator hat einen solchen Eventloop, der aber durch die Z^-1 Funktion aufgelöst wird. Dies kann man doch auf event-Ebene ebenfalls durchführen durch das unit-delay-Modul.
Das Prinzip der heute gängigen Mikroprozessoren basiert ja gerade auf dem (genialen) Gedanken der
von Neumann Maschine: alles ist getaktet.
Natürlich wünscht man sich andere (vielleicht analoge) Strukturen, die ohne diesen Takt auskommen. Dann muss man allerdings philosophieren. Ist es z.B. einer "Maschine" Mensch möglich, einen Eventloop zu verkraften? Sicherlich nicht, da wir mit unseren Gedanken ja auch den physikalischen Gesetzen unterworfen sind.
Um auf REAKTOR zurückzukommen:
Es geht auch ohne unit-delay:
Wohl bemerkt: die Option "globally disable eventloop" ist aktiviert! Trotzdem funktionieren diese Strukturen.
Ich will sagen: man muss eventloops so formulieren, dass sie konform sind mit den Strukturen, die REAKTOR zulässt.
Ein weiteres interessantes Beispiel ist das folgende: der Button startet und stoppt einen Zyklus an jeder beliebigen Stelle.
Damit habe ich aber nur einen sehr einfachen digitalen Sägezahnoszillator simuliert, der durch das "Gate"-Signal des Buttons gestartet wird.
ciao herw