DE4341787C2 - System zur zeitkorrekten Auslösung von Echtzeitaktionen durch Befehlsequenzen - Google Patents

System zur zeitkorrekten Auslösung von Echtzeitaktionen durch Befehlsequenzen

Info

Publication number
DE4341787C2
DE4341787C2 DE19934341787 DE4341787A DE4341787C2 DE 4341787 C2 DE4341787 C2 DE 4341787C2 DE 19934341787 DE19934341787 DE 19934341787 DE 4341787 A DE4341787 A DE 4341787A DE 4341787 C2 DE4341787 C2 DE 4341787C2
Authority
DE
Germany
Prior art keywords
time
delay
receiver
actions
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19934341787
Other languages
English (en)
Other versions
DE4341787A1 (de
Inventor
Christoph Kemper
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE19934341787 priority Critical patent/DE4341787C2/de
Publication of DE4341787A1 publication Critical patent/DE4341787A1/de
Application granted granted Critical
Publication of DE4341787C2 publication Critical patent/DE4341787C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

Als Anfang der achtziger Jahre die Eckdaten für die MIDI-Schnittsteile festgelegt wurden, war die eigentliche Zielsetzung, Synthesizer untereinander kommunizieren zu lassen, das heißt, Daten von Tonhöhen und Anschlagsstärken der Noten, die auf einer Klaviatur gespielt werden, an einen Klangerzeuger zu übermitteln, um die Noten akustisch umzusetzen oder andere Aktionen auszulösen. Obwohl Musik eine Problem­ stellung ist, die aus ihrem Prinzip heraus eine vollständige parallele Verarbeitung durch die Schnittsteile und den Klangerzeuger verlangt, werden diese Komponenten aus wirtschaftlichen Gründen in den meisten Fällen seriell, verbunden mit einer entsprechen­ den Verarbeitungsgeschwindigkeit, in manchen Fällen auch teilweise parallel ausgeführt.
Die anfallende Datenmenge ist nicht sehr groß: es genügte damals in Hinblick auf die Datensicherheit und die Herstellungskosten eine serielle Schnittstelle mit einer relativ geringen Übertragungsrate von 31.5 kBaud. Im MIDI-Standard-Protokoll sind Befehle mit zwei oder drei Bytes Länge vorgesehen, wie beispielsweise die Note-On und die Note-Off-Messages (Befehle zum An- und Ausschalten einer Note bzw. eines Oszilla­ tors im Klangerzeuger) oder die Program-Change- und die Control-Change-Messages (Befehle zum Wechseln der Klangprogramme und zum Auslösen weiterer musikalischer Aktionen wie Vibrato, Klangfarben- und Lautstärkeänderungen). Die Übertragung des drei Bytes langen Befehlscodes einer Note-On-Message, den eine Klaviatur an einen Klangerzeuger sendet, wenn eine Taste angeschlagen wurde, dauert etwa 1 ms. Werden beim Spielen eines Akkords mehrere Tasten auf der Klaviatur gleichzeitig angeschlagen, so müssen die Befehle für die einzelnen Töne zwangsläufig nacheinander übertragen werden. Zur vollständigen Übertragung eines sechsstimmigen Akkords benötigt die Schnittstelle also ca. 6 ms, der letzte Befehl erreicht somit 5 ms später als der erste Befehl den Empfänger. Dieser Zeitversatz ist für den Menschen normalerweise noch nicht wahrnehmbar. Im Livebetrieb treten deshalb kaum nennenswerte Timingprobleme auf, da der Klangerzeuger normalerweise nur von einem einzigen Musiker bedient wird, wobei sich die anfallende Datenmenge pro Zeitpunkt in engen Grenzen hält.
Der Einsatz von Computern, welche in Verbindung mit der entsprechenden Software als Sequenzer genutzt werden, ermöglichte später das Aufzeichnen und Speichern der von einer Klaviatur oder anderen Eingabegeräten gesendeten Daten zusammen mit den Zeitpunkten ihres Eintreffens und wiederum das automatische Abspielen dieser Daten an einen oder mehrere Klangerzeuger, welche die Befehle in Töne und andere Aktionen umwandeln. In Verbindung mit modernen digitalen Klangerzeugern, die auf diese An­ wendung hin konzipiert wurden, lassen sich bis zu 16 verschiedene synthetische Instru­ mente über 16 adressierbare MIDI-Kanäle gleichzeitig in einem einzigen Klangerzeuger steuern und damit komplexe musikalische Arrangements realisieren kann.
Die digitale Steuerung von musikalischen Aktionen im Zusammenhang mit dem MIDI-Interface ist beispielsweise beschrieben im Buch: P. Ackermann, Computer und Musik, Springer-Verlag Wien-New York 1991, S. 186-203.
In diesem bekannten System, bestehend aus Sequenzer (Sender), Schnittstelle (Übertragungsweg) und Klangerzeuger (Empfänger), müssen in der Praxis teilweise 30 und mehr Befehle auf verschiedenen MIDI-Kanälen, jedoch über den selben MIDI-Port für den selben Zeitpunkt übertragen werden, was wegen der seriellen Arbeitsweise der Schnittstelle prinzipiell nicht zu einem einzigen Zeitpunkt möglich ist. Es ergeben sich hieraus unterschiedlich lange Blöcke von Aktionsbefehlen, wobei der jeweils erste Befehl noch rechtzeitig seinen Empfänger erreicht. Der zweite Befehl wird jedoch schon durch den ersten um ca. 1 ms verzögert, da bei Auftreten von mehreren Befehlen für einen Zeitpunkt diese im Puffer der Schnittstelle zwischengespeichert und nacheinander ausgegeben werden. Sie treffen somit zu spät ein, und das je nach Blocklänge mit wechselnder Verzögerung, die nur schwer zu beeinflussen ist.
Der Klangerzeuger verfügt im allgemeinen über eine CPU, welche für den Empfang und die Auswertung der MIDI-Befehle, sowie für die Auslösung der Klänge und deren Veränderung über die Zeit nach vorprogrammierten Abfolgen zuständig ist: ferner führt sie spontane Veränderungen des bereits klingenden Tones nach Eingang entsprechender Control-Change-Befehle durch (s. o.). Aus dieser Struktur ergibt sich sich eine weitere Quelle ungewollter Zeitverzögerungen in dem bekannten System. Die CPU des Klang­ erzeugers muß nämlich nach Empfang beispielsweise eines Note-On-Befehls die Para­ meter für den zu erzeugenden Klang berechnen, bevor mit der eigentlichen Ausgabe des Klanges begonnen werden kann, was je nach Schnelligkeit des Prozessors und der Komplexität der Berechnungen Zeiten im Millisekundenbereich in Anspruch nimmt, bevor der Klang einschwingt.
Müssen durch den Prozessor in dieser Zeit bereits andere Klänge kontinuierlich aus­ gegeben werden, nimmt diese Zeit abermals zu, weil dem Prozessor immer weniger Rechenzeit zur Verfügung steht. In diesen ungünstigen Fällen, die in der Praxis beim Betrieb mit Sequenzern jedoch regelmäßig auftreten, wird die ungewollte Verzögerung der musikalischen Ereignisse für das menschliche Ohr in Form von rhythmischen Ungenauigkeiten deutlich vernehmbar.
Mit diesem bekannten System läßt sich deshalb nur in einem sehr begrenzten Umfang bei geringer Datenauslastung oder alternativ unter Benutzung mehrerer paralleler MIDI-Ports und entsprechend vielen, nur geringfügig ausgelasteten Klangerzeuger einigermaßen exakt und somit musikalisch arbeiten. Dieses ist für den Anwender eines solchen Systems eine unwirtschaftliche und unbefriedigende Situation. Selbst bei Einführung einer erheblich schnelleren Schnittstelle bliebe das Problem der Zeit­ verzögerungen innerhalb des Klangerzeugers bestehen, diese lassen sich in dem bekannten System ausschließlich durch kostenintensive Beschleunigung und/oder Parallelisierung der beteiligten Hardware im Klangerzeuger verkleinern, jedoch nicht vollständig eliminieren.
Es ist Aufgabe der Erfindung, ein Verfahren zu schaffen, welches eine zeitlich exakte Auslösung von Aktionen durch zuvor aufgezeichnete Befehle ermöglicht, unabhängig von der Übertragungsweise der Schnittstelle und den erforderlichen Rechenzeiten der Empfänger.
Diese Aufgabe wird mit den Merkmalen des Patentanspruchs 1 gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen ausgewiesen.
Die Erfindung beruht auf zwei Tatsachen:
  • 1. Das Abspielen gespeicherter Aktionsbefehle per Sequenzer ist keine wirkliche Echtzeitanwendung wie z. B. das direkte Spielen eines Synthesizers über eine Tastatur, weil die Zeitachse im Speicher der Sequenzersoftware abstrahiert vorliegt und somit beliebig verfügbar ist. Der Sequenzer ist bezüglich dieser Daten somit ein nicht-kausales System. Dennoch werden in herkömmlichen Systemen diese Befehle wie Echtzeitbefehle behandelt, d. h. sie werden erst zum Sollzeitpunkt des auszu­ lösenden Ereignisses an den Klangerzeuger übermittelt, welcher nur eine möglichst kurze Zeit zur Verarbeitung dieser Daten und zum Auslösen der Aktion in Anspruch nehmen darf.
  • 2. Die MIDI-Schnittstelle ist nicht grundsätzlich überlastet, sondern nur zu den Zeit­ punkten, an dem zwei oder mehr Ereignisse gleichzeitig übertragen und ausgelöst werden sollen. Im zeitlichen Mittel ist die Auslastung jedoch relativ gering. Desweiteren ist die Rechenkapazität der Prozessoren in den Klangerzeugern auf diese Belastungsspitzen hin dimensioniert, so daß dazwischen ein Großteil des Potentials ungenutzt bleiben muß.
Bei diesen Belastungsspitzen treten große Blöcke mit vielen Note-On-Befehlen und anderen Befehlen auf, die theoretisch unendlich schnell über die Schnittstelle übertragen und vom Klangerzeuger verarbeitet werden müßten. Zu anderen Zeitpunkten ist der Übertragungsweg jedoch frei, und der Klangerzeuger ist lediglich mit der kontinuierlichen Ausgabe von Klängen beschäftigt, wobei sein Prozessor nur zu einem geringen Prozentsatz und vor allem gleichmäßig belastet ist.
Die Erfindung löst diesen Konflikt, indem sie durch eine entsprechende zeitliche Vorverlegung der beteiligten Prozesse die Belastungsspitzen entzerrt und auf der Zeitachse verteilt, wobei die Information über den Zeitpunkt der Aktion jedoch nicht verloren geht.
Bei dem erfindungsgemäßen System wird jedem Aktionsbefehl eine definierte Zeitverzögerung zugewiesen. Um einen entsprechenden Zeitvorhalt früher startet der Sequenzer die Übertragung des Befehls und um dieselbe Zeitdauer verzögert der Empfänger die dazu gehörige Aktion, z. B. die Klangausgabe. Hierbei dient der Beginn, das Ende oder ein anderer Punkt der Übertragung des Befehls dem Empfänger als absoluter Referenzzeitpunkt, wobei dieser Zeitpunkt plus die relative Zeitverzögerung den exakten Sollzeitpunkt für das Einsetzen des Klanges bzw. für das Auslösen der Aktion ergibt. Somit kompensieren sich die Vorverzögerung der Übermittlung und die Verzögerung der Aktion.
Die Zeit, die dem Prozessor des Empfängers zwischen dem Empfang eines Befehls und dem Auslösen der Aktion verbleibt, um die Prozesse zur Auswertung des Befehls und zur Vorbereitung der Aktion zu beenden, steigt damit von der geforderten kürzest möglichen Zeit auf die wesentlich längere Zeit, um die die Aktion verzögert werden soll. So können in diesem Modus ab einer bestimmten Mindestverzögerungszeit die Prozesse zur Klangdatenberechnung im Rahmen der gewählten Verzögerungszeit flexibel auf der Zeitachse verteilt werden. Die Mindestverzögerungszeit stellt die untere Grenze der verfügbaren Verzögerungszeiten dar und ergibt sich aus der maximalen Laufzeit dieser Prozesse im ungünstigsten Fall (worst case), welcher zum Beispiel auftritt, wenn der Empfänger die Anzahl von Noten empfängt, die seiner maximalen Polyphonie entspricht, oder ein Befehl eintrifft, während der Prozessor maximal mit der Ausgabe von Klängen belastet ist.
Das Ergebnis dieser Berechnung wird bis zum Verstreichen der Verzögerungszeit zwischengespeichert, dann erfolgt die eigentliche Auslösung der Aktion bzw. die Aufgabe des Klanges genau zum Sollzeitpunkt. Da die Prozesse nun flexibel gehandhabt werden können, werden kontinuierlich verfügbare Prozessorkapazitäten frei, welche beispiels­ weise für erhöhte Polyphonie im Sequenzbetrieb genutzt werden können.
Eine Art der Realisierung des erfindungsgemäßen Systems sieht eine Funktion vor, womit eine pro MIDI-Kanal unterschiedliche Verzögerungszeit manuell am Klang­ erzeuger aktiviert und eingestellt wird, die dazu entgegengesetzten Vorverzögerungs­ zeiten bei der Übertragung der Daten können bei bekannten Sequenzern in bekannter Weise durch entsprechendes Vorverzögern der betroffenen MIDI-Spuren bzw. MIDI-Kanäle justiert werden.
Benutzt der Anwender hierbei unterschiedliche Verzögerungszeiten, so werden die zeitkritischen Datenblöcke gesplittet und in einem großen Rahmen auf der Zeitachse verteilt, so daß sie sich nicht mehr beeinflussen.
Eine Weiterbildung der Erfindung ermöglicht es, gleichzeitige Aktionen auf ein und dem selben Kanal, wie zum Beispiel die Töne von Akkorden, Clustern oder überlagerten Schlagzeugsounds als Akkorde zu identifizieren und diese Töne zeitgleich und zum korrekten Zeitpunkt wiederzugeben, obwohl alle Befehle hierzu in diesem Fall der selben kanalbezogenen Vorverzögerungszeit unterliegen:
Erhält ein Klangerzeuger mit aktivierter Verzögerung einen Note-On-Befehl, so wird er diesen nach Ablauf der Verzögerungszeit als Klang wiedergeben. Folgen diesem Befehl unmittelbar und ohne Unterbrechung weitere Note-On-Befehle auf dem selben MIDI-Kanal, so ist dieser Datenblock als Akkord zu identifizieren, dessen Töne alle zum selben Zeitpunkt wie der erste erklingen sollen. Der Prozessor hat nun den Rest der verbliebenen Verzögerungszeit Gelegenheit, für alle Töne des Akkords die benötigten Berechnungen anzustellen, um nach Ablauf der Zeit - gerechnet vom Eingang des ersten Note-On-Befehls - alle Töne zeitgleich einschwingen zu lassen.
Das erfindungsgemäße System sieht ferner das vollautomatische und dynamische Management der Verzögerungszeiten durch den Sender vor, welcher die sinnvollen Verzögerungszeiten anhand der zeitlichen Strukturen der auszulösenden Aktionen ermittelt und die Information über diese Verzögerungszeiten zusammen mit den Aktions­ befehlen oder in einem gesonderten Befehl vor den betroffenen Aktionsbefehlen an den Empfänger übermittelt.
Im Falle des MIDI-Systems bietet sich hierzu die Definition eines neuen, noch nicht belegten kanalbezogenen Control-Change-Befehls im Rahmen des MIDI-Standard-Pro­ tokolls zur Übermittlung dieser Zeitinformation pro MIDI-Kanal an, wobei auch hier die oben genannte Methode zur Erkennung von Akkorden zum Einsatz kommen soll.
Der zulässige Wertebereich von 0-127 muß sinnvoll aufgeteilt werden. Eine lineare Zuordnung auf 100-354 ms Verzögerung erscheint hier praktikabel. Die sich daraus ergebende Auflösung von 2 ms ist ausreichend: die nutzbare Zeit von 254 ms genügt für jede musikalische Anwendung. Die Mindestverzögerungszeit von 100 ms ist überdimen­ sioniert, und erlaubt dem Empfänger deshalb eine großräumige Verteilung der Prozesse innerhalb der Verzögerungszeit, ermöglicht desweiteren dem Anwender eine Identi­ fikation von Übertragungsfehlern dieses Controllers, da sich in diesem Falle eindeutige Zeitfehler im musikalischen Bild ergeben. Der Wert 0 entspricht einer Deaktivierung der Funktion und ermöglicht auf diesem Kanal die herkömmliche Echtzeitsteuerung. Es besteht somit Aufwärtskompatibilität zu den bekannten Systemen.
Controller-Value
Zeitverzögerung
1
100 ms (Mindestzeitverzögerung)
2 102 ms
. . . . . .
126 352 ms
127 354 ms (maximale Zeitverzögerung)
0 0 ms (Desaktivierung)
Dieser separate Verzögerungsbefehl gilt für alle ihm folgenden Aktionsbefehle, so lange bis ein neuer Verzögerungsbefehl eintrifft. Das hat zur Folge, daß zum Beispiel die unmittelbar hintereinander übertragene Befehlsfolge
Verzögerungsbefehl|200 ms
Aktionsbefehl #1
Verzögerungsbefehl 150 ms
Aktionsbefehl #2
bewirkt, daß die Aktion #2 vor der Aktion #1 ausgelöst wird, obwohl die Übertragungs­ reihenfolge umgekehrt war.
Wie auch bei der manuellen Aktivierung der Verzögerungszeit ermöglicht das automatische Management im erfindungsgemäßen System ein gemischtes Betreiben von erfindungsgemäß zeitkorrigierten Empfängern und herkömmlichen, bekannten Empfängern an ein und dem selben MIDI-Port, adressiert über verschiedene MIDI-Kanäle. Der Benutzer hat zur Initialisierung des Systems lediglich anzugeben, welche Empfänger des Systems bzw. welche Kanäle zur Verarbeitung des Verzögerungsbefehls vorgesehen sind. Diese Funktion ließe sich auch durch einen automatischen Handshake realisieren, wobei der Empfänger dem Sender eventuell zusätzlich noch seine individuelle Mindest­ verzögerungszeit mitteilt. Erhält der Sender auf einem Kanal keine Rückmeldung, so muß er von einem herkömmlichen Empfänger ausgehen, welcher in Echtzeit zu steuern ist.
Wird eine Sequenz gestartet, so ist es möglich, daß Aktionen ausgelöst werden müssen, die weniger als die minimale Verzögerungszeit von dem Startpunkt entfernt liegen. Diese Befehle können somit nicht mehr vorverzögert ausgegeben werden und müssen deshalb im herkömmlichen Echtzeitmodus, d. h. bei deaktivierter Verzögerungs­ funktion verarbeitet werden. Alle Aktionen, die weiter als die minimale Verzögerungszeit hinter dem Startpunkt liegen, werden im Verzögerungsmodus zeitkorrekt wiedergegeben.
Aus diesem Grunde ist der Bediener dazu angehalten, die Sequenz mindestens um diese Mindestverzögerungszeit vor der ersten Aktion zu starten, was jedoch in der Praxis in den wenigsten Fällen zu Problemen führt.
Eine sinnvolle Arbeitsweise des automatischen Verzögerungszeiten-Managements seitens des Senders im erfindungsgemäßen System ist, die Aktionsbefehle so früh wie möglich an den Empfänger zu übermitteln, d. h. unter Verwendung einer möglichst großen Vorverzögerungszeit, wobei jedem Aktionsbefehl eine individuelle Verzögerungszeit zugeordnet wird, das entspricht im Falle des MIDI-Systems einem Verzögerungsbefehl vor jedem Aktionsbefehl, sofern dieser nicht zu einem Akkord gehört und die zuletzt geltende Verzögerungszeit nicht mehr verwendet wird. Die Vorverzögerungszeit darf jedoch immer nur so groß gewählt werden, daß nicht mehr als ein Befehl in den Puffer der Übertragungsstrecke gelangt, weil dann die Referenzzeitpunkte bei der Übermittlung der Befehle eingehalten werden.
Ein vereinfachter Algorithmus dazu sieht folgendermaßen aus:
  • 1. Warte so lange, bis keine Daten mehr übertragen werden und die Übertragungsstrecke frei ist.
  • 2. Berechne die Zeitdifferenz zwischen dem aktuellen Zeitpunkt und dem Sollzeitpunkt der nächstfolgenden Aktion. Ist diese Zeitdifferenz größer als die maximal verfügbare Zeitverzögerung, dann warte so lange, bis die Zeitdifferenz gleich der maximal verfügbaren Zeitverzögerung ist.
  • 3. Ist diese Zeitdifferenz kleiner als die Mindestzeitverzögerung, so muß dieser Aktionsbefehl zum Sollzeitpunkt der Aktion in Echtzeit, d. h. bei deaktivierter Verzögerungszeit übertragen werden. (Dieser Fall tritt nur auf, wenn der Sequenzer gerade gestartet wurde oder der Übertragungsweg seit geraumer Zeit ununterbrochen genutzt wurde.)
  • 4. Ist die Zeitdifferenz innerhalb des verfügbaren Verzögerungsbereiches, so übertrage den Aktionsbefehl sofort zum aktuellen Zeitpunkt in Verbindung mit der Information über die Zeitverzögerung, die der in Punkt 1. ermittelten Zeitdifferenz entspricht.
  • 5. Gehe zu Punkt 1.
Die Erfindung wird im folgenden anhand schematischer Zeichnungen an Ausführungs­ beispielen näher erläutert.
Fig. 1 zeigt eine mögliche Verschaltungsvariante des erfindungsgemäßen Systems. Jeder der Empfänger/Klangerzeuger 1, 2 und 3 erhält dieselben Daten über den Über­ tragungsweg/die Schnittstelle 4 vom Sender/Sequenzer 5, in dem die Daten über die Aktionen gespeichert sind. Die Empfänger selektieren aus dem Datenstrom die für sie bestimmten Befehle nach den Kanälen aus und lösen die entsprechenden Aktionen aus.
Im Speicher des Sequenzers seien nun die folgenden Aktionen und ihre absoluten oder relativen Sollzeitpunkte gespeichert:
Die Kanäle 1, 2 und 3 sollen vom selben Empfänger 1 und durch den selben Prozessor verarbeitet werden, Empfänger 2 empfängt nur Kanal 4 und Empfänger 3 den Kanal 5. das Beispiel Fig. 1 geht von einem gemischten Betrieb aus: Die Empfänger 1 und 2 seien für den Empfang von Verzögerungsbefehlen vorgesehen, Empfänger 3 sei ein bekannter, herkömmlicher Empfänger und somit nicht zum Verzögern von Aktionen fähig. Diese Umstände sind dem Sender bereits durch manuelle Initialisierung oder Handshake bekannt. Die Aktionen A#1 bis A#7 sollen zum selben Sollzeitpunkt t=0 stattfinden, die Aktionen A#8 und A#9 zu verschiedenen Zeitpunkten t=1 und t=2. Die Aktionen A#4, A#5 und A#6 gehören dem selben Kanal und dem selben Sollzeitpunkt an und entsprechen deshalb einem Akkord. Der Referenzzeitpunkt für die Verzögerungszeiten sei jeweils das Ende der Übertragung eines Aktionsbefehl-Codes.
Fig. 2 zeigt für dieses Beispiel die Zeitpunkte der Befehlsübertragung und der Prozesse in den einzelnen Empfängern und letztlich die Istzeitpunkte der Aktionen im erfindungsgemäßen System bezüglich der Zeitachse t.
Entsprechend dem weiter oben genannten Algorithmus übermittelt der Sequenzer den Aktionsbefehl A#1 auf dem Kanal 1 um die maximal verfügbare Zeit V1 vor dem Soll­ zeitpunkt t=0 an den Empfänger, nachdem er diese Vorverzögerungszeit V1 dem Empfänger durch einen entsprechenden Verzögerungsbefehl bekanntgegeben hat.
Dieselbe Prozedur erfolgt mit den Aktionen A#2, A#3 und A#4 auf den entsprechenden Kanälen 2, 3 und 4 mit den Verzögerungszeiten V2, V3 und V4, wobei diese Zeiten kleiner sind als die maximal verfügbare Verzögerungszeit und somit auch kleiner sind als V1, weil diese Aktionsbefehle später übermittelt werden müssen, da sie sonst im Puffer der Schnittstelle ungewollt zwischengespeichert werden.
Im Sinne der Akkorderkennung werden die Aktionsbefehle A#5 und A#6 unmittelbar nach A#4 übermittelt, wodurch diese beiden Befehle gemeinsam mit A#4 der Verzöge­ rungszeit V4 zugeordnet sind, wobei der Referenzzeitpunkt bereits durch den Aktions­ befehl A#4 festgelegt wurde. Der Befehl A#8 und die dazugehörige Verzögerungszeit V5 werden laut Algorithmus direkt nach dem Akkord übermittelt: trotz späterem Sollzeitpunkt t=1 kann die maximale Verzögerungszeit hier nicht mehr ausgenutzt werden. Danach erfolgt eine zwangsläufige Übertragungspause, bis A#8 bei Verzögerungszeit V6 (wieder maximale Verzögerungszeit) übermittelt wird. Der Aktionsbefehl A#7 muß auf herkömmliche Weise zum Sollzeitpunkt an den Empfänger 3 übertragen werden, da hier kein Vorverzögern erlaubt ist.
Bei den Empfängern 1 und 2 wird nach Empfang eines Aktionsbefehls damit begonnen, die zuvor auf diesem Kanal empfangene Verzögerungszeit für diesen Befehl abzuzählen. Ist der Prozessor momentan verfügbar - wie z. B. bei Aktion A#1 - so wird sofort der Prozeß P#1 zur Auswertung des Aktionsbefehls und zur Vorbereitung der Aktion gestartet und das Ergebnis für den Rest der ablaufenden Verzögerungszeit zwischen­ gespeichert. Ist der Prozessor momentan nicht verfügbar, wie z. B. bei Aktion A#2 und A#3, so wird gewartet, wobei die Verzögerungszeit jedoch schon abläuft. Der Prozeß P#2 startet somit erst nach Beendigung von Prozeß P#1. Durch die Definition der minimal verfügbaren Verzögerungszeit wird gewährleistet, daß jeder Prozeß noch vor dem Sollzeitpunkt abgearbeitet werden kann.
Erst nachdem der Empfänger 2 den Aktionsbefehl A#4 empfangen hat und die Verzögerungszeit V4 gestartet hat, gehen die Aktionsbefehle A#5 und A#6 ein und werden im Sinne der Akkorderkennung ebenfalls der schon ablaufenden Verzögerungszeit A#4 zugeordnet. Alle einmal laufenden Verzögerungszeiten - wie z. B. V2 auf Kanal 2 - werden auch durch innerhalb dieser Zeit eintreffende Verzögerungsbefehle - wie z. B. V5 ebenfalls auf Kanal 2 - nicht mehr beeinflußt. Nach Ablauf der jeweiligen Verzöge­ rungszeiten werden die entsprechenden Aktionen durch die Empfänger 1 und 2 zeit­ korrekt, im Falle der Aktionen A#1 bis A#6 zeitgleich ausgelöst. Der herkömmliche Empfänger 3 kann die Aktion A#7 nur verspätet auslösen, da diese durch den notwendigen Prozeß P7 verzögert wird.
Fig. 3 zeigt die Verarbeitung derselben Befehlskette im herkömmlichen, bekannten System. Hier werden die Aktionsbefehle seriell erst ab dem Sollzeitpunkt übertragen. Sie werden sofort im Empfänger verarbeitet, sofern der Prozessor frei ist und dann werden die Aktionen ausgelöst. Die Befehle für Empfänger 2 werden nach den Befehlen für Empfänger 1 ausgegeben und somit verzögert. Die serielle Abarbeitung der Befehle durch die Prozessoren verzögert die Aktionen um ein weiteres, und zwar abhängig von der Reihenfolge der Prozesse. Die Darstellung zeigt, daß die Aktionen alle zu unter­ schiedlichen Zeitpunkten hinter dem Sollzeitpunkt ausgelöst werden, die Zeitpunkte hängen von der Reihenfolge der Befehle ab. Anders als im erfindungsgemäßen System (Fig. 2) wird hier der Aktionsbefehl A#7 für den Empfänger 3 durch die Befehlscodes für die Empfänger 1 und 2 weiter nach hinten geschoben, was andersherum zeigt, daß bei gemischtem Betrieb (Fig. 2) die herkömmlichen Empfänger in ihrem Timingverhalten nicht weiter negativ beeinflußt werden.

Claims (9)

1. Verfahren zur seriellen Übertragung der Musikdaten von einem Sequenzer über eine Schnittstelle auf einen Empfänger zum Auslösen musikalischer Aktionen, das folgende Merkmale aufweist:
  • - Die Befehle für die Aktionen sind mit deren Sollzeitpunkten im Sequenzer gespeichert und werden über die Schnittstelle an den Empfänger übertragen.
  • - Zur Vermeidung von Zeitversatz einzelner Aktionen bei mehreren gleichzeitig an der Schnittstelle anstehenden Befehlen werden diese mit einem Zeitvorhalt vor ihrem jewei­ ligen Sollzeitpunkt übertragen.
  • - Der einem Befehl zugeordnete Zeitvorhalt wird ebenfalls an den Empfänger übertragen.
  • - Im Empfänger werden nach Zwischenspeicherung die Aktionen nach Ablauf einer durch den jeweiligen Zeitvorhalt gegebenen Verzögerungszeit ausgelöst.
2. Verfahren nach Anspruch 1, das folgende weitere Merkmale aufweist:
  • - Zur empfängerseitigen Vermeidung von Zeitversatz der Aktionen von ihren jeweiligen Sollzeitpunkten arbeitet der Empfänger diejenigen Prozesse, die zur Vorbereitung der jeweiligen musikalischen Aktion erforderlich sind, innerhalb der für diese Aktion gege­ benen Verzögerungszeit ab.
  • - Die Ergebnisse dieser Prozesse werden bis zum Ende der verstreichenden Verzöge­ rungszeit zwischengespeichert.
3. Verfahren nach Anspruch 2 mit der Maßgabe, daß für die Verzögerungszeit eine untere Grenze festgelegt wird, die mindestens so groß ist wie die maximale Laufzeit der Prozesse.
4. Verfahren nach einem der Ansprüche 1 bis 3, das folgende weitere Merkmale aufweist:
  • - Der Sequenzer steuert die Verzögerungszeit dynamisch in der Weise, daß die Zeit­ vorhalte durch Analyse der Zeitstruktur der auszulösenden Aktionen ermittelt werden und die Information über die Länge des Zeitvorhaltes jeweils in einem gemeinsamen Befehl zusammen mit dem Aktionsbefehl an den Empfänger übertragen werden.
5. Verfahren nach einem der Ansprüche 1 bis 3, das folgende weitere Merkmale aufweist:
  • - Der Sequenzer steuert die Verzögerungszeit dynamisch in der Weise, daß die Zeit­ vorhalte durch Analyse der Zeitstruktur der auszulösenden Aktionen ermittelt werden und die Information über die Länge des Zeitvorhaltes gemeinsam für eine bestimmte Gruppe von Aktionen, welche durch eine gemeinsame Kanalnummer identifiziert werden, in einem separaten Befehl auf dieser Kanalnummer vor den betreffenden Aktionsbefehlen an den Empfänger übertragen wird, wobei die Verzögerungszeit für alle folgenden Aktionsbefehle gilt, die der betroffenen Gruppe angehören, so lange bis ein neuer Verzögerungsbefehl auf dieser Kanalnummer eingeht.
6. Verfahren nach Anspruch 5, das folgende weitere Merkmale aufweist:
  • - Zur Vermeidung von Zeitversatz bei Aktionen mit gleicher Kanalnummer unter Benutzung eines konstanten Zeitvorhaltes werden diejenigen Aktionsbefehle, die derselben Gruppe oder derselben Kanalnummer zugeordnet sind und somit derselben Zeitverzögerung unterliegen, jedoch gleichzeitige Aktionen auslösen sollen, insbesondere musikalische Akkorde oder Kluster, unmittelbar hintereinander und ohne Unterbrechung an den Empfänger übermittelt, wobei sich der verwendete Zeitvorhalt auf den ersten dieser übertragenen Aktionsbefehle bezieht.
  • - Der Empfänger nimmt den Übertragungszeitpunkt des ersten Aktionsbefehls als Referenzzeitpunkt für die nun startende Zeitverzögerung, wobei alle unmittelbar und ohne Unterbrechung folgenden Aktionsbefehle derselben Gruppe dieser bereits ablaufenden Verzögerungszeit zugeordnet werden.
  • - Nach Ablauf dieser gemeinsamen Zeitverzögerung löst der Empfänger alle betroffenen Aktionen zum gemeinsamen Sollzeitpunkt aus.
7. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Modus der Verzögerung beim Empfänger für alle Befehle oder für eine bestimmte Gruppe von Befehlen desaktivierbar ist, um eine Echtzeitsteuerung zu ermöglichen.
8. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Sequenzer bei einer Initialisierung oder durch einen automatischen Handshake mit den angeschlossenen Empfängern eine Information darüber erhält, welcher Empfänger und/oder welcher Kanal zur Verarbeitung des Verzögerungsbefehls fähig ist.
9. Verfahren nach einem der Ansprüche 3 bis 8, wobei der Sequenzer bei einer Initialisierung oder durch einen automatischen Handshake mit den angeschlossenen Empfängern eine Information darüber erhält, wie groß die minimal verfügbare Verzögerungszeit eines jeden Empfängers ist.
DE19934341787 1993-12-08 1993-12-08 System zur zeitkorrekten Auslösung von Echtzeitaktionen durch Befehlsequenzen Expired - Fee Related DE4341787C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19934341787 DE4341787C2 (de) 1993-12-08 1993-12-08 System zur zeitkorrekten Auslösung von Echtzeitaktionen durch Befehlsequenzen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19934341787 DE4341787C2 (de) 1993-12-08 1993-12-08 System zur zeitkorrekten Auslösung von Echtzeitaktionen durch Befehlsequenzen

Publications (2)

Publication Number Publication Date
DE4341787A1 DE4341787A1 (de) 1995-08-17
DE4341787C2 true DE4341787C2 (de) 1995-11-16

Family

ID=6504450

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19934341787 Expired - Fee Related DE4341787C2 (de) 1993-12-08 1993-12-08 System zur zeitkorrekten Auslösung von Echtzeitaktionen durch Befehlsequenzen

Country Status (1)

Country Link
DE (1) DE4341787C2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10030357A1 (de) 2000-06-21 2002-01-17 Heidenhain Gmbh Dr Johannes Verfahren und Vorrichtung zur seriellen Datenübertragung zwischen einem Positionsmesssystem und einer Verarbeitungseinheit
DE10111630A1 (de) 2001-03-09 2002-11-07 Heidenhain Gmbh Dr Johannes Verfahren zum Betrieb einer Positionsmesseinrichtung und hierzu geeignete Positionsmesseinrichtung

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2148576B (en) * 1983-10-06 1986-09-24 Casio Computer Co Ltd Music playing system
JP2892532B2 (ja) * 1991-07-31 1999-05-17 株式会社リコス 音楽情報の高速処理装置

Also Published As

Publication number Publication date
DE4341787A1 (de) 1995-08-17

Similar Documents

Publication Publication Date Title
DE2149104A1 (de) Verfahren und einrichtung zum adressieren einer speicherstelle mit wahlweise bestimmbaren geschwindigkeiten
DE3318667C1 (de) Elektronisches Tastenmusikinstrument und Verfahren zu dessen Betrieb
DE2712226A1 (de) Tongeneratoranordnung, insbesondere fuer ein elektronisches musikinstrument
EP1076847B1 (de) Verfahren zum a/d-wandeln analoger signale sowie entsprechende a/d-wandleranordnung
DE68907648T2 (de) Elektronisches musikinstrument.
DE3023581C2 (de) Verfahren zur digitalen Hüllkurvensteuerung eines polyphonen Musiksyntheseinstruments und Schaltungsanordnung zur Durchführung des Verfahrens
DE2745196C2 (de) Hüllkurvengenerator
DE2819269C2 (de)
DE69321650T2 (de) In elektronischen Musikinstrumenten verwendete Vorrichtung zur Verarbeitung von digitalen Signalen
DE4341787C2 (de) System zur zeitkorrekten Auslösung von Echtzeitaktionen durch Befehlsequenzen
EP0010600B1 (de) Verfahren zur codierten Übertragung von Sprachsignalen, Verwendung des Verfahrens in einem Zeitmultiplex-Übertragungssystem und Anordnung zur Durchführung des Verfahrens
DE69705434T2 (de) Tonerzeugungssystem unter Verwendung eines Computerprogrammes
DE2641452A1 (de) Elektronisches musikinstrument
DE69618907T2 (de) Verfahren und Vorrichtung zur Tonerzeugung
EP0126975A2 (de) Elektronisches Tasteninstrument
DE3100934C2 (de) Verfahren und Vorrichtung zum Tasten von elektronischen Musikinstrumenten
DE69732797T2 (de) Verfahren und vorrichtung zur speicherung von tonfolgen in cyclischen schleifen
DE3249791C2 (de) Elektronisches Musikinstrument
DE69414477T2 (de) Verfahren zur zeitlichen Einteilung von zu Nachrichten gehörenden Zellemissionen sowie Vorrichtung zur Durchführung dieses Verfahrens
EP0030034B1 (de) Digitale Halbleiterschaltung für eine elektronische Orgel
EP1649355A1 (de) Verfahren und System zur Darstellung von digitalen Anzeigeelementen
WO2000003325A2 (de) Can-modul
EP0043093B1 (de) Digitale Halbleiterschaltung für eine elektronische Orgel
DE2635306C2 (de) System zur Zeitmultiplex-Übertragung asynchroner Binärwertwechsel von Datensignalen
DE2327375C2 (de) PCM-Vermittlungsstelle mit Zeitvielfach- und Raumvielfacheinrichtungen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8122 Nonbinding interest in granting licences declared
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee