Hallo zusammen, ich bin auf der Suche nach nützlichen Tips zu folgendem Problem: Ich habe ein Programm in Visual-Studio erstellt, dass ein Theater-Textbuch scrollt, auf dem sämtliche Technik-Einsätze vermerkt sind. Die Programm-Oberfläche hat Buttons für DMX-Szenen (steuere ESA2 mit simulierten Tasten-Befehlen), Sound-Einspielungen (integrierte Mediaplayer) und Muten/Entmuten von den Headsets der Darsteller. Für letzteres möchte ich (über einen Button des Programms) MIDI-Befehle an ein Behringer XR18 senden. Wie bekomme ich vom PC am einfachsten (direkt über das VB-Programm, oder per Ansteuerung einer weiteren Software) MIDI-Befehle gesendet? :/ Kann jemand helfen? Gruß, edel
Ich würde sagen, über die serielle Schnittstelle und die entsprechende WinAPI. Willst du in C++ programmieren oder in Net oder Python? Ich hab es selbst noch nicht gemacht, würde aber auch so etwas benötigen, um meine Effektgeräte zu steuern. Ich hatte mir auch schon verschiedene proprietäre MIDI-Libs angesehen, u.a. die vom MIt und Standford, aber nicht damit gemacht. Für DMX wirst du was Eigenes brauchen, weil das 8 Bit sind und eine andere Datenrate. Meine Versuche bezogen sich damals auf WinXP ff - inzwischen dürfte es da auch etwas in höheren Sprachen geben.
mmsystem ist dein Freund. Die Multimedia API existiert mindestens seit W98. Braucht dann halt passende Midi HW z.B. für USB.
:
Bearbeitet durch User
Hallo, auf jeden Fall schon mal vielen Dank für die Ansätze. Ich denke, es ist gut, wenn ich meine Aufgabe nochmal etwas genauer schildere: ---------------------------------------------------------------------- Aus einem VS2019 (VB)-Programm heraus auf Button-Druck einen MIDI-Befehl an ein USB=>MIDI-Kabel ausgeben (XR18-Steuerung) Ich habe eine Oberfläche in VS2019 (VB) programiert, mit der ich die Technik-Arbeit in kleinen Theatern erleichtern möchte. (Screenshot hängt dran) Das Textbuch mit entsprechenden Einträngen wird als PDF-Datei gescrollt. Die entsprechenden Technik-Aufgaben (Sound, Licht, Nebel, etc) werden dann über entsprechende Buttons 'abgefahren'. Bisher geht problemlos das Abspielen von Sound-Dateien (über Mediaplayer gelöst) und das Steuern eines externen DMX-Programms (ESA2), indem ich bei einem Buttondruck einen SendKeys-Befehl an das Programm schicke. Auch Kombi-Buttons, die dann mehrere Sachen gleichzeitig machen funktionieren bestens. ABER !!! Mein größtes Problem ist die Steuerung des digitalen Mischpultes, um die Headsets der Darsteller zu muten/entmuten. Ich möchte sog. Stage-Mixer ansteuern, - also welche, die ihre Bedienoberfläche auf dem Computer haben. Als Versuch und Beispiel arbeite ch mit einem XR18 von Behringer. Die Bediensoftware auf dem Computer kann allerdings nicht über 'SendKeys' bedient werden. Allerdings kann das Mischpult über MIDI-Befehle gesteuert werden. Das soll mein Ziel sein. Es soll, wenn möglich so gehen: Meine Oberfläche (Button-Klick) => Sendet MIDIBEFEHL (Kanal, Wert, Value) über USB=>MIDI-Kabel an das Mischpult Wie bekomme ich nach Butto-Klick den MIDI-Befehl in das Kabel? Ich bin auch für Teillösungen, die mich der Lösung näher bringen sehr dankbar. Danke im Voraus, Gruß, edel
schau mal da https://sourceforge.net/projects/m-m/ Das ist zwar c++ aber die SendMessage() Funktion ist das was du brauchst.
Thomas Z. schrieb: > schau mal da > > https://sourceforge.net/projects/m-m/ > > Das ist zwar c++ aber die SendMessage() Funktion ist das was du > brauchst. Eher nicht. Er will das in VB.net programmieren. Das hilft ihm C++- und Lua-Scheiß erstmal kein bissel. Was er braucht, ist ein .net-Wrapper für das mmsystem-API (gibt es wohl nicht in brauchbarer Qualität, müsste er also selber schreiben). Und dann die Kompetenz, diesen zu benutzen. Der Ansatz über das mmsystem-API wird also für ihn wohl eher aussichtslos sein... Aber es gibt noch eine Alternative: das DirectShow-API. Zumindest für den Fall, dass der PC der Master des MIDI-Systems ist, sollte auch das reichen. Und dafür gibt es einen durchaus brauchbaren .Net-Wrapper. Die Kompetenz, den dann passend zu benutzen, wird allerdings nicht mit dem Download auf die Platte automatisch in's Gehirn des Programmierers gespült. Da muss man sträflich Doku lesen. Und noch viel Programmieren, um um die Fehler des API und des Wrappers herum lavieren zu können. Vermutlich wohl eher auch nix für den TO...
Wenn die Stage-Mixer OSC per Ethernet können (das XR18 kann das), kannst du das Muten darüber steuern. Das XR18 empfängt Kommandos über UDP, Port 10024. Falls Du die Ethernet Schnittstelle nicht direkt programmieren willst, geht ggf auch ein Kommandozeilenprogramm: z.B. https://github.com/yoggy/sendosc
Jo, - C-Hater - zunächst mal danke für deine Wertschätzung. Wenn du sowieso nicht glaubst, dass deine Hilfe für mich sinnvoll ist, lass sie doch einfach. Haben wir beide was von. Klaus H., jo, - diese Richtung wäre toll. Allerdings muss mein XR über Router angeschlossen sein, weil während der Shows unbedingt mit Tablet im Raum korrigiert werden muss. Und schwups - ist die Ethernet-Buchse belegt. Oder bekomme ich die Signale trotzdem irgendwie ans XR? Gruß, edel
Edel schrieb: > Und schwups - ist die Ethernet-Buchse belegt. Aber wenn der XR18 am Router hängt, dann kannst du doch den PC auch in das Routernetzwerk bringen. Der XR18 kann 3 Modes im Netzwerk: Ethernet, WiFi Client oder Access Point. Die ersten beiden integrieren XR18 in ein vorhandenes Netz - Nummer drei ist für Standalone Betrieb.
....aber natürlich. Ich werde der Idee nachgehen. :-) Ich melde mich, wenn es dazu Neues gibt. vielen Danke :-D
Edel schrieb: > Allerdings muss mein XR über Router angeschlossen sein, weil während der > Shows unbedingt mit Tablet im Raum korrigiert werden muss. Das geht problemlos. Ich hatte live schon 2 PCs per Ethernet plus 2 Tablets per WLAN verbunden. Da geht noch mehr. Wichtig: nutze nicht das im XR18 eingebaute WLAN, das ist Mist. Wenn du WLAN brauchst nimm einen Router mit WLAN, ich nutze eine alte Fritzbox. Man kann auf einem PC auch gleichzeitig die X-Air Software nutzen und mit einem anderen Programm OSC Kommandos senden. Sollten halt nicht alle gleichzeitig Muten/Unmuten. Aus Erfahrung gewinnt dann immer das letzte Kommando 😊 Übersicht der M-Air OSC Befehle: https://behringer.world/wiki/doku.php?id=x-air_osc Zum Muten von Channel 1 sendet man z.B. /ch/01/mix/on mit dem Integer-Parameter 0
Ist das alles betriebssicher, was das übers Netz geschickt wird? Wie sieht es denn mit Verzögerungen und Reaktionszeiten aus? Wäre drahtloses MIDI nicht einfacher? Man lädt eine beliebige DAW auf das tablet und nutzt Mackie/HUI Protokoll.
Andreas F. schrieb: > Ist das alles betriebssicher, was das übers Netz geschickt wird? Unproblematisch. Die Ethernet Schnittstelle nutzt 100Mbit/s (oder mehr). Bisher hab ich keine kritischen Verzögerungen gehabt. Midi nutzt 31kBit/s zur Datenübertragung. Drahtloses Midi (ich meine es nutzt hauptsächlich Bluetooth) gibt am Stecker wieder die gleiche Datenrate aus. Ethernet hat ein paar Vorteile: * Größere Kabellänge als MIDI * Etwas mehr Prüfdaten/CRCs * Alle Stecker sind gegen Abziehen gesichert. Das haben weder USB noch Midi. Problem sehe ich hier eher die Software. Die sollte robust sein und stabil laufen. Unerklärliches Verhalten und Abstürze während einer Veranstaltung erhöhen den Adrenalin-Pegel.
Klaus H. schrieb: > Midi nutzt 31kBit/s zur Datenübertragung Allerdings wird bei Midi der Ton in dem Moment gestartet, wo der Befehl ankommt. Ein kurzer Delay von 100ms würde sich da schon sehr störend auswirken. Allerdings sind die Delays im Ethernet seit Ablösung der Hubs durch Switche typischerweise im einstelligen ms Bereich. Deswegen geht das inzwischen so unkompliziert.
Stefan F. schrieb: > Allerdings wird bei Midi der Ton in dem Moment gestartet, wo der Befehl > ankommt. Es geht hier um Muten/Unmuten von Mikros, was sonst händisch der Mann am Mischpult direkt drückt. Da kommt es IMHO nicht auf Millisekunden an.
Beitrag #7369648 wurde von einem Moderator gelöscht.
Beitrag #7369862 wurde von einem Moderator gelöscht.
Oder ein ganz anderer Ansatz : erzähle Windows nicht, dass es MIDI ist. Nutze einen USB-olle asynchrone serielle Schnittstelle- Wandler. MIDI unterscheidet sich ja nur in 2 Dingen vom alten COM-Port : - der Baudrate 31,25 kBaud sind abseites von MIDI absolut unüblich und waren mit den damaligen Schnittstellenbausteinen und den dazugehörigen Quarzen unmöglich. Mittlerweile sollte dass kein Problem mehr sein. - den Bustreibern. V.24 benutzte +12V bzw. -12V gegen Masse. MIDI nutzt 5V TTL Pegel mit 220 Ohm in Reihe gegen +5V mit 220 Ohm in Reihe. Von FTDI gibt es z.B. Kabel mit deren Wandlerchip in einem USB-Stecker versteckt. Am anderen Ende des Kabels sind lauter offene Enden. +5V USB und TxD geschnappt, zwei 220 Ohm Widerstände und eine 5-polige DIN-Buchse dran und es kann los gehen. Wenn Du auf Nummer sicher gehen willst, kannst Du auch noch ein leicht tauschbares, robustes Treiber IC dazwischen setzen. ESD oder Unachtsamkeiten grillen dann erstmal nur das Treiber IC. Wenn Du nicht weißt, was geschickt werden muss, ist auch noch die Beschaltung mit dem Optokoppler an RxD fällig, um die Bytes von anderen Geräten empfangen zu können. Werden vermutlich irgendwelche SysEx-Kommandos sein.
Stefan F. schrieb: > Allerdings wird bei Midi der Ton in dem Moment gestartet, wo der Befehl > ankommt. Ein kurzer Delay von 100ms würde sich da schon sehr störend > auswirken. Allerdings sind die Delays im Ethernet seit Ablösung der Hubs > durch Switche typischerweise im einstelligen ms Bereich. Deswegen geht > das inzwischen so unkompliziert. Darauf wollte ich hinaus. Ein Delay von 10ms ist bei Tönen schon völlig unakzeptabel, auch weil es uneinheitlich ist. Die Frage ist auch weniger, bo der Hub oder der Switch das kann, oder die Bandbreite nicht reicht. Es sind eher solche Sachen wie Windowstreiber und Buffer, die die Angelegenheit in die Länge ziehen. Ich nehme aber an, dass in vorliegenden Fall, wo nur Lichter an und ausgehen sollen, einige 100ms rein Problem sein sollten. Ich frage mich nur, warum das nicht vollständig mit DMX gelöst wird. Wir sind mit der Band öfters bei Auftritten unterwegs und der Lichtmann steuert das alles von einem Pult aus. Inklusive Stagemixer wie sie im Forum auch schon angesprochen wurden. Es gibt eigentlich nur den einen Fall der Steuerung von Effektgeräten, weil die auf die Note exakt umgesetzt werden müssen.
Andreas F. schrieb: > wo nur Lichter an und > ausgehen sollen, einige 100ms rein Problem sein sollten. Ich frage mich > nur, warum das nicht vollständig mit DMX gelöst wird. Mikrofone muten über DMX? Hier gehts nicht um Lichter, sondern um die Fernsteuerung eines Stagemixers für Audio. Das sind diese kleinen Dinger, die du mit dem Tablet aus dem Zuschauerraum steuern kannst. Die Muteknöpfchen sollen aus einem Skript kontrolliert werden.
Matthias S. schrieb: > Mikrofone muten über DMX? Hier gehts nicht um Lichter, sondern um die > Fernsteuerung eines Stagemixers für Audio. Das sind diese kleinen > Dinger, die du ... Versteh nicht ganz warum du gehässig wirst. So etwas wird gemacht. Steuerung von Audio über DMX - OSC. Siehe z.B. https://www.lightjams.com/osc.html Alles eine Frage der Anforderungen.
Hallo wieder zusammen, ich finde es sehr nett, wie ihr euch des Themas annehmt und ich bin in alle Richtungen gegangen. Wenn ihr meine gepostete Bedienoberfläche im ursprünglichen Text seht, könnt ihr sehen, dass es um eher nicht ganz so professionelles geht. Das ganze soll auf einer mittleren Freilichtbühne (hat nur einen 7"-Container als FOH - also wenig Platz) und auf meiner mobilen Bühnen (ebenfalls sehr klein) laufen. Darum also die Idee, möglichst alles von einer Person und von einem Rechner aus zu steuern. Licht und Sound bisher kein Problem. Nur das XR18 anzusteuern klappt bisher nicht. Mit OSC ist mir die Sache ehrlich gesagt schon wieder zu hoch. Das XR über MIDI ansteuern wäre schon meine Intention. Aber ich habe es noch nicht geschafft, die Mute-MIDI-Signale (über ein USB-MIDI-Interface) an das XR zu bringen. Am besten wäre einer von folgenden beiden Wegen: 1. Ein möglichst einfaches Programm, dass MIDI-Befehle auf Tastendruck sendet (das ich dann über meine Anwendung fremd-steuern kann / mach ich mit der Lichtsteuerung ESA2 auch so) 2. Eine möglichst eifache Programmstruktur zum direkten Senden der MIDI-Befehle über das MIDI-Interface ans XR. (NUR muten und entmuten) Es tut mir leid, wenn ich mich nicht so richtig klar ausdrücke, damit ihr wisst, wass mein Wunsch ist. Vielleicht ist es jetzt klarer geworden. Nochmals vielen Dank und Gruß in die nette Runde, edel
Vielleicht kommst du ja mit Midi-OX weiter. Das Programm ist zwar alt aber ist skriptfähig. Du must halt irgendwie die COM Interfaces basteln. COM = Comon Object Model
:
Bearbeitet durch User
Frank O. schrieb: > Oder ein ganz anderer Ansatz : erzähle Windows nicht, dass es MIDI ist. > Nutze einen USB-olle asynchrone serielle Schnittstelle- Wandler. MIDI > unterscheidet sich ja nur in 2 Dingen vom alten COM-Port : D.h. du erwartest, dass sich der UART-Adapter auf die Schnittstelle synchronisiert? Mit welcher Frequenz würdest du operieren wollen? Ich hatte meinen frühen MIDI-Receivern dieses Interface verpasst. Übersetzt die gängigen 38400 auf MIDI. Man nehme ein 24 MHz Quarz und erzeuge sich durch Teilen mit den Divisoren 625 sowie 768 die zueinander kompatiblen Frequenzen von 38400 und 31250, sowie zwei downsampler die davon getrieben werden und füttere beide über ein selbsteinstellendes Flanken-Detektor-Delay mit den eingehenden Bits. Diese schiebe man in ein FIFO/Register und puste sie mit dem anderen Takt hinaus. Beim schnellen Eingangstakt kann man sofort nach Erkennen des Start-Bits loslegen- beim langsamen Takt nach einer Pufferzeit von 3 oder 4 Bits, um das Ende nicht zu überrennen. Damit entstehen auf der schnellen Seite beim Weitersenden kleine Datenpakete mit Lücken und beim Empfangen muss darauf geachtet werden, dass Lücken im 38400er Takt enthalten sind. Die Latenz ist bei gutem timing im Bereich 1 Bit -> 50 us
Klaus H. schrieb: > Versteh nicht ganz warum du gehässig wirst. Was ist daran gehässig? Du hast einfach das erste Posting nicht gelesen, wo der TE sagt, was er braucht. Ein XR18 hat nun mal kein DMX, sondern TCP/IP über Ethernet und WLAN sowie MIDI.
:
Bearbeitet durch User
Klaus H. schrieb: > Steuerung von Audio über DMX - OSC. Viele Licht-Steuerpulte sind mit MIDI gekoppelt. Die meisten auf Input, nehmen es als Rythmus- und Steuerinfo. Es gibt aber auch welche, die die Controller auf MIDI übersetzen. Mein Controller macht das auch, fasst dazu 8 MIDI-Kanäle zu einem 8-fach Multiplex mit 250kbps zusammen und sendet es als DMX. Umgekehrt kann er ein Universum auf 2x8 MIDI-Kanäle in Echtzeit routen. Hat auch ein Kunde gekauft und in seinem Gerät drin. Der Vorteil ist, dass die modernen Pulte es erlauben, ganze Szenarien abzuspeichern und abzuspielen. Die Überetzung geht runter bis auf einzelne Bits, die Relais schalten. Da sind Licht-, Audio- und sogar die Bühneneffekte mit Vorhangkontrolle mit enthalten, teilweise die Lasersteuerung für 3D-Lasershows. Auch einige Vidiowalls lassen sich damit kontrollieren. Ein Kunde von mir macht solche Installationen. So kann letztlich ein Person alleine eine ganze Opernaufführung abreissen. Spart Personal bei der Aufführung.
Beitrag #7375863 wurde vom Autor gelöscht.
Jürgen S. schrieb: > Man nehme ein 24 MHz Quarz und erzeuge sich durch Teilen mit den > Divisoren 625 sowie 768 die zueinander kompatiblen Frequenzen von 38400 > und 31250, > sowie zwei downsampler die davon getrieben werden und füttere beide über > ein selbsteinstellendes Flanken-Detektor-Delay mit den eingehenden Bits. > > Diese schiebe man in ein FIFO/Register und puste sie mit dem anderen > Takt hinaus. Das geht. Klingt aber nach einigem Aufwand. Ich kenne Bastelanleitungen, da wurde einfach der Quarz des UARTs gegen einen mit einer anderen Frequenz getauscht, so dass danach die 31250 Baud direkt einstellbar waren. Bei den heutigen USB auf RS232 Wandlern vermute ich, dass sie den Takt für die RS232 per PLL-Synthesizer aus den 24 MHz USB Takt gewinnen. Damit sollte dann 31,25 kBaud direkt machbar sein. Bei FTDI gibt es Anleitungen, was man lustiges in die Registry schreiben kann, so dass jeder, der auf einer Schnittstelle mit Wandlerchip von FTDI z.B. 38,4 kBaud auswählt in Wirklichkeit 31,25 kBd bekommt.
Frank O. schrieb: > Klingt aber nach einigem Aufwand Wenn man eh einen FPGA hat und MIDI lesen will ... damals war das halt naheliegend. Frank O. schrieb: > Bei den heutigen USB auf RS232 Wandlern vermute ich, dass sie den Takt > für die RS232 per PLL-Synthesizer aus den 24 MHz USB Takt gewinnen. > Damit sollte dann 31,25 kBaud direkt machbar sein. Bei FTDI gibt es > Anleitungen, was man lustiges in die Registry schreiben kann, so dass > jeder, der auf einer Schnittstelle mit Wandlerchip von FTDI z.B. 38,4 > kBaud auswählt in Wirklichkeit 31,25 kBd bekommt. Das kann gut sein. Die Frage wäre, ob das nicht die MIDI-Kabel so machen. Die würde ich nebenbei erwähnt so der so bevorzugen. Ein USB-2-MIDI-Adapter mit korrekter Frequenz und gleich richtigen Steckern bekommt man ja heute hinterher geworfen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.