hai hai nochmal..
Hat denn HE mit irgendeinem ILDA Format ein Problem beim Import.
nicht wirklich... aber es gibt ilda files und ilda files... und offene definitionen, und diverse "auslegungen"
es gibt zb x,y,rgb
und x,y, Farbnummer
und x,y, Farbnummer + Farbtabelle
und so weiter und so fort
es gibt
KEINE standard Definition über den Zeitpunkt der Frames, also wann sie ausgegeben werden müssen!!! IDEAL währe ein ilda file, wo jeder Frame einen Zeitstempel hat! Gibts aber nicht... es gibt einfach nur Frames mit Punkten drinn.. je nach "interpretation" des Standards durch verschiedene Softwarehersteller bekommt also der Frame und dessen Punkte unterschiedliche "Aufgaben"
Früher war es wohl so gedacht:
Alle laserprojektoren werden auf eine bestimmte PPS rate getrimmt! auch wenn sie schneller könnten.. egal!
Dann hat man Ilda Files zB für 30 kpps galvos gemacht
der gedanke war.. wenn man nun JEDEN Punkt des Ilda Files mit 30 kpps ausgibt, und keine pause zwischen den Frames ist (technisch bedingt, oder sonst irgendwie verursacht) dann ist das file synchron.... so der Gedanke
ABER... mittlerweile gibt es verschiedene Galvosetups... es gibt Ausgabeoptimierung und allerlei anderes. Jeder fährt sein System "mit individueller PPS rate". Außerdem finde ich es als programmierer nicht sooooo einfach, 100%ig dafür zu sorgen dass einfach jeder punkt zur passenden zeit ausgegeben wird.
DAHER mein Ansatz bzw meine Philosopie:
Wird ein File FPS konstant exportiert... so gibt es für jede Sekunde EXAKT gleich viele Frames (wie beim TV).. beispiel 25 Frames / Sekunde ==> somit ist die Darstellungszeit eines Frames immer 40 millisekunden (theoretisch)
bei Frames deren Darstellungszeit aber länger ist (abhängig von Punktzahl und PPS rate) wird es natürlich passieren, dass der frame noch nicht fertig ist, obwohl schon der nächste kommen sollte
bei Fames deren Darstellungszeit kürzer ist (weil wenig punkte, oder PPS rate so hoch) wird es dagegen passieren, dass der Frame schon ausgegeben wurde, die 40 ms aber noch nicht vorbei sind.
Was macht software (meine) also? sie Rechnet aus, welcher Frame jetzt kommen muss!
Das geht ja so:
Loop Lasershowausgabe
1) Frage ob DAC einen Frame erhalten kann Wenn nein... gehe zu 1)
2) Wenn DAC Bereit.. ermittle, welche Song-Millisekunde gerade gespielt wird
3) Berechne anhand FPS Rate und Aktueller Millisekunde, welcher Frame jetzt ausgegeben werden mus
4) schicke den Frame zum DAC
5) gehe zu 1)
dauert die ausgabe des frames lang: bleibt man bei 1) hängen
is die Ausgabe kurz... wird vermutlich einfach wieder der Selbe frame nochmal aus gegeben
Mit bekannter FPS Rate hat automatisch jeder Frame einen zeitstempel nämlich:
ausgabezeit für Frame = Framenummer * (1000 / Framerate)
Hat man also grad die Songzeit = 23456ms
dann ist die Framenummer die Ausgegeben werden muss also = 23456 ms(1000 / Framerate)
bei 25 fps ist das der frame 586,4... gerundet frame 586
Das heißt auch: Für Frames wo nix ausgegeben wird, muss ein Frame vorhanden sein, der dann auch null punkte haben dürfte. wobei man hier schon wieder diskutieren kann.
Desshalb bevorzuge ich (und somit he-ls) framekonstante ILDA files....
das hat nix damit zu tun, dass he-ls nicht in der lage währe "Standard Ilda Files" zu lesen
im Gegenzeil.... die meisten Proggies lesen mittlerweile sogar deutlich mehr Schrott Ilda Files ein, als Standard files, weil es echt eine Flut von "Nicht Standard konformen Files" gibt.
Dass das ganze klappen kann zeigt ja spectrabeam.de die ja durchaus in der Lage sind, Shows Platformübergreifend an zu bieten.
viele Grüße derweil
erich