DE69625625T2 - Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung - Google Patents
Verfahren und Vorrichtung zur auf Software basierten TonwellenformerzeugungInfo
- Publication number
- DE69625625T2 DE69625625T2 DE69625625T DE69625625T DE69625625T2 DE 69625625 T2 DE69625625 T2 DE 69625625T2 DE 69625625 T DE69625625 T DE 69625625T DE 69625625 T DE69625625 T DE 69625625T DE 69625625 T2 DE69625625 T2 DE 69625625T2
- Authority
- DE
- Germany
- Prior art keywords
- waveform
- calculation
- data
- amount
- tone
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Details of electrophonic musical instruments
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
- G10H7/006—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof using two or more algorithms of different types to generate tones, e.g. according to tone color or to processor workload
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/025—Computing or signal processing architecture features
- G10H2230/041—Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/201—Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
- G10H2240/241—Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/281—Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
- G10H2240/295—Packet switched network, e.g. token ring
- G10H2240/305—Internet or TCP/IP protocol use for any electrophonic musical instrument data or musical parameter transmission purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Electrophonic Musical Instruments (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Erzeugen einer Tonwellenform durch einen Computer, wobei ein Software-Programm ausführt wird, um Tonwellenformabtastwerte zu berechnen, um dadurch zu ermöglichen, dass eine CPU oder ein Prozessor eines Mikrocomputersystems als Tongenerator arbeitet.
- Es sind herkömmliche elektronische Musikinstrumente bekannt, welche eine Tongeneratorschaltung mittels eines durch eine CPU ausgeführten Tonerzeugungs- Software-Programms implementieren. EP 0376 342 offenbart zum Beispiel eine Datenverarbeitungsvorrichtung für elektronische Musikinstrumente, die gestattet, dass ein Mikrocomputer ein Tonerzeugungsprogramm zum Erzeugen verschiedener Arten von Musiktönen abarbeitet. Der Mikrocomputer ruft das Programm durch ein Zeitgeber-Unterbrechungssignal ab und arbeitet es zur Tonerzeugung ab. Der Tonerzeugungsprozeß wird ausgeführt, um einen Musikton synchron mit einem Hüllkurvenwellenformprozeß auszuführen. EP 0 463 409 offenbart eine Musiktonwellenformvorrichtung, die ein Musiktonsignal unter Verwendung von CPUs nach Durchführen eines Tonquellenverarbeitungsprogramms erzeugt. Das erzeugte Musiktonsignal wird in vorgegebenen Zeitintervallen von Digital/Analog-Wandlern (DAC) ausgegeben. Um eine Tonwellenform mit solchen bekannten elektronischen Musikinstrumenten wiederzugeben, ist es erforderlich, Tonwellenformabtastwerte zu dem DAC im Ansprechen auf Taktimpulse, die einer vorgegebenen Abtastfrequenz entsprechen, gleichmäßig zu liefern. Die bekannten herkömmlichen elektronischen Musikinstrumente sind so beschaffen, dass Tonwellenformabtastwerte mittels Durchführens einer Tonerzeugungsberechnung im Ansprechen auf ein Erzeugen jedes. Taktimpulses erzeugt werden. Das Berechnen eines Tonwellenformabtastwertes im Ansprechen auf einen jeden solchen Taktimpuls würde aber einen uneffizienten Betrieb der CPU zur Folge haben, da ein Vorbereiten und Beenden jeder Berechung eines Tonwellenformabtastwertes einen nicht unerheblichen Verwaltungaufwand erfordert.
- Zur Lösung des Problems wurde vorgeschlagen, eine Vielzahl von Tonwellenformabtastwerten für jede relativ lange Taktperiode, die einen optionalen Berechnungstaktimpuls verwendet, der zu einer jeden vorgegebenen Vielzahl von Abtasttaktimpulsen erzeugt wird, zu berechnen. US 5 283 386 beschreibt eine Musiktonsignalerzeugungsvorrichtung, die einen Universalprozessor und eine damit extern verbundene Verarbeitungsschaltung vorsieht. Ein durch den Universal- Prozessor auszuführendes Musiktonerzeugungsprozeß wird synchron mit verschiedenen Musiktonsteuerprozessen, die von der extern verbundenen Bearbeitungsschaltung auszuführen sind, durchgeführt. US 5 376 752 offenbart einen Musiksynthesizer mit dynamischer Stimmenzuordnung. Ein Eingabegerät liefert Echtzeit-Eingabesignale, die ausgewählte Stimmen bezeichnen, und ein Stimmenprogrammspeicher speichert Stimmenprogramme für jeweilige Stimmen. Ein Tonverarbeitungs-Modul das eine Anordnung von Digitalprozessoren aufweist, ist an das Eingabegerät und den Stimmenprogrammspeicher gekoppelt und spricht auf Echtzeit-Eingabesignale an, zum Ausführen einer Gruppe von Stimmenprogrammen in dem Stimmenprogrammspeicher, um Stimmen in Echtzeit selektiv zu erzeugen. An das Eingabegerät und den Stimmenprogrammspeicher gekoppelte Systemelemente weisen Stimmenprogramme für ausgewählte Stimmen der Gruppe der Stimmenprogramme im Ansprechen auf die Echtzeit-Eingabesignale zu. Weitere Systemelemente zum Ersetzen eines besonderen Stimmenprogramms in der Gruppe durch ein Stimmenprogramm für eine ausgewählte Stimme im Ansprechen auf sie Echtzeit-Eingabesignale sind verfügbar. Ein erster Speicher speichert eine Vielzahl von Stimmenprogrammen und ein zweiter Speicher ist an das Tonverarbeitungs-Modul und den ersten Speicher gekoppelt, welcher die Gruppe der Stimmenprogramme zur Ausführung durch das Tonverarbeitungs-Modul speichert. Ein ausgewähltes Stimmenprogramm wird von dem ersten Speicher auf den zweiten Speicher in Echtzeit übertragen. Ein Audio- Ausgabegerät mit einem Lautsprecher ist an den Digitalsignalprozessor gekoppelt, wobei der Ton im Ansprechen auf die Tondaten erzeugt wird.
- Falls jedoch das Tonerzeugungs-Softwareprogramm gleichzeitg mit einer anderen Software, wie beispielsweise einer Geschäfts- oder Spiel-Software, abgearbeitet wird, besteht die Tendenz, dass die CPU im erheblichen Maß belastet wird, da Tonwellenformabtastwerte für eine Vielzahl von Abtastwerten im Ansprechen auf jeden Berechnungstaktimpuls zu berechnen sind, was zu Betriebsverzögerungen der anderen Software führt.
- Es ist daher ein Ziel der vorliegenden Erfindung ein Verfahren und eine Vorrichtung zum Erzeugen von Tonwellenformabtastwerten mittels Ausführens einer Tonerzeugungs-Software zu schaffen, die Betriebsverzögerungen eines anderen gleichzeitig mit der Tonerzeugungs-Software ausgeführten Softwareprogramms verhindern und minimieren kann.
- Um das vorher erwähnte Ziel zu erreichen, stellt die vorliegende Erfindung ein Verfahren zum Erzeugen einer Tonwellenform auf der Grundlage einer Spielinformation bereit, welches ein Durchführen eines Wellenformberechnungsprozesses zur Berechnung von Tonwellenformabtastwerten durch Teilen eines arithmetischen Verarbeitungsabschnitts mit einem anderen Prozeß aufweist und das dadurch gekennzeichnet ist, dass es die folgenden Schritte aufweist: Feststellen eines Berechnungsumfangs, der für den anderen Prozeß erforderlich ist, wenn der Wellenformberechnungsprozeß auszuführen ist, und Berechnen von Tonwellenformabtastwerten durch selektives Ausführen des Wellenformberechnungsprozesses, der einen unterschiedlichen Berechnungsumfang erfordert, in Abhängigkeit von dem Berechnungsumfang, der für den durch den Feststellungschritt ermittelten anderen Prozeß erforderlich ist.
- Diese Anordnung erreicht eine effiziente Verarbeitung, indem ein selektives Einstellen des Berechnungsumfangs des Wellenformberechnungsprozesses gestattet wird. Die Berechnungsmenge wird zum Beispiel relativ klein gemacht, wenn der für den anderen Prozeß erforderliche Berechnungsumfang groß ist; sonst wird der Berechnungsumfang relativ groß gemacht.
- Vorzugsweise können Tonwellenformabtastwerte mit einer unterschiedlichen Genauigkeit in Abhängigkeit von dem für den Wellenformberechnungsprozeß geforderten Berechnungsumfang berechnet werden. Durch selektives Einstellen der Berechungsgenauigkeit des Wellenformberechnungsprozesses abhängig von dem für den anderen Prozeß erforderlichen Berechnungsumfang können nämlich Tonwellenformabtastwerte mit relativ niedriger (grober) Genauigkeit berechnet werden, wenn der für den anderen Prozeß erforderliche Berechnungsumfang relativ groß ist, während Tonwellenformabtastwerte mit relativ hoher (feiner) Genauigkeit berechnet werden können, wenn der für den anderen Prozeß erforderliche Berechnungsumfang relativ klein ist. Dies gestattet, dass Tonwellenformabtastwerte erzeugt werden, ohne eine erhöhte Belastung an den arithmetischen Verabeitungabschnitt zu erfordern und den anderen Prozeß zu beeinflussen und ohne einen unerwünschten Abbruch zu verursachen.
- Zum besseren Verständnis der verschiedenen Merkmale der vorliegenden Erfindung werden nachfolgend bevorzugte Ausführungsformen der Erfindung unter Bezugnahme auf die anhängenden Zeichnungen im Detail beschrieben. In den Zeichnungen ist folgendes dargestellt.
- Fig. 1 ist ein Blockschaltbild, das einen beispielhaften Hardware-Aufbau eines Mikrocomputersystems darstellt, welches eine Tonerzeugungsfunktion auf der Grundlage des Prinzips der vorliegenden Erfindung aufweist.
- Fig. 2A bis 2B sind Abbildungen, die beispielhaft die Konfiguration verschiedener Software-Programme darstellen, die in dem Mikrocomputersystem aus Fig. 1 gespeichert sind.
- Fig. 3 ist ein zeitliches Ablaufschema, das beispielhaft für die in dem Mikrocomputersystem ausgeführte Wiedergabeverarbeitung ist.
- Fig. 4 ist ein Flußdiagramm, das die Funktionsweise des Mikrocomputersystems beispielhaft darstellt.
- Fig. 5 ist ein Flußdiagramm, das einen Teil eines detaillierten Steuerflusses der Wiedergabeverarbeitung zeigt. Und
- Fig. 6 ist ein Flußdiagramm, das den restlichen Teil des Steuerflusses der Wiedergabebearbeitung zeigt.
- Fig. 1 ist ein Blockschaltbild, das einen beispielhaften Hardware-Aufbau eines Mikrocomputersystems 21 darstellt, welches eine Tonerzeugungsfunktion auf der Grundlage des Prinzips der vorliegenden Erfindung aufweist. Das Mikrocomputersystem 21 weist eine CPU 10 als arithmetischen Bearbeitungsabschnitt auf, mit welchem über einen Bus 22, ein ROM 11, ein RAM 12, ein Festplattengerät 13, ein Zeitgeber 14, eine serielle Schnittstelle 15, eine Tastatur 16, eine Anzeige 17 und ein Wiedergabeabschnitt 18 verbunden sind. In dem ROM 11 ist ein Basis- Betriebsprogramm voreingespeichert, das für die Funktionsweise des Mikrocomputersystems 21 wesentlich ist. Der RAM 12 zwischenspeichert Daten und ein auszuführendes Programm, ebenso wie verschiedene Daten, die während einer Durchführung eines Programms durch die CPU 10 auftreten. Das Festplattengerät 13 hat einen Multimedien-Anwendungssoftware-Satz, wie in Fig. 2 gezeigt, und dergleichen voreingespeichert und der Multimedien-Anwendungssoftware-Satz wird in den RAM 12 vor seiner Ausführung eingelesen. In vorgegebenen regelmäßigen Intervallen gibt der Zeitgeber 14 ein Unterbrechungssignal an die CPU 10 aus und sendet Abtasttaktimpulse an den Wiedergabeabschnitt 18. Die Serielle Schnittstelle 15 ist zum Übertragen und Empfangen von Daten und Steuersignalen zu und von verschiedenen externen peripheren Geräten, die mit dem Mikrocomputersystem 21 verbunden sind, vorgesehen.
- Die Tastatur 16 und die Anzeige 17 können beide von irgendeiner geeigneten Art abhängig von einer besonderen Anwendung des Mikrocomputersystems 21 beschaffen sein. Falls das System 21 beispielsweise als ein elektronisches Musikinstrument verwendet wird, kann die Tastatur 16 die eines herkömmlichen sein mit einer elektronischen Klaviertastatur oder dergleichen und die Anzeige 17 kann eine herkömmliche LCD (Liquid Crystal Display = Flüssigkristallanzeige) sein. Wenn das System 21 als ein Karaokegerät verwendet wird, kann die Tastatur 16 eine spezialisierte sein, um ein Auswählen aus voraufgezeichneten Musikstücken und eine gewünschte Temposteuerung zu gestatten und die Anzeige 17 kann eine CRT- Großbildschirm sein.
- Der Wiedergabeabschnitt 18 ist eine sogenanntes Soundkarte, die in ihrem internen Puffer Wellenformdaten für eine Vielzahl von Abtastwerten, die von der CPU 10 empfangen werden, speichert und die Wellenformdaten an den D/A-Wandler 19 im Ansprechen auf jeden durch den Zeitgeber 14 erzeugten Abtasttakt ausgibt. Der interne Puffer des Wiedergabeabschnitts 18 ist so beschaffen, dass Daten zusätzlich eingeschrieben werden können, so dass jede Gruppe (i. e., Block) von Wellenformdaten, die von der CPU 10 empfangen werden, in den Puffer unmittelbar nach einer anderen Wellenformdaten-Gruppe, die augenblicklich aus dem Puffer ausgelesen wird, gespeichert wird. Der Puffer kann als FIFO-, Zweikanal- oder eine andere geeignete Speicher-Struktur aufgebaut sein. Der D/A-Wandler 19 konvertiert jeden Wellenformdatenwert, der von dem Wiedergabeabschnitt 18 geliefert wird, in ein analoges Tonsignal, das dann hörbar durch ein Tonsystem 20, bestehend aus Verstärkern und Lautsprechern, wiedergegeben wird.
- Auf der vorher erwähnten Festplatte 13 können verschiedene andere Daten, wie beispielsweise automatische Spieldaten und Akkordlaufdaten, und das vorher erwähnte Betriebsprogramm gespeichert sein. Durch bevorzugtes Vorspeichern des Betriebsprogramms auf der Festplatte 13 als in dem ROM 11 und Laden des Betriebsprogramms in den RAM 12, kann die CPU 10 in exakt der gleichen Weise arbeiten, als wenn das Betriebsprogramm in dem ROM 11 gespeichert wird. Dies erleichert in hohem Maße die Aktualisierung des Betriebsprogramms, ein Hinzufügen eines Betriebsprogramms, usw.. Eine CD-ROM (compact disk = Kompaktplatte) 23 kann als ein wechselbares externes Aufzeichnungsmedium zum Aufzeichnen verschiedener Daten verwendet werden, wie beispielsweise automatische Spieldaten, Akkordlaufdaten und Tonwellenformdaten und ein optinales Betriebsprogramm, ähnlich dem vorher erwähnten. Ein solches Betriebsprogramm und Daten, die auf der CD-ROM 23 gespeichert sind, können durch ein CD-ROM-Laufwerk 24 ausgelesen werden, um zur Speicherung auf der Festplatte 13 übertragen zu werden. Dies erleichert ein Installieren und Aktualisieren des Betriebsprogramms. Das wechselbare externe Aufzeichnungdmedium kann natürlich nicht nur die CD-ROM sein, sondern beispielsweise eine Floppy Disk und eine Magnetooptische Scheibe (MO).
- Eine Kommunikations-Schnittstelle 25 kann mit dem Bus 22 so verbunden sein, dass das Mikrocomputersystem 21 über die Schnittstelle 25 mit einem Kommunikations- Netzwerk 26 verbunden ist, wie beispielsweise einem LAN (Local Area Network = lokales Netz), dem Internet und dem Telefonleitungsnetz, und es kann auch mit einem geeigneten Server-Computer 27 über das Kommunikations-Netzwerk 26 verbunden sein. Wenn das Betriebsprogramm und verschiedene Daten nicht auf der Festplatte 13 enthalten sind, können so dieses Betriebsprogramm und diese Daten vom Server- Computer 27 empfangen werden und auf die Festplatte 13 heruntergeladen werden. In einem solchen Fall sendet das Mikrocomputersystem 21, ein "Client", einen Befehl, wobei der Server-Computer 27 aufgerufen wird, das Betriebsprogramm und verschiedene Daten über die Kommunikations-Schnittstelle 25 und das Kommunikations-Netzwerk 26 herunterzuladen. Im Ansprechen auf den Befehl, gibt der Server-Computer 27 das angeforderte Betriebsprogramm und die Daten an das Mikrocomputersystem 21 über das Kommunikations-Netzwerk 26. Das Mikrocomputersystem 21 stellt das erforderliche Herunterladen durch Empfangen des Betriebsprogramms und der Daten über das Kommunikations-Netzwerk 25 fertig und speichert diese auf der Festplatte 13.
- Es sollte hier klar gestellt werden, dass das Mikrocomputersystem 21 durch Installieren des Betriebsprogramms und verschiedener Daten, die der vorliegenden Erfindung entsprechen, in irgendeinen kommerziell erhältlichen Personal-Computer implementiert werden kann. In einem solchen Fall können das Betriebsprogramm und verschiedene Daten, die der vorliegenden Erfindung entsprechen, dem Anwender in einer aufgezeichneten Form auf einem Aufzeichnungsmedium, wie beispielsweise eine CD-ROM oder eine Floppy Disk, welches von dem Personal-Computer lesbar ist, bereitgestellt werden. Wenn der Personal-Computer mit einem Kommunikations- Netzwerk wie einem LAN verbunden ist, können das Betriebsprogramm und verschiedene Daten dem Personal-Computer über das Kommunikations-Netzwerk, ähnlich wie im vorhergehenden beschrieben, geliefert werden.
- Fig. 2 zeigt eine beispielhafte Konfiguration des Anwendungs-Software-Satzes vom Multimedientyp, der in dem RAM 12 aus Fig. 1 gespeichert ist. Wie in Fig. 2A gezeigt, weist dieser Anwendungs-Software-Satz vom Multimedientyp, der zum Beispiel für ein Karaoke-Spiel oder zum Spiele Spielen geeignet sein kann, einen Kopfsatz, Gesamt-Steuerungs-Software, Bild-Steuerungs-Software, Musik-Steuerungs-Software und andere Steuerungs-Software auf. Der Kopfsatz enthält verschiedene Daten, die für eine Version, eine Speichergröße, usw. des Anwendungs-Software-Satzes vom Multimedientyp kennzeichnend sind. Die Gesamt-Steuerungs-Software steuert die gleichzeitige oder parallele Operation der vorher erwähnten Software auf eine derartige Weise, dass alle diese Software gleichmäßig arbeiten, und die Bild- Steuerungs-Software steuert verschiedene Abbildungen, die auf der Anzeige 17 zu präsentieren sind. Die Musik-Steuerungs-Software steuert ein automatisches Spiel auf der Grundlage von Daten für automatisches Musikspiel und eine Erzeugung einer Tonwellenform auf der Grundlage von Spieldaten, die auf Echtzeitbasis geliefert werden. Die andere Steuerungs-Software steuert eine Eingabe durch einen Anwender und andere Operationen.
- Fig. 2B zeigt ein Detail der Musik-Steuerungs-Software, welche eine Wiedergabebearbeitungs-Software, einen Klangfarbendatenabschnitt, einen Datenabschnitt für automatisches Spiel und einen Arbeitsbereich enthält. Die Wiedergabebearbeitungs- Software führt verschiedene Operationen durch, wie es in den Flußdiagrammen aus Fig. 4, 5 und 6 gezeigt ist, um die Funktion eines Hardware-Tongenerators zu simulieren. Der Klangfarbendatenabschnitt enthält verschiedene Daten, um die Wiedergabebearbeitungs-Software aktuell anzutreiben, die Parameter zur Berechnung von Wellenformabtastwerten aufweist und Hüllkurven, Filtersteuerparameter, usw. steuert. Ist die Wiedergabebearbeitungs-Software konzipiert, um einen PCM (Pulse Code Modulation = Pulskodemodulations)- Tongenerator zu simulieren, enthält der Klangfarbendatenabschnitt seine Wellenformdaten selbst. Der Datenabschnitt für automatisches Spiel weist Sequenzdaten zum automatischen Ausführen von Hintergrund- und Karaokemusik auf. Der Arbeitsbereich sieht verschiedene Register vor, um Daten zu speichern, die erforderlich werden, wenn die Wiedergabebearbeitungs-Software läuft, ebenso wie Daten, die während verschiedener Prozesse erzeugt werden. Der Arbeitsbereich entspricht internen Registern eines herkömmlichen Hardware-Tongenerators und Registern verschiedener externer Geräte (z. B., von einer Schnittstelle), die mit diesem verbunden sind.
- Fig. 2C zeigt ein Detail des Arbeitsbereichs. Fig. 2D zeigt ein Detail eines Abtastwertpuffers, der in dem Arbeitsbereich enthalten ist, und Fig. 3 ist ein zeitliches Ablaufschema, das Tonwellenformerzeugungsoperationen des Mikrocomputersystems 21 erläutert. Wie gezeigt, ist der Abtastwertpuffer ein Ringpuffer, der "n" Blöcke BLK(0) bis BLK(n-1) aufweist, und nach der vorliegenden Erfindung werden Wellenformdaten für 128 Abtastwerte (128 Wellenformabtastwerte) in jeden der Blöcke geschrieben.
- In Fig. 3 wird die Wiedergabebearbeitungs-Software durch einen Berechnungs- Triggertaktimpuls BC aktiviert, der zu jedem von 128 Abtasttaktimpulsen erzeugt wird. Die Wiedergabebearbeitungs-Software sendet gespeicherte Wellenformdaten von jedem der Blöcke des Abtastwertpuffers zu dem Wiedergabeabschnitt 18 und schreibt auch, während die Arbeitsverfügbarkeit der CPU 10 geprüft wird, Wellenformdaten in den Block in soweit als das Einschreiben von Daten andere Operationen nicht ungünstig beeinflußt. Durch den Anwender oder Spieler über die Tastatur 16 eingegebene Echtzeit-Spieldaten werden im Ansprechen auf einen ersten Berechnungs- Triggertaktimpuls BC, der nach der ersten Eingabe erzeugt wird, so eingegeben, dass entsprechende Wellenformabtastwerte berechnet werden. Der Wiedergabeabschnitt 18 zwischenspeichert die Wellenformdaten, die über die CPU 10 im Ansprechen auf den Berechnungs-Triggertaktimpuls BC eingegeben werden, und die zwischengespeicherten Wellenformdaten werden dann ausgelesen, ein Abtastwert für jeden Abtasttakt, und dem D/A-Wandler 19 zugeführt.
- Wie in Fig. 2D gezeigt, wird jeder der Blöcke in den Abtastwertpuffer, in welchen Wellenformdaten einzuschreiben sind, durch einen Schreib-Block-Zeiger WP angezeigt, während jeder der Blöcke in dem Abtastwertpuffer, aus dem Wellenformdaten auszulesen sind, durch einen Lese-Block-Zeiger RP angezeigt werden. In Fig. 2C repräsentiert ein Referenzzeichen WF ein Schreib-Freigabe- Kennzeichen und ein Referenzzeichen RF repräsentiert ein Lese-Freigabe- Kennzeichen. Das Lese-Freigabe-Kennzeichen RF wird eine Periode hindurch vom Start bis zum Ende eines automatischen Spiels eingestellt belassen und das Schreib- Freigabe-Kennzeichen WF wird eine Periode hindurch vom Einschreiben erster Daten bis zum Einschreiben letzter Daten eines automatischen Spiels eingestellt belassen. Da das Einschreiben von Daten vor dem Auslesen von Daten gemäß der vorliegenden Erfindung stattfindet, entsprechen sich die Daten-Einschreib- und -Auslese- Perioden, i. e., die Perioden, in welchen das Schreib-Freigabe-Kennzeichen WF und das Lese-Freigabe-Kennzeichen RF gesetzt sind, nicht gegenseitig.
- In Instruktionsdaten und Instruktions-Kennzeichenabschnitte des Arbeitsbereichs werden verschiedene Instruktionen geschrieben, die von der Gesamt-Steuerungs- Software vorgegeben werden, und diese Abschnitte entsprechen einem Instruktionsregister in einem herkömmlichen Hardware-Tongenerator. Genauer gesagt, Daten, die in die Instruktionsdaten und Instruktions-Kennzeichenabschnitte geschrieben werden, sind zum Beispiel die folgenden:
- Daten, die eine bestimmte Musikstücknummer bezeichnen, für welche automatische Spieldaten wiederzugeben sind, da die Musik-Steuerungs-Software automatische Spieldaten für eine Vielzahl von Musikstücken enthält;
- Daten, die einen wiederzugebenden Bereich bezeichnen, falls nur ein Teil von Spieldaten eines bestimmten Musikstückes wiederzugeben ist;
- Daten, die eine Klangfarbe für jeden Spielteil bezeichnen und
- Echtzeit-Spieldaten, die über die Tastatur 16 und die Serielle I/O 15 eingegeben werden, die durch die vorher erwähnte andere Steuerungs-Software passend empfangen werden können.
- Ein Part-Steuer-Datenabschnitt des Arbeitsbereichs enthält Klangfarbenauswähldaten, Lautstärkesteuerdaten, usw. für jeden Spielteil, falls automatische mehrstimmige Spieldaten wiederzugeben sind.
- Ein Kanalsteuerdatenabschnitt enthält Steuerdaten auf Kanalbasis, da die Wiedergabebearbeitungs-Software so konzipiert ist, dass es sich dabei um simultanes zum Erklingen Bringen von Tönen in einer Vielzahl von Tonerzeugungskanälen handelt. Genauer gesagt, die Kanalsteuerdaten weisen verschiedene Daten auf, die für jeden der Kanäle erforderlich sind, um ein Tonsignal zu erzeugen, wie beispielsweise eine Tonleiter bezeichnende Daten, einen Zählwert für aktuelle Adressen, Daten, die eine Form und einen aktuellen Wert einer Hüllkurve bestimmen. Dieser Kanalsteuerdatenabschnitt entspricht nämlich Registern in einem herkömmlichen Hardware- Tongenerator.
- Nachfolgend wird eine beispielhafte Operation des Mikrocomputersystems 21 bezugnehmend auf Flußdiagramme von Fig. 4, 5 und 6 detaillierter beschrieben. Fig. 4 ist ein Flußdiagramm, das ein Beispiel einer Haupt-Routine der Wiedergabebearbeitungs-Software zeigt, die in dem Mikrocomputersystem 21 verwendet wird, in welchem eine Wiedergabebearbeitung in repetitiver Form bei Schritt S2 nach Initialisierung von Schritt S1 ausgeführt wird.
- Fig. 5 und 6 zeigen einen detaillierten Steuerfluß der Wiedergabebearbeitung. In Schritt S10 wartet die Wiedergabebearbeitung zunächst auf einen zu erzeugenden Berechnungs-Triggertaktimpuls BC. Es wird angenommen, dass während dieser Warteperiode ein anderer Prozeß ausgeführt wird, wobei die Steuerung zu der Gesamt-Steuerungs-Software zurückgeführt wird. Nach Erzeugen des Berechnungs- Triggertaktimpulses BC schreitet die Wiedergabebearbeitung von Schritt S10 zu Schritt S11 fort, in welchem ermittelt wird, ob das Lese-Freigabe-Kennzeichen RF momentan auf einen Wert "1" gesetzt ist oder nicht. Wenn die Anwort in Schritt S11 positiv ist, bedeutet das, dass ein automatisches Spiel momentan in Vorbereitung ist, so dass die Wiedergabebearbeitung zu Schritt S12 geht, um Wellenformdaten für das automatische Spiel zu berechnen. In Schritt S12 wird ein Vergleich zwischen aktuellen Werten des Schreib-Block-Zeigers WP und des Lese-Block-Zeigers RP durchgeführt. Wenn der aktuelle Wert des Schreib-Block-Zeigers WP gleich dem des Lese-Block-Zeigers RP ist (WP = RP), bedeutet das, dass Wellenformdaten eines auszulesenden Blocks (dem Wiedergabeabschnitt 18 zu senden sind) zu diesem Zeitpunkt noch nicht berechnet wurden, und somit werden Rechenoperationen in Schritten S13 bis S17 durchgeführt, um Wellenformdaten dieses Blocks zu berechnen.
- In Schritt S13 wird der Schreib-Block-Zeiger WP erhöht oder um eins vorgestellt. Da der Abtastwertpuffer jedoch ein Ringpuffer ist, wie im vorhergehenden beschrieben, wird dieser auf "0" eingestellt nach Erreichen seines Maximalwertes (dies tritt ein bei Erhöhungsoperationen des Schreib-Block-Zeigers WP und Lese- Block-Zeigers RP, wie im folgenden beschrieben wird). Automatische Spieldaten, die einem Block entsprechen, werden im nächsten Schritt S14 wiedergegeben. In Schritt S15 wird dann festgestellt, ob ausreichend Zeit zur Berechnung von dem automatischen Spiel entsprechenden Wellenformdaten vorhanden ist. Wenn die Antwort in Schritt S15 positiv ist, wird eine Berechnung von Wellenformabtastdaten in Schritt S16 mit einer relativ hohen Genauigkeit (zum Beispiel, 48 kHz Berechnungsfrequenz und 32 Bit Datengröße) ausgeführt. Wenn jedoch nicht genügend Zeit für eine solche hochpräzise Wellenformdatenberechnung besteht, wie in Schritt S15 ermittelt wird, wird die Berechnung in Schritt S17 mit einen Rechengenauigkeit eines erniedrigten Grades ausgeführt, der der Knappheit der Berechnungszeit entspricht. Die Erniedrigung der Rechengenauigkeit kann durch Verlängern der Abtasttaktperiode und/oder Reduzierung der Anzahl der Bits, die in dem Zeitraum zu berechnen sind, bewirkt werden. Nach Schritt S6 oder S17 schreitet die Wiedergabebearbeitung zu Schritt S18 fort.
- Wenn der Wert des Schreib-Block-Zeigers WP größer als der des Lese-Block-Zeigers RP ist, wie in Schritt S12 festgestellt wird, bedeutet dies, dass Wellenformdaten des zu diesem Zeitpunkt auszulesenden Blocks bereits berechnet wurden, und somit geht die Wiedergabebearbeitung direkt von Schritt S12 zu Schritt S18.
- In Schritt S18 wird ermittelt, ob das automatische Spiel zu Ende ist, wobei festgestellt wird, ob der zu diesem Zeitpunkt auszulesende Block ein letzter Block ist (i. e., ein Block, der einen Endpunkt enthält). Wenn der zu diesem Zeitpunkt auszulesende Block der letzte Block ist, sind Erzeugen und Auslesen von Wellenformdaten auf der Grundlage der automatischen Spieldaten nicht länger erforderlich, so dass sowohl das Schreib-Freigabe-Kennzeichen WF als auch das Lese-Freigabe-Kennzeichen RF in Schritt S19 auf "0" zurückgestellt werden. Nach dem Zurückstellen des Schreib- Freigabe-Kennzeichens WF und des Lese-Freigabe-Kennzeichens RF schreitet die Wiedergabebearbeitung zu Schritt S20 zur Berechnung einer Wellenform, die einem Echtzeit-Spiel entspricht, und zur Übertragung der Wellenformdaten zu dem Wiedergabeabschnitt 18.
- Wenn kein automatisches Spiel im Gang ist und daher das Lese-Freigabe-Kennzeichen RF einen Wert "0" hat, geht die Wiedergabebearbeitung direkt von Schritt S11 zu Schritt S20, um den Lese-Block-Zeiger RP zu erhöhen. Wellenformdaten des Blocks, der durch den Lese-Block-Zeiger RP (BLK(RP)) bestimmt wurden; werden dem Wiedergabeabschnitt 18 in Schritt S23 übertragen, wie es im folgenden beschrieben wird. Eine Tonwellenform wird im Ansprechen auf eine Echtzeit-Spieldateneingabe des Spielers in Schritt S21 berechnet und die berechneten Wellenformdaten werden dem Block, der durch den Lese-Block-Zeiger RP bestimmt wurde, in Schritt S22 hinzugefügt. Die Wellenformdaten werden dann von dem Block dem Wiedergabeabschnitt 18 in Schritt S23 zugeführt. Danach wird der Block in Schritt S24 gelöscht, da nun die Daten des Blocks BLK(RP) aufgrund der Datenzufuhr zu dem Wiedergabeabschnitt 18 nicht länger erforderlich sind. Es wird nämlich "0" in jede Speicherstelle dieses Blocks geschrieben.
- Nach Schritt S24 führt die Wiedergabebearbeitung Operationen bei und nach Schritt S30 aus, um ein Einschreiben von Daten vor einem Auslesen von Daten zu bewirken. In Schritt S30 wird festgestellt, ob das Schreib-Freigabe-Kennzeichen WF momentan auf "1" eingestellt ist (WF = 1). Wenn die Antwort in Schritt S30 positiv ist, bedeutet dies, dass irgendwelche andere automatische Spieldaten einzuschreiben sind, so dass Schreiboperationen in und nach Schritt S31 durchgeführt werden. Wenn andererseits das Schreib-Freigabe-Kennzeichen WF momentan nicht auf "1" eingestellt ist (WF = O), bedeutet dies, dass ein vorgegebenes automatisches Spiel bis zum Ende berechnet wurde, so dass die Wiedergabebearbeitung zu Ende geführt wird ohne Durchführung irgendwelcher anderer Operationen.
- In Schritt S31 wird festgestellt, ob Zeit zum Einschreiben von Daten "im voraus" verfügbar ist, i. e., ob die CPU 10 nicht mit irgendeiner anderen Software beschäftigt ist, die gleichzeitig mit der Wiedergabebearbeitung-Software bearbeitet wird. Wenn Zeit zum Einschreiben von Daten verfügbar ist, wird der Schreib-Block-Zeiger WP in Schritt S32 um eins erhöht, um so einen Block anzuzeigen, in welchem Daten danach einzuschreiben sind, und es werden einem Block entsprechende Spieldaten für eine Wiedergabe in Schritt S33 ausgelesen. Dann werden Wellenformdaten für einen Block auf der Grundlage der ausgelesenen Spieldaten in Schritt S34 berechnet und die berechneten Wellenformdaten werden in einen Block geschrieben, der durch den Schreib-Block-Zeiger WP angezeigt wird. In diesem Fall wird die Wellenformdatenberechnung mit hoher Genauigkeit für alle die Tonerzeugungskanäle ausgeführt, da genügend Zeit für die Berechnung aufgewendet werden kann.
- Danach geht die Wiedergabebearbeitung zu Schritt S35, um festzustellen, ob der Block, für den das Einschreiben von Daten zu diesem Zeitpunkt ausgeführt wurde, der letzte Block ist, oder sie geht zu Schritt S36, um festzustellen, ob der Abtastwertpuffer nun voll von ungelesenen Wellenformdaten ist. Wenn der Block der letzte Block ist, wie in Schritt S35 festgestellt wurde, wird das Schreib-Freigabe- Kennzeichen WF in Schritt S37 auf "0" zurückgestellt, da es nicht länger erforderlich ist, Wellenformdaten einzuschreiben, und dann wird die Wiedergabebearbeitung zu Ende geführt. Die Feststellung, ob der Abtastwertpuffer nun voll von ungelesenen Wellenformdaten ist, wird durch Überprüfen ausgeführt, ob der Schreib-Block- Zeiger WP den Lese-Block-Zeiger RF erreicht hat, nachdem er einen Durchlauf durch den Ringpuffer vor dem Lese-Block-Zeiger RP ausgeführt hat (WP = RP-1). Das Einschreiben neuer Daten, wenn der Abtastwertpuffer voll von ungelesenen Daten ist, wird ein Überschreiben ungelesener Daten zur Folge haben, und somit wird die Wiedergabebearbeitung nach der positiven Feststellung in Schritt S36 zu Ende geführt. Wenn der Abtastwertpuffer nicht voll ungelesener Daten ist, i. e., irgendeinen anderen Block aufweist, der zum Einschreiben von Daten verfügbar ist, wie in Schritt S36 ermittelt wird, geht die Wiedergabebearbeitung in einer Schleife von Schritt S36 zurück zu Schritt S31. Wenn in Schritt S31 festgestellt wird, das noch Zeit zur Verfügung steht, dann wird das Einschreiben von Daten für einen nächsten Block durchgeführt.
- Bei der vorher beschriebenen Wiedergabebearbeitung ist der Lese-Block-Zeiger RP als ein sogenannter "freilaufender" Zähler konstruiert, da der Abtastwertpuffer für eine Echtzeit-Spieldateneingabe verwendet werden kann, wenn kein automatisches Spiel ausgeführt wird und der Zeiger RP wird jedes Mal erhöht, wenn die Wiedergabebearbeitung durch Schritte S20 bis S24 durchläuft. Wenn daher Wellenformdaten in den Abtastwertpuffer vor einem Start eines automatischen Spiels einzuschreiben sind (i. e., bevor das Lese-Freigabe-Kennzeichen RF auf "1" eingestellt ist), wird ermittelt, um vieviel früher als der Start eines automatischen Spiels das Einschreiben von Wellenformdaten initiiert werden sollte (es wird nämlich eine bestimmte Anzahl der Berechnungs-Triggertaktimpulse BC festgelegt, um welche das Einschreiben von Wellenformdaten dem Start eines automatischen Spiels vorangehen sollte), dann wird der Schreib-Block-Zeiger WP auf einen Wert eingestellt, der gleich einer Summe aus einem aktuellen Wert des Schreib-Block-Zeigers WP und der Anzahl ist, um welche das Einschreiben von Daten dem Auslesen von Daten vorangehen sollte. Danach wird das Schreib-Freigabe-Kennzeichen auf "1" eingestellt, so dass ein Anfangswellenformdaten-Start in den Block eingeschrieben wird, der von dem Schreib-Block-Zeiger WP angezeigt wird.
- Sobald die bestimmte Anzahl von Berechnungs-Triggertaktimpulsen BC erzeugt ist und der Lese-Block-Zeiger RP daher den Block erreicht, bei dem das Einschreiben von Wellenformdaten initiiert wurde, wird das automatische Spiel gestartet (i. e., das Lese-Freigabe-Kennzeichen RF wird auf "1" eingestellt) und die Wellenformdaten werden genau von dem Beginn ausgelesen. Aufgrund der Aufteilung, dass das Einschreiben von Daten (i. e., das Schreib-Freigabe-Kennzeichen WF auf "1" eingestellt wird) vor dem Start des automatischen Spiels (i. e., das Lese-Freigabe- Kennzeichen RF auf "1" eingestellt wird) ausgeführt wird, kann das Ausführen des Einschreibens von Daten (Berechnung) vor dem des Auslesens von Daten vom Startpunkt des automatischen Spiels wirkungsvoll angewendet werden.
- Gemäß der vorher beschriebenen Ausführungsform werden eine Vielzahl von Speicherbereichen (Blöcke) zum Speichern von Wellenformdaten (Wellenformabtastwerten) bereitgestellt, Wellenformdaten, die dem D/A-Wandler 19 zuzuführen sind, werden zusammengefaßt im voraus während einer Periode erzeugt, in welcher der Umfang der Berechnung, der für eine andere parallel zu der Wiedergabebearbeitung-Software ausgeführten Software-Bearbeitung erforderlich ist, klein ist (i. e., wenn die CPU 10 nicht mit der anderen Software-Bearbeitung beschäftigt ist) und die so erzeugten Wellenformdaten werden in den Blöcken des Abtastwertpuffers gespeichert. Wenn der Berechnungsumfang der anderen Software- Bearbeitung temporär ansteigt, können auszuführende Wellenformdatenerzeugungs- Operationen zu diesem Zeitpunkt ohne irgendwelche Probleme übergangen werden, da dem Wiedergabeabschnitt 18 zuzuführende Wellenformdaten zu diesem Zeitpunkt erzeugt und vorher gesichert worden sind. Dies verhindert Betriebsverzögerungen bei der anderen Software-Bearbeitung. Da Erzeugung und Zufuhr von Wellenformdaten zu dem Wiedergabeabschnitt 18 auf Block-um-Block-Grundlage ausgeführt werden, wird eine Ermittlung, ob Zeit verfügbar ist, in einem hohen Maß erleichtert und eine Vielzahl von Wellenformdaten kann zusammengefaßt erzeugt werden, was eine erhöhte Betriebseffizienz schafft.
- Von jedem der Blöcke des Abtastwertpuffers wurde eine Speicherung von 128 Wellenformabtastwerten beschrieben, wenn aber das System so konzipiert ist, dass es keine Echtzeit-Spieldateneingabe annimmt, kann jeder der Blöcke so beschaffen sein, dass eine größere Anzahl von Abtastwerten, z. B., 1.024, 4.096 Abtastwerte, gespeichert werden, um so zu ermöglichen, dass die CPU 10 effizienter arbeitet. Wenn das System jedoch eine Echtzeit-Spieldateneingabe annimmt, ist das Konzept, dass jeder der Blöcke eine größere Anzahl von Abtastwerten speichert, nicht vorzuziehen, da Intervalle zwischen den Berechnungs-Triggertaktimpulsen BC länger werden und daher größere Zeitverzögerungen von der Echtzeit-Spieldateneingabe bis hin zu einem tatsächlichen zum Erklingen Bringen eines Tons, der dieser entspricht, auftreten werden.
- Die in der voher beschriebenen Weise ausgelegte vorliegende Erfindung führt zu den folgenden Vorteilen.
- Nach der vorliegenden Erfindung wird eine Ermittlung der Berechnungskapazität der CPU. 10 oder eines arithmetischen Bearbeitungsabschnitts, der nicht von einer anderen Software-Bearbeitung belegt und daher für die Wiedergabebearbeitung verfügbar ist, ausgeführt und eine bestimmte Anzahl von Tonwellenformabtastwerten, die der nicht belegten oder verfügbaren Rechenkapazität entsprechen, wird vor einem vorgegebenen Auslesezeitpunkt der Abtastwerte erzeugt. Wenn daher eine Vielzahl von Anwendungen gleichzeitig auf Mehrfachverarbeitungsbasis abgearbeitet werden, ist es gestattet, Wellenformdaten zusammengefaßt für eine Speicherung, die die unbelegte oder verfügbare Rechenkapazität verwendet, zu berechnen, was ermöglicht, dass die CPU oder ein arithmetischer Bearbeitungsabschnitt mit im hohen Maß gesteigerter Effizienz arbeitet. Da es gerade ausreicht, dass die vorher gespeicherten Wellenformdaten ausgelesen werden, um zu dem Wiedergabeabschnitt 18 übertragen zu werden, wenn der arithmetische Bearbeitungsabschnitt mit einer anderen Anwendung beschäftigt ist, kann eine Verarbeitung von der anderen Anwendung effizient ausgeführt werden, ohne dabei durch die Wellenformabtastwertberechnung beeinflußt zu werden.
- Da zudem eine vorgegebene Anzahl von Wellenformabtastwerten als eine Grundberechnungseinheit eingestellt wird und Tonwellenformabtastwerte aktuell auf einer Einheit-um-Einheit-Basis berechnet werden, ist es möglich, den Verwaltungsaufwand, der bei einer Vorbereitung für die Wellenformabtastwertberechnungs- Verarbeitung, etc. aufgewendet wird, zu reduzieren. Da zudem eine vorgegebene Anzahl von Tonwellenformabtastwerten bereits vorbereitet und in einem Speicher an einem Startpunkt eines automatischen Spiels gespeichert sind, können zusätzliche Einstellungsfunktionen durch Voraus-Berechnung von dem Startpunkt eines automatischen Spiels effizient durchgeführt werden.
- Zudem kann, sogar wenn die Voraus-Berechnung von Tonwellenformabtastwerten nicht ausgeführt werden kann, aufgrund von dem arithmetischen Bearbeitungsabschnitt aufgegebenen großen Belastungen durch andere Bearbeitungen, die vorliegende Erfindung einen unerwünschten Abbruch bei erzeugten Tönen verhindern, da die Wellenformberechnungsschritte immer dazu verwendet werden, um Tonwellenformabtastwerte vorzubereiten.
- Zusätzlich ist die vorliegende Erfindung dadurch gekennzeichnet, dass, wenn Tonwellenformabtastwerte berechnet werden, eine Ermittlung über den für den arithmetischen Bearbeitungsabschnitt erforderlichen Berechnungsumfang zur Durchführung einer anderen Bearbeitung durchgeführt wird und die Wellenformabtastwertberechnung mit unterschiedlicher Rechengenauigkeit durchgeführt wird, die in Entsprechung zu dem ermittelten Rechenumfang für die andere Bearbeitung ausgewählt wird. Sogar wenn der arithmetische Bearbeitungsabschnitt mit der anderen Bearbeitung beschäftigt ist, können Belastungen des arithmetischen Bearbeitungsabschnitts durch Auswählen einer niedrigen Rechengenauigkeit wirksam verringert werden, um den Umfang einer Tonwellenformabtastwertberechnung zu reduzieren. Folglich kann eine Erzeugung von Wellenformdaten ohne Abbruch und ohne Beeinflussung der anderen Bearbeitung fortgesetzt werden.
- Nach der vorliegenden Erfindung wird außerdem eine Tonerzeugungsbearbeitung auf der Grundlage eines automatischen Spiels in voraus während einer Periode ausgeführt, wenn eine Tonerzeugungsbearbeitung auf der Grundlage eines Echtzeit-Spiels den arithmetischen Bearbeitungsabschnitt nicht zu sehr belastet. Das Ergebnis ist, das die Belastung des arithmetischen Bearbeitungsabschnitts zeitlich verteilt werden kann, was zu einer in hohem Maß gesteigerten Betriebseffizienz des arithmetischen Bearbeitungsabschnitts führt.
Claims (4)
1. Verfahren zum Erzeugen einer Tonwellenform auf der Grundlage einer
Spielinformation unter Verwendung eines Prozessorgerätes (10), das eine
Vielzahl unterschiedlicher Programme auf Zeitteilungsbasis ausführt, wobei
das Verfahren ein Ausführen eines Wellenformberechnungsprozesses zur
Berechnung von Tonwellenformabtastwerten auf der Grundlage eines der
Programme beinhaltet und das Prozessorgerät (10) mit einem anderen
Prozess auf der Grundlage eines der anderen der Programme geteilt wird,
dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte aufweist:
Feststellen eines Umfangs von Berechnungszeit, der für den anderen Prozeß
erforderlich ist, wenn der Wellenformberechnungsprozeß auszuführen ist;
und
Berechnen von Tonwellenformabtastwerten durch selektives Ausführen des
Wellenformberechnungsprozesses, der einen unterschiedlichen
Berechnungsumfang erfordert, in Abhängigkeit von dem Umfang von Berechnungszeit, der
für den durch den Feststellungsschritt ermittelten anderen Prozeß
erforderlich ist.
2. Verfahren nach Anspruch 1, bei dem der Berechnungsschritt die
Tonwellenformabtastwerte mit einer unterschiedlichen Genauigkeit in
Abhängigkeit von dem für den Wellenformberechnungsprozeß geforderten
Berechnungsumfang berechnet.
3. Maschinenlesbares Speichermedium zur Verwendung in einer Vorrichtung
mit einem Prozessorgerät (10), wobei das Medium eine Gruppe von durch das
Prozessorgerät (10) ausführbaren Befehlen enthält, um zu veranlassen, dass
die Vorrichtung ein Verfahren zum Erzeugen von Tonwellenformen auf der
Grundlage einer Spielinformation durch Ausführen eines
Wellenformberechnungsprozesses zur Berechnung von Wellenformabtastwerten
durchführt, wobei das Prozessorgerät (10) auch einen anderen Prozeß im
Ansprechen auf eine unterschiedliche Gruppe von Befehlen ausführt,
dadurch gekennzeichnet, dass die Gruppe von Befehlen, die durch das
Prozessorgerät (10) ausführbar sind, um das Verfahren durchzuführen, die
folgenden Schritte aufweist:
Feststellen eines Umfangs von Berechnungszeit, der für den anderen Prozeß
erforderlich ist, wenn der Wellenformberechnungsprozeß auszuführen ist;
und
Berechnen von Tonwellenformabtastwerten durch selektives Ausführen des
Wellenformberechnungsprozesses, der einen unterschiedlichen
Berechnungsumfang verlangt, welcher abhängig von dem Umfang an Berechnungszeit
gemacht wird, der für den durch den Feststellungsschritt ermittelten anderen
Prozeß erforderlich ist.
4. Computersystem zum Erzeugen einer Tonwellenform auf der Grundlage einer
Spielinformation, wobei das Computersystem, folgendes aufweist:
eine Speichervorrichtung (11, 12, 13), die eine Vielzahl von Programmen
speichert; und
ein Prozessorgerät (10), das einen Wellenformerzeugungsprozeß, der einen
Wellenformberechnungsprozeß zur Berechnung von
Tonwellenformabtastwerten einschließt, auf der Grundlage eines vorgegebenen Programms dieser
Programme und einen oder mehrere andere Prozesse auf der Grundlage eines
anderen der Programme parallel auf Zeitteilungsbasis ausführt;
dadurch gekennzeichnet, dass das vorgegebene Programm die folgenden
Schritte aufweist:
Feststellen eines Umfangs an Berechnungszeit, der für den anderen Prozeß
erforderlich ist, wenn der Wellenformberechnungsprozeß auszuführen ist;
und
Berechnen von Tonwellenformabtastwerten durch selektives Ausführen des
Wellenformberechnungsprozesses, der einen unterschiedlichen
Berechnungsumfang verlangt, welcher abhängig von dem Umfang an Berechnungszeit
gemacht wird, der für den durch den Feststellungsschritt ermittelten anderen
Prozeß erforderlich ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16953195A JP3267106B2 (ja) | 1995-07-05 | 1995-07-05 | 楽音波形生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69625625D1 DE69625625D1 (de) | 2003-02-06 |
DE69625625T2 true DE69625625T2 (de) | 2003-10-30 |
Family
ID=15888229
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69613049T Expired - Lifetime DE69613049T2 (de) | 1995-07-05 | 1996-07-03 | Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung |
DE69625625T Expired - Lifetime DE69625625T2 (de) | 1995-07-05 | 1996-07-03 | Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69613049T Expired - Lifetime DE69613049T2 (de) | 1995-07-05 | 1996-07-03 | Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung |
Country Status (8)
Country | Link |
---|---|
US (2) | US5696342A (de) |
EP (2) | EP1005015B1 (de) |
JP (1) | JP3267106B2 (de) |
KR (1) | KR100392621B1 (de) |
DE (2) | DE69613049T2 (de) |
HK (1) | HK1013161A1 (de) |
SG (1) | SG80651A1 (de) |
TW (1) | TW300298B (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69611874T2 (de) | 1995-09-29 | 2001-10-04 | Yamaha Corp., Hamamatsu | Verfahren und Vorrichtung zur Musiktonerzeugung |
SG67993A1 (en) * | 1996-08-30 | 1999-10-19 | Yamaha Corp | Sound source system based on computer software and method of generating acoustic waveform data |
US6758755B2 (en) | 1996-11-14 | 2004-07-06 | Arcade Planet, Inc. | Prize redemption system for games executed over a wide area network |
US5913258A (en) * | 1997-03-11 | 1999-06-15 | Yamaha Corporation | Music tone generating method by waveform synthesis with advance parameter computation |
JP4240575B2 (ja) | 1998-05-15 | 2009-03-18 | ヤマハ株式会社 | 楽音合成方法、記録媒体および楽音合成装置 |
JP3781171B2 (ja) | 2000-06-22 | 2006-05-31 | ヤマハ株式会社 | 楽音発生方法 |
JP3675362B2 (ja) | 2000-08-18 | 2005-07-27 | ヤマハ株式会社 | 楽音生成装置および携帯端末装置 |
ES2305182T3 (es) * | 2002-09-02 | 2008-11-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Sintetizador de sonido. |
US20060005690A1 (en) * | 2002-09-02 | 2006-01-12 | Thomas Jacobsson | Sound synthesiser |
US20050010485A1 (en) * | 2003-07-11 | 2005-01-13 | Quadratic Systems Corporation | Integrated system and method for selectively populating and managing multiple, site-specific, interactive, user stations |
US7663052B2 (en) * | 2007-03-22 | 2010-02-16 | Qualcomm Incorporated | Musical instrument digital interface hardware instruction set |
US7723601B2 (en) * | 2007-03-22 | 2010-05-25 | Qualcomm Incorporated | Shared buffer management for processing audio files |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5441497B2 (de) * | 1974-11-14 | 1979-12-08 | ||
US4373416A (en) * | 1976-12-29 | 1983-02-15 | Nippon Gakki Seizo Kabushiki Kaisha | Wave generator for electronic musical instrument |
JPS55500959A (de) | 1978-12-11 | 1980-11-13 | ||
DE2926548C2 (de) * | 1979-06-30 | 1982-02-18 | Rainer Josef 8047 Karlsfeld Gallitzendörfer | Wellenformgenerator zur Klangformung in einem elektronischen Musikinstrument |
US5029120A (en) * | 1985-02-01 | 1991-07-02 | Analogic Corporation | Electrical wavefrom generator means and methods |
JPS6452196U (de) | 1987-09-28 | 1989-03-30 | ||
JPH0743591B2 (ja) * | 1988-03-08 | 1995-05-15 | ヤマハ株式会社 | 楽音発生制御装置 |
US5319151A (en) | 1988-12-29 | 1994-06-07 | Casio Computer Co., Ltd. | Data processing apparatus outputting waveform data in a certain interval |
EP0376342B1 (de) * | 1988-12-29 | 1994-07-27 | Casio Computer Company Limited | Datenverarbeitungsvorrichtung für ein elektronisches Musikinstrument |
JPH02254496A (ja) | 1989-03-29 | 1990-10-15 | Yamaha Corp | 楽音発生装置 |
US5121667A (en) | 1989-11-06 | 1992-06-16 | Emery Christopher L | Electronic musical instrument with multiple voices responsive to mutually exclusive ram memory segments |
JP2576647B2 (ja) * | 1989-11-30 | 1997-01-29 | ヤマハ株式会社 | 波形発生装置 |
JP3006095B2 (ja) | 1990-06-28 | 2000-02-07 | カシオ計算機株式会社 | 楽音波形発生装置 |
EP0463409B1 (de) * | 1990-06-28 | 1998-12-30 | Casio Computer Company Limited | Vorrichtung zur Erzeugung von Musikwellenformen |
JP2797142B2 (ja) | 1990-07-02 | 1998-09-17 | カシオ計算機株式会社 | 電子楽器用処理装置 |
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 |
US5200564A (en) | 1990-06-29 | 1993-04-06 | Casio Computer Co., Ltd. | Digital information processing apparatus with multiple CPUs |
JP2545297B2 (ja) | 1990-07-18 | 1996-10-16 | 株式会社河合楽器製作所 | 電子楽器のパラメータ設定装置 |
US5054360A (en) | 1990-11-01 | 1991-10-08 | International Business Machines Corporation | Method and apparatus for simultaneous output of digital audio and midi synthesized music |
US5283386A (en) * | 1991-08-30 | 1994-02-01 | Casio Computer Co., Ltd. | Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means |
JP2722907B2 (ja) | 1991-12-13 | 1998-03-09 | ヤマハ株式会社 | 波形発生装置 |
JP2936872B2 (ja) * | 1992-03-04 | 1999-08-23 | ヤマハ株式会社 | 楽音制御装置 |
US5525748A (en) * | 1992-03-10 | 1996-06-11 | Yamaha Corporation | Tone data recording and reproducing device |
JP2743726B2 (ja) | 1992-07-07 | 1998-04-22 | ヤマハ株式会社 | 電子楽器 |
US5345035A (en) | 1992-07-10 | 1994-09-06 | Yamaha Corporation | Musical tone generating apparatus |
JPH07146679A (ja) | 1992-11-13 | 1995-06-06 | Internatl Business Mach Corp <Ibm> | 音声データを変換する方法及びシステム |
JPH06195075A (ja) | 1992-12-24 | 1994-07-15 | Kawai Musical Instr Mfg Co Ltd | 楽音発生装置 |
US5376752A (en) * | 1993-02-10 | 1994-12-27 | Korg, Inc. | Open architecture music synthesizer with dynamic voice allocation |
JPH06308958A (ja) | 1993-04-26 | 1994-11-04 | Roland Corp | 電子楽器の楽音制御装置 |
JP2713107B2 (ja) * | 1993-07-09 | 1998-02-16 | ヤマハ株式会社 | 自動演奏装置 |
TW281745B (de) * | 1994-03-31 | 1996-07-21 | Yamaha Corp | |
EP0743631B1 (de) * | 1995-05-19 | 2002-03-06 | Yamaha Corporation | Verfahren und Vorrichtung zur Tonerzeugung |
US5596159A (en) | 1995-11-22 | 1997-01-21 | Invision Interactive, Inc. | Software sound synthesis system |
US5763801A (en) * | 1996-03-25 | 1998-06-09 | Advanced Micro Devices, Inc. | Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory |
-
1995
- 1995-07-05 JP JP16953195A patent/JP3267106B2/ja not_active Expired - Fee Related
- 1995-10-23 TW TW084111201A patent/TW300298B/zh active
-
1996
- 1996-07-03 EP EP00102933A patent/EP1005015B1/de not_active Expired - Lifetime
- 1996-07-03 DE DE69613049T patent/DE69613049T2/de not_active Expired - Lifetime
- 1996-07-03 DE DE69625625T patent/DE69625625T2/de not_active Expired - Lifetime
- 1996-07-03 EP EP96110766A patent/EP0752697B1/de not_active Expired - Lifetime
- 1996-07-03 US US08/675,447 patent/US5696342A/en not_active Ceased
- 1996-07-03 SG SG9905000A patent/SG80651A1/en unknown
- 1996-07-05 KR KR1019960027264A patent/KR100392621B1/ko not_active IP Right Cessation
-
1998
- 1998-12-21 HK HK98114172A patent/HK1013161A1/xx not_active IP Right Cessation
-
1999
- 1999-12-08 US US09/456,877 patent/USRE41297E1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
USRE41297E1 (en) | 2010-05-04 |
DE69625625D1 (de) | 2003-02-06 |
KR970007684A (ko) | 1997-02-21 |
TW300298B (de) | 1997-03-11 |
KR100392621B1 (ko) | 2003-10-23 |
EP0752697B1 (de) | 2001-05-30 |
EP1005015A1 (de) | 2000-05-31 |
DE69613049D1 (de) | 2001-07-05 |
US5696342A (en) | 1997-12-09 |
EP0752697A2 (de) | 1997-01-08 |
JPH0922287A (ja) | 1997-01-21 |
SG80651A1 (en) | 2001-05-22 |
JP3267106B2 (ja) | 2002-03-18 |
EP1005015B1 (de) | 2003-01-02 |
DE69613049T2 (de) | 2002-03-07 |
HK1013161A1 (en) | 1999-08-13 |
EP0752697A3 (de) | 1997-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69711518T2 (de) | Auf Software basierendes Tonquellensystem und Verfahren zur Erzeugung von akustischen Wellenformdaten | |
DE69210652T2 (de) | Mischvorrichtung für Begleitungschor und Karaoke-System mit dieser Vorrichtung | |
DE69614765T2 (de) | Durch Rechner gesteuertes Musiksystem mit hard- und softwareorientierter Tonerzeugung | |
DE69619587T2 (de) | Verfahren und Vorrichtung zur Tonerzeugung | |
DE69608292T2 (de) | Audio-synthesizer | |
DE69515742T2 (de) | Digitale Bearbeitung von Audio-Mustern | |
DE69625625T2 (de) | Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung | |
DE69613950T2 (de) | Verfahren und Vorrichtung zur Tonerzeugung | |
DE3630611C2 (de) | ||
DE69613068T2 (de) | Digitales Musikinstrument mit Wellenformbearbeitung zur Erzeugung eines Klangeffektes | |
DE3936693A1 (de) | Vorrichtung zum erzeugen digitaler audiosignale | |
DE19709930A1 (de) | Tonprozessor, der die Tonhöhe und die Hüllkurve eines akustischen Signals frequenzangepaßt nachweist | |
DE69618535T2 (de) | Verfahren zur Tonerzeugung durch Hardware- und Softwarequellen | |
DE3531880C2 (de) | ||
DE69623866T2 (de) | Verfahren und Vorrichtung zur Bildung einer Tonwellenform durch kombinierte Verwendung von verschiedenen Auflösungen der Abtastwerte der Wellenformen | |
DE69517896T2 (de) | Elektronisches Musikinstrument und Vorrichtung zum Hinzufügen von Klangeffekten zum Tonsignal | |
DE69517263T2 (de) | Vorrichtung zur Erzeugung von Tonsignalen | |
EP0042555B1 (de) | Verfahren zur digitalen Hüllkurvensteuerung eines polyphonen Musiksyntheseinstruments und Schaltungsanordnung zur Durchführung des Verfahrens | |
DE112018007079T5 (de) | Audioparameter-anpassungsvorrichtung, audioparameter-anpassungsverfahren und audioparameter-anpassungsprogramm | |
DE69632351T2 (de) | Verfahren und Vorrichtung zur Musiktonerzeugung | |
DE69618738T2 (de) | Verfahren und Vorrichtung zur Tonerzeugung | |
DE3785625T2 (de) | Tonerzeugungsvorrichtung mit Wellenformspeicher. | |
DE68927661T2 (de) | Adressensteuerschaltung für einen Datenspeicher zur Anwendung in einer Signalverzögerungsschaltung | |
DE602005004685T2 (de) | Tonwellenform Synthesizer | |
DE2513127C2 (de) | Verfahren zum künstlichen Erzeugen eines musikalischen Klangs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: KEHL & ETTMAYR, PATENTANWAELTE, 81679 MUENCHEN |