OSC Plugin

  • Hallo *,


    ich möchte ein Plugin entwickeln, mit dem man DMXControl mit NITraktor oder NumarkCue kopplen kann. Die Kommunikation soll über das OSC-Interface der beiden Programme erfolgen.


    In dem PluginTutorial kann man schön nachvollziehen, wie man Werte von Kanälen empfängt, setzt oder wie man verschiedene Nachrichten empfängt und auswertet.


    Nun mein Problem: wie sende ich an DMXControl eine BeatMessage?
    Und wie sende ich einen Zeitindex an den Timecode-Player?


    Ich habe schon ein kleines Tool in Delphi geschrieben, was diese Funktionen beinhaltet. Dieses betrachte ich jedoch nur als Proof of Concept.
    Hier der zugehörige Thread


    Grüße
    zoidberg

    Ein Programm macht nicht was Du willst, sondern was Du schreibst!

    Edited once, last by Hoc: Link auf neues Forum angepasst ().

  • ich hab jetzt das Plugin soweit funktionstüchtig.
    Wenn das Plugin aktiviert ist, wird beim Start vom DMX-Control der UDP-Port 10001 aufgemacht.
    Über diesen Port erfolgt die Kommunikation.


    Wenn ein Beat erkannt wird, wird Kanal 1 im Submaster auf 255 oder auf 0 gesetzt.
    An dieser Stelle sollte eigentlich das BeatSignal geschickt werden. Ich weiß nur nicht wie.


    Weiterhin wird die Positionsangabe von Traktor an Kanal 2 geschickt (aber nur bis zum Wert 255).
    An dieser Stelle sollte ein TimeCode an den TimeCode-Player geschickt werden.


    Letztendlich müssen die Funktionen sendBeat und sendPosition noch angepasst werden. Dann sollte das richtig funktionieren.


    Wenn mir jemand weiterhelfen kann wäre ich sehr dankbar.



    grüße
    zoidberg

  • Quote

    Original von zoidberg
    An dieser Stelle sollte eigentlich das BeatSignal geschickt werden. Ich weiß nur nicht wie.


    Ein Beat ist einfach:
    <PluginHelper>.Messages.Send MSG_Beat_Detected, 1, 0


    Quote

    Original von zoidberg
    An dieser Stelle sollte ein TimeCode an den TimeCode-Player geschickt werden.


    Ich fürchte, dafür gibt es noch kein API. Der TimeCode-Player erwartet seine Zeit immer per "SMPTE über MIDI". Hier könnte ich vll. in einer späteren Version mal etwas ändern...


    Stefan

  • klar hab den Wald vor lauter Bäumen nicht gesehen.


    Die jetzige Version sendet bei jedem erkannten Beat die richtige Message (thx to Stefan).
    Die Beaterkennung funktioniert mit NI-Traktor und NumarkCue auf meinem System ohne Probleme.

    Da es (noch) kein API für den Timecode-Player gibt, hab ich mal angefangen eine Midischnittstelle in das Plugin einzubauen.

  • Update: das Plugin sendet jetzt einen Zeitcode an die ausgewählte Midischnittstelle. Dieser Zeitcode kann mit dem Timecode-Player ausgewertet werden. Dazu muss MidiYoke installiert sein.


    Mit Traktor funktioniert das Plugin auch via Netzwerk (hab ich gerade getestet).


    So, nun ist es an der Zeit die noch vorhandenen Bugs zu suchen :)

  • Hallo,
    ich bekomme zwar das Signal im Plugin aber wie kann ich das jetzt mit meinem BeatTool auswerten. Bin noch neu bei DMX Control und raffe das irgendwie noch nicht so ganz
    Gruß Jens

  • Hallo,
    erstmal danke für die schnelle Antwort.
    Das habe ich auch so gemacht.
    Wenn ich OSC to MIDI nehme klappt das auch und ich gebe das Signal dann auf mein BeatTool. Ich habe auch den Port von 12000 auf 10001 umgestellt sonst bekomme ich ja auch kein Signal. Kann es daran liegen das ich den Maple Midi Treiber nehme und nicht den Midi Yoke?
    Ich habe auch VirtualDj ist das evtl das Problem?
    Würde halt gerne das PlugIn nehmen da ich mir dann das zusätzliche Programm spare.
    Gruß Jens

  • Nabend,


    die Midischnittstelle wird nur verwendet um eine Zeitcode zu übertragen, das funktioniert aber nur mit Traktor.


    Hast Du eine Firewall, die evtl. die Kommunikation unterbindet?


    mit dem Tool TCPView kannst Du dir ansehen, ob der Server richtig gestartet wird. Wenn Du DMXControl startest, sollte in der Spalte "Local Adress" computername:10001 erscheinen. Wenn das nicht erscheint, wird der Server nicht gestartet und Kommunikation nicht funktionieren.
    Mit dem Button ReInit kannst Du das Plugin neu initialisieren.


    Edit: im Dateianhang ist ein neue Version. Im Fenster in Message, steht die IP-Adresse, die das Plugin benutzt. Diese muss dann bei VirtualDJ eingetragen werden.


    Ich hatte beim Programmieren mein WLAN aus, deshalb funktionierte das mit localhost.

  • so hab mal mit tcpview probiert. wenn numarkcue bereist läuft kann man kein reinit machen, siehen obigen beitrag!!
    wenn das plugin schon läuft kann numarkcue keinen osc server aufbauen!!!!!!
    also in welcher reihenfolge muss ich die einzelnen progs starten?????


    im bild zu sehen: erst numarkcue und dann dmxc!! geht nicht


    mfg maik

  • zuerst muss DMXControl laufen und das Plugin gestartet sein. NumarkCue reserviert sich offenbar auch den Port 10001.


    Diese Meldung hatte ich noch gar nicht, liegt evtl. an der Beta.


    Edit: Ich hab den Port mal auf 10002 geändert. Jetzt gibt es bei mir keine Konflikte mehr mit NumarkCue. Traktor hat auch keine Probleme damit.

  • Quote

    Original von TiPpFeHlEr


    vieleicht liegts ja an der beta??


    Stefan kann das sein??


    Wenn es eine Änderungen an dem API gab, könnte das sein. Das kann ich aber nicht einschätzen.


    Was muss man tun, um Betatester zu werden?

  • Top die 1
    Ich drück auf nen Knopf und der geht.
    DANKE DANKE DANKE
    Bei mir funktioniert das jetzt.
    Jetzt zählt er auch irgendwelche Daten durch unten im Fenster.
    Vorher hat sich der Wert immer nur geändert zwischen Play und Pause.
    Jetzt brauche ich das Beat Tool auch nicht einschalten.


    Gruß Jens

  • Hi Leute,


    ich habe es nun auch fertig gebracht das sich Traktor mit DMXC verbindet und es Funktioniert einwandfrei! Jedoch würde ich es wesentlich besser finden wenn das SimpleOSC Plugin einen Sync Befehl an das Beattool senden würde. Das würde einige vorteile bringen.....z.B. wenn ein Lied in Traktor gestoppt wird und Traktor keine OSC Signale mehr sendet würde ein Effekt der in DMXC auf Beats läuft anhalten und nicht wie jetzt mit dem "Tab" befehl weiterlaufen. Ein zweiter Punkt wäre das über den "Tab" aus 4 Anschlägen des Beats der mittelwert für den BPM-Wert ermittelt wird und der Beat nicht 100% syncron mit dem Song übereinstimmt.
    Mit einem "Sync" Befehl der bei jedem Beat von dem OSC-Plugin kommen würde wäre die sycronisation zwischen einem Song und des Lichtspiels wesentlich besser !



    Könnte man in das OSC-Plugin eine Option mit einbauen die es einem ermöglicht wählen zu können ob man einen "Tab" oder einen "Sync" Befehl für das Beattool sendet?


    Wenn das gehen würde wäre ich euch sehr sehr sehr ....Dankbar !!!



    MFG Tobi

  • Quote

    Original von bockschulz
    Jedoch würde ich es wesentlich besser finden wenn das SimpleOSC Plugin einen Sync Befehl an das Beattool senden würde.


    Wenn das Beattool geschlossen bleibt, dann funktionierte das schon so.



    Ich hab mir nochmal die Referenz zu den Messages angeschaut und den passenden Parameter gefunden.
    Jetzt ist mir auch klar, warum es manchmal nicht funktioniert hat :D



    Standardmäßig wird jetzt ein SYNC gesendet. Man kann aber auch auf TAP umschalten.

  • 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.