Hilfe gleichzeitiges verwenden von ArtNet mit zwei Softwaren

  • Moin,


    bei uns in der Church habe ich erfolgreich DMX Control 3 eingeführt. Hier steuern wir vor allem LED Pars (Farbige und Front Scheinwerfer), eine Nebelmaschine und das Saallicht über das Selbstbau Nodle, also "Standard" DMX Kette. Zusätzlich haben wir digitale LED Strips im Einsatz. Diese werden per Art Net mit der Software Jinx! gesteuert. Jinx! war hier anfangs die einfachste Lösung die LED Strips einzuführen, da die Software ziemlich intuitiv zu bedienen ist und ich bis dahin keine Erfahrung mit Art Net hatte. (Dies ist nun anders, auch durch die tollen Tutorials)


    Nun möchte ich gern in DMXC3 das Beamertool mit einem R-Pi über Art Net ansteuern. Ich habe im DMX Interface schon mal das Art Net Interface aktiviert, also der R-Pi ist noch nicht angeschlossen und auch kein anderes Art Net Gerät welches durch DMXC3 angesteuert werden soll. Ich habe dann nun festgestellt, dass wenn ich in DMXC3 ein Cue starte die einen Effekt hat, z.B. ein alternierendes Wechseln (100#0) dies dann einfluss auf die JinX! Ausgabe (LED Strips) hat.

    Also die LED Strips stocken dann (leggen), die Ausgabe ist einfach nicht mehr flüssig.

    In DMXC3 habe ich schon folgende Dinge versucht:

    -Abwahl (Ausschalten) einzelner DMX Universen die von Artic Licences einfach immer aktiv sind, die nicht benötigt werden

    -Ändern der Net von 0 auf 1, da Jinx! auf dem Net 0 arbeitet. Dies auch bei allen Universen, auch die die nicht benötigt werden

    -Auch die Abwahl aller DMX Universen die Art Net ausgeben sollen bringt keine Besserung, erst wenn das komplette Interface Artic Licences abgewählt wird läuft nach einer kurzen Regenerationszeit Jinx! wieder flüssig.


    Der Rechner ist zusammen mit zwei anderen Rechnern in einem gemeinsamen Netzwerk (inkl. Internet). Ich habe auch schon einen zweiten Router dazwischen geschaltet, so dass der Licht-PC ein eigenes Netzwerk (ohne Internet) hat. Auch dies hat keine Besserung gebracht, so dass ich denke, dass hier die beiden Softwares sich beeinflussen?!?


    Wisst ihr woran das liegen könnte? Für jede Hilfe wäre ich dankbar.


    Beste Grüße

    Dennis

  • Guten Morgen Dennis,


    scheinbar ist dein Beitrag (auch bei mir) irgendwie ins Hintertreffen geraten... Insofern ist es gut, dass du nochmal nachfragst. :)


    Eine ähnliche Konstellation hatte ich bei zwei Show 2019 ebenfalls. DMXControl 3 und Jinx! haben vom gleichen PC aus Daten per Art-Net verschickt, die dann von zwei unterschiedlichen Empfängern verarbeitet wurden - eben auch zwei verschiedene Art-Net-Nodes. Aus dem Kopf heraus kann ich dir die Details dieser Konfiguration nicht mehr nennen, aber ich weiß, dass es entsprechend flüssig lief und ich ohne flackern etc. zwischen beiden Quellen hin- und herwechseln konnte. Die Herausforderung bei diesem Setup war nämlich, dass am Ende Jinx! als auch DMXControl 3 in verschiedenen DMX-Universen einzelne Geräte jeweils parallel ansteuern sollten. Von daher kam bei mir seiner Zeit der Punkt noch hinzu: wie bekomme ich die DMX-Werte wieder zusammengeführt? Du hast es hier ja entsprechend einfacher und hast ja wirklich dauerhaft funktionstechnisch getrennt arbeitende Geräte im Einsatz.


    Was ich allerdings nun einschränkend sagen muss: beide Shows habe ich mit DMXControl 3.1.3 gefahren, wo seitens DMXControl 3 nur 4 DMX-Universen per Art-Net ausgegeben werden konnten. Mit DMXControl 3.2 kam ja die Erweiterung auf 16 Universen. Ob es hierdurch, genauer gesagt durch den zu Grunde liegenden Unterbau der Art-Net-Ausgabe an dieser Stelle zu einem Konkurrenzverhalten zwischen Jinx! und DMXControl 3 kommt, kann ich so leider nicht bewerten. Unter DMXControl 3.2 benötigte ich dieses Setup bis dato noch nicht wieder und habe des daher noch nicht wieder so zusammengesetzt.


    Ich habe mir daher nun mal eine entsprechende Erinnerung vermerkt, da mich dieser Punkt aus der Historie heraus interessiert und ich bestimmt dieses Setup bald ebenfalls für einen vergleichbaren Anwendungsfalls benötigen werde. Um es aber gleich vorneweg zunehmen: auf Grund anderer Aktivitäten kann ich mir diesen Punkt erst Anfang nächsten Monats anschauen. Vielleicht gibt es ja noch jemand anderes, der zu diesem Anwendungsfall etwas detaillierteres berichten kann.


    Viele Grüße, Stefan.

  • Hallo,

    scheinbar ist dein Beitrag (auch bei mir) irgendwie ins Hintertreffen geraten... Insofern ist es gut, dass du nochmal nachfragst.

    Verdammt, bei mir auch :saint:


    Kannst du mal folgendes probieren: Steuere mal testweise alle Geräte (auch die LED-Stripes) über DMXControl 3 an. Wenn das flüssig funktioniert, dann probiere noch, ob es auch funktioniert, wenn du weiterhin alles über DMXControl steuerst, aber mit Jinx! auf einem beliebigen Net sendest. Als letztes wäre dann der Test, einfach mal an ein Input-Universum von DMXControl 3 zu schicken. Mein Gedankengang: Ich möchte mit dieser Herangehensweise herausfinden, ob es an DMXControl 3 liegt oder nicht. Wenn du alles über DMXControl 3 ansteuern kannst und das flüssig läuft, dann ist schon einmal die Ausgabe von DMXControl 3 ok. Wenn du dann mit Jinx! auf einem x-beliebigen Netzwerk senden kannst und es trotzdem geht, dann sind es vermutlich eher nicht die LED-Stripes, die Probleme haben. Sollte es da schon Probleme geben, dann könnte es sein, dass der Controller der Stripes nicht damit zurecht kommt, dass auf unterschiedlichen Art-Net-Universen empfangen wird.

    Viele Grüße

    JP

  • Ich stochere mal mit im Nebel :). Um ein bißchen Klarheit zu bekommen:


    Artnet Sender:

    Licht PC mit DMXC + Jinx


    Artnet Empfänger:

    Nodle für Standard DMX Krams

    Raspberry Pi mit Beamertool

    LED-Controller für die Strips (was für einer?).


    Soweit korrekt?


    Und der LED-Controller macht Zicken, sobald du in DMXC Artnet aktivierst? Klingt so, als bekäme der zu viele oder widersprüchliche Daten. Soll der Controller denn mit mehreren Quellen umgehen können laut seiner Doku?


    Ein paar Fragen:


    Sendest Du Artnet Unicast oder Broadcast? IIRC kann DMXC nur Broadcast, wie ist das bei Jinx?


    Wie sind die Teile vernetzt? Du hast einen Router, um für das Licht ein eigenes Netz aufzumachen, ok. Ist da noch ein separater Switch im Spiel oder hat der Router ein paar Switchports an Bord?


    Es wäre interessant zu wissen, was da über die Leitung huscht. Wireshark bzw. tcpdump wäre eine Möglichkeit, aber das muss halt an der richtigen Stelle lauschen. Idealerweise DMXC auf einem und Jinx auf einem anderen Rechner laufen lassen (vorübergehend), dann kann man´s schon direkt an der Source IP Adresse auseinanderhalten. Weniger komfortabel: Die Trennung anhand der Nutzdaten vornehmen (Jinx Netz 0, DMXC Netz 1), so wie Du´s oben beschrieben hast.

  • Ich habe mir daher nun mal eine entsprechende Erinnerung vermerkt, da mich dieser Punkt aus der Historie heraus interessiert und ich bestimmt dieses Setup bald ebenfalls für einen vergleichbaren Anwendungsfalls benötigen werde. Um es aber gleich vorneweg zunehmen: auf Grund anderer Aktivitäten kann ich mir diesen Punkt erst Anfang nächsten Monats anschauen. Vielleicht gibt es ja noch jemand anderes, der zu diesem Anwendungsfall etwas detaillierteres berichten kann.


    Viele Grüße, Stefan.

    Hallo,


    Vielen Dank für deine Antwort.

    Ich find es gut, dass du dir das auf dein To-Do-Liste geschrieben hast ;)

    Also das kommt bei mir jetzt auch tatsächlich nicht auf ein zwei Monaten an. Es gibt kein Stichtag, zu dem der R-Pi laufen soll.

    Zur Zeit verwende ich DMXC3.2 nur mit einem "normale" DMX Universum und Jinx! seperat auf dem gleichen Rechner.


    Viele Grüße,

    Dennis

  • Kannst du mal folgendes probieren: Steuere mal testweise alle Geräte (auch die LED-Stripes) über DMXControl 3 an. Wenn das flüssig funktioniert, dann probiere noch, ob es auch funktioniert, wenn du weiterhin alles über DMXControl steuerst, aber mit Jinx! auf einem beliebigen Net sendest. Als letztes wäre dann der Test, einfach mal an ein Input-Universum von DMXControl 3 zu schicken. Mein Gedankengang: Ich möchte mit dieser Herangehensweise herausfinden, ob es an DMXControl 3 liegt oder nicht. Wenn du alles über DMXControl 3 ansteuern kannst und das flüssig läuft, dann ist schon einmal die Ausgabe von DMXControl 3 ok. Wenn du dann mit Jinx! auf einem x-beliebigen Netzwerk senden kannst und es trotzdem geht, dann sind es vermutlich eher nicht die LED-Stripes, die Probleme haben. Sollte es da schon Probleme geben, dann könnte es sein, dass der Controller der Stripes nicht damit zurecht kommt, dass auf unterschiedlichen Art-Net-Universen empfangen wird.

    Viele Grüße

    JP

    Hallo,


    oha, das sind viele Punkte. Ich muss mal gucken, wir ich die Strips über DMX Control überhaupt steuern kann. Deswegen habe ich ja Jinx! genommen, da mir das einfacher viel. Ich habe auch schon mal gehört das man über DMXControl dann andere Programme, wie hier Jinx! steuern kann. Habe aber aktuell noch keinen Plan wie das funktioniert :D.


    Wenn ihr einen längeren Atem habt, fuchse ich mich da rein. Nun ist allerdings auch erstmal Urlaubszeit, danach habe ich auf jeden Fall etwas mehr Zeit [Kurzarbeit =( ]


    Viele Grüße,

    Dennis

  • Hallo,


    1) ja soweit korrekt. Der LED-Controller ist einer von Ulrich Radig. Link


    2) Ja der Controller macht Zicken sobald in DMXC Artnet aktiv ist. Ich denke auch das der widersprüchliche Daten erhält. Der Controller soll eigentlich nur von Jinx! Daten bekommen, nicht von DMXC. Oder wie meinst du das, ob der Controller Daten von mehreren Quellen erhält?


    3) Das habe ich in der Doku zu Jinx! gefunden.

    Art-Net
    Art-Net is a network based protocol, so first of all you have to set the IP address of the Art-Net node, the udp port is fixed and displayed as read only. Art-Net also needs a direct addressing inside the Art-Net network. Jinx! supports Art-Net 3, which means Net, Subnet and Universe as address parameters. If your node only supports Art-Net 2 you should use 0 as the Net address and only give the correct Subnet and Universe values.
    Additionally you can inactivate the sending of sequence numbers within the artnet protocol, for some special devices.
    You also can set the amount of channels to be transmitted. Art-Net, as DMX based protocol, supports maximal 512 channels per node. If you set the Channels value greater than 512 it will be corrected to 512 on saving. The Art-Net specification allows sending less than 512 channels, so you can choose lower values. The channel count must be dividable by 2.
    Remember: If your Art-Net node supports ArtPoll, you can simply use the Art-Net scan in the Output Device dialog to find and add the nodes automatically instead of adding and configuring manually.

    4) ok, das ist ein bisschen komplizierter. Der erste Router steht im Büro im ersten Stock, dort ist der normal angeschlossen um Internet/WLan zu haben. Nach umbaumaßnahmen haben wir uns eine Ethernet Leitung nach unten legen lassen, um hier im Raum auch Internet haben zu können. Also der erste Router wird dann "Verlängert" nach unten ins Erdgeschoss und an einen zweiten Router angeschlossen. Danach kommt noch ein Switch und es sind insgesamt hier dann drei Rechner am laufen. (Zu der Zeit ist dann nie einer im Büro oben) Aber wie gesagt, ich habe einmal einen seperaten Router mit eingenem Netz (Ohne Internet) angeschlossen und da war das auch. Also: Licht-PC > Router > LED-Controller.


    5) auf getrennten PCs kann ich es mal testen. die Trennung Net 0 Jinx! und Net 1 DMXC habe ich schon versucht und brachte auch keine Änderung.


    Vielen Dank für die umfassenden Antworten. Hoffentlich schaffen wir es gemeinsam dieses Problem bzw. diese neue Herausforderung zu lösen.


    Viele Grüße,

    Dennis

  • Moin Dennis,


    wie gesagt, es wäre mal interessant zu sehen, was da tatsächlich über das Kabel huscht. Ich bin kein Artnet Experte, daher mit der Bitte um Kommentar durch die Veteranen hier, aber folgende Überlegung:


    Die Datenströme können imho auf zwei Ebenen getrennt werden:


    1. IP Ebene, Artnet Unicast. Dann bekommt jeder Empfänger schon auf dieser Ebene nur die Daten, die er braucht und muss nicht erst irgendwelche Artnet Broadcasts auswerten, nur am dann festzustellen, dass da gar nix für "seine" Artnet Universes dabei ist. Dummerweise unterstützen nicht alle Programme Artnet Unicast, meines Wissens ist bei DMXC derzeit nur Broadcast implementiert. Folge: Was auch immer DMXC sendet landet bei allen Empfängern im gleichen Subnetz und wird verarbeitet und dann ggf. wieder verworfen (anhand der Artnet Adresse). Soweit ich das bisher verstehe, ist Broadcast/Unicast aber eher eine kosmetische Frage und spielt abseits von Megamonstersetups keine Rolle. Daran sollte es eigentlich nicht liegen. Bleibt also die....


    2. Artnet Ebene. Eigentlich sollte jeder Empfänger in der Lage sein, aus den Artnet Daten das zu extrahieren, was für "seine" Universes relevant ist. Also selbst wenn der LED Controller alle möglichen Broadcasts erhält, durch die Artnet Addressierung sollte er das trennen können. Ich gehe davon aus, dass der Radig Controller ordentlich implementiert ist. Kannst Du den 0/1 Test nochmal wiederholen, aber mit einem größeren Abstand? Nicht dass da am Ende irgendein Offset für Überlappung sorgt: Du denkst das Programm sendet auf x und eigentlich sendet es auf x+1.


    So oder so, es führt kein Weg dran vorbei: Du musst klären, was da von wem gesendet wird.


    Option A: Dein Switch kann Port Mirroring. Dann spiegelst Du die beteiligten Ports auf den "Sniffing" Port und lässt Wireshark auf einem Rechner laufen, der dann sozusagen Artnet Node spielt. Über das Port Mirroring kriegt der alles mit.


    Option B: Dein Switch kann das nicht, dann wirst Du auf dem Sniffer PC nur Broadcasts sehen, aber keine Unicasts. Funktioniert 1a, wenn Du keine Artnet Unicasts eingestellt hast :) Anhand der Source IP kann man dann schnell sehen, wer da was schickt und dann mal tiefer in die Artnet Daten kucken.


    Option C: Du snifferst stattdessen auf der Sendeseite, idealerweise im 2 PC Setup: PC1 mit DMXC+Wireshark, PC2 mit Jinx+Wireshark.



    Vorher kannst Du aber auch schon mal mit dem Tool hier eine grobe Übersicht bekommen: ArtnetView


    Ich hab das auch eben erst gefunden, laut Virustotal ist das Ding sauber. Ist ein einfacher Artnet Empfänger. Hab es hier auf dem gleichen Rechner getestet mit QLC. Wenn QLC unicast auf meine Artnet Node macht, seh ich lokal natürlich nix, sobald ich auf Broadcast umstelle, sieht auch der sendende PC die Artnet Daten. Das Tool erkennt automatisch, welche Artnet Universes im Spiel sind und schafft somit recht schnell Übersicht.


    Schalte doch mal Jinx und DMXC einzeln an und ab und kuck, in welchem Universe die Daten landen.

  • 4) ok, das ist ein bisschen komplizierter. Der erste Router steht im Büro im ersten Stock, dort ist der normal angeschlossen um Internet/WLan zu haben. Nach umbaumaßnahmen haben wir uns eine Ethernet Leitung nach unten legen lassen, um hier im Raum auch Internet haben zu können. Also der erste Router wird dann "Verlängert" nach unten ins Erdgeschoss und an einen zweiten Router angeschlossen. Danach kommt noch ein Switch und es sind insgesamt hier dann drei Rechner am laufen. (Zu der Zeit ist dann nie einer im Büro oben) Aber wie gesagt, ich habe einmal einen seperaten Router mit eingenem Netz (Ohne Internet) angeschlossen und da war das auch. Also: Licht-PC > Router > LED-Controller.

    Hast du 2 verschiedene IP-Adressbereiche in deinem Haus? Oder nutzt du eine Hardware "Router" nur als Switch und WiFi-Überträger?

  • Moin Leute,


    ich habe es doch nun endlich mal geschafft etwas herum zu probieren.


    Zuerst einmal habe ich ein seperates Netzwerk für den Licht PC eingerichtet, damit hier kein anderer PC reinfunkt.


    Also PC an Router (FritzBox 7430)
    -PC mit Nodle U1 verbunden (für Standard DMX Kram: Lampen, LED Pars und Nebelmaschine)

    -PC mit LED Strip Controller von Ulrich Radig verbunden

    -PC noch nicht mit R-Pi verbunden


    Art Net Sender

    Licht PC mit DMXC 3.2.2 und Jinx!


    Art Net Empfänger

    PC zu LED Strip Controller via Jinx!

    PC zu R-Pi Beamertool via DMXC 3.2.2


    Wenn ich nun in DMXC 3.2.2 das ArtNet Node als Interface aktiviere, nur aktiviere, es ist kein Gerät dran und auch nicht in DMXC eingerichtet und es soll eigentlich nichts gesendet werden. Dann kann ich im Programm ArtNetominator sehen, dass Packete gesendet werden. (Die anderen Programme habe ich noch nicht getestet)


    Stimmen nun Net 0, Subnet 0 und Universum 0 bis 7 mit dem ArtNet-Node von DMXC überein, dann bekommt der LED Controller Daten rein gesendet, also diese Standard Packete. Dies ist auch offensichtlich an den LEDs zu sehen, die erscheinen in irgendeiner bunten Farbe.

    Wird das ArtNet-Node in DMXC auf die hinteren Universen 8 bis 16 oder auf irgend ein anderes Net oder Subnet verschoben (ich habe viele Varianten überprüft), dann sieht man erst einmal keine bunten Lichteffekte mehr in den Strips. Klar, die Standard Packete werden ja nun auch woanders hin gesendet.

    ABER, wenn ich dann in DMXC eine bewegte Cue, also ein Lauflicht oder ähnliches abspiele und zeitgleich eine bewegte Cue bei JINX! aktiv ist, dann stottern die LED Strips. Also die Cue von JINX! wird nicht mehr ruckelfrei abgespielt. Das war auch vorher schon immer so, mir ist nur beim durchlesen der Kommentare aufgefallen, dass evtl. nicht klar war, das die Cues in DMXC auf ein Standard DMX Universum per Nodle Node senden und nicht auf das ArtNet.



    Was ich allerdings nun einschränkend sagen muss: beide Shows habe ich mit DMXControl 3.1.3 gefahren, wo seitens DMXControl 3 nur 4 DMX-Universen per Art-Net ausgegeben werden konnten. Mit DMXControl 3.2 kam ja die Erweiterung auf 16 Universen. Ob es hierdurch, genauer gesagt durch den zu Grunde liegenden Unterbau der Art-Net-Ausgabe an dieser Stelle zu einem Konkurrenzverhalten zwischen Jinx! und DMXControl 3 kommt, kann ich so leider nicht bewerten.

    Diese Option schien mir dann als einfache Lösung. Einfach mal DMXC3.1.3 installieren und den selben aufbau prüfen. Leider konnte ich meine Project Datei von DMXC3.2.2 hier nicht einbinden. Also schnell mal ein paar LED Paars über das Nodle U1 konfiguriert und ein Lauflicht Cue erstellt. Dann in DMXC3.1.3 zusätzlich zu dem Nodle das ArtNet mit wie oben beschrieben den 4 Universen aktiviert.

    Siehe da, ähnliches Phänomen. Es werden wieder Standard Packete gesendet, zu sehen im ArNetominator und anhand der LEDs wenn Net, Subnet und Universen übereinstimmen.


    Dann: Universen von 0 bis 3 auf irgendwas nach 7 (weil der LED Controller so viele hat) gestellt und siehe da, wie erwartet, werden die Packete nun dann in Universum 8 usw gesendet, aber es hat keinen Einfluss mehr auf Jinx!. Wenn ich jetzt dann die bewegungs Cue starte, dann läuft Jinx! flüssig weiter.

    Es liegt also irgendwie an dem neuen Plugin von ArtNet bei DMXC3.2.2. Einfach die dll Datei aus DMXC3.1.3 zu DMXC3.2.2 zu kopieren funktioniert leider nicht.


    Da ich jetzt die ganze Show nicht in DMXC3.1.3 noch umprogrammieren möchte, bleibe ich erstmal bei 3.2.2. Evtl. wechsel ich dann demnächst zurück.


    So, ich hoffe das ist für alle bis hier nachvollziehbar geschrieben. Ich bin schon wieder über 3h hier am gang und so langsam nimmt die Konzentrationsfähigkeit ab. ;)

    Ich hoffe, das ihr euch darauf einen Reim machen könnt, oder dies einen nötigen Denkanstoß bietet.


    Beste Grüße,

    Dennis

  • Guten Morgen Dennis,


    dann lag ich ja mit meiner Vermutung, dass das Problem nun durch das neue, erweitere Art-Net-Ausgabeplugin hervorgerufen wird, dann doch richtig. Auf Grund von zahlreicher anderer Projekte konnte ich dies leider noch nicht selbst nachvollziehen und eine Lösung in den Raum werfen.


    Da ich jetzt die ganze Show nicht in DMXC3.1.3 noch umprogrammieren möchte, bleibe ich erstmal bei 3.2.2. Evtl. wechsel ich dann demnächst zurück.

    Von dieser Überlegung würde ich ehrlich gesagt eher abraten. DMXControl 3.2.2 macht an zahlreichen Stellen vieles besser als die 3.1.3 - klar, in deinem konkreten Anwendungsfall nicht. Aber da die Entwicklung eben weiter geht und für DMXControl 3.3 eben die 3.2.2 die Grundlage ist, wird es natürlich auch immer komplizierter, von einer alten Version auf die aktuelle Version hochzuwechseln. Hintergrund ist eben, dass wir als Verein eben nicht in dem großen Maße eine Abwärtskompatiblität gewährleisten können - zumindest nicht über gleich mehrere Major-Versionen hinweg. Gleichzeitig gehen dir vielleicht auch die ein oder andere Funktion verloren.


    Sollte es sich aber um dein Projekt über ein recht überschaubares Projekt handeln, dann mag das vielleicht noch funktionieren. Aber ist das jetzige bereits entsprechend groß, würde ich mir das echt überlegen.


    Licht PC mit DMXC 3.2.2 und Jinx!

    Was mir beim Schreiben des vorherigen Absatzes kam: hast du mal probiert, mit zwei PCs zu arbeiten und dann eben die Art-Net-Konfiguration darüber auch komplett auseinander zu ziehen? Soll heißen, du sendest auf beiden PC mit komplett verschiedenen Nets und Subnets und ggf. auch unterschiedliche Universen?


    Viele Grüße, Stefan.

  • Moin,


    habt ihr beider neuen DMXC 3.2.3 Version was am ArtNet geändert?

    Wenn ich DMXC einem anderen Net zuweise z.B.1 dann wird hier zwar was gesendet, wie vorher auch. ABER er lässt jetzt die anderen Nets in ruhe (was irgendwie auch logisch ist)


    Damit müsste meine Setup jetzt funktionieren.


    Wird demnächst mal getestet!!

  • Newly created posts will remain inaccessible for others until approved by a moderator.

    The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.