DE68914152T2 - Automatische Spiel- und Tonerzeugungseinheit in einer automatischen Musikanlage. - Google Patents

Automatische Spiel- und Tonerzeugungseinheit in einer automatischen Musikanlage.

Info

Publication number
DE68914152T2
DE68914152T2 DE68914152T DE68914152T DE68914152T2 DE 68914152 T2 DE68914152 T2 DE 68914152T2 DE 68914152 T DE68914152 T DE 68914152T DE 68914152 T DE68914152 T DE 68914152T DE 68914152 T2 DE68914152 T2 DE 68914152T2
Authority
DE
Germany
Prior art keywords
music
time
performance data
data
read
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
DE68914152T
Other languages
English (en)
Other versions
DE68914152D1 (de
Inventor
Minoru Fujisawa
Masashi Nishikawa
Satoshi Otsuka
Mitsuhiro Umeta
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.)
Roland Corp
Original Assignee
Roland Corp
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 Roland Corp filed Critical Roland Corp
Application granted granted Critical
Publication of DE68914152D1 publication Critical patent/DE68914152D1/de
Publication of DE68914152T2 publication Critical patent/DE68914152T2/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
    • 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/18Selecting circuits
    • G10H1/26Selecting circuits for automatically producing a series of tones

Landscapes

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

Description

    1. Erfindungsgebiet
  • Die Erfindung betrifft eine automatische Musikspielanlage und im besonderen eine automatische Musikspielanlage, die eine automatische Spielvorrichtung und eine Tonerzeugungseinheit umfaßt, bei der von der automatischen Spielvorrichtung ausgegebene Musikspieldaten der Tonerzeugungseinheit zugeleitet werden, so daß gewünschte Musiktöne in dieser Einheit erzeugt werden.
  • 2. Beschreibung verwandter Technik
  • Die bekannten automatischen Musikspielanlagen der oben erwähnten Art (wie z.B. in US-A-4 898 059 dargelegt) sind so aufgebaut, daß Musikspieldaten in einer automatischen Musikspielvorrichtung gespeichert und von dort zu einem Zeitpunkt des Spielens der Musik, nämlich zum Zeitpunkt der Erzeugung und Dämpfung der Musiktöne, gelesen werden. Solche Musikspieldaten werden dann als Note-Ein- und Note-Aus-Daten über eine kommunikationseinrichtung wie MIDI an eine Tonerzeugungseinheit geliefert. Die Tonerzeugungseinheit spielt Musik direkt auf der Basis dieser empfangenen Musikspieldaten.
  • Zusammenfassung der Erindung
  • Es ist jedoch unvermeidlich, daß bei den bekannten Systemen die von der Musikspielvorrichtung gelesenen Musikspieldaten eine beträchtlich lange Zeit für ihre Übermittlung an die Tonerzeugungseinheit in Anspruch nehmen. Der tatsächliche Zeitpunkt des Spielens der Musik wird deshalb im Vergleich zum idealen Zeitpunkt wahrscheinlich oft verzögert. Dieses Problem ist dann kritisch, wenn eine große Menge Musikspieldaten auf einmal übertragen wird, weil sich die Dauer zur Übertragung dieser Daten mit zunehmender Informationsmenge erhöht. Das Ausmaß der zeitlichen Verzögerung ändert sich daher mit der Informationsmenge, wodurch der Rhythmus der gespielten Musik in Unordnung kommt.
  • Die vorliegende Erfindung, wie in den Ansprüchen 1 und 8 gekennzeichnet, mit weiteren Ausführungen gemäß den abhängenden Ansprüchen, wurde gemacht, um das oben erwähnte Problem zu lösen, und eine Aufgabe der Erfindung ist, eine automatische Spielvorrichtung und eine Tonerzeugungseinheit bereitzustellen, die in einer automatischen Musikspielanlage in einem solchen Zustand enthalten sind, daß eine Musik immer zum richtigen Zeitpunkt und Rhythmus gespielt werden kann, ohne durch irgendeine Veränderung der Menge übertragener Information beeinflußt zu werden.
  • Fig. 1 der begleitenden Zeichungen stellt schematisch die allgemeinen Vorstellungen der Erfindung dar. Die Musikspieldaten, die zeitlich seriell angeordnet sind und aus der ersten Speichereinrichtung 1 vorabgelesen werden, werden von der Berechnungseinrichtung 2 benutzt, um die zum Spielen der Musik tatsächlich benötigte Dauer zu berechnen, und/oder um die tatsächliche Menge der in den vorabgelesenen Musikspieldaten enthaltenen Spielinformation zu berechnen. Wenn die Vergleichseinrichtung 3 basierend auf dem Ergebnis der von der Berechnungseinrichtung 2 durchgeführten Berechnung entscheidet, daß die tatsächlich benötigte Dauer kleiner ist als die vorbestimmte Dauer und/oder die tatsächliche Menge der Spielinformation kleiner ist als die vorbestimmte Informationsmenge, dann liest die erste Leseeinrichtung 4 aus der ersten Speichereinrichtung 1 die darin zeitlich seriell gespeicherten Musikspieldaten vor der tatsächlichen Zeit des Spielens der auf diesen Musikspieldaten basierenden Musik vorab aus. Die so vorabgelesenen Musikspieldaten werden von der Ausgabeeinrichtung 5 ausgegeben.
  • Die vorabgelesenen Musikspieldaten, die sich in einer Zeitfolge befinden und von der Eingabeeinrichtung 10 geliefert und in der zweiten Speichereinrichtung 11 gespeichert worden sind, werden zu einem vorbestimmten Zeitpunkt von der zweiten Leseeinrichtung 12 daraus gelesen. Die von der zweiten Leseeinrichtung so gelesenen Musikspieldaten werden von der Musikton-Erzeugungseinrichtung 13 verwendet, um die Musiktöne zum Zeck des Spielens der Musik zu erzeugen und/oder zu dämpfen.
  • Auf diese Weise führt die automatische Spielvorrichtung der Tonerzeugungseinheit die Musikspieldaten vor dem Zeitpunkt des Spielens zu, wobei die Daten in der Einheit vorübergehend gespeichert gespeichert werden. Der tatsächliche Spielzeitpunkt ist durch das Lesen der vorübergehend gespeicherten Musikspieldaten zu dem vorbestimmten Zeitpunkt gegeben. Das Spielen der Musik wird folglich immer zu einem exakten und genauen Zeitpunkt ausgeführt, wodurch verhindert wird, daß der Rhythmus, ungeachtet der von der automatischen Spielvorrichtung an die Tonerzeugungseinheit übermittelten variablen Informationsmenge, während des Spielens in Unordnung kommt.
  • Ferner liefert, wie oben beschrieben, die automatische Spielvorrichtung die vorabgelesenen Musikspieldaten an die Tonerzeugungseinheit nur, wenn die zum Spielen der Musik wirklich benötigte Dauer kleiner ist als die vorbestimmte Dauer und/oder wenn die wirkliche von den vorabgelesenen Musikspieldaten besessene Spielinformationsmenge kleiner als die vorbestimmte Spielinformationsmenge ist. Daher kann die Kapazität des Speichers zur vorübergehenden Speicherung der übertragenen Daten in der Tonerzeugungseinheit minimiert werden.
  • Außerdem wird die Tonerzeugungseinheit in die Lage versetzt, Töne zu erzeugen, die im musikalischen Sinne wirkungsvoller sind, weil diese Einheit solche Musikspieldaten vor dem Zeitpunkt des Spielens empfängt und vorübergehend speichert, wodurch diese Daten in einer geeigneten Weise interpretiert werden können.
  • BESCHREIBUNG VON BEISPIELEN
  • Fig. 2 zeigt das System in den Grundzügen;
  • Fig. 3 und 10 sind Ablaufpläne, die die jeweiligen Hauptprogramme in der automatischen Spielvorrichtung und der Tonerzeugungseinheit zeigen;
  • Fig. 4 und 11 zeigen Strukturen von Musikspieldaten und einen Notenplan, die jeweils in RAMs der automatischen Spielvorrichtung und der Tonerzeugungseinheit geschrieben werden;
  • Fig. 5, 6, 7 und 12 sind Ablaufpläne einer Bedienfeld-Verarbeitungsroutine, einer Spieladressen-Verarbeitungsroutine, einer Musikspieldaten-Leseroutine und einer Tonerzeugungs/Dämpfungsroutine, und
  • Fig. 8, 9 und 13 sind Ablaufpläne einer MIDI-OUT-Unterbrechungsverarbeitung, einer Zeitgeber-Unterbrechungsverarbeitung und einer MIDI- In-Unterbrechungsverarbeitung.
  • Wie in Fig. 2 schematisch gezeigt, umfaßt die automatische Musikspielanlage die automatische Spielvorrichtung 20 und die Tonerzeugungseinheit 30. Die automatische Spielvorrichtung 20 speichert darin Musikspieldaten in einer Zeitfolge, die daraus als solche MIDI- (Musical Instrument Digital Interface) Daten, die als exklusive Nachrichten in dem MIDI-Standard definiert sind, vorabgelesen und ausgegeben werden. Diese vorabgelesenen Musikspieldaten, die als exklusive Nachrichten von MIDI-Daten ausgegeben werden, werden dann über einen MIDI- Bus 40 in die Tonerzeugungseinheit 30 eingegeben. Die Tonerzeugungseinheit 30 erzeugt oder dämpft zum Zweck des Musikspielens gewünschte Musiktöne auf der Basis solcher Eingaben der vorabgelesenen Musikspieldaten. Zusätzlich zu solchen exklusiven Nachrichten enthalten die MIDI-Daten einige Echtzeitnachrichten, wie Startdaten, Stoppdaten und Zeittaktdaten, die ebenfalls über den MIDI-Bus 40 in die Einheit 30 eingegeben werden.
  • Ein Bedienfeld-A 21 ist in der automatischen Spielvorrichtung enthalten und ist mit einem Startschalter, einem Stoppschalter und anderen Elementen versehen. Das Bedienfeld-A 21 erteilt über Bus-A 22 einem Mikrocomputer-A 23 solche Anweisungen, die das automatische Spielen von Musik starten oder anhalten. Der Mikrocomputer-A 23 umfaßt eine zentrale Verarbeitungseinheit (CPU)-A "23A", eingerichtet, um vorgegebene Programme auszuführen; einen Nurlesespeicher (ROM)-A "23B", in den die Programme geschrieben sind; einen Speicher mit wahlfreiem Zugriff (RAM)-A "23C", der mit einem Musikspieldatenbereich für das Schreiben der Musikspieldaten in einer Zeitfolge und mit einem Arbeitsbereich versehen ist, der solche Register, Flags und FIFOs enthält, die zum Ausführen der Programme benötigt werden; eine Zeitgeberschaltung-A "23D", die den Zeitablauf während der Ausführung von Programmen mißt, um in vorgegebenen regelmäßigen Abständen Zeitgeberunterbrechungen in der CPU-A "23A" auszulösen, und eine MIDI-Schaltung-A "23E", die die Musikspieldaten, die aus dem Musikspieldatenbereich in dem RAM-A "23C" vorabgelesen werden, und andere Daten als MIDI-Daten auf den MIDI-Bus 40 ausgibt. Die MIDI-Schaltung-A "23E" hat einen OUT- Puffer mit einer Datenlänge von 1 (ein) Byte, der zum Ausgeben der MIDI-Daten benutzt wird. Der Mikrocomputer-A 23 führt somit die vorbestimmten Programme aus, die in das ROM-A "23B" geschrieben worden sind, und empfängt dann von dem Bedienfeld-A die Anweisungen zum Starten und Anhalten des automatischen Musikspielens. Ausführlicher, die Musikspieldaten werden, wie oben beschrieben, aus dem Musikspieldatenbereich des RAM-A "23C" vorabgelesen, so daß sie dann als MIDI-Daten durch die MIDI-Schaltung-A "23E", insbesondere als deren exklusive Nachrichten, ausgegeben werden.
  • Zum anderen empfängt ein Mikrocomputer-B 31 in der Tonerzeugungseinheit durch den MIDI-Bus 40 die MIDI-Daten, die die exklusiven Nachrichten der vorabgelesenen Musikspieldaten und die Echtzeitnachrichten umfassen. Im einzelnen umfaßt der Mikrocomputer-B 31: eine zentrale Verarbeitungseinheit (CPU)-A "31A", die die vorgegebenen Programme ausführt; einen Nurlesespeicher (ROM)-A "31B", in den die Programme geschrieben sind; einen Speicher mit wahlfreiem Zugriff (RAM)-A "31C" mit einem Arbeitsbereich, der solche Register, FIFOs und Flags enthält, die zum Ausführen der Programme benötigt werden, und eine MIDI-Schaltung-B "31D". Die vorerwähnten MIDI-Daten werden einem IN-Puffer übergeben, der eine Datenlänge von 1 (ein) Byte hat und in der MIDI-Schaltung-B "31D" eingebaut ist. Der Mikrocomputer-B 31 führt die vorgegebenen Programme aus, die in das ROM-B "31B" geschrieben worden sind, wobei die MIDI-Daten benutzt werden, die die exklusiven Nachrichten solcher vorabgelesenen Musikspieldaten und die Echtzeitdaten enthalten, die über den MIDI-Bus 40 in den IN-Puffer der MIDI-Schaltung-B "31D" eingegeben werden. Eine Musikton-Erzeugungsschaltung 33 wird über einen Bus-B 32 durch den Mlkrocomputer 31 gesteuert, der die vorgegebenen Programme ausführt, wodurch Musiktöne erzeugt oder gedämpft werden, um die gewünschte Musik durch einen Verstärker 34 und einen Lautsprecher 35 zu spielen. Das Bezugszeichen 36 bezeichnet ein Bedienfeld-B, das einen Bedienungsteil zur Eingabe notwendiger Anweisungen und einen Anzeigeteil zur Anzeige der Betriebsarten umfaßt.
  • AUTOMATISCHE SPIELVORRICHTUNG
  • Grundfunktionen der wie oben aufgebauten automatischen Spielvorrichtung 20 werden nun mit Bezugnahme auf den in Fig. 3 gezeigten Ablaufplan der Hauptroutine beschrieben.
  • Zuerst werden die Register, Flags und FIFOs im Arbeitsbereich und der Musikspieldatenbereich, die in dem RAM-A "23C" gebildet sind, beschrieben.
  • (1) Musikspieldatenbereich (Fig. 4)
  • Der Musikspieldatenbereich in dieser Ausführung speichert eine Folge von Musikspieldaten auf seiner einen Spur. Alle Musikspieldaten umfassen eine Notennummer NNUM, eine Geschwindigkeit VEL, eine Schrittzeit STET und eine Torzeit GATT, wobei diese komponenten nachstehend erklärt werden. Ein Anzahl solcher Musikspieldaten entsprechen einer Anzahl von Musiknoten, und diese Daten werden in einer Zeitfolge sequentiell auf die Spur geschrieben. Weiter gibt es Bereiche für diese Notennummer NNUM, die Geschwindigkeit VEL, die Schrittzeit STET und die Torzeit GATT für jede Musiknote. Jede Musikspielangabe, die einer Musiknote entspricht, wird in eine Adresse geschrieben. Im allgemeinen sind in dem Musikspieldatenbereich eine Mehrzahl von Spuren vorgesehen, die gleichzeitig ausgelesen werden können.
  • Die vorerwähnten Daten und andere Bestandteile oder Daten des Musikspieldatenbereichs werden nachstehend definiert.
  • (i) Die Notennummer NNUM stellt z.B. Tonhöhen gedrückter Tasten dar;
  • (ii) Die Geschwindigkeit VEL stellt z.B. Geschwindigkeiten des Tastendrückens basierend auf anfänglicher Berührung der Tasten dar;
  • (iii) Die Schrittzeit STET stellt einen Zeitverlauf (Differenzdauer) von dem varangehenden Note-Ein einer Musiknote bis zu dem momentanen Note-Ein der anderen unmittelbar folgenden Musiknote dar;
  • Eine solche Schrittzeit STET bestimmt den Zeitpunkt der Erzeugung von Musiktönen;
  • (iv) Die Torzeit GATT stellt die Dauer der Musiknote (Zeitverlauf von Note-Ein bis Note-Aus) dar, und
  • Die Werte der Schrittzeit STET und der Torzeit GATT sind einer Dauer proportional, bei der der Wert "24" (vierundzwanzig) der Dauer einer Viertelnote und der Wert "12" (zwölf) der Dauer eine Achtelnote entspricht.
  • (2) Arbeitsbereich
  • (i) Zeitzählung TM(1) -- Diese stellt den Zeitverlauf dar und hat einen Wert, der, verursacht durch die Zeitgeberunterbrechung, in regelmäßigen Abständen um eins zunimmt;
  • (ii) Zeitzählung TM(2) -- Diese nimmt für jede Spieladressenverarbeitung um eins zu, so daß sie den Zeitfortgang des Spielens der Musik darstellt, die von der Tonerzeugungseinheit 30 basierend auf den vorabgelesenen Musikspieldaten gespielt wird;
  • (iii) Zeitzählung TM(3) -- Diese stellt den Zeitfortgang des Vorablesens der Musikspieldaten aus dem Spieldatenbereich dar, worin die Schrittzeit STET der vorabgelesenen Musikspieldaten jedesmal, wenn ein Musikspieldatenlesevorgang ausgeführt wird, zusammengezählt wird;
  • (iv) Adreßwert AD(1) -- Dieser gibt eine Adresse in dem Musikspieldatenbereich an, von der die Musikspielangabe vorabgelesen wird;
  • (v) Adreßwert AD(2) -- Dieser gibt eine Adresse einer solchen vorabgelesenen Musikspielangabe an, die als nächste von der Tonerzeugungseinheit 30 zu spielen ist;
  • (vi) Schrittwert STE(A) -- Dieser hat einen Wert, der dem Wert der Schrittzeit STET der Musikspieldaten entspricht, aber seinen Wert jedesmal, wenn eine Spieladressenverarbeitung ausgeführt wird, um eins vermindert, wobei dieser Schrittwert STE(A) benutzt wird, um eine Adresse einer solchen vorabgelesenen Musikspielangabe zu bestimmen, die als nächste von der Tonerzeugungseinheit 30 zu spielen ist;
  • (vii) Spielflag PLF(A) -- Dieses zeigt an, daß Musik gespielt wird;
  • (viii) Echtzeitflag RTF -- Dieses zeigt einen Zustand an, bei dem die Echtzeitnachrichten der Startdaten, Stoppdaten und Zeittaktdaten, die in dem vorerwähnten MIDI-Standard definiert sind, bevorzugt ausgegeben werden;
  • (ix) Out-FIFO -- Dies ist ein erster First-in-first-out-Speicher, der benutzt wird, um diejenigen MIDI-Daten auszugeben, die nicht die Echtzeitnachrichten sind;
  • (x) Echtzeit-FIFO -- Dies ein weiterer FIFC-Speicher, der verwendet wird, um diejenigen MIDI-Daten auszugeben, die die Echtzeitnachrichten sind.
  • Der Out-FIFO und der Echtzeit-FIFO sind in einer ringartigen Form gebildet, so daß ein Schreibzeiger und ein Lesezeiger jeweils auf die Adresse zeigen kann, wo Schreiben und Lesen zu erfolgen haben, und die Werte dieser Zeiger jedesmal zunehmen, wenn das Schreiben oder Lesen ausgeführt ist.
  • (I) Grundzüge des Hauptprogramms
  • Die Programme für die automatische Spielvorrichtung in der Ausführung werden wie folgt ausgeführt:
  • Schritt A -- Wenn eine Stromquelle eingeschaltet wird, werden das RAM-A "23C" und die MIDI-Schaltung-A "23E" initialisiert, so daß dessen Inhalt den verschiedenen Registern oder dergleichen zugeteilt werden kann, um das Programm zu starten.
  • Schritt B -- Bedienfeld-Verarbeitungsroutine -- Hier wird die Bedienfeldverarbeitung des Startschalters, des Stoppschalters und anderer Elemente auf dem Bedienfeld-A 21 durchgeführt. Einzelheiten folgen später mit Bezug auf den in Fig. 5 gezeigten Ablaufplan.
  • Schritt C -- Es wird entschieden, ob das Spielflag PLF(A) "1" ist oder nicht. Wenn das Spielflag PLF(A) nicht "1" sondern "0" ist, was anzeigt, daß keine Musik gespielt wird, kehrt der Ablauf zu Schritt B zurück.
  • Schritt D -- Wenn das Spielflag bei der Entscheidung in Schritt C als "1" ermittelt wird, was anzeigt, daß Musik gespielt wird, wird eine weitere Entscheidung getroffen, ob der Wert der Zeitzählung TM(1), der den Zeitverlauf darstellt, höher oder nicht höher ist als der Wert der anderen Zeitzählung TM(2), der den Zeitfortgang des Spielens solcher Musik darstellt, die von der Tonerzeugungseinheit 30 basierend auf den vorabgelesenen Musikspieldaten gespielt wird. Wenn die Zeitzählung TM(1) nicht höher ist als die Zeitzählung TM(2), wodurch angezeigt wird, daß die Spieladressenverarbeitung vorläuft, geht der Ablauf zu Schritt F. Wenn im Gegensatz die Zeitzählung TM(1) höher ist als die Zeitzählung TM(2), was eine Verzögerung dieser Verarbeitung anzeigt, rückt der Ablauf zu dem folgenden Schritt vor.
  • Schritt E -- Spieladressen-Verarbeitungsroutine -- Eine Adresse wird bestimmt, die einer solchen vorabgelesenen Musikspielangabe entspricht, die von der Tonerzeugungseinheit 30 zu spielen ist. Details folgen später mit Bezug auf den in Fig. 6 gezeigten Ablaufplan.
  • Schritt F -- In dem Fall wo die Zeitzählung TM(1) nicht höher ist als die andere Zeitzählung TM(2), wodurch angezeigt wird, daß die Spieladressenverarbeitung vorläuft, wird die Differenz geprüft, die zu dieser Zeit zwischen dem Adreßwert AD(1) und dem anderen Adreßwert AD(2) besteht, wobei der erstere die Adresse in dem Musikspieldatenbereich angibt, von wo die Musikspieldaten vorabgelesen werden, und die letztere die nächste Adresse solcher vorabgelesenen Musikspieldaten angibt, die als nächstes von der Tonerzeugungseinheit 30 zu spielen sind. Mit anderen Worten, hier wird eine solche Adressenmenge erörtert, die zwischen einer Adresse, die sich vor der momentanen Adresse befindet, und einer momentanen Adresse gefunden werden wird, die solchen Musikspieldaten entspricht, die aus dem Spieldatenbereich vorabgelesen worden sind, für den das Spielen gerade durchgeführt wird. Wenn entschieden wird, daß eine solche Adressenmenge nicht kleiner ist als ein vorbestimmter Wert AD(Max), der eine maximale Informationsmenge vorabgelesener Musikspieldaten angibt, kehrt der Ablauf zu Schritt B zurück.
  • Schritt G -- Wenn bei der Entscheidung in Schritt F die Differenz zwischen den Adreßwerten AD(1) und AD(2) kleiner ist als der vorbestimmte Wert AD(Max), wird eine Differenz zwischen der Zeitzähluhg TM(3), die den Fortgang oder die Zeitvoreilung des Vorablesens der Musikspieldaten darstellt, und der Zeitzählung TM(1), die den Zeitverlauf darstellt, geprüft. Mit anderen Worten, es wird eine Entscheidung getroffen, ob eine Länge der Voreilzeit, die einem Ausmaß entspricht, mit dem das Vorablesen der Musikspieldaten über die tatsächlich spielende Musik hinaus fortfährt, kleiner oder nicht kleiner ist als ein vorbestimmter Wert TM(Max), der eine solche maximale Länge der Voreilzeit angibt, die in diesem Programm für das Vorablesen von Musikspieldaten erlaubt ist. Wenn die Länge der Voreilzeit nicht kleiner ist als dieser Wert TM(Max), geht der Ablauf zu Schritt B zurück. Wenn im Gegensatz diese Länge der Voreilzeit kleiner ist als dieser Wert TM(Max), geht der Ablauf zu dem folgenden Schritt.
  • Schritt H -- Musikspieldaten-Leseroutine -- Einzelheiten folgen später mit Bezug auf den in Fig. 7 gezeigten Ablaufplan.
  • Das oben beschriebene Hauptroutinenprogramm ist so aufgebaut, daß, zusammenfassend, der Fortschrittsgrad der vorabgelesenen Musikspieldaten verglichen mit dem tatsächichen Vorrücken des Spielens von Tönen mit Hilfe der vorabgelesenen Informationsmenge [AD(1) - AD(2)] und auch mit Hilfe der Länge der voreillenden oder voranschreitenden Zeit des Vorlesens [TM(3) - TM(1)] ausgedrückt wird. Das Lesen von Musikspieldaten wird nur einem Fall ausgeführt, wo beide dieser zwei Differenzen jeweils kleiner sind als die vorbestimmten Werte AD(Max) und TM(Max). Solche Bedingungen in bezug auf die vorabgelesene Informationsmenge [AD(1) -AD(2)] und die Länge der Voreilzeit [TM(3)-TM(1)] sind hierin enthalten, um zu verhindern, daß das Vorablesen schneller als nötig fortschreitet. Ausführlicher, die Bedingung auf der vorabgelesenen Menge [AD(1) - AD(2)] verhindert, daß eine übermäßige Menge von Musikspieldaten, größer als der vorbestimmte Wert AD(Max), an die Tonerzeugungseinheit 30 übertragen wird. Daher wird ein Zwischenspeicher-FIFO(1) in der Tonerzeugungseinheit 30 vor Überlauf geschützt.
  • Die Bedingung auf der Voreilzeit [TM(3) - TM(1)] verhindert, daß diese Einheit 30 irgendwelche unnötig früh vorabgelesenen Daten empfängt. Foglich braucht ein Bediener dieses Systems, der die Musikdaten während seines Betriebs verändert, nicht zu befürchten, daß solche Musikspieldaten, die er ändern oder ergänzen möchte, bereits ausgegeben worden sind. Außerdem bieten die vorerwähnten Bedingungen hinsichtlich der vorabgellesenen Menge [AD(1) - AD(2)] und der Voreilzeit [TM(3) - TM(1)] angesichts der Tatsache, daß das Lesen von Musikspieldaten schrittweise "Wert für Wert" ausgeführt wird, einen weiteren Vorteil. Eine solche beschränkte Art und Weise des Vorablesens, wie in der Ausührung, ist wirkungsvoll, um eine Informationsrate oder -dichte pro Zeiteinhelt der Musikspieldaten, die in die Tonerzeugungseinheit 30 eingegeben werden, zu mitteln. Dies ermöglicht es, unerwünschte Einflüsse auf andere Verarbeitungen als der Dateneingabeverarbeitung zu minimieren.
  • Der vorbestimmte Wert AD(Max), der, wie oben beschrieben, die maximale Menge aus dem Musikspieldatenbereich vorabgelesener Musikspieldaten ist, ist kleiner gesetzt als eine Speicherkapazität des Zwischenspeicher-FIFO(1) der Tonerzeugungseinheit 30. Dieser Wert AD(Max) beträgt bei der Ausführung nach Zahl der Adressen 100. Die Speicherkapazität des FIFO(1) beträgt, ebenfalls nach Zahl der Adressen, 120, so daß eine Überkapazität vorgesehen ist, die ein gewisses Maß an Verzögerung in den in der Einheit 30 ausgeführten Verarbeitungen erlaubt.
  • Obwohl bei dieser Ausführung der vorbestimmte Wert AD(Max) auf diesen Wert festgelegt ist, kann er veränderbar gemacht werden, um sowohl an eine Vielfalt von Zwischenspeicherkapazitäten als auch an eine Vielfalt von Verarbeitungsgeschwindigkeiten bei hierin verwendeten alternativen Tonerzeugungseinheiten angepaßt zu werden. Informationen oder Daten wie die Speicherkapazität des Zwischenspeicher-FIFO(1) und die Verarbeitungsgeschwindigkeit in der Einheit 30 können z.B. an deren Bedienfeld-B 36 angezeigt oder der automatischen Spielvorrichtung 20 übergeben werden. Um den variablen Wert AD(Max) bei der oben vorgeschlagenen Modifikation zu ändern, ist es möglich, diesen Wert nicht nur mit Hilfe manueller Elemente einzustellen, sondern ihn auch auf der Basis der von der Einheit 30 an die automatische Spielvorrichtung 20 übergebenen Speicherkapazitätsdaten automatisch einzustellen.
  • Der vorbestimmte Wert TM(Max), der, wie oben beschrieben, diejenige maximale Zeitdauer darstellt, die dem Vorablesen von Musikspieldaten aus dem Spieldatenbereich zugestanden werden kann, um dem tatsächlichen Spielen der Musik voranzugehen, wird gleich einer Zeitdauer gesetzt, die 4 (vier) Maßen für einen Rhythmus von vier-vier-Musikzeit entspricht. Die vorbestimmte Wert TM(Max) kann jedoch zur Annehmlichkeit des Musikspielens, z.B. nach dem Tempo des Musikspielens, geändert werden.
  • (II) Einzelheiten der Subroutinen
  • Vor den Beschreibungen der Subroutinen, auf die oben hingewiesen wird und die die Bedienfeld-Verarbeitungsroutine (Schritt B), die Spieladressen-Verarbeitungsroutine (Schritt E) und die Musikspieldaten-Leseroutine (Schritt H) umfassen, werden zunächst die folgenden Unterbrechungs-Verarbeitungsroutinen erklärt. Die letzteren Routinen um fassen eine MIDI-Out-Unterbrechungsverarbeitung und eine Zeigeber- Unterbrechungs-Verarbeitungsroutine, von denen eine maskiert wird, während die andere ausgeführt wird.
  • (a) MIDI-Out-Unterbrechungs-Verarbeitungsroutine (Fig. 8)
  • Die MIDI-Out-Unterbrechung wird eingeschaltet, wenn die MIDI-Schaltung-A "23E" sich in ihrem "Freigabe"-Status befindet und die in dem Out-Puffer gespeicherten MIDI-Daten ausgegeben worden sind, so daß der Status bereit geworden ist, die nächsten MIDI-Daten auszugeben.
  • Diese MIDI-Out-Unterbrechung muß gelöscht werden, nachdem entweder die MIDI-Daten in den Out-Puffer geschrieben worden sind oder die MIDI-Schaltung-A "23E" zu ihren gesperrten Zustand umgekehrt worden ist. Um die auszugebenden MIDI-Daten auszugeben, ist es erforderlich, durch Verarbeitungen anderer als der MIDI-Unterbrechungsverarbeitung solche MIDI-Daten entweder in den Out-FIFO oder in den Echtzeit-FIFO zu schreiben, um so die MIDI-Schaltung-A "23E" freizugeben.
  • Mit der oben beschriebenen MIDI-Out-Unterbrechung eingeschaltet, werden die folgenden Verarbeitungen ausgeführt.
  • * Schritte X-1 bis X-4
  • Zunächst wird eine Entscheidung getroffen, ob das Echtzeitflag RTF "1" ist oder nicht. "1" gibt an, daß MIDI-Daten von Echtzeitnachrichten, die höhere Priorität haben und Startdaten, Stoppdaten und Zeittaktdaten umfassen, ausgegeben werden müssen. Wenn das Echtzeitflag nicht "1" sondern "0" ist, wird eine weitere Entscheidung getroffen, ob alle in dem Out-FIFO gespeicherten Daten bereits ausgegeben worden sind oder nicht. Diese letztere Entscheidung wird auf der Basis ausgeführt, ob der Schreibzeiger und der Lesezeiger des Out-FIFO miteinander übereinstimmen oder nicht. Wenn ja, wird entschieden, daß die Ausgabe der MIDI-Daten aus dem Out-FIFO beendet ist, und die MIDI-Schaltung-A "23E" wird folglich in ihren gesperrten Zustand geschaltet. Wenn nein, d.h. wenn noch Daten in diesem Out-FIFO vorhanden sind, wird ein Byte der restlichen Daten an den Out-Puffer übertragen.
  • * Schritte X-5 bis X-7
  • Wenn bei der oben erwähnten Entscheidung das Echtzeitflag RTF als "1" befunden wird, wird ein Byte solcher MIDI-Daten, die in dem Echtzeit- FIFO gespeichert sind, an den OUT-Puffer gesandt und in diesen eingeschrieben. Ferner wird in einem solchen Fall eine weitere Entscheidung getroffen, ob der Schreibzeiger und der Lesezeiger des Echtzei- FIFO miteinander übereinstimmen oder nicht. Mit anderen Worten, es wird entschieden, ob alle in dem Echtzeit-FIFO gespeicherten MIDI- Daten ausgegeben worden sind oder nicht. Wenn ja, wird das Echtzeitflag RTF auf "0" gesetzt, wenn aber nein, wird diese diese Routine beendet.
  • Die oben beschriebene MIDI-Out-Unterbrechungs-Verarbeitungsroutine ist so, daß im "Ein"-Zustand der MIDI-Unterbrechung die MIDI-Daten der Echtzeitnachrichten, die höhere Priorität haben und in dem Echtzeit- FIFO gespeichert sind, bevorzugt an den Out-Puffer übergeben werden, um ausgegeben zu werden.
  • (b) Zeitgeberunterbrechungs-Verarbeitungsroutine (Fig. 9)
  • Die Zeitgeberunterbrechung wird in Abständen eingeschaltet, die einem vierundzwanzigstel der Dauer einer Viertelnote entsprechen. Dieses Intervall beträgt z.B. etwa 21 ms bei einem Tempo, das 120 (einhundertzwanzig) Viertelnoten pro Minute umfaßt. Dieses Zeitintervall bestimmt das Tempo und den Zeitpunkt, bei dem alle Töne erzeugt und gedämpft werden.
  • Mit eingeschalteter Zeitgeberunterbrechung werden die folgenden Verarbeitungen, wie unten beschrieben, ausgeführt.
  • * Schritte Y-1 bis Y-4
  • Zuerst wird der Inhalt der Zeitzählung TM(1) erhöht, indem "1" dazu addiert wird, und nachfolgend werden die Zeitaktdaten als eine der Echtzeitnachrichten in den Echtzeit-FIFO geschrieben. Dann wird das zur bevorzugten Ausgabe der Echtzeitnachrichten benutzte Echtzeitflag RTF auf "1" gesetzt, gefolgt von dem nächsten Schritt, der die MIDI-Schaltung-A "23E" freigibt.
  • Diese Zeitgeberunterbrechungs-Verarbeitungsroutine arbeitet somit mit der MIDI-Out-Unterbrechungs-Verarbeitungsroutine zusammen, damit die Zeittaktdaten bevorzugt in den Out-Puffer geschrieben und aus diesem ausgegeben werden. Diese Zeitaktdaten spielen eine wichtige Rolle beim Veranlassen der Tonerzeugungseinheit 30, auf der Basis der gegebenen Musikspieldaten synchron eine gewünschte Musik zu spielen.
  • (c) Bedienfeld-Verarbeitungsroutine (Schritt B)
  • Die Einzelheiten der vorerwähnten Bedienfeld-Verarbeitungsroutine werden nun mit Bezugnahme auf Fig. 5 beschrieben.
  • * Schritte B-1 bis B-4
  • Wenn ein Stoppschalter auf dem Bedienfeld-A 21 von seinem "Aus"-Zustand in seinen "Ein"-Zustand geschaltet wird, werden die Stoppdaten als eine der Echtzeitnachrichten in den Echtzeit-FIFO geschrieben. Danach wird das zur bevorzugten Ausgabe solcher Echtzeinachrichten benutzte Echtzeitflag RTF auf "1" gesetzt. Weiter wird die MIDI- Schalltung-A "23E" freigegeben, um die Stoppdaten als Befehl zum Anhalten des Spielens auszugeben. Die Tonerzeugungseinheit 30 stoppt das Spielen der Musik, wenn sie diese Stoppdaten empfangen hat.
  • * Schritte B-5 und B-6
  • Der Wert des Spielflags PLF(A) wird auf "0" verändert, was einen Zustand anzeigt, daß keine Musik gespielt wird. Dann werden notwendige Initialisierungen ausgeführt, die umfassen: Setzen der Zeitzählung TM(3), die den zeitlichen Fortgang des Vorablesens der Musikspieldaten aus dem Musikspieldatenbereich darstellt, auf "0"; Zuweisen der Anfangsadresse des Musikspieldatenbereichs an den Adreßwert AD(1), der eine Adresse in diesem Datenbereich angibt, von wo Musikspieldaten gelesen werden; Zuweisen auch der Anfangsadresse des Musikspieldatenbereichs an den Adreßwert AD(2), der die Adresse solcher vorabgelesenen Musikspieldaten angibt, die als nächtes von der Tonerzeugungseinheit 30 zu spielen sind, und Setzen des Schrittwerts STE(A) auf "0".
  • * Schritte B-7 bis B-12
  • Die Musikspieldaten werden nacheinander in den Out-FIFO geschrieben, bis darin eine bestimmte Anzahl dieser Daten gespeichert sind (wobei diese Zahl dem vorbestimmten Wert AD(Max) entspricht, der die maximale Informationsmenge der aus dem Spieldatenbereich vorabgelesenen Musikspieldaten angibt, oder dem vorbestimmten Wert TM(Max) entspricht, der eine solche maximale Länge an Voreilzeit angibt, die zum Vorablesen der Musikspieldaten erlaubt ist). Um genau zu sein, die Schrittzeit STET der Musikspieldaten wird als die Zeitzählung TM(3), die den zeitlichen Fortgang des Vorablesens darstellt, jedesmal, wenn die Musikspieldaten ausgelesen werden, akkumuliert. Danach wird der Adreßwert AD(1), der die vorabgelesene Adresse in dem Musikspieldatenbereich angibt, um 1 (eins) erhöht. Wenn die vorbestimmte Zahl von Musikspieldaten in der gerade beschriebenen Weise in dem Out-FIFO gespeichert worden sind, werden sie durch Ändern der MIDI-Schaltung-A "23E" in ihren Freigabezustand ausgegeben, worin die vorbestimmte Zahl von Daten eine durch den vorbestimmten Wert AD(Max) definierte Anzahl von Adressen oder eine durch den vorbestimmten Wert TM(Max) definierte Zeitaduer ist.
  • * Schritte B-13 bis B-18
  • Wenn der Startschalter auf dem Bediendeld-A 21 von seinem "Aus"-Zustand in seinen "Ein"-Zustand geschaltet wird und das Spielflag PLF(A) nicht "1" sondern "0" ist, was anzeigt, daß keine Musik gespielt wird, wird zuerst das Spielflag PLF(A) auf "1" gesetzt, um einen Zustand anzuzeigen, bei dem eine gewünschte Musik gespielt wird, und danach werden die Startdaten als eine der Echtzeitnachrichten in den Echtzeit-FIFO geschrieben. Nachdem anschließend das Echtzeitflag RTF auf "1" gesetzt worden ist, wird die MIDI-Schaltung-A "23E" aktiviert, ihren Freigabezustand anzunehmen, um die den Beginn des Musikspielens anzeigenden Startdaten auszugeben. Die Tonerzeugungseinheit 30 emp fängt diese Startdaten und beginnt das Spielen der Musik auf der Basis der Musikspieldaten, die zuvor vorabgelesen und in diese Einheit eingegeben worden sind.
  • * Schritte B-19 und B-20
  • Die Zeitzählungen TM(1) und TM(2) werden zu "0" initialisiert, gefolgt vom Einstellen des Schrittwerts STE(A) auf die Schrittzeit STET der voreilenden Musikspieldaten.
  • (d) Spieladressen-Verarbeitungsroutine (Schritt E)
  • Diese Routine ist in Fig. 6 dargestellt und arbeitet wie folgt.
  • * Schritte E-1 bis E-3
  • Eine Entscheidung wird getroffen, ob der Schrittwert STE(A) "0" ist oder nicht. Wenn dieser Wert "0" ist, sind die fraglichen Musikspieldaten nun zum Spielen zu verarbeiten. Um den Adreßwert AD(2) inkremental um "1" (eins) zu erhöhen, wird daher "1" zu dem Wert AD(2) addiert, der eine solche Adresse vorabgelesener Musikdaten anzeigte, die als nächstes von der Tonerzeugungseinheit 30 zu spielen sind. Folglich wird solch ein erneuerter Adreßwert AD(2) dann benutzt, um aus dem Musikspieldatenbereich die nächsten Musikspieldaten zu lesen, deren Schrittzeit STET einen dann bestehenden Inhalt des Schrittwerts STE(A) ersetzt.
  • * Schritte E-4 und E-5
  • In einem Fall wo der Schrittwert STE(A) nicht "0" ist, wird von seinem momentanen Inhalt "1" abgezogen, wodurch der verminderte Wert einen Zeitverlauf anzeigt. Die Zeitzählung TM(2) wird daher um "1" erhöht.
  • Die oben beschriebene Spieladressen-Verarbeitungsroutine ist, kurz zusammengefaßt, derartig, daß eine Musikspielangabe zu ihrem tatsächlichen Spielzeitpunkt gelesen und eine diesem Lesen der Angabe entsprechende Adresse als zu dieser Zeit wirksamer Adreßwert AD(2) verwendet wird, um eine solche Adresse zu bestimmen, die einer Musikspielangabe entspricht, die von der Tonerzeugungseinheit 30 als nächstes gespielt werden sollte.
  • (e) Musikspieldaten-Leseroutine
  • Zum Schluß wird diese Routine als der Schritt H mit Bezug auf Fig. 7 beschrieben.
  • * Schritte H-1 bis H-3
  • Eine Musikspielangabe, die in dem Musikspieldatenbereich an einer Stelle gespeichert ist, die durch den Adreßwert AD(1) adressiert wird, wird in den Out-FIFO geschrieben. Die MIDI-Schaltung-A "23E" wird dann in ihren Freigabezustand gebracht, um diese Musikspielangabe auszugeben, die in diesem Fall von der Art einer exklusiven Nachricht ist und noch Zeitinformationen wie die Schrittzeit STET und die Torzeit GATT besitzt, wobei diese Informationen diejenigen sind, die von den Musikspieldaten in dem Musikspieldatenbereich besessen worden sind. Als nächstes wird die Zeitzählung TM(3) um einen Wert erhöht, der der Schrittzeit STET der Musikspielangabe entspricht, die in dem vorangehenden Schritt ausgegeben wurde. Weiter wird zu Adreßwert AD(1) "1" addiert, um dadurch die Adresse um "1" vorzurücken, auf die das nächste Mal in dem Musikspieldatenbereich zugegriffen werden kann.
  • TONERZEUGUNGSEINHEIT
  • Die Grundfunktionen der Tonerzeugungseinheit 30, die wie zuvor erwähnt aufgebaut ist, werden nun im einzelnen mit Bezug auf den in Fig. 10 gezeigten Ablaufplan der Hauptroutine beschrieben. Zuerst wird ein in dem RAM-B "31C" vorgesehener Datenbereich umrissen.
  • (1) Arbeitsbereich
  • (i) Spielflag PLF(B) gibt einen Zustand an, bei dem Musik gespielt wird.
  • (ii) Zeitzählung TM(4) wird jedesmal, wenn die Zeittaktangabe empfangen wird, um "1" erhöht, womit der Zeitverlauf angegeben wird.
  • (iii) Zeitzählung TM(5) wird jedesmal um "1" erhöht, wenn eine Verarbeitung gemäß der Tonerzeugungs/Dämpfungsroutine ausgeführt wird, um Musikspieldaten, die vorübergehend gespeichert worden waren, zu lesen, womit ein Vorschreiten der Verarbeitung angegeben wird.
  • (iv) Schrittwert STE(B) wird verwendet, um für die Ausführung der Tonerzeugungs/Dämpfungsroutine einen Zeitpunkt zu bestimmen, bei dem ein Ton zu erzeugen ist.
  • (v) In-FIFO ist ein First-in-first-out-Speicher, der benutzt wird, wenn MIDI-Daten eingegeben werden.
  • (vi) FIFO(1) ist ein weiterer FIFC-Speicher, der benutzt wird, um Musikspieldaten als exklusive Nachrichten, die in dem In-FIFO gespeichert und von diesem übermittelt worden sind, vorübergehend zu speichern.
  • Der In-FIFO und der FIFO(1) sind in einer ringähnlichen Form gebildet, so daß ein Schreibzeiger und ein Lesezeiger Adressen angeben, auf die zum Schreiben bzw. Lesen zugegriffen werden kann. Diese Zeiger werden jedesmal vorgerückt, wenn ein Schreiben oder Lesen ausgeführt wird.
  • (vii) FIFO-Puffer wird benutzt, um die Musikspielangabe mit einer Länge, die einer Musiknote entspricht, vorübergehend zu speichern. Dieser Puffer umfaßt Bereiche zum Speichern der Notennummer NNUM, der Geschwindigkeit VEL, der Schrittzeit STET und der Torzeit GATT. Die in dem FIFO(1) gespeicherten Musikspieldaten müssen einmal in diesem FIFO-Puffer gespeichert werden, bevor sie zu verschiedenen Zwecken bereitgestellt werden.
  • (viii) Der Notenplan, in Fig. 11 gezeigt, ist für die Tonerzeugungs/Dämpfungsroutine vorgesehen und umfaßt Bereiche für Notenflags NF, die jeweils Ein/Aus-Zustände der Noten, die Notennummern "0" bis "127" tragen, angeben. Der Notenplan umfaßt weiter Bereiche für die Torzeit Gatt für jede Note.
  • (I) Grudzüge der Hauptroutine
  • Schritt O -- Ein vorbestimmtes Programm beginnt wenn die Stromquelle eingeschaltet wird und das RAM-B "31C", dem Register und andere Bereiche zugewiesen sind, initialisiert ist. Weiter werden der MIDI- Schaltung-B 31C und der Musikton-Erzeugungsschaltung 33 Anfangseinstellanweisungen erteilt.
  • Schritt P -- Ermittlungen werden ausgeführt, um gewünschte Funktionen zu bestimmen, die mit Hilfe manuell bedienbarer Elemente an dem Bedienteil eingestellt werden, wobei die so bestimmten Funktionen und die übrige Information auf einem Anzeigefeld dargestellt werden.
  • Schritt Q -- Es wird entschieden, ob ein Wert der Zeitzählung TM(4) einen Wert der Zeitzählung TM(5) überschritten hat oder nicht. Wenn "Nein", geht der Ablauf zu Schritt P zurück, während im Fall der "Ja"- Entscheidung der Ablauf zum nächsten Schritt vorwärtsgeht.
  • Schritt R -- Tonerzeugungs/Dämpfungsroutine -- Musikspieldaten, die vorabgelesen worden und in dem FIFO(1) gespeichert sind, werden aus diesem gemäß einem Timing der Tonerzeugung gelesen. Daneben wird mit Hilfe des Notenplans eine Suche durchgeführt, um Musiknoten herauszufinden, die ihrem Timing nach zu Dämpfen sind. Auf der Basis der obigen beiden Verarbeitungen führt die Musikton-Erzeugungsschaltung 33 die Tonerzeugungs/Dämpfungsroutine aus. Einzelheiten werden später mit Bezug auf einen in Fig. 12 gezeigten Ablaufplan dargelegt.
  • (II) Einzelheiten der Subroutinen
  • Zuerst wird eine MIDI-IN-Unterbrechungs-Verarbeitungsroutine beschrieben, und dann wird eine Beschreibung der Tonerzeugungs/Dämpfungsroutine folgen.
  • (a) MIDI-IN-Unterbrechungs-Verarbeitungsroutine (Fig. 13)
  • Die MIDI-IN-Unterbrechung wird eingeschaltet wenn MIDI-Daten eingegeben werden, um in dem IN-Puffer gespeichert zu werden. Die auszuführenden Verarbeitungsarten werden abhängig von der Art der eingegebenen MIDI-Daten entschieden.
  • * Schritte Z-1 und Z-2
  • Die in dem IN-Puffer gespeicherten MIDI-Daten werden an den In-FIFO übergeben. Die folgenden Verarbeitungen werden, gemäß der Art der Daten, in einem Fall ausgeführt, wo befunden wird, daß die eingegebenen MIDI-Daten Standardlängen gemäß den in den MIDI-Standards definierten Datentypen erhalten haben oder von einer Art sind, die ein Ende der exklusiven Nachrichten anzeigen, wobei dieses Ende wiederum die Beendigung der MIDI-Dateneingabe angibt.
  • * Schritte Z-3 bis Z-5
  • Wenn entschieden wird, daß der MIDI-Wert ein Stopp-Wert der Echtzeitnachrichten ist, wird der Musikton-Erzeugungsschaltung 33 eine Anweisung erteilt, eine Tondämpfung auszuführen, um den Ton, der in diesem Moment erzeugt wird, zu dämpfen. Nach dieser Verarbeitung wird eine Initialisierung der Schreib- und Lesezeiger des FIFO(1), des Spielflags PLF(B), des FIFO-Puffers, und der Zeitzählungen TM(4) und TM(5) ausgeführt.
  • * Schritte Z-6 bis Z-8
  • Wenn entschieden wird, daß der MIDI-Wert ein Start-Wert der Echtzeitnachrichten ist, wird das Spielflag PLF(B) auf "1" gesetzt, und eine Musikspielangabe, die der führenden Musiknote entspricht, wird aus dem FIFO(1) gelesen und in den FIFO-Puffer übertragen. Danach wird die in den FIFC-Puffer geschriebene Schrittzeit STET in den Schrittwert STE(B) eingesetzt.
  • * Schritte Z-9 bis Z-11
  • Wenn der MIDI-Wert als eine der Echtzeitnachrichten ein Zeittaktwert ist, wird entschieden, ob das Spielflag PLF(B) "1" ist oder nicht. Wenn "Ja", wird zu der Zeitzählung TM(4) "1" addiert, um deren Inhalt zu erneuern.
  • * Schritte Z-12 und Z-13
  • Wenn befunden wird, daß der MIDI-Wert eine Musikspielangabe als eine der exklusiven Nachrichten ist, wird der Inhalt des In-FIFO in den FIFO(1) übertragen.
  • Es wird einzusehen sein, daß diese Routine in einem Fall beendet wird, wo der fragliche MIDI-Wert als Echtzeitnachricht weder einen Start-, Stopp- oder Zeittaktwert noch als Exklusivnachricht eine Musikspielangabe darstellt.
  • (b) Tonerzeugungs/Dämpfungsroutine (Schritt R)
  • Fig. 12 zeigt diese Routine.
  • * Schritte R-1 bis R-5
  • Zuerst wird entschieden, ob der Schrittwert STE(B) "0" ist oder nicht. Wenn "Ja", wird der Musikton-Erzeugungsschaltung 33 eine Anweisung erteilt, um auf der Basis der Notennummer NNUM und der Geschwindigkeit VEL, die Bestandteil der in dem FIFO-Puffer gespeicherten Musikspieldaten sind, einen Musikton zu erzeugen. Die Schaltung 33 erzeugt somit den Ton abhängig von dem in der Anweisung enthaltenen Wert. Beim nächsten Schritt wird das Notenflag NF, das in dem Notenplan enthalten ist und der Notennummer NNUM, die mit der oben erwähnten Anweisung in Beziehung steht, entspricht, auf "1" gesetzt. Eine weitere, ebenfalls bei diesem Schritt ausgeführte Verarbeitung ist das Lesen der Torzeit GATT aus dem FIFI-Puffer, um dieselbe in einen Bereich zu schreiben, der der Notennummer NNUM in dem Notenplan entspricht. Eine nachfolgende Musikspielangabe, die der nächsten Note entspricht, wird dann aus dem FIFO(1) gelesen und in den FIFO-Puffer übertragen, wobei anschließend die in diesem Puffer gespeicherte Schrittzeit STET in den Schrittwert STE(B) eingesetzt wird.
  • Wie zu sehen sein wird, sind diese Schritte so zusammengesetzt, daß der Musiknoten-Erzeugungsschaltung 33 ein Befehl erteilt wird, einen Ton zu erzeugen wenn ihr Zeitpunkt gekommen ist, und zur gleichen Zeit wird eine Vorbereitung für die nächsten Musikspieldaten getroffen.
  • * Schritt R-6
  • Wenn bei Schritt R-1 STE(B) nicht "0" ist, wird von STE(B) "1" sub trahiert.
  • * Schritte R-7 bis R-15
  • Wenn die Torzeit GATT für eine Notennummer NNUM, deren Notenflag NF "1" ist, nicht "0" ist, wird von der Torzeit GATT "1" subtrahiert. Wenn jedoch für eine Notennummer NNUM, deren Notenflag NF "1" ist, die Torzeit GATT "0" ist, wird das Notenflag NF für diese Notennummer NNUM auf "0" gesetzt, und der Musikton-Erzeugungsschaltung 33 wird eine Anweisung zur Tondämpfung erteilt. Diese Schrittfolge wird für jede Notennummer NNUM "0" bis "127" wiederholt, und zum Schluß wird der Zeitwert TM(5) um "1" erhöht, wenn der Prozeß alle Verarbeitungen in dieser Routine vollendet hat.
  • Die Schritte R-8 bis R-15 sind daher so ausgelegt, daß der Tonerzeugungsschaltung 33 eine Anweisung zur Tondämpfung erteilt wird, wenn ihr Zeitpunkt gekommen ist.
  • BETRIEB
  • Der Betrieb und die Funktionen der oben beschriebenen automatischen Spielvorrichtung 20 und der Tonerzeugungseinheit 30 werden nachstehend zusammengefaßt.
  • Vor dem Spielen der Musik wird der Stoppschalter am Bedienfeld-A 21 der automatischen Spielvorrichtung 20 betätigt. Als Reaktion darauf wird eine vorbestimmte Menge von Musikspieldaten (wobei diese Menge einem solchen vorbestimmten Wert AD(Max) entspricht, der die maximal erlaubte Informationsmenge, die in den vorabgelesenen Musikspieldaten enthalten ist, festlegt, oder einem solchen vorbestimmten Wert TM(Max) entspricht, der eine maximal erlaubte Länge der Voreilzeit beim Vorablesen dieser Daten festlegt) aus dem Spieldatenbereich vorabgelesen. Die so vorabgelesenen Musikspieldaten werden dann als MIDI-Daten an die Tonerzeugungseinheit 30 ausgegeben und in dem Speicher-FIFO(1) dieser Einheit gespeichert.
  • Danach wird der Startschalter am Bedienfeld-A 21 der automatischen Spielvorrichtung 20 betätigt, um die Startdaten als MIDI-Daten an die Tonerzeugungseinheit 30 zu übergeben. Nachdem die Tonerzeugungseinheit 30 die Startdaten empfangen hat, beginnt sie die vorabgelesenen und in dem FIFO(1) gespeicherten Musikspieldaten zu lesen, um basierend auf der Eingabe der Zeittaktdaten Musik zu spielen. Andererseits soll die automatische Spielvorrichtung 20 die Musikspieldaten aus dem Musikspieldatenbereich vorablesen und diese Daten entsprechend dem Fortgang des Spielens der Musik durch die Einheit 30 an die Einheit 30 übertragen.
  • Es wird nun ersichtlich sein, daß ein Schwanken oder eine Ungenauigkeit, die andernfalls durch Übertragungen der Musikspieldaten verursacht werden würden, hierin beim Timing des Spielens nicht hervorgerufen wird, da das Timing nicht abhängend von der Eingabe der Musikspieldaten, sondern abhängend von der Eingabe der Zeittaktdaten gesteuert wird.
  • Wenn der Stoppschalter am Bedienfeld-A 21 wieder betätigt wird, wird das Vorablesen von Musikspieldaten angehalten, und die Stoppdaten werden als MIDI-Daten ausgegeben, und eine andere vorbestimmte Menge von Musikspieldaten wird in der automatischen Spielvorrichtung 20 vorabgelesen und ausgegeben, um den nächsten Spielbeginn vorzubereiten.
  • Die Tonerzeugungseinheit 30, die zur gleichen Zeit die Stoppdaten empfangen hat, soll das Spielen beenden.
  • MODIFIKATIONEN DER AUSFÜHRUNG
  • Die oben beschriebene Ausführung kann wie folgt auf verschiedene Weise modifiziert werden.
  • Die Musikspieldaten müssen nicht unbedingt nur in dem Moment übertragen werden, wenn bei der Ausführung der Stoppschalter betätigt wird, sondern können jederzeit im voraus bevor diese Daten benutzt werden, übertragen werden. Die Daten können z.B. vorher zu einem Zeitpunkt, wenn dem System mittels der manuell bedienbaren Elemente an dem Bedienfeld-A 21 eine geeignete Anweisung erteilt wird, oder in einem Zeitraum vom Einschalten des Startschalters bis zum Übertragen der Startdaten übertragen werden.
  • Das Spielen von Musik kann auf modifizierten Musikspieldaten beruhen, die durch teilweises Verändern oder Zufügen von Information zu den ursprünglich eingegebenen Musikspieldaten erzeugt werden können, obwohll diese Originaldaten selbst von der Tonerzeugungseinheit 30 benutzt werden, um bei der Ausführung Töne zu erzeugen. Dies ist möglich, weil zwischen dem Zeitpunkt des Eingebens der Musikdaten und dem Zeitpunkt des Musikspielens eine Zeitlänge besteht, die eine Interpretation der Originaldaten ermöglicht, um solche oben erwähnten Änderungen oder Eränzungen (einschließlich des Zufügens von Musiktonsteuerungsdaten, z. B. Tonqualitätssteuerungsdaten) durchzuführen. In einem solchen Fall können Töne erzeugt werden, die durch Verändern der Hauptformen oder anderer akustischer Merkmale der Wellenformen oder durch Steuern der Tonerzeugungszeitpunkte auf der Basis dieser Hauptmerkmale oder der Geschwindigkeiten VEL höhere musikalische Wirkungen haben.
  • Bei der oben beschriebenen Ausführung hat jede Angabe, die von der Musikspielvorrichtung 20 an die Tonerzeugungseinheit 30 übertragen wird, eine Form, die eine Schrittzeit STET und eine Torzeit GATT umfaßt, die als die Zeitinformation zu einer Datenkomponente addiert werden, die das "Note-Ein-Ereignis" angibt. Diese Datenform macht es möglich, die Länge der zu erzeugenden Töne direkt zu bestimmen, wodurch die Verarbeitung zur Interpretation der Musikspieldaten leicht ausgeführt werden kann. Es kann jedoch eine andere Datenform verwendet werden, die Datenkomponenten, die ein "Note-Ein-Ereignis" und ein "Note-Aus-Ereignis" anzeigen, zusätzlich zu der Schrittzeit STET als die einzige Zeitinformation umfaßt. Die Länge der Töne kann in einem solchen Fall berechnet werden. Außerdem kann die Schrittzeit STET den Zeitverlauf von Note-Ein der momentanen Musiknote bis Note-Ein der nächsten Musiknote angeben, anstatt, wie bei der Ausführung, den Zeitverlauf von dem Note-Ein der unmittelbar vorangehenden Musiknote bis zum Note-Ein der momentanen Musiknote anzugeben.
  • Obwohl die Informationsmenge und die Zeitlänge als Bedindungen des Vorablesens von Musikspieldaten benutzt werden, kann jede dieser Bedingungen allein benutzt werden, wenn es für ausreichend gehalten wird. Es ist auch möglich, daß einige Stufen von Verarbeitungsraten oder -geschwindigkeiten hinsichtlich der Bedingungen der Informationsmenge und der Zeitlänge in einer Weise enthalten sind, daß die Verarbeitung bei der am meisten beschleunigten Ausführung bei jeder Entscheidung, bei einer wesentlich beschleunigten Ausführung bei jeder dritten Entscheidung und bei einer nahezu unbeschleunigten Ausführung bei jeder zehnten Entscheidung ausgeführt wird. Folglich beeinflußt die Ausführung des Vorablesens die Ausführung anderer Verarbeitungen als das Vorablesen kaum, und eine ungleiche Informationsdichte pro Zeiteinheit wird ausgeglichen oder vermindert. Dies gleicht die Häufigkeit pro Zeiteinheit der MIDI-Datenverarbeitung in der Tonerzeugungseinheit 30, die diese Daten empfängt, aus, wodurch Einflüsse auf die anderen Verarbeitungen vermindert werden.
  • Obwohl bei der Ausführung keine Verarbeitung einer "MIDI-weich-hindurch-Verarbeitung" genannten Art oder einer anderen "Ausgeben von MIDI-Daten bei Note-Ein/Aus-Ereignis" genannten Art verwendet wird, ist es natürlich möglich, eine oder beide dieser Verarbeitungen zu verwenden, worin, gemäß der ersteren Verarbeitung, die der automatischen Spielvorrichtung 20 von anderen elektrischen Musikinstrumenten zugeführten MIDI-Daten als solche direkt über den Mikrocomputer-A an die Tonerzeugungseinheit 30 übergeben werden, und gemäß der letzteren Verarbeitung die Note-Ein/Aus-MIDI-Daten ohne jede hinzugefügte Zeitinformation in der gleichen Weise wie bei den gewöhlichen automatischen Spielvorrichtungen ausgegeben werden. In einem solchen Fall werden diese Verarbeitungen bevorzugter ausgeführt als das Vorablesen der Musikspieldaten, weil das Ausgeben der MIDI-Daten bei dem Vorablesen ein bißchen spät sein darf.
  • Anstelle der Exklusivnachrichten, die bei der Ausführung benutzt werden, um die Musikspieldaten mit der daran angebrachten Zeitinformation zu übertragen, können Kanalsprachnachrichten wie Nach-Berührung-Daten und Steueränderungsdaten verwendet werden, um die Musikspieldaten zu übertragen. In einem solchen Fall sollen die Bedeutungen der Kanalsprachnachrichten vor dem Spielen an die Tonerzeugungseinheit 30 übermittelt und in dieser festgelegt werden. Es ist möglich, diese Bedeutungen nicht nur mit Hilfe manueller Elemente, die für das Einstellen dieser Einheit 30 bedienbar sind, sondern auch mit Hilfe solcher Signale zu definieren, die von der automatischen Spielvorrichtung 20 an die Einheit 30 übergeben werden.
  • Lieferung und Empfang der Musikspieldaten können auf der Basis beliebiger anderer Verfahren als den MIDI-Standards, auf denen die Ausführung beruht, vorgenommen werden.
  • Das Spielen der Musik kann nach vorübergehender Unterbrechung fortgesetzt werden, wobei der Prozeß wieder beginnt, die nächsten und nachfolgenden Musikspieldaten zu liefern, wenn der Stoppschalter zum Zeitpunkt einer Musikangabe während des Spielens eingeschaltet wird, obwohl eine solche Fortsetzungsverarbeitung in der Ausführung nicht vorgesehen ist. Alternativ ist auch möglich, die Fortsetzungsverarbeitung leicht so auszuführen, daß bei festgelegten Musikspieldaten neu begonnen wird.
  • Wenn während des Spielens Musikdaten in Neue geändert werden und diese Musikspieldaten bereits an die Tonerzeugungseinheit 30 gesendet worden sind, können die neuen Musikspieldaten trotzdem an die Einheit 30 übergeben werden.
  • Wenn die automatische Spielvorrichtung 20 und die Tonerzeugungseinrichtung 30 jeweilige Zeitmeßeinrichtungen mit der gleichen Taktgeschwindigkeit besitzen, brauchen die Zeitaktdaten nicht wie bei der Ausführung übertragen zu werden. In diesem Fall kann eine Verarbeitung, ähnlich der Zeitgeber-Unterbrechungsverarbeitung bei der Ausführung, jedesmal ausgeführt werden, wenn die Zeitmeßeinrichtung in der automatischen Spielvorrichtung 20 eine vorbestimmte Zeitdauer gemessen hat. Ebenso kann eine Verarbeitung ähnlich der Verarbeitungdie bei Empfang der Zeittaktdaten durchgeführt wird, ausgeführt werden, wenn die Zeitmeßeinrichtung in der Tonerzeugungseinrichtung 30 eine vorbestimmte Zeitdauer gemessen hat. Justierungen der Zeitmeßeinrichtungen hinsichtlich der Einstellung von Timings und inkrementalen Schrittgeschwindigkeiten können vorgenommen werden, wenn der Startschalter oder der Stoppschalter betätigt wird.
  • Bei der oben beschriebenen Ausführung ist die Musikspielvorrichtung 20 direkt mit der Tonerzeugungseinheit 30 verbunden, und die Musikspieldaten mit der daran angefügten Zeitinformation werden an die Einheit 30 geliefert, so daß sie in Daten des üblichen Note-Ein/Aus- Typs, der zur Tonerzeugung in der Einheit 30 benutzt wird, umgewandelt werden. Eine geeignete Umwandlungseinrichtung für diese Umwandlung kann jedoch zwischen die Vorrichtung 20 und die Einheit 30 eingesetzt werden, wodurch eine gewöhnliche Tonerzeugungseinheit anstelle der speziellen Tonerzeugungseinheit 30 in der Ausführung angenommen werden kann, weil diese besonderen Verarbeitungen wie darin kraft der der dazwischengesetzten Umwandlungseinrichtung unnötig wird.
  • In einem Fall, wo nur eine Tonerzeugungseinheit 30 verwendet wird, werden gewöhnliche Musikspieldaten zwischen der Einheit 30 und der Umwandlungseinrichtung übertragen, so daß eine Nichtübereinstimmung im Timing der Tonerzeugung nicht verhindert wird. In einem anderen Fall, wo die Musikspieldaten von einer einzigen automatischen Spielvorrichtung 20 über jeweilige Umwandlungseinrichtungen an viele Tonerzeugungseinheiten 30 übertragen werden, kann es jedoch möglich werden, diese Nichtübereinstimmung zu vermindern, da die Übertragung der Daten zwischen der Vorrichtung 20 und den Umwandlungseinrichtungen das Timing der Tonerzeugung durch die Einheit 30 nicht beeinflussen wird.
  • Da bei der oben beschriebenen Ausführung die automatische Spielvorrichtung 20 den Fortgang des Lesens der vorübergehend in der Einheit 30 speichertern Musikspieldaten berechnet und ermittelt, ist ferner bei einem solchen System eine Einweg-kommunikationseinrichtung ausreichend. Es können jedoch andere kommunikationseinrichtungen, wie z.B. solche, die für Handshake-Betrieb und Durchflußregelungsverbeitung geeignet sind, verwendet werden, die nützlich sind, die Vorrichtung 20 mit Informationen hinsichtlich solcher Musikspieldaten zu versorgen, die von der Einheit 30 gerade benutzt werden, um Töne zu erzeugen.

Claims (11)

1. Automatische Spielvorrichtung einer automatischen Musikspielanlage, wobei die Vorrichtung umfaßt:
(a) eine erste Speichereinrichtung (1) zur Speicherung zeitlich seriell angeordneter Musikspieldaten;
(b) eine Berechnungseinrichtung (2), um die tatsächliche Zeitlänge, die noch benötigt wird, um die zu spielende Musik zu spielen, auf der Basis aus der ersten Speichereinrichtung (1) vorabgelesener Musikspieldaten zu berechnen, und/oder um die tatsächliche Spielinformationsmenge, die in den vorabgelesenen Musikspieldaten noch übrig ist, um gespielt zu werden, zu berechnen;
(c) eine Vergleichseinrichtung (3) zum Bestimmem, ob diese tatsächliche Zeitlänge kleiner als eine vorbestimmte Zeitlänge ist oder nicht, und/oder ob diese tatsächliche Spielinformationsmenge kleiner als eine vorbestimmte Informationsmenge ist oder nicht;
(d) eine erste Leseeinrichtung (4), um aus der ersten Speichereinrichtung (1) die darin vor dem Spielen der Musik zeitlich seriell geschriebenen Musikspieldaten sequentiell vorabzulesen, wann immer die Vergleichseinrichtung (3) bestimmt, daß diese tatsächliche Zeitlänge kleiner ist als die vorbestimmte Zeitlänge, und/oder daß diese tatsächliche Spielinformationsmenge kleiner ist die vorbestimmte Informationsmenge; und
(e) eine Ausgabeeinrichtung (5), eingerichtet, um wenigstens die durch die erste Leseeinrichtung vorabgelesenen Musikspieldaten auszugeben.
2. Automatische Spielvorrichtung nach Anspruch 1, worin die Musikspieldaten sowohl Spielinformationen, die eine Tonerzeugung oder Dämpfung anzeigen, als auch Zeitinformationen, die die Zeitpunkte und/oder die Dauer der Tonerzeugung oder Dämpfung anzeigen, umfassen.
3. Automatische Spielvorrichtung nach Anspruch 1 oder 2, worin die Berechnungseinrichtung (2) diese tatsächliche Zeitlänge als die Zeitlänge bestimmt, mit der die Musikspieldaten im voraus vor dem tatsächlichen Spielen der dadurch dargestellten Musik vorabgelesen werden, und ferner die Berechnungseinrichtung die tatsächliche Spielinformationsmenge als die Informationsmenge bestimmt, die durch die noch nicht wirklich gespielten, vorabgelesenen Musikspieldaten gebildet wird.
4. Automatische Spielvorrichtung nach einem der Ansprüche 1 bis 3, worin die Berechnungseinrichtung (2) die tatsächliche Spielinformationsmenge in Form der Speicherkapazität bestimmt, die erforderlich ist, um die vorabgelesenen Musikspieldaten zu speichern.
5. Automatische Spielvorrichtung nach Anspruch 1, worin die Musikspieldaten sowohl Spielinformationsteile, die eine Tonerzeugung oder Dämpfung anzeigen, als auch Zeitinformationsteile, die die Zeitpunkte und/oder die Dauer der Tonerzeugung oder Dämpfung anzeigen, umfassen, und worin die Berechnungseinrichtung (2) die tatsächliche Zeitlänge aus der Summe der in den vorabgelesenen Musikspieldaten enthaltenen Zeitinformationsteilen zusammen mit einem Maß der tatsächlich vergangenen Spielzeit bestimmt, und worin die Berechnungseinrichtung (2) die tatsächliche Spielinformationsmenge in Form der für alle vorabgelesenen Musikspieldaten erforderlichen Speicherkapazität zusammen mit der für die Musikspieldaten, die tatsächlich gespielt worden sind, erforderlichen Speicherkapazität bestimmt.
6. Automatische Spielvorrichtung nach Anspruch 5, worin die Berechnungseinrichtung (2) die in der ersten Speichereinrichtung gespeicherten Musikspieldaten mit der gleichen Geschwindigkeit wie die Geschwindigkeit, mit der die Musik tatsächlich gespielt wird, liest, um die für alle Musikspieldaten, die tatsächlich gespielt worden sind, erforderliche Speicherkapazität zu bestimmen.
7. Automatische Spielvorrichtung nach einem der vorangehenden Ansprüche, worin die Ausgabeeinrichtung (5) Zeittaktdaten zusätzlich zu den Musikspieldaten ausgibt.
8. Tonerzeugungseinheit einer automatischen Musikspielanlage, die eine automatische Spielvorrichtung nach einem der vorangehenden Ansprüche enthält, wobei die Einheit umfaßt:
(a) eine Eingabeeinrichtung (10), um wenigstens die zeitlich seriell angeordneten vorabgelesenen Musikspieldaten zu empfangen, die durch die Ausgabeeinrichtung (5) ausgegeben worden sind;
(b) eine zweite Speichereinrichtung (11), um die von der Eingabeeinrichtung (10) empfangenen vorabgelesenen Musikspieldaten vorübergehend zu speichern, bis die Spieldaten zum tatsächlichen Spielen gelesen werden, wobei die zweite Speichereinrichtung (11) wenigstens Spieldaten für Musik mit einer Dauer, die der vorbestimmten Zeitlänge entspricht, und/oder für die vorbestimmte Spielinformationsmenge speichert;
(c) eine zweite Leseeinrichtung (12), um gemäß einem vorbestimmten Timing aus der zweiten Speichereinrichtung die darin zeitlich seriell geschriebenen vorabgelesenen Musikspieldaten sequentiell zu lesen, wenn von der Eingabeeinrichtung (10) empfangene, neue vorabgelesene Musikdaten in der zweiten Speichereinrichtung (11) gespeichert werden, um die von der zweiten Leseeinrichtung (12) gelesenen Daten zu ersetzen, und
(d) eine musikalische Tonerzeugungseinrichtung (13) zum Erzeugen und/oder Dämpfen musikalischer Töne, um gemäß den durch die zweite Leseeinrichtung gelesenen Musikspieldaten Musik zu spielen.
9. Tonerzeugungseinheit nach Anspruch 8, worin die Eingabeeinrichtung (10) Zeittaktdaten zusätzlich zu den Musikspieldaten empfängt, wobei sich die zweite Leseeinrichtung (12) auf die Zeittaktdaten als vorbestimmtes Timing stützt.
10. Tonerzeugungseinheit nach Anspruch 8, worin die zweite Leseeinrichtung (12) eine Zeitmeßeinrichtung enthält, so daß eine tatsächlich gemessene Zeitlänge benutzt wird, um das vorbestimmte Timing zu liefern.
11. Automatische Musikspielanlage mit einer automatischen Spielvorrichtung nach einem der Ansprüche 1 bis 7 und einer Tonerzeugungseinheit nach einem der Ansprüche 8 bis 10.
DE68914152T 1989-08-19 1989-11-14 Automatische Spiel- und Tonerzeugungseinheit in einer automatischen Musikanlage. Expired - Fee Related DE68914152T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21389889 1989-08-19

Publications (2)

Publication Number Publication Date
DE68914152D1 DE68914152D1 (de) 1994-04-28
DE68914152T2 true DE68914152T2 (de) 1994-10-06

Family

ID=16646844

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68914152T Expired - Fee Related DE68914152T2 (de) 1989-08-19 1989-11-14 Automatische Spiel- und Tonerzeugungseinheit in einer automatischen Musikanlage.

Country Status (4)

Country Link
US (1) US5129302A (de)
EP (1) EP0413868B1 (de)
JP (1) JPH03155595A (de)
DE (1) DE68914152T2 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5270476A (en) * 1990-03-12 1993-12-14 Roland Corporation Electronic musical instrument
US5200564A (en) * 1990-06-29 1993-04-06 Casio Computer Co., Ltd. Digital information processing apparatus with multiple CPUs
US5584034A (en) * 1990-06-29 1996-12-10 Casio Computer Co., Ltd. Apparatus for executing respective portions of a process by main and sub CPUS
JP2626387B2 (ja) * 1991-12-24 1997-07-02 ヤマハ株式会社 電子楽器
US5525748A (en) * 1992-03-10 1996-06-11 Yamaha Corporation Tone data recording and reproducing device
US5496962A (en) * 1994-05-31 1996-03-05 Meier; Sidney K. System for real-time music composition and synthesis
JP3493737B2 (ja) * 1994-08-12 2004-02-03 ヤマハ株式会社 送信ノードおよび受信ノード
JP4134945B2 (ja) * 2003-08-08 2008-08-20 ヤマハ株式会社 自動演奏装置及びプログラム
TWI270051B (en) * 2005-08-18 2007-01-01 Sunplus Technology Co Ltd Structure and method for broadcasting MIDI message and multi-media apparatus
CN1741125B (zh) * 2005-09-23 2010-09-29 北京中星微电子有限公司 音乐事件持续时间补偿装置
CN1741126B (zh) * 2005-09-23 2010-09-29 北京中星微电子有限公司 音乐事件持续时间补偿方法
JP5188863B2 (ja) * 2008-04-07 2013-04-24 ローランド株式会社 電子楽器
CN110532423A (zh) * 2019-08-20 2019-12-03 广州市迪声音响有限公司 一种定时播放音频的方法和装置以及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58211485A (ja) * 1982-06-02 1983-12-08 Nippon Gakki Seizo Kk 楽譜デ−タの補正方法
JPH079586B2 (ja) * 1984-12-29 1995-02-01 ヤマハ株式会社 電子楽器の自動伴奏装置
JPH0658599B2 (ja) * 1986-05-23 1994-08-03 ヤマハ株式会社 自動演奏装置
JPH0690617B2 (ja) * 1987-02-06 1994-11-14 ヤマハ株式会社 電子楽器
US4898059A (en) * 1987-02-06 1990-02-06 Yamaha Corporation Electronic musical instrument which compares amount of data recorded in internal memory device with storage capacity of external memory device and selectively transfers data thereto
JPH0670876B2 (ja) * 1987-02-10 1994-09-07 ソニー株式会社 光学ディスク及び光学ディスク再生装置
JP2560372B2 (ja) * 1988-01-06 1996-12-04 ヤマハ株式会社 自動演奏装置
US4993306A (en) * 1988-05-22 1991-02-19 Kawai Musical Inst. Mfg. Co., Ltd. Device for correcting timing of music playing information for use in music auto play device

Also Published As

Publication number Publication date
JPH03155595A (ja) 1991-07-03
DE68914152D1 (de) 1994-04-28
EP0413868A3 (en) 1991-04-24
US5129302A (en) 1992-07-14
EP0413868B1 (de) 1994-03-23
EP0413868A2 (de) 1991-02-27

Similar Documents

Publication Publication Date Title
DE68914152T2 (de) Automatische Spiel- und Tonerzeugungseinheit in einer automatischen Musikanlage.
DE69711518T2 (de) Auf Software basierendes Tonquellensystem und Verfahren zur Erzeugung von akustischen Wellenformdaten
DE69619587T2 (de) Verfahren und Vorrichtung zur Tonerzeugung
DE69730873T2 (de) Software-Tonerzeuger
DE69614765T2 (de) Durch Rechner gesteuertes Musiksystem mit hard- und softwareorientierter Tonerzeugung
DE69129522T2 (de) Taktsteuerung zum automatischen Spielen von Musik
EP0379491B1 (de) Tonhöhensteuerung
DE102007049662B4 (de) Musikklanggenerator
DE2056509A1 (de) Elektrisches Tastenmusikinstrument
DE3786654T2 (de) Tonsignal-Erzeugungsvorrichtung mit einer digitalen Ton-Speicher-Funktion.
DE602005004685T2 (de) Tonwellenform Synthesizer
DE2362050B2 (de) Elektronisches Musikinstrument
DE69615455T2 (de) Musiksystem, Tonerzeuger und Verfahren zur Tonsynthetisierung
DE3531880C2 (de)
DE69632696T2 (de) Digitales Musikinstrument mit Wellenformbearbeitung zur Erzeugung eines Klangeffektes
DE69613950T2 (de) Verfahren und Vorrichtung zur Tonerzeugung
DE69517294T2 (de) Vorrichtung zur automatischen Aufführung
DE3936693A1 (de) Vorrichtung zum erzeugen digitaler audiosignale
DE69623866T2 (de) Verfahren und Vorrichtung zur Bildung einer Tonwellenform durch kombinierte Verwendung von verschiedenen Auflösungen der Abtastwerte der Wellenformen
DE3023581C2 (de) Verfahren zur digitalen Hüllkurvensteuerung eines polyphonen Musiksyntheseinstruments und Schaltungsanordnung zur Durchführung des Verfahrens
DE69517896T2 (de) Elektronisches Musikinstrument und Vorrichtung zum Hinzufügen von Klangeffekten zum Tonsignal
DE2539950C3 (de) Bassakkordautomatik
DE69632351T2 (de) Verfahren und Vorrichtung zur Musiktonerzeugung
DE69613049T2 (de) Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung
DE69618738T2 (de) Verfahren und Vorrichtung zur Tonerzeugung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee