Moin - ich melde mich mal wieder aus der Versenkung ;D
Da nun auch web.de DMXCmails lustig in den Abfall verschiebt (oder ein Spassvogel da nachgeholfen hat :o) posaune ich mal nun ein paar Kleinigkeiten in die Öffentlichkeit. Auf diesem Server ist der Kram ja sicher ![]()
==============================
Source in D4 - bringt also nur begrenzt was. Deswegen hier genaue Funktionsbeschreibung:
(mit IF D<->VB komme ich nicht voran...)
LiveFX erzeugt Bewegungen und Verläufe mit ziemlich geringem Daten/Rechenaufwand, da es außerhalb des Cue-Konzeptes agiert. Es macht einen Grosteil von ecues Effect-Engines aus. Es sollten sich beliebig viele ch einbinden lassen. In meinem PoC habe ich auf 24 limitiert.
Kern ist ein Ringpuffer (entweder Byte oder Word wenn intern 16bit). Auf diesem Array bewegt sich ein Schreibkopf der den Output einer Seedfnkt (zB.: Sinus, Dreieck, Square, Spike,...) in eine Zelle schreibt und dann den Pointer verschiebt.
Für jeden ch gibt es einen Lesekopf, der die Daten aus dem array aufnimmt, ausgibt und dann auf das nächste Feld angesetzt wird. Der Abstand der Leseköpfe zueinander vermittelt lustigerweise den Eindruck der Geschwindigkeit. Zu große Abstände zerstören jedoch das Muster und lassen es chaotisch wirken.
Ich treibe den Ringpuffer konstant mit einem 60ms-Timer (threaded).
Die Seedfnkt sollte periodisch verlaufen. Die Auflösung der Fnkt nimmt Einfluss auf Geschwindigkeit. Falls der Ringpuffer so dimensioniert wird, dass exakt eine Periode darin Platz findet, sollte man die Erzeugerfunktion+Schreibkopf soagar nach einer Füllung abwürgen können.
Entscheidend ist es, dem Schreibkopf einen Offset von ch*Abstand mitzugeben, sodass der schreibkopf direkt vor den Leseköpfen herläuft. So wirken sich Änderungen ohne Latenz aus.
Ich denke, alles wichtige beschrieben zu haben. Der nette Farbverlauf ist bereits aus der Tut-Matrix bekannt. Das funzt auch hier wunderbar.
Bei techn. bitte posten oder PN.
Was den Sinn/Nutzen angeht: Ecue wird sich was dabei gedacht haben - und ich mags auch ;D
Hendrik