SPIT MIDI Client

Kurze Erklärung MIDI
Verbinden mit einem Server
Auswahl der Midi Geräte
Fernsteuern des Servers - MIDI in
Senden von MIDI Befehlen durch Trigger - MIDI out
Das Speichern und laden von MIDI Einstellungen

Die MIDI Client Software basiert auf dem SPIT Protokoll (siehe www.liveSHOWSoftware.de). Die Software kann sich mit einem SPIT Server (z.B. die liveSHOWsoftware) verbinden, diesen über Midi Befehle fernsteuern oder anhand empfangener Trigger Midi Befehle senden.
Das SPIT Protokoll ist ein Netzwerkprotokoll daher kann die Midi Client Software auch auf einem anderen Rechner laufen, der über Netzwerk mit dem Rechner der Server Software verbunden ist. Es dürfen sich auch mehrere Midi Clients mit einem Server verbinden, jeder Midi Client kann darf mit unterschiedlichen Midi Befehlen konfiguriert sein.



Um den MIDI Client zu verwenden muss man kein MIDI Experte sein, es ist jedoch hilfreich wenigsten eine klein wenig Ahnung von MIDI zu haben. Daher folgt nun eine extrem zusammengefasste Erklärung zu MIDI, wer es genauer wissen will kann bei der MIDI Association  (www.midi.org) nachlesen.

Kurze Erklärung zu MIDI:

MIDI (Musical Instrument Digital Interface) ist ursprünglich ein Industriestandard für den Austausch von musikalischer Steuerinformation zwischen elektronischen Instrumenten. MIDI. wurde Dave Smith in Kooperation mit Ikutaro Kakehashi von der Roland Corporation entwickelt und im August 1982 eingeführt, In der Zwischenzeit wurde MIDI mehrfach erweitert. Ein Beispiel für die Verwendung von MIDI ist ein Keyboard. Mit jedem Tastendruck wird ein MIDI Befehl an einen Synthesizer gesendet, der dann aus diesem MIDI Befehl einen hörbaren Ton erzeugt.
Im Prinzip besteht jeder MIDI Befehl aus einer Anzahl von Bytes, die zwischen den Geräten hin- und her gesendet werden. Es gibt im Prinzip drei Kategorien von Midi Befehlen:
  1. SHORT Messages
    Hier werden immer drei Bytes gesendet. Je nach Befehl werden die Bytes anderst interpretiert Das erste Byte enthält immer die Befehlskennung und den MIDI Kanal. Das zweite und dritte Byte enthalten Werte. Ein Tastenanschlag auf einem Keyboard könnte zum Beispiel folgenden Midi Befehl erzeugen:  99 31 7F
    Das erste Byte enthält den Befehl und den MIDI Kanal (99 9x = Note ON, x9 = Kanal 10), das zweite Byte enthält in diesem Fall den Notenwert (31 =   C#3),  das dritte Byte enthält die Anschlagstärke.
    Würde dieser Befehl an einen MIDI Synthesizer gesendet werden, so hört man einen lauten Beckenschlag (Kanal 10 sind die Percussion Instrumente, C#3 ist ein Becken und 7F ist der höchste Anschlagwert)
    Wird die Taste wieder losgelassen, könnte folgender Befehl erzeugt werden: 99 31 00  Dies ist der gleiche MIDI Befehl, nur mit dem Anschlagwert 00, dies wird als Note Off interpretiert.
    EIn Tonmischpult würde diesen Befehl komplett anderst interpretieren, z.B. könnte es sein, dass mit 99 31 7F das muten von Kanal 1 ausgelöst wird.
  2. SYSEX Messages
    Hier können mehrere Bytes gesendet werden, es gibt jedoch einen festen Aufbau der Bytes:
    F0 7F 01 04 01 xx..  F7 (F0 ist immer das Statusbyte, 7F ist der Gerätehersteller, 01 ist die DeviceID, 04 ist  die SubID1, 01 ist die SubID2, xx.. ist eine Folge von Datenbytes, F7 ist immer EOX).
    Der Aufbau Statusbyte, Herstellerbyte, DeviceID, SubID1, SubID2, Datenbytes, EOX ist immer vorhanden. Die Länge der Datenbytes kann variieren. Schaut man un den MIDI Spezifaktionen nach, so wird dieser Befehl die Hauptlautstärke auf ca. 50% einstellen. 
    Je nach MIDI Gerät kann dieser Befehl aber auch anderst interpretiert werden. SYSEX Nachrichten eröffnen ein weites Feld an möglichen Befehlen.
    Problem: Nicht alle Geräte verstehen SYSEX Nachrichten und es gibt wohl teilweise auch Probleme in der Verständigung.
  3. Midi Timecode
    Der Midi Timecode ist ein Zeitsignal. Die Idee ist, dass es einen Sender gibt, der eine Zeit sendet und alle anderen Geräte reagieren auf eine bestimmte Zeit. So lassen sich Geräte zeitlich synchronisieren.
    Die liveSHOWsoftware könnte als Zeitgeber agieren, es könnte aber auch ein Midi Timecode Modem die Rolle des Zeitgebers übernehmen.
    Der Midi Timecode ist eine Mischform aus Midi Sysex und Midi Short Befehlen. Immer wenn gesprungen wird (vorspulen, Sprung in einer Timeline etc.) wird ein Midi Sysex Befehl mit der aktuellen Zeit gesendet (Full Frame Nachricht).
    Wenn eine Sequenz abgespielt wird (Timeline, Modem gestartet, etc.), werden Midi Short Befehle gesendet. Die Midi Short Befehle beinhalten jedoch nicht die komplette Zeitangabe. Für die Übermittlung eines Zeitpunktes werden 8 Midi Short Befehle benötigt, dabei wird nur jeder zweite Frame gesendet (Quarter Frame Nachricht).
    Der Midi Tmecode stammt aus der Zeit des Filmschnitts, daher werden nicht Milliskunden Auflösungen gesendet sondern es wird in Frameraten aufgelöst (24-, 25, oder 30- Frames pro Sekunde). Die SPIT_MidiClient Software verwendet jedoch Angaben in Millisekunden und rechnet diese in Framraten um, dies ist einfacher zu bedienen. 
    Hinweis: Da Windows oder Mac OS keine Echtzeit-Betriebssysteme sind, kann es beim Senden von Timecode eventuell zu Unregelmäßigkeiten kommen. Ein Empfänger, der die Timecode Nachrichten  sehr streng auf Plausibilität prüft, könnte die Nachrichten als nicht konsistent abweisen.
Nachdem es viele Geräte gibt, die MIDI Nachrichten empfangen oder senden können, wurde das MIDI Protokoll auch für andere Zwecke ausser der Instrumentenansteuerung verwendet.  So gibt es zum Beispiel einen Unterbereich von MIDI für die Show Steuerung (MIDI SHOW CONTROL)..
Wie im obigen Abschnitt erklärt ist im Prinzip aber alles eine Sache der Interpretation eines MIDI Befehles. So kann der Notenbefehl  99 31 7F im MIDI  Client, zum Beispiel dem Sprung zur nächsten Szene zugewiesen werden.

Danke: An dieser Stelle sei Derek Cook für die Entwicklung von CoreMidi4j gedankt. Ohne CoreMidi4j wäre es nicht möglich mit dem SPIT_MidiClient auf dem Mac OSX Sysex-Nachrichten zu empfangen oder zu senden.
 

Den MIDI Client mit einem Server verbinden



Wenn die liveSHOWsoftware (SPIT Server) verwendet wird, so findet die MIDI Client Software alle laufenden liveSHOWsoftware Instanzen automatisch. Hierzu muss eine Netzwerkverbindung zwischen den Rechnern bestehen oder der MIDI Client auf demselben Rechner wie die liveSHOWsoftware laufen.
Die gefundenen SPIT Server werden in der Auswahlliste links oben angezeigt. Hier können Sie den Server auswählen und mit verbinden.
Hat die Verbindung funktioniert, so wird unterhalb der Auswahlliste der Computername des Servers, die Kennung der Serversoftware und der Name des geladenen Projektes angezeigt.

Wurde der MIDI Client einmal mit einem Server (Serversoftware) verbunden, so kann er sich später automatisch mit der Serversoftware verbinden, sobald ein Server im Netzwerk gefunden wurde, auf dem die Software läuft und 'automazisch verbinden' ausgewählt wurde..

Verbindet den MIDI Client mit dem ausgewählten Server
Trennt die Verbindung zum Server
Ist dies aktiviert, so wird automatisch eine Verbindung hergestellt, wenn ein passender Server gefunden wurde.
Hierzu muss beim ersten Programmstart einmal eine Verbindung händisch hergestellt werden.
Zeigt die Hilfe für den MIDI Client an
Alle Einstellungen können in einer Datei gespeichert werden.
Die MIDI Einstellungen sind eng mit dem Projekt des Servers verknüpft. Um diesen Zusammenhang erkennbar zu machen, sollten Sie immer den gleichen Dateinamen wie das Projekt des Servers verwenden.
ACHTUNG: Wenn Sie ein Server Projekt auf einen anderen Rechner portieren (z.B. vom Bürorechner auf den Showrechner, so müssen Sie daran denken auch die entsprechenden MIDI Einstellungs Datei auf den anderen Rechner zu kopieren.
Die gespeicherten Einstellungen können aus aus einer Datei geladen werden.
Ist dies aktiviert, so wird beim Start des MIDI Clients automatisch die zuletzt geladenen/gespeicherten Einstellungen geöffnet.
Hier wird die Spielzeit des Servers angezeigt.
In der liveSHOWsoftware ist dies die Postion des Mediencursors.

Auswahl der Midi Geräte

Midi Geräte können z.B. Synthesizer, Keyboards, Midi Controller, Mischpulte, USB Interfaces, Midi Timecode Modems,... sein.
Je nach Art des Gerätes können Midi Befehle gesendet oder empfangen werden.
Wenn ein Midi Gerät Befehle senden kann, so kann es den verbunden SPIT Server fernsteuern (Midi in).
Wenn ein Midi Gerät Befehle empfangen kann, so kann der verbundene SPIT Server Befehle an das Midi Gerät senden (Midi out).

In der SPIT_MidiClient Software werden unter Midi in oder Midi out die angeschlossenen Midi Geräte aufgelistet.



Vor jedem Gerät befindet sich en Kästchen  , über dieses können die Geräte aktiviert oder deaktiviert werden.
Es gibt USB Interfaces, die nicht als vollständiges Midi Gerät gebaut sind, sondern über einen CommPort Midi Daten mit dem Rechner austauschen. Diese Geräte werden nicht automatisch aufgelistet, sondern müssen explizit hinzugefügt werden .
Ein Beispiel für solch ein Gerät ist das Enttec USB DMX Pro MK2.

Öffnet ein Auswahlfenster für CommPort Geräte oder dem virtuellen 'Timecode Loopback' Gerät.
Löschr ein ausgewähltes Gerät aus der Liste (nur CommPort Geräte oder 'Timecode Loopback'
Öffnet ein Einstellungs-Fenster für ein CommPort Gerät.


Wenn sie auf klicken öffnet sich en Fenster, in dem Sie ein CommPort Gerät auswählen und mit hinzufügen können:


Sie können hier ein CommPort Gerät oder das virtuelle 'Loopback Timecode' Gerät auswählen. Und mit hinzufügen.

'Loopback Timecode' ist zum Testen gedacht und sollte nicht im Liveeinsatz verwendet werden.
'Loopback Timecode' ist ein virtueller Empfänger, der die gesendeten Midi Timecode Befehle wieder an die SPIT_MidiClient Software zurück gibt.

Wenn Sie ein CommPort Gerät hinzufügen, öffnet sich automatisch ein Einstellungsfenster, in dem Sie den CommPort eingeben und das Gerät verbinden können.
Das Einstellungsfenster erreichen Sie auch über .

 

Fernsteuern des SPIT Servers (z.B. liveSHOWsoftware) - MIDI in

Das Prinzip: Der SPIT Server (z.B. liveSHPWsoftware) teilt dem Midi Client mit, welche Fernsteuerbefehle existieren. Im Midi Client können jedem Fernsteuerbefehl ein Midi Befehl zugeordnet werden.
Der Midi Befehl kann z.B. durch einen angeschlossenen Midi Controller gesendet werden. So können Sie im Fall der liveSHOWsoftware z.B. durch Drücken einer Midi-Controller-Taste in die nächste Szene wechseln.



Zuerst sollten Sie ein MIDI-Gerät als Eingang für den MIDI Client auswählen. Alle angeschlossenen MIDI Geräte werden in einer Tabelle angezeigt:



Wenn Sie die Checkbox vor dem Namen eines Gerätes anklicken, wird das Gerät mit dem MIDI Client verbunden und es können von diesem Gerät MIDI Befehle empfangen werden. EIn solches Gerät könnte z.B. ein MIDI Controller oder MIDI Keyboard sein.

Anmerkung: Es gibt Geräte, die sowohl MIDI Befehle senden (unter Type als Remote angezezeigt) als auch Geräte, an die MIDI Befehle gesendet werden können (unter Type als Trigger angezeigt). Für die Fernsteuerung benötigen wir Geräte, die MIDI Befehle senden (Remote) und an dem Rechner am MIDI in Port angeschlossen sind.

Der SPIT Server (z.B. die liveSHOWsoftware) sendet an die verbundenen MIDI Clients alle möglichen Fernsteuerbefehle. In der Liste dieser Befehle können Sie einen auswählen.
Mit dem Suchfeld können Sie die Liste einschränken.



Diesem Fernsteuerbefehl, kann nun ein MIDI Befehl zugeordnet werden. Dies geschieht auf der rechten Seite neben der Liste der Fernsteuerbefehle.

Bei MIDI Controllern / Keyboards ist jeder Taste oder Schieberegler ein MIDI Befehl zugeordnet, der beim Betätigen der Taste gesendet wird. Da meistens das Benutzerhandbuch des MIDI Controllers nicht vor Ort ist und es aufwendig ist Bytefolgen einzugeben, kann solch ein Befehl auch von dem MIDI Client gelernt werden:



Wenn Sie mit der Maus auf das grün umrandeten Lernfeld klicken, wird dieses grün ausgefüllt und das gesamte Fenster bekommt einen grünen Rahmen. Wenn Sie jetzt auf eine Taste etc. auf  Ihrem MIDI Controller / Keyboard drücken, so wird der gesendete MIDI Befehl auf der rechten Seite dargestellt. Der Befehl wird nur angezeigt und nicht ausgeführt.
Achtung: Sie müssen daran denken, das Lernenfeld wieder zu deaktivieren, indem Sie nochmals auf das Feld klicken. Solange das Lernfeld aktiviert ist und das gesamte Fenster einen grünen Rahmen besitzt wird kein Midi-Befehl ausgeführt!

Natürlich dürfen Sie auch den MIDI Befehl direkt eingeben und verändern.
Wenn Sie die genaue Bytefolge kennen können Sie diese auch in der Liste der Fernsteuerbefehle in der Spalte 'MIDI IN' eingeben. Hierzu klicken Sie einfach doppelt auf die entsprechende Tabellenzelle.

ACHTUNG: Das Drücken einer Controller oder Keyboardtaste löst meistens zwei MIDI Befehle aus.
Der erste MIDI Befehl wird gesendet, wenn die Taste gedrückt wird. Hier ist meistens noch die Anschlagstärke als Wert angegeben.
Der zweite MIDI Befehl wird gesendet, wenn die Taste losgelassen wird. Hier ist es entweder der gleiche Befehl wie beim Drücken der Taste, es wird dann meist der Wert 0 als Anschlagstärke angegeben. Es kann aber auch ein anderer MIDI Befehl sein.
Zum Beispiel sendet ein Keyboard in der Regel beim Drücken einer Taste den MIDI Befehl 'Note on' mit der Anschlagstärke als Wert und beim Loslassen entweder den Befehl 'Note on' mit der Anschlagstärke 0 oder den Befehl 'Note off'.
Welcher Befehl gesendet wird, ist abhängig vom MIDI Gerät oder dessen Einstellungen.

Es gibt zwei Arten von Fernsteuerbefehlen des SPIT Servers:
  1. Fernsteuerbefehle ohne Wertangabe: z.B. der Sprung zur nächsten Szene
  2. Fernsteuerbefehle mit Wertangabe: z.B. Verändern des Lautstärkereglers, hier wird die Lautstärke als Wert mit angegeben.
Bei MIDI Controllern gibt es:
  1. Tasten (diskrete Wertangaben)
  2. Schieberegler oder Drehräder/Knobs (kontinuierliche Wertangaben).
Fall 1: Sie wollen einen Sprung zur nächsten Szene einstellen, also einen Fernsteuerbefehl ohne Wertangabe.
Hier könnte man auf den Wert des MIDI Befehls verzichten. Allerdings werden, wie oben erwähnt,  bei einem Tastendruck häufig zwei MIDI Befehle gesendet, die sich vielleicht nur durch den Wert der Anschlagstärke unterscheiden. Also muss noch eine Angabe gemacht werden, wann der Fernsteuerbefehl ausgelöst wird:



Hier können Sie eine Bedingung und einen Wert in Prozent angeben. Erst wenn die Bedingung zutrifft, wird der Fernsteuerbefehl ausgelöst.
Bei der in der Grafik gezeigten Einstellung (Wert <= 0) und einer Keybordtaste (wie oben beschrieben) wird der Fernsteuerbefehl erst beim Loslassen der Taste ausgelöst.
Solch eine Bedingung (Wert <= 0) ermöglicht es auch mit einem MIDI Schieberegler z.B. einen Sprung zur nächsten Szene auszulösen. Wenn Sie den Schieberegler nach oben schieben passiert nichts, erst wenn Sie den Schieberegler auf die Nullstellung fahren, wird der Fernsteuerbefehl ausgelöst.

Fall 2: Sie wollen z.B. eine Lautstärke mit einem MIDI Schieberegler verändern, also einen Fernsteuerbefehl mit Wertangabe auslösen.
Hier wird auf jeden Fall eine Wertangabe benötigt. Also wird man Schieberegler oder Drehregler des MIDI Controllers verwenden.
Schieberegler liefern meistens den aktuellen Positionswert im MIDI Befehl mit.
Drehregler können jedoch meist auf zwei Arten funktionieren. Entweder liefern Drehregler einen kontinuierlichen Wert (wie ein Schieberegler) oder sie liefern bei jeder Drehung einen Wert  >= 65 bzw. einen Wert <= 64, je nachdem ob sie in oder gegen den Uhrzeigersinn gedreht werden.
Also benötigen wir auch diesem Fall noch eine weitere Angabe:

 

Hier können Sie angeben, ob Sie den Wert aus dem MIDI Befehl direkt (Schieberegler) verwenden möchten, oder ob Sie bei den Fernsteuerwert um einen Prozentsatz erhöhen oder erniedrigen möchten. Erhöht wird dabei, wenn ein MIDI Befehl einen Wert über 50% des MIDI Wertebereiches (klassisch >= 65) liefert. Bei einem Wert unter 50% des MIDI Wertebereiches (klassisch <= 64) wird der Fernsteuerwert um den Prozentsatz erniedrigt.
Der Prozentsatz muss keine ganze Zahl sein, Werte wie 0.5 sind erlaubt. Wenn Sie einen zu kleinen Prozentsatz wählen, kann es sein, dass Sie keine Veränderungen erreichen.


Empfangen von Timecode, Aktion zu einer bestimmten Zeit auslösen
Wenn ein Fernsteuerbefehl zu einem bestimmten Zeitpunkt ausgeführt werden soll, können Sie den Zeitpunkt eingeben (Midi Timecode).
Hierzu muss ein Midi Gerät ausgewählt sein, dass einen Midi Tmecode sendet.
Die macht nur für Fernsteuerbefehle Sinn, die keine Wertangaben benötigen. In der liveSHOWsoftware sind dies z.B. Hauptszenenbrücken oder Jingles. Einen Regler per Midi Timecode fernzusteuern macht keinen Sinn.

 
 
Die Zeit wird in folgendem Format angegeben: hh:mm:ss:mmm  (hh = Stunden, mm = Minuten, ss = Sekunden, mmm = Millisekunden)

Sie können aber auch die originäre Zeit des Fernsteuerobjektes (Position in der Timeline etc.) verwenden.
Der Befehl wird ausgeführt, wenn der angebene Zeitpunkt übermittelt wird.
In der Tabelle der SPIT Fernsteuer Objekte wird dies mit MTC und der Zeitangabe dargestellt.
Der Befehl wird ausgeführt, wenn die empfangene Zeit dem Startzeitpunktes des Fernsteuerobjektes entspricht.
In der liveSHOWsoftware ist dies z.B. der Startzeitpunkt einer Hauptszenenbrücke in der Timeline.
In der Tabelle der SPIT Fernsteuer Objekte wird dies nur mit MTC dargestellt.
 
Hinweis: Der SPIT_MidiClient macht keine strenge Überprüfung des Timecodes, es werden auch zeitlich inkonsistente Timecode Nachrichten akzeptiert.

Das Senden von Midi Befehlen durch Trigger - MIDI out

Das Prinzip: In der SPIT Server Software können Trigger angelegt werden, in der Midi Client Software kann einem Trigger ein Midi Befehl zugeordnet werden, der gesendet wird, wenn der Trigger von der Server Software gespielt wird.
Hierbei wird zwischen Triggertypen und Triggerobjekten unterschieden. In der liveSHOWsoftware können Triggertypen angelegt werden. Ein Triggertyp bechreibt namentlich eine gewünschte Aktion. Im SPIT_MidiClient können einem Triggertyp Midi Befehle zugeordnet werden. Wird in der liveSHOWsoftware ein Triggertyp in die Timeline (oder in das Jinglefenster) gezogen, so entsteht ein Triggerobjekt, das auf den Triggertyp verweist. Immer wenn ein Triggerobjekt von der liveSHOWsoftware abgespielt wird, wird dies dem SPIT_MidiClient mitgeteilt und dieser führt den zugewiesenen Midi Befehl aus. Es werden drei Situationen unterschieden, für jede Situation kann ein Midi Befehl zugeordnet werden:
  1. Das Objekt wird gestartet (Start)
    In der liveSHOWsoftware läuft der Playcursor gerade in das Objekt oder der Cursor wird in das Objekt gesetzt.
    Der zugeordnete Midi Befehl wird einmal gesendet.
  2. Das Objekt wird gespielt (dauernd)
    In der liveSHOWsoftware befindet sich der Playcursor innerhalb des Objektes.
    Der zugeordnete Midi Befehl wird immer wieder während des Abspielens gesendet.
  3. Das Objekt wird beendet (Ende)
    In der liveSHOWsoftware verlässt der Playcursor das Objekt.
    Der zugeordnete Midi Befehl wird einmal gesendet.



Um zu ermöglichen, dass ein MIDI Befehl an ein MIDI Gerät gesendet wird, muss zuerst angegeben werden an welche Geräte die Befehle gesendet werden. Alle angeschlossenen Geräte werden in einer Liste angezeigt:



Wenn Sie die Checkbox vor dem Namen eines Gerätes anklicken, wird das Gerät mit dem MIDI Client verbunden und es können vom MIDI Client aus MIDI Befehle an das Gerät gesendet werden Ein solches Gerät könnte z.B. ein Synthesizer oder eine Tonmischpult mit MIDI Fähigkeit sein.

Grundsätzlich wird zwischen Trigger Typen und Trigger Objekten unterschieden:
Jedes Trigger Objekt besitzt genau einen Trigger Typ. Ein TriggerTyp kann in mehreren Trigger Objekten verwendet werden.

Im Fall der liveSHOWsoftware können aus einem einem Trigger Typ mehrere Trigger Objekte in der Timeline erzeugt werden (siehe liveSHOWsoftware - Medien).

Welcher MIDI Befehl beim Abspielen eines Trigger Objektes gesendet wird, kann über die Zuordnung von MIDI Befehlen an einen Trigger Typ eingestellt werden.
In anderen Worten: alle Trigger Objekte, die denselben Trigger Typ als Quelle besitzen, werden beim Abspielen die gleichen MIDI Befehle senden. Für verschiedenen Trigger Typen können unterschiedliche MIDI Befehle eingestellt sein.

Der MIDI Client listet alle Trigger Typen auf, die in der jeweilgen SPIT Serversoftware (z.B. liveSHOWsoftware) erzeugt wurden.
Mit dem Suchfeld können Sie die Liste einschränken.



Wenn Sie einen Trigger Typ auswählen, können Sie diesem Trigger Typ MIDI Befehle zuordnen. Diese MIDI Befehle werden gesendet, wenn ein Trigger Objekt abgespielt wird, das diesen Trigger Typ als Quelle hat.
Wie oben schon beschrieben gibt es drei Ereignisse beim Abspielen eines Trigger Objektes:
  1. Start : Das Trigger Objekt wird gestartet oder der Play Cursor springt in das Objekt
  2. Ende: Der Play Cursor verlässt das Trigger Objekt
  3. Dauernd: Der Play Cursor befindet sich innerhalb des Objektes, es werden in regelmässigen Abständen Triggerereignisse gesendet
Jedem dieser Ereignisse kann ein eigener MIDI Befehl zugeordnet werden.

Ein kleines Anwendungsbeispiel:
Nehmen wir an, Sie besitzen ein Tonmischpult, das MIDI Befehle empfangen kann.
Sie wollen in einer Szene den Mikrofonkanal eines Schauspielers öffnen (Mute Channel 1 off), nach dieser Szene soll das Mikrofon wieder aus sein (Mute Channel 1 on).
In der liveSHOWsoftware könnten Sie hierzu einen Trigger Type "Mute Channel 1" anlegen. Diesen Trigger Typ ziehen Sie in die Timeline, dort entsteht ein Trigger Objekt. Dieses Trigger Objekt ziehen Sie über die Länge der Szene.
Dem Trigger Typ weisen Sie nun ein Start MIDI Befehl zu (MIDI Befehl für 'Mute Channel 1 off)  und einen Ende MIDI Befehl (MIDI Befehl für 'Mute Channel 1 on').
Nun ist der Kanal 1 offen (Mute off), sobald sich der Play Cursor innerhalb des Objektes befindet. Verlässt der Play Cursor das Objekt, so ist der Kanal 1 geschlossen (Mute on).

Zuerst geben Sie an für welches Ereignis der MIDI Befehl eingestellt werden soll:



Die Byte Einstellung des MIDI Befehls können Sie z.B. aus der Anleitung des MIDI Synthesizer oder des Tonmischpultes entnehmen.

Wenn das MIDI Gerät nicht nur MIDI Befehle empfangen, sondern auch senden kann, oder Sie von einem anderen Gerät einen Befehl übernehmen wollen, so können Sie auch das Lernfeld verwenden.
Hierzu müssen Sie unter MIDI in (Remote) das Gerät auswählen von dem Sie die Befehle lernen wollen und dann wieder zu MIDI out (Trigger) wechseln.



Wenn Sie mit der Maus auf das grün umrandeten Lernfeld klicken, wird dieses grün ausgefüllt.
Wenn Sie jetzt auf eine Taste etc. auf  Ihrem MIDI Controller / Keyboard drücken, so wird der gesendete MIDI Befehl auf der rechten Seite dargestellt. Der Befehl wird nur angezeigt und nicht ausgeführt.
Damit dies funktioniert müssen Sie unter MIDI in (Remote) ein MIDI Eingabegerät ausgewählt haben!
 
Achtung: Sie müssen daran denken, das Lernenfeld wieder zu deaktivieren, indem Sie nochmals auf das Feld klicken. Solange das Lernfeld aktiviert ist und das gesamte Fenster einen grünen Rahmen besitzt wird kein Midi-Befehl ausgeführt!

Natürlich dürfen Sie auch den MIDI Befehl direkt eingeben und verändern.
Wenn Sie die genaue Bytefolge kennen können Sie diese auch in der Liste der Trigger Typen in den Spalten 'MIDI Start', 'MIDI Playing' oder 'MIDI End' eingeben. Hierzu klicken Sie einfach doppelt auf die entsprechende Tabellenzelle.

Wenn ein Trigger Objekt abgespielt wird, so kann ein Wert mitgeliefert werden. Zum Beispiel werden beim Einfaden eines Trigger Objektes die Werte von 0% - 100%  geliefert. Oder das Grundvolumen/-helligkeit eines Trigger Objektes ist auf 50% eingestellt.  Dann wird nur ein Wert von 50% geliefert.

Bitte Beachten:

Es ist also notwendig genau zu überlegen, ob man den Wert aus dem Trigger Objekt verwendet oder den im Befehl angegebenen (festen) Wert verwendet.
Sie können festlegen, ob für den MIDI Befehl der fest eingestellte Wert (meistens Data 2, bei MIDISysex Befehlen ist der Wert in den Data Bytes versteckt) verwendet werden soll, oder ob der mitgelieferte Wert aus dem Trigger Objekt verwendet werden soll:



Wenn immmer ein Trigger Objekt abgespielt wird, wird entsprechend dem Ereignis der jeweilge MIDI Befehl abgespielt.


Unten im Fenster werden Ihnen der Vollständig halber die Trigger Objekte angezeigt.
Mit dem Suchfeld können Sie die Liste einschränken.




Es werden die Gruppe und Name des zugeordnete Trigger Typs, der Name des Objektes, der Startzeitpunkt und die Länge angezeigt. Wird das Objekt abgespielt, so wird der mitgelieferte Wert und die akzuelle Position innerhalb des Objektes angezeigt.

Senden von Timecode
Wenn ein SPIT Trigger Objekt abgespielt wird, kann für den Zeitraum des Abspielens ein Timecode gesendet werden. Die Midi Timecode Nachrichten werden an alle ausgewählten Midi Geräte (Midi out) gesendet.
Hinweis: Da Windows oder Mac OS keine Echtzeit-Betriebssysteme sind, kann es beim Senden von Timecode eventuell zu Unregelmäßigkeiten kommen. Ein Empfänger, der die Timecode Nachrichten  sehr streng auf Plausibilität prüft, könnte die Nachrichten als nicht konsistent abweisen.
Die Startzeit kann bei 'Midi Timecode' angegeben werden.

Es macht hier nur Sinn für den Start eines Objektes eine Zeit anzugeben:  



Sie können ene beliebige Startzeit eingeben oder die originäre Startzeit des Trigger Objektes verwenden.
Die Zeit wird in folgendem Format angegeben: hh:mm:ss:mmm  (hh = Stunden, mm = Minuten, ss = Sekunden, mmm = Millisekunden)

Wenn das Objekt abgespielt wird, werden Timecode Nachrichten gesendet. Der Startzeitpunkt ist die angegebene Zeit.
In der Tabelle der SPIT Typen wird dies mit MTC und der Zeitangabe dargestellt
Der Startzeitpunkt wird von der Startposition des jeweilgen Trigger Objektes übernommen.
In der Tabelle der SPIT Typen wird dies nur mit MTC dargestellt.



Das Laden und Speichern von MIDI Einstellungen

MIDI Einstellungen sind abhängig von dem geladenen Projekt des SPIT Servers (z.B. liveSHOWsoftware). Daher sollte der Dateiname unter dem die Einstellungen gespeichert werden, dem Dateinamen des Server Projektes entsprechen. Der MIDI Client schlägt automatisch beim Speichern oder Laden den entsprechenden Namen vor - vorausgesetzt der MIDI Client ist mit dem Server vebunden.
Wenn Sie sich angewöhnen die MIDI Einstellungen immer im Projektordner des Servers zu speichern, so finden Sie recht schnell die zum Server Projekt passende Datei.

ACHTUNG: Wenn Sie ein Server Projekt auf einen anderen Rechner portieren (z.B. vom Bürorechner auf den Showrechner), so müssen Sie daran denken auch die entsprechenden MIDI Einstellungs Datei auf den anderen Rechner zu kopieren.

Alle Einstellungen können in einer Datei gespeichert werden.
Die MIDI Einstellungen sind eng mit dem Projekt des Servers verknüpft. Um diesen Zusammenhang erkennbar zu machen, sollten Sie immer den gleichen Dateinamen wie das Projekt des Servers verwenden.
ACHTUNG: Wenn Sie ein Server Projekt auf einen anderen Rechner portieren (z.B. vom Bürorechner auf den Showrechner, so müssen Sie daran denken auch die entsprechenden MIDI Einstellungs Datei auf den anderen Rechner zu kopieren.
Die gespeicherten Einstellungen können aus aus einer Datei geladen werden.
Ist dies aktiviert, so wird beim Start des MIDI Clients automatisch die zuletzt geladenen/gespeicherten Einstellungen geöffnet.

Anmerkung: Alle Trigger Typen, Trigger Objekte oder Fernsteuerbefehle, die im MIDI Client gelistet sind und nicht mit denen des Server Projektes übereinstimmen, werden mit einem roten Hintergrund dargestellt.