DE69613950T2 - Verfahren und Vorrichtung zur Tonerzeugung - Google Patents

Verfahren und Vorrichtung zur Tonerzeugung

Info

Publication number
DE69613950T2
DE69613950T2 DE69613950T DE69613950T DE69613950T2 DE 69613950 T2 DE69613950 T2 DE 69613950T2 DE 69613950 T DE69613950 T DE 69613950T DE 69613950 T DE69613950 T DE 69613950T DE 69613950 T2 DE69613950 T2 DE 69613950T2
Authority
DE
Germany
Prior art keywords
sample data
tone
waveform sample
interrupt signal
generating
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
Application number
DE69613950T
Other languages
English (en)
Other versions
DE69613950D1 (de
Inventor
Ryo Kamiya
Masahiro Mukojima
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.)
Yamaha Corp
Original Assignee
Yamaha 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=18401130&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69613950(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Yamaha Corp filed Critical Yamaha Corp
Publication of DE69613950D1 publication Critical patent/DE69613950D1/de
Application granted granted Critical
Publication of DE69613950T2 publication Critical patent/DE69613950T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • 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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments 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
    • 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor 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

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 zur Tonerzeugung zum arithmetischen Bilden einer Tonwellenform mittels Ausführens eines Tonerzeugungsprogramms auf einem arithmetischen Prozessor und auf eine Tonerzeugungsvorrichtung, der das Verfahren zur Tonerzeugung zugrunde liegt.
  • Heutzutage sind Tonerzeugungsvorrichtungen nichts Neues, ihre typischen Vertreter weisen eine MIDI (Musical Instrument Digital Interface = digitale Schnittstelle für Musikinstrumente) auf, einen Spieleingabeabschnitt zum Eingeben einer Spielinformation über eine Tastatur oder einen Sequenzer, einen Tonerzeugungsabschnitt zum Erzeugen einer Tonwellenform und eine zentrale Rechnereinheit (CPU) zur Steuerung des Tongeneratorabschnitts in Entsprechung zu der eingegebenen Spielinformation. Die CPU führt verschiedene Tongenerator-Treiberverarbeitungen, wie beispielsweise eine Kanalzuweisung und Parameter-Konvertierung, in Entsprechung zu der eingegebenen Spielinformation aus und beliefert den zugewiesenen Kanal mit den konvertierten Parametern zusammen mit einem Tonerzeugungs-Start (Ton-EIN)- Befehl. Der Tongeneratorabschnitt bildet eine Tonwellenform auf der Grundlage der zugeführten Parameter und ist durch eine Hardware, wie beispielsweise einen elektronischen Schaltungsaufbau, implementiert. Die herkömmlichen Tongeneratorvorrichtungen arbeiten daher nur als zweckbestimmte Vorrichtungen zur Tonerzeugung, und es war immer notwendig, solche zweckbestimmte Vorrichtungen zu verwenden, wenn künstliche Töne zu erzeugen waren.
  • EP 0 597 381 A2 offenbart ein Verfahren und ein System zum Dekodieren von binären Daten für Audio-Anwendungen, wobei diese direkt in ein besonderes Hardware- Register einer besonderen Audiokarte eingeschrieben werden, um mit einer Audiokarte unter Verwendung des Hardware-Tongenerators zu kommunizieren. Ein Übersetzungsprogramm hört die Audiomitteilung ab und wählt aus einer Tabelle Tonstimmen aus, die den Übereinstimmungen von Audioparametern in der Audiomitteilung entsprechen. EP 0 484 047 A2 offenbart ein Verfahren und eine Vorrichtung zum simultanen Ausgeben von digitaler Audio- und MIDI-synthetisierter Musik, wobei ein zusätzlicher Digitalsignalprozessor verwendet wird, um eine digitalen Audio-Datei zu dekomprimieren und einen MIDI-Synthesizer zu implementieren.
  • Neuerdings wurde ein Verfahren zur Tonerzeugung vorgeschlagen, bei welchem eine Tongeneratorverarbeitung auf der Grundlage von Computerprogrammen (Software- Tongenerator) anstelle des traditionellen Hardware-Tongenerators verwendet wird und sowohl eine Spielverarbeitung als auch ein Tongeneratonrerarbeitung von der CPU durchgeführt werden. Ähnlich zu der vorher erwähnten Tongenerator-Treiberverarbeitung erzeugt die Spielverarbeitung eine Tonsteuerinformation auf der Basis einer empfangenen MIDI-Information oder einer anderen Spielinformation. Andererseits bildet die Tongeneratorverarbeitung Tonwellenformabtastdaten auf der Grundlage der durch die Spielverarbeitung erzeugten Steuerinformation. Mit diesem Tonerzeugungsverfahren können Töne ohne irgendeine zweckbestimmte Tonerzeugungsvorrichtung nur durch Bereitstellen einer CPU, eines Software-Programms und eines Digital/Analog (DIA)-Wandlers erzeugt werden.
  • Um Töne zu erzeugen, ist es erforderlich, Wellenformabtastdaten zu dem DIA- Wandler bei jedem Abtastzyklus, i.e., jedem Konvertiertungstakt des DIA-Wandlers, zu liefern. Nach dem vorher erwähnten herkömmlichen Tonerzeugungsverfahren führt die CPU die Spielverarbeitung normal durch, wie beispielsweise ein Feststellen von angeschlagenen Tasten. Die CPU unterbricht aber die Spielverarbeitung bei jedem Abtastzyklus, um die Tongeneratorverarbeitung auszuführen, um einen Wellenformabtastdatenwert für einer Vielzahl von Tonerzeugeungskanälen arithmetisch zu bilden, und kehrt dann zu der Spielverarbeitung nach der Abtastdatenbildung zurück.
  • Bei dem vorher erwähnten herkömmlichen Tonerzeugungsverfahren muß die CPU von einem Speicher in ein vorgegebenes Register verschiedene Daten, die bei der vorangehenden Berechnung für jeden der Kanäle verwendet werden, vor der tatsächlichen Ausführung der Wellenformbildungsberechnung für den Kanal bei jedem Abtastzyklus übertragen; nach Fertigstellen der Berechnung muß die CPU die Inhalte der Register in dem Speicher für eine nächste Ausführung der Berechnung sichern. Da nämlich die Tonwellenabtastdaten für jeden der Kanäle, Abtastwert um Abtastwert, bei dem herkömmlichen Tonerzeugungsverfahren arithmetisch gebildet werden, würde mehr Zeit für die Vorbereitungsoperationen als für die Tonbildung selbst verbraucht, woraus eine schlechte Recheneffizienz und Empfindlichkeit resultieren würde und die Tonerzeugungsverarbeitung beträchtlich verzögert würde. Folglich kann der Wellenformbildungsberechnung nicht genügend Zeit zugewiesen werden.
  • Anwendungsprogramme, wie beispielsweise MIDI-Sequenzer-Software und Spiel- Software, um eine solchen Software-Tongenerator mit einer MIDI-Ereignis- Information oder einer anderen Spielinformation zu beliefern, sind ausgelegt, um in einem üblichen Betriebssystem (OS) zu arbeiten. Wenn der Software-Tongenerator durch eine durch die MIDI-Sequenzer-Software erzeugte MIDI-Ereignisinformation zu betreiben ist, kann die Sequenzer-Software selbst nicht aktiviert werden, es sei denn, dass das OS läuft; in einem solchen Fall ist es notwendig, die Software simultan mit dem OS in einer stabilen Weise zu betreiben. Es ist somit schwierig, den vorher erwähnten Software-Tongenerator in dem üblichen OS in Echtzeit zu betreiben.
  • Zum Beispiel, wenn bei einem OS auf der Grundlage eines nicht-vollständigen (nichtpräemptiven) Multitask (Mehrprozeßverarbeitung)-Schemas ein laufendes spezifisches Programm (Task) nicht zu dem OS zurückkehrt, wird kein anderes Programm ausgeführt. Der Software-Tongenerator kann daher manchmal zu vorgegebenen Zeitintervallen nicht ausgeführt werden, und demgemäß können Tonwellenformabtastdaten nicht stabil bei jedem Abtastzyklus ausgegeben werden.
  • Zudem wird eine Spielinformation (MIDI-Ereignis-Information) durch einen Spielvorgang eines Spielers oder durch eine Wiedergabe eines Ereignisses über einen Sequenzer hergestellt und die erzeugte Spielinformation wird durch die vorher erwähnte Spielverarbeitung bearbeitet. Jedesmal, wenn nämlich eine Spielinformation erzeugt wird, muß die CPU die Spielverarbeitung zusätzlich zu der normalen Tongeneratorverarbeitung ausführen; aufgrund der nicht periodisch erzeugten Spielinformation würde daher der Umfang der durchzuführenden Berechnung temporär zu einem wesentlichen Grad ansteigen. Da jedoch die Tonerzeugungsverarbeitung periodisch mit Priorität vor der Spielverarbeitung ausgeführt wird, ohne Rücksicht auf Vorhandensein/Fehlen einer Spielinformation, könnte die Spielverarbeitung in einigen Fällen wesentlich verzögert werden.
  • Ein Lösungsansatz, solche Zeitverzögerungen der Spielverarbeitung zu vermeiden, könnte darin bestehen, der Spielverarbeitung eine höhere Priorität als der Tongeneratorverarbeitung zu geben. Dieser Lösungsansatz würde aber eine unstabile Funktion der Tongeneratorverarbeitung zur Folge haben, wie beispielsweise eine temporäre Abnahme in der Anzahl von erzeugten Tönen oder einen unerwünschten temporären Bruch in einer ausgebildeten Tonwellenform. Solche unstabile Funktion der Tongeneratorverarbeitung würde insbesondere zu einem signifikanten Problem bei einem Echtzeit-Spiel werden.
  • Zudem würde der herkömmliche Software-Tongenerator verschiedene Einstellungsoperationen, bevor er tatsächlich verwendet wird, nötig haben, da der Software- Tongenerator nicht durch einfaches Ablaufen eines Anwendungs-Software-Programms unter Verwendung des herkömmlichen Hardware-Generators betrieben werden kann, i. e., ohne irgendeine besondere Änderung bei der Anwendung durchzuführen.
  • Es ist daher ein Ziel der vorliegenden Erfindung eine Verfahren und eine Vorrichtung zur Tonerzeugung zu schaffen, welches in der Lage ist, Wellenformbildungsberechnungen auf effiziente und stabile Weise auszuführen.
  • Es ist ein weiteres Ziel der vorliegenden Erfindung eine stabile Tonerzeugungsverarbeitung zu ermöglichen, sogar wenn die Verarbeitungsmenge temporär ansteigt.
  • Ein noch weiteres Ziel der vorliegenden Erfindung ist, einen Software-Tongenerator bereitzustellen, der ein Anwendungs-Softwareprogramm unter Verwendung eines herkömmlichen Hardware-Generators laufen lassen kann, ohne irgendeine Änderung bei der Anwendung durchzuführen.
  • Um das vorher erwähnte Ziel zu erreichen, stellt die vorliegende Erfindung ein Verfahren zur Tonerzeugung bereit, das eine arithmetische Verarbeitungsvorrichtung verwendet. Das Verfahren weist die Schritte auf: Empfangen einer Befehlsinformation, die die Erzeugung eines Tons anweist und Bilden von Wellenformabtastdaten des Tons entsprechend der Befehlsinformation. Der Bildungsschritt enthält die Schritte des gemeinsamen Bildens einer Vielzahl von Wellenformabtastdaten des Tons und temporären Speicherns der gebildeten Wellenformabtastdaten in einem Ausgabepuffer im Ansprechen auf ein Unterbrechungssignal, des sequentiellen Auslesens der Wellenformabtastdaten aus dem Ausgabepuffer mit einer vorgegebenen Wiedergabeabtastrate und des Erzeugens des Unterbrechungssignals, wodurch das Bilden der Vielzahl von Wellenformabtastdaten intermittierend im Ansprechen auf die Erzeugung des jeweiligen Unterbrechungssignals wiederholt wird.
  • Bevorzugte Ausführungsformen dieses Verfahrens sind in Ansprüchen 2 bis 7 beschrieben.
  • Die vorliegende Erfindung stellt auch eine Vorrichtung zur Tonerzeugung bereit, die ein Speichergerät (2, 3, 8) mit einem dort gespeicherten Tonerzeugungsprogramm und ein Verarbeitungsgerät aufweist, das mit dem Speichergerät verbunden ist und das Tonerzeugungsprogramm in geeigneter Weise ausführt. Die Vorrichtung weist außerdem einen Pufferspeicher zum Speichern einer Vielzahl von Wellenformabtastdaten, ein Ausgabegerät zum sequentiellen Auslesen der Wellenformabtastdaten aus dem Pufferspeicher mit einer vorgegebenen Wiedergabeabtastrate und eine Schaltung zum Erzeugen eines Unterbrechungssignals auf. Das Verarbeitungsgerät aktiviert eine Tonerzeugungsbearbeitung in dem Tonerzeugungsprogramm im Ansprechen auf das Unterbrechungssignal, und die Tonerzeugungsbearbeitung enthält ein gemeinsames Bilden einer Vielzahl von Wellenformabtastdaten eines zu erzeugenden Tons und ein Speichern der gebildeten Wellenformabtastdaten in einem Pufferspeicher.
  • Bevorzugte Ausführungsformen dieser Vorrichtung sind in Ansprüchen 9 bis 12 beschrieben.
  • Die vorliegende Erfindung stellt auch ein maschinenlesbares Speichermedium bereit, das eine Gruppe von Befehlen enthält, um das Gerät zum Implementieren eines Tonerzeugungsverfahrens mittels eines arithmetischen Verarbeitungsgerätes zu veranlassen. Dieses Verfahren weist die folgenden Schritte auf, Empfangen einer Befehlsinformation, die eine Tonerzeugung anweist und Bilden von Wellenformabtastdaten des Tons entsprechend der Befehlsinformation. Der Bildungsschritt weist die Schritte des gemeinsamen Bildens einer Vielzahl von Wellenformabtastdaten des Tons und des temporären Speicherns der gebildeten Wellenformabtastdaten in einem Ausgabepuffer im Ansprechen auf ein Unterbrechungssignal, des sequentiellen Auslesens der Wellenformabtastdaten aus dem Ausgabepuffer mit einer vorgegebenen Wiedergabeabtastrate und des Erzeugens des Unterbrechungssignals, wodurch das Bilden der Vielzahl von Wellenformabtastdaten intermittierend im Ansprechen auf die Erzeugung des jeweiligen Unterbrechungssignals wiederholt wird.
  • Bevorzugte Ausführungsformen dieses maschinenlesbaren Speichermediums sind in Ansprüchen 14 bis 19 beschrieben.
  • Zum besseren Verständnis der vorhergehenden und anderer Merkmale der vorliegenden Erfindung, werden nachfolgend die bevorzugten Ausführungsformen der Erfindung bezugnehmend auf die anhängenden Zeichnungen detailliert beschrieben. In den Zeichen ist folgendes gezeigt.
  • Fig. 1 ist ein Blockschaltbild, das den beispielhaften Aufbau einer Tonerzeugungsvorrichtung zeigt, die zum Implementieren eines Tonerzeugsverfahrens der vorliegenden Erfindung verwendet wird.
  • Fig. 2 ist eine Abbildung, die eine Software-Modul-Konfiguration zur Implementierung der in Fig. 1 gezeigten Tonerzeugungsvorrichtung darstellt.
  • Fig. 3 ist ein Flußdiagramm, das verschiedene in dem Software-Tongenerator ausgeführte Bearbeitungen zeigt, wobei das Tonerzeugungsverfahren der vorliegenden Erfindung verwendet wird.
  • Fig. 4 ist eine graphische Darstellung, die einen beispielhaften Verarbeitungsfluß der vorliegenden Erfindung zeigt.
  • Fig. 5 ist eine graphische Darstellung, die einen beispielhaften Fluß von arithmetisch gebildeten Tonwellenformdaten zeigt.
  • Fig. 6A ist ein Flußdiagramm, das die Operation des DMAC zeigt.
  • Fig. 6B ist eine Abbildung, die ein Beispiel einer Struktur eines DMA-Puffers zeigt.
  • Fig. 7A ist eine graphische Darstellung, die beispielhaft für eine Arbeitstaktsteuerung der MIDI-Bearbeitung und Wellenformbildungsbearbeitung ist.
  • Fig. 7B zeigt an einem Beispiel, wie die Wellenformbildung abgebrochen wird.
  • Fig. 8A ist eine Abbildung, die eine Modifikation der vorliegenden Erfindung zeigt.
  • Fig. 8B ist eine Abbildung, die eine weitere Modifikation der Erfindung zeigt.
  • Fig. 1 ist ein Blockschaltbild, das eine Ausführungsform einer Tonerzeugungsvorrichtung 17 zeigt, die zum Implementieren eines Tonerzeugsverfahrens der vorliegenden Erfindung verwendet wird.
  • Die in Fig. 1 gezeigte Tonerzeugungsvorrichtung 17 weist folgendes auf: eine zentrale Rechnereinheit (CPU) 1, wie beispielsweise einen Mikroprozessor, der Anwendungsprogramme und verschiedene arithmetische Operationen zum arithmetischen Bilden von Tonwellenformabtastdaten, usw. ausführt; eine Festwertspeicher (ROM) 2 mit dort gespeicherten voreingestellten Klangfarbendaten und dergleichen; einen Direktzugriffspeicher (RAM) 3 mit einem Arbeitsspeicherbereich für die CPU 1 und Speicherbereichen, wie beispielsweise einem Klangfarbendatenbereich, Kanalregisterbereich und Ausgabepufferbereichen; einem Zeitgeber 4 zum Kennzeichnen einer aktuellen Zeit und zum Bezeichnen eines Zeitgeber-Unterbrechungstaktes für die CPU 1; eine MIDI-Schnittstelle 5 über welche eine MIDI-Ereignisinformation in die Vorrichtung 17 eingegeben wird und MIDI-Ereignisdaten, die im Ansprechen auf die MlDI-Ereignisinformation erzeugt werden, von der Vorrichtung 17 ausgegeben werden; und eine Tastatur 6, die ähnlich der eines gewöhnlichen Personal-Computers ist, mit Tasten von englischen und japanischen Buchstaben, Ziffern, Symbolen, usw.. Wie nach dem Stand der Technik bekannt, ist "MIDI" ein Akronym von Musical Instrument Digital Interface.
  • Die Tonerzeugungsvorrichtung 17 weist ferner folgendes auf: eine Anzeige (Monitor) 7 mittels welcher ein Anwender mit der Vorrichtung 17 einen Dialog führen kann; eine Festplatte (HDD) 8, die verschiedene Anwendungsprogramme, wie beispielsweise ein Sequenzer-Software-Programm zum Erzeugen von Tönen und Spiel-Software- Programme, installiert hat und die auch Tonwellenformdaten dort vorgespeichert hat, die zur arithmetischen Bildung von Tonwellenformabtastdaten zu verwenden sind; und eine Direktzugriffsspeicher-Steuereinheit (DMAC) 10, die ohne irgendein Eingreifen der CPU 1 eine direkte Übertragung von Tonwellenformabtastdaten von einem der Bereiche (DMA-Puffer) des RAM 3, der durch die CPU 1 bezeichnet wurde, zu einem Digital/Analog(D/A)-Wandler (DAC) einer Ton-Eingabe/Ausgabe-Schaltung (CODEC) 11 mit einer vorgegebenen Abtastfrequenz (zum Beispiel, 48 kHz) gestattet.
  • Die Ton-Eingabe/Ausgabe-Schaltung 11, die als eine CODEC bezeichnet wird, enthält den D/A-Wandler, einen Analog/Digital-Wandler A/D, einen Eingabe-FIFO (first-in, first-out)-Puffer, der mit dem A/D-Wandler verbunden ist, und einen Ausgabe- FIFO-Puffer, der mit dem D/A-Wandler verbunden ist. Bei der Ton- Eingabe/Ausgabe-Schaltung (CODEC) 11 empfängt der Eingabe-FiFO-Puffer über eine externe Audiosignaleingabeschaltung 13 Audio-Eingabesignale, die durch den A/D- Wandler im Ansprechen auf Abtasttaktimpulse einer Frequenz Fs, die von einem Abtasttaktgenerator 12 eingespeist wurde, konvertiert wurden. Die Eingabe/Ausgabe- Schaltung 11 liest auch Wellenformabtastdaten, die der DMAC 10 in den Ausgabe- FIFO-Puffer geschrieben wurden, im Ansprechen auf die Abtasttaktimpulse aus und liefert die ausgelesenen Wellenformabtastdaten an den D/A-Wandler, Abtastwert um Abtastwert (ein Abtastwert zu einen Zeitpunkt). Wenn irgendein Datenwert in dem Eingabe-FIFO-Puffer vorhanden ist und es irgendeine Leerstelle in dem Ausgabe- FIFO-Puffer gibt, ist die Ton-Eingabe/Ausgabe-Schaltung 11 aktiv, um ein Daten- Prozeßanfragesignal zu der DMAC 10 auszugeben.
  • Der Abtasttaktgenerator 12 liefert die Abtasttaktimpulse einer Frequenz Fs an die Ton-Eingabe/Ausgabe-Schaltung 11, wie bereits erwähnt. Die Ausgabe der externen Audiosignaleingabeschaltung 13 ist mit dem A/D-Wandler der Ton-Eingabe/Ausgabe- Schaltung 11 verbunden. Ein Tonsystem 14 ist mit der Ausgabe des D/A-Wandlers der Eingabe/Ausgabe-Schaltung 11 verbunden und gibt hörbar wieder oder bringt die analogen Tonsignale, die von dem D/A-Wandler zu jedem Abtastzyklus geliefert werden, zum Erklingen. Die Bezugsnummer 15 bezeichnet ein Floppy Disk-Gerät zum Antreiben einer Floppy Disk und 16 einen Bus zur Datenübertragung zwischen den vorher erwähnten Elementen der Vorrichtung.
  • Auf der Festplatte 8 können verschiedene Daten, wie beispielsweise automatische Spieldaten und Akkordlaufdaten, ebenso wie ein Betriebsprogramm, um die vorliegende Erfindung in die Praxis umzusetzen, gespeichert sein. Durch Vorspeichern des Betriebsprogramms eher auf der Festplatte 8 als in dem ROM 3 und ebenso durch Laden des Betriebsprogramms in den RAM 3 kann die CPU 1 in genau der gleichen Weise arbeiten, wie in dem Fall, bei dem das Betriebsprogramm in dem ROM 2 gespeichert ist. Dies erleichert beträchtlich eine Aktualisierung des Operationsprogramms, ein Hinzufügen eines Betriebsprogramms, usw.. Eine CD-ROM (Kompaktplatte) kann als wechselbares externes Aufzeichnungsmedium, zum Auszeichnen verschiedener Daten, wie beispielsweise automatischer Spieldaten, Akkordlaufdaten und Tonwellenformdaten, und optionaler Betriebs- oder Anwendungsprogramme verwendet werden. Ein solches Betriebsprogramm und auf der CD-ROM gespeicherte Daten können von einem CD-ROM-Laufwerk 18 ausgelesen werden, um zur Speicherung auf der Festplatte 8 übertragen zu werden. Dies erleichert ein Installieren und Aktualisieren des Betriebsprogramms. Das wechselbare externe Aufzeichnungsmedium kann außer der CD-ROM beispielsweise eine Floppy Disk oder eine Magnetooptische Scheibe (MO) sein.
  • Eine Kommunikations-Schnittstelle 19 kann mit einem Bus 16 verbunden sein, so dass die Vorrichtung über die Schnittstelle 19 mit einem Kommunikations-Netzwerk 28 verbunden sein kann, wie beispielsweise einem LAN (local area network = lokales Netz), dem Internet und einem Telefonleitungsnetzwerk, und kann auch mit einem geeigneten Server-Computer 29 über das Kommunikations-Netzwerk 28 verbunden sein. Falls das Betriebsprogramm und verschiedene Daten nicht auf der Festplatte 8 enthalten sind, können dieses Betriebsprogramm und diese Daten von dem Server- Computer 29 empfangen werden und auf die Festplatte 8 heruntergeladen werden. In einem solchen Fall sendet die als ein "Client" funktionierende Tonerzeugungsvorrichtung 17 einen Befehl, wobei der Server-Computer 29 aufgerufen wird, das Betriebsprogramm und verschiedene Daten über die Kommunikations-Schnittstelle 19 und das Kommunikations-Netzwerk 28 herunterzuladen. Im Ansprechen auf den Befehl, gibt der Server-Computer 29 das angeforderte Betriebsprogramm und die Daten an die Tonerzeugungsvorrichtung 17 über das Kommunikations-Netzwerk 28. Die Tonerzeugungsvorrichtung 17 stellt das erforderliche Herunterladen durch Empfangen des Betriebsprogramms und der Daten über das Kommunikations-Netzwerk 19 fertig und speichert diese auf der Festplatte 8.
  • Es sollte hier klar gestellt werden, dass die Tonerzeugungsvorrichtung 17 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.
  • In einigen Fällen können eines oder mehrere externe Laufwerke zum Treiben eines Aufzeichnungsmediums, das nicht das CD-Rom-Laufwerk 18 ist, mit der Tonerzeugungsvorrichtung 17 verbunden sein, wie beispielsweise einem MO (Magnetooptisches Platten)-Laufwerk.
  • Die in der vorher beschriebenen Weise gestaltete Tonerzeugungsvorrichtung 17 kann einen Universal-Computer, wie beispielsweise einen Personal-Computer oder eine Arbeitsplatzrechner, verwenden, um das Tonerzeugungsverfahren der vorliegenden Erfindung zu realisieren.
  • Fig. 2 ist eine Abbildung, die ein Beispiel einer Software-Modul-Konfiguration zur Implementierung der in Fig. 1 gezeigten Tonerzeugungsvorrichtung 17 darstellt. Das in Fig. 2 dargestellte Beispiel ist nachfolgend beschrieben, unter der Voraussetzung, dass "Windows95" ("Windows" ist ein eingetragenes Warenzeichen von Microsoft Corporation, U.S.A.) als das Betriebssystem verwendet wird. Bei diesem Betriebssystem läuft jedes Anwendungsprogramm in der Umgebung von virtuellen Maschinen (VMs), die dem Betriebssystem entsprechen. Die hier verwendeten Windows-virtuellen Maschinen (Windows VMs) beziehen sich im Kontext auf Ablaufen Lassen von einem Anwendungsprogramm, und die Windows Kontexte enthalten ein durch die Anwendung adressierbares Speicher-Verzeichnis, Inhalte von Hardware-Registern und der Anwendung zugewiesene Windows-Systemelemente. Das dargestellte Beispiel enhält zwei Windows VMs, System VM 20 und MS-DOS VM 30.
  • In dem dargestellten Beispiel aus Fig. 2 sind das System VM 20 und MS-DOS VM 30 Elemente von Ring 3. Wie gezeigt, werden die Anwendungsprogramme 21, 23, und 24 in dem System VM 20 bereitgestellt, und das Anwendungsprogramm 21 ist ein Programm für Windows95, das mit 32-Bit-Kodes (Win 32 Anwendung) betreibbar ist, bei welchem hier vorausgesetzt wird, dass dort ein Tabellen-Berechnungsprogramm installiert ist. In einem Adressraum 22 ist das Sequenzerprogramm 23 vorgesehen, das ein Anwendungsprogramm für Windows ist, und eine Text- Verarbeitungs-Software 24. Bei dem System VM 20 ist auch ein System-Service- Element 25 für Windows vorgesehen, dass verschiedene Treiber-Software 26 und Hardware-I/O-Register 27 enthält.
  • In dem MS-DOS VM 30 sind zudem Anwendungsprogramme für MS-DOS, wie beispielsweise ein Spielanwendungsprogramm 31 für MS-DOS, installiert und es sind MS-DOS-Umgebungen vorbereitet, wie beispielsweise eine Treiber-Software 32 und ein Hardware-I/O 33 für MS-DOS. Das Spielanwendungsprogramm 31 ist konzipiert zum Erzeugen von Tönen, wie beispielsweise Effektklängen, über die MIDI.
  • In Ring 0 ist ein Basissystemabschnitt 40 für Windows95 einschließlich eines File- Managementsystems vorgesehen, welches einen OS-Kernabschnitt 41, Treiber für virtuelle Geräte 42 und Verwaltungs-Software 47 enthält.
  • Die Treiber für virtuelle Geräte 42 weisen eine Vielzahl von Treiber-Routinen für virtuelle Geräte, wie beispielsweise eine Unterstützungs-Routine 1 - Unterstützungs-Routine n, die mit 43 bis 45 bezeichnet sind, und eine Software- Tongenerator (T. G.)-Unterstützungs-Routine 46 auf. Diese Treiber-Routinen für virtuelle Geräte sind Programm-Module in einem 32-Bit-Schutzmodus zum Leisten verschiedener Dienste, die verschiedenen Software- und Hardware-Unterbrechungssignalen entsprechen, und arbeiten in einer bevorrechtigten Stufe Ring 0 eines Prozessors.
  • Im Ansprechen auf jedes von verschiedenen Software-Unterbrechungssignalen von verschiedenen virtuellen Maschinen (VMs) und verschiedenen Hardware-Unterbrechungssignalen von verschiedenen Hardware-Elementen, arbeitet der Kernabschnitt 41 irgendeine der Treiber-Routinen für virtuelle Geräte, die dem Unterbrechungsignal entsprechen, ab.
  • In Fig. 2 repräsentiert eine Bezugsnummer 50 verschiedene Hardware-Elemente, wie die vorher erwähnte Ton-Eingabe/Ausgabe-Schaltung (CODEC) 11 und MIDI- Schnittstelle 5. Ein jedes von Unterbrechungssignalen von diesen Hardware- Elementen wird von dem Kernabschnitt 41 empfangen, so dass eine entsprechende Bearbeitung von irgendeiner der Unterstützungs-Routinen 43 bis 45 und Software- Tongenerator-Unterstützungs-Routine 46, die dem empfangenen Unterbrechungssignal entsprechen, ausgeführt wird.
  • Die Treiber für virtuelle Geräte (VxD) sind normalerweise vorgesehen, um zu ermöglichen, dass eine Vielzahl von virtuellen Computern (VM) in einem Personal- Computer eingebaute Hardware-Systemelemente gemeinsam nutzen, und sie organisieren, welchen (einer oder mehreren) der virtuellen Maschinen gestattet werden soll, die Hardware-Systemelemente zu verwenden. Zu diesem Zweck sind die Treiber für virtuelle Geräte zwischen den virtuellen Maschinen und den Hardware- Elementen vorgesehen, um festzustellen, wenn einer der Gerätetreiber in irgendeiner der virtuellen Maschinen auf eine Adresse der entsprechenden Hardware-Elemente zugreift, um dabei als ein Zwischenglied bei dem Zugriff auf das Hardware-Element zu wirken. Die Treiber für virtuelle Geräte VxD geben auch eine Ausgabe von irgendeinem der Hardware-Elemente zu den Gerätetreibern in den entsprechenden virtuellen Maschinen aus.
  • Wie bereits erwähnt, weisen die Treiber für virtuelle Geräte 42 die Software- Tongenerator-Unterstützungs-Routine 46 auf, die eine MIDI-Bearbeitungs-Routine und eine Wellenformbildungs-Bearbeitungs-Routine enthält, wie nachfolgend beschrieben wird. Diese Software-Tongenerator-Unterstützungs-Routine 46 ist mehr dafür konzipiert, Tongenerator-Hardware zu simulieren, die in Wirklichkeit nicht vorhanden ist, als als das Zugriffs-Zwischenglied zu wirken. Wenn man so verfährt, kann man eine Situation herbeiführen, in der die virtuelle Maschine nicht erkennen kann, ob der Personal-Computer tatsächlich mit einem Hardware-Tongenerator ausgerüstet ist oder nicht. Das heißt, dass jede der virtuellen Maschinen den Software-Tongenerator genau auf die gleiche Weise verwenden darf, in der ein Hardware-Tongenerator betrieben wird.
  • Fig. 3 ist ein Flußdiagramm, das eine in dem Software-Tongenerator ausgeführte Haupt-Routine unter Verwendung des Tonerzeugungsverfahrens der vorliegenden Erfindung zeigt.
  • Beim Anlaufen des Software-Tongenerators wird eine verschiedenartige Initialisierungs-Bearbeitung bei Schritt S1 ausgeführt, wie beispielsweise zum Sichern verschiedener Pufferbereiche in dem RAM 3, Laden der Software- Tongenerator-Unterstützungs-Routine 46 (einschließlich der MIDI-Bearbeitungs- Routine und Wellenformbildungs-Bearbeitungs-Routine) in den Treiberabschnitt für virtuelle Geräte 42, Einstellen einer Datenübertragung durch die Direktspeicherzugriff-Steuereinheit DMAC 10 und Einstellen einer Unterbrechung von Hardware- Elementen, wie beispielsweise der Ton-Eingabe/Ausgabe-Schaltung (CODEC) 11. Im nächsten Schritt S2 wird eine Anzeigebildschirm für den Software-Tongenerator vorbereitet. Die Haupt-Routine schreitet dann zu Schritt S3 fort, um zu prüfen, ob irgendeiner von vorgegebenen Triggerfaktoren in Schritt S3 aufgetreten ist, und ermittelt ein Vorhandensein oder Fehlen des Triggerfaktors in Schritt S4. Wenn irgendeiner der Triggerfaktoren aufgetreten ist, geht die Haupt-Routine zu Schritt S5; anderenfalls kehrt die Haupt-Routine in einer Schleife zu Schritt S3 zurück, um die Operationen von Schritten S3 und S4 zu wiederholen.
  • In Schritt S5 wird ermittelt, welcher der Triggerfaktoren aufgetreten ist, und in den folgenden Schritten werden verschiedene Operationen abhängig von dem identifizierten Triggerfaktor ausgeführt. Gemäß der Ausführungsform sind die zu identifizierenden vorgegebenen Triggerfaktoren die folgenden:
  • (1) Ausgabe eines MIDI-Ereignisses von der Sequenzer-Software oder dergleichen;
  • (2) Beendigung einer Wiedergabe (i. e., Ausgabe zu dem D/A-Wandler) von Wellenformabtastdaten für einen Block;
  • (3) eine Anforderung, die über eine Bedienfeldeingabe, Befehlseingabe oder dergleichen durchgeführt wird; und
  • (4) eine Anforderung zur Beendigung, die über eine Beendigungsbefehlseingabe oder dergleichen durchgeführt wird.
  • Wie nachfolgend beschrieben wird, wird die Ausgabe eines MIDI-Ereignisses von der Sequenzer-Software oder dergleichen des vorherigen Punktes (1) (Triggerfaktor 1) als ein Software-Unterbrechungssignal informiert, und die Beendigung einer Wiedergabe (i. e., Ausgabe zu dem D/A-Wandler) von Wellenformabtastdaten für einen Block bei Punkt (2) (Triggerfaktor 2) wird als ein Hardware-Unterbrechungssignal von der Ton-Eingabe/Ausgabe-Schaltung 11 oder DMAC 10 informiert. Die Anforderungen bei Punkten (3) und (4) (Triggerfaktoren 3 und 4), die durch einen Anwender über die Tastatur 6, Bedienfeld oder Fensterbild der Anzeige 7 eingegeben werden, werden dem Service durch ein Programm in dem Windows-System-Service- Element 25 unterzogen. Operationen, die dem Triggerfaktor 1 und Triggerfaktor 2 entsprechen, werden mit Priorität vor denen, die dem Triggerfaktor 3 und Triggerfaktor 4 entsprechen, ausgeführt.
  • Wenn eine Ausgabe eines MIDI-Ereignisses von der Sequenzer-Software oder dergleichen (Triggerfaktor 1) stattgefunden hat, wie es in Schritt S5 ermittelt wurde, wird eine MIDI-Verarbeitung (MIDI-Interpreter-Bearbeitung) in Schritt S10 als ein Treiber für virtuelle Geräte ausgeführt. Bei dieser MIDI-Bearbeitung werden ein Ton-EIN, Ton-AUS, Programmänderung, Steueränderung, System-Eklusiv oder eine andere Operation im Ansprechen auf die MIDI-Ereignis-Ausgabe von einem Tonerzeugungsprogramm, wie beispielsweise der Sequenzer- oder Spiel-Software, ausgeführt.
  • Wenn das erzeugte MIDI-Ereignis ein Ton-EIN-Ereignis ist, wird eine Erzeugung eines neuen Tons einem von Tonkanälen der Wellenformbildungsbearbeitung, die als ein Tongenerator operieren, zugewiesen und Tonsteuerdaten und Ton-EIN-Daten, die bei den zugewiesenen Tonerzeugungskanälen zu verwenden sind, werden vorbereitet. Das heißt, dass eine Tonnummer NN und Geschwindigkeitsdaten VEL des ausgegebenen MIDI-Ereignisses empfangen werden und die Tonnummer NN einem der Tonerzeugungskanäle (CH) zugewiesen wird und Tonerzeugungsdaten, die durch Bearbeiten von Klangfarbendaten, die dem MIDI-Kanal entsprechen, der das Ton-EIN- Ereignis empfangen hat, in Entsprechung zu Werten der Tonnummer NN und Geschwindigkeitsdaten VEL erhalten werden, werden in ein Kanalregister für die zugewiesenen Tonerzeugungskanäle gesetzt.
  • Wenn das erzeugte MIDI-Ereignis ein Ton-AUS-Ereignis ist, wird einer der Tonerzeugungskanäle identifiziert, der eine Tonnummer NN des Ton-AUS-Ereignisses zum Erklingen bringt, und ein Ton-EIN-Kennzeichen für den identifizierten Kanal wird zurückgestellt.
  • Nach Beendigung der MIDI-Bearbeitung von Schritt S10 schreitet die Haupt-Routine zu Schritt S11 fort, in welchem eine sichtbare Mitteilung auf dem Anzeigeschirm 7 gemacht wird, dass das MIDI-Ereignis empfangen wurde. Dann kehrt die Haupt- Routine in einer Schleife zu Schritt S3 zurück, um auf ein nächstes Auftreten irgendeines der Triggerfaktoren zu warten.
  • Wenn der in Schritt S5 identifizierte Triggerfaktor die Beendigung einer Wiedergabe von Wellenformabtastdaten für einen Block ist (Triggerfaktor 2), wird die Wellenformbildungsverarbeitung bei Schritt S20 als ein Treiber für virtuelle Geräte ausgeführt, wie bei der MIDI-Verarbeitung. Die Wellenformbildungsverarbeitung ist ausgelegt, die Funktion eines Hardware-Tongenerators zu simulieren und Tonwellenformabtastdaten zusammen oder zusammengefaßt für eine einzige Blockperiode auf der Grundlage einer durch die MIDI-Verarbeitung erzeugten Tonsteuerinformation arithmetisch zu bilden. Die so gebildeten Tonwellenformabtastdaten werden temporär in einem Ausgabepuffer gespeichert.
  • Beim Starten der Wellenformbildungsbearbeitung von Schritt S20 werden verschiedene Vorbereitungen durchgeführt, erste Wellenformabtastdaten für einen der Tonerzeugungskanäle (CH), dem eine erste Stelle in der Berechnungsreihenfolge gegeben ist, arithmetisch zu bilden. Solche Vorbereitungen (i. e., Berechnungsvorbereitungen) schließen Operationen ein, um verschiedene Daten einer letzten Ausleseadresse, Hüllkurvenwellenform (nachfolgend durch "EG" abgekürzt), Zustand (Zustand von Einschwing, Freigabe oder dergleichen) der EG, Wert eines Niederfrequenz-Oszillators (nachfolgend durch "LFO" abgekürzt)-Signals und dergleichen vorzubereiten, so dass diese Daten betriebsbereit zur Verwendung bei der Tonwellenformabtastdaten-Berechnung geliefert werden können, ebenso wie Operationen, die verschiedene Daten in ein internes Register der CPU 1 laden. Dann wird eine Wellenformberechnung für den LFO, eine Filter-Hüllkurvenwellenform (nachfolgend durch "FEG" abgekürzt) und eine Lautstärkehüllkurvenwellenform (nachfolgend durch "AEG" abgekürzt) durchgeführt, um so Abtastdaten der LFO- Wellenform, FEG-Wellenform und AEG-Wellenform zu bilden, die für arithmetische Operationen für eine einzige Blockperiode erforderlich sind. Die LFO-Wellenform wird einer "F"-Nummer, FEG-Wellenform und AEG-Wellenform hinzugefügt, um so die jeweiligen Daten zu modulieren.
  • Danach wird die F-Nummer dem letzten Adressenwert wiederholt hinzugefügt, um so eine Leseadresse jeder Wellenformabtastdaten in der einzigen Blockperiode zu erzeugen. Wellenformabtastdaten werden aus Wellenformspeicherstellen des Klangfarbendaten-Speicherbereichs auf der Grundlage der ganzzahligen Teile der erzeugten Leseadressen ausgelesen und es wird eine Interpolation zwischen den ausgelesenen Wellenformabtastdaten auf der Grundlage der Bruchteile der erzeugten Leseadressen durchgeführt. Wenn die einzige Blockperiode einer Zeit für 64 Abtastwerte entspricht, dann werden 64 Abtastdaten zusammengefaßt in jeder Einheitszeit bearbeitet. Bei der Bearbeitung für eine Vielzahl von Abtastdaten, die einer einzigen Blockperiode entsprechen, werden die Abtastdaten, die auf der Grundlage der Leseadressen ausgelesen werden, und die nachfolgende Interpolation als eine 1-Einheitoperation ausgeführt und diese Einheitsoperation wird wiederholt automatisch durchgeführt, so dass die Leseadressen in das CPU-Register nur einmal eingelesen werden müssen, was die Bearbeitungsgeschwindigkeit signifikant ansteigen läßt.
  • Ein Klangfarbenfilterprozeß wird dann ausgeführt, um eine Klangfarbensteuerung der interpolierten Abtastdaten für die einzige Blockperiode auf der Grundlage der FEG- Wellenformen zu bewirken und außerdem wird eine Amplitudensteuerprozeß an den gefilterten Abtastdaten auf der Grundlage der AEG und Lautstärkedaten durchgeführt. Danach wird ein akkumulativer Schreibprozeß durchgeführt, bei dem diese amplitudengesteuerten Tonwellenformabtastdaten für die Blockperiode zu den Werten addiert werden, die bereits an jeweiligen Abtaststellen (i. e., akkumulierte Werte der entsprechenden Abtastdaten von einem oder mehreren anderen Tonerzeugungskanälen) in dem Ausgabepuffer gespeichert sind. Bei dieser Ausführungsform werden der Amplitudensteuerprozeß und der akkumulative Schreibprozeß in Folge ausgeführt, so dass die Anzahl der Zeitpunkte, mit der die Abtastdaten in das CPU-Register notwendigerweise zu speichern sind, wesentlich reduziert wird und die Bearbeitungsgeschwindigkeit ebenfalls signifikant gesteigert wird.
  • Die vorher erwähnte Bearbeitung wird dann von der Berechnungsvorbereitung bis zu dem akkumulativen Schreibprozeß sequentiell für die anderen Tonerzeugungskanäle, denen zweite und nachfolgende Stellen in der Berechnungsreihenfolge zugeteilt sind, durchgeführt.
  • Wenn die Tonwellenformbildungsbearbeitung fertiggestellt ist, hat der Ausgabepuffer dort Werte von Tonwellenformabtastdaten gespeichert, die in all den zugewiesenen Kanälen für eine Blockperiode gebildet werden (z. B., 64 Abtastdaten).
  • Wenn der im Schritt S5 identifizierte Triggerfaktor die Anforderung über eine Bedienfeldeingabe, Befehlseingabe oder dergleichen (Triggerfaktor 3) ist, geht die Hauptroutine zu "Sonstige Bearbeitung" von Schritt S30, in welchem verschiedene Operationen in Abhängigkeit von der Anforderung ausgeführt werden. Im Ansprechen auf eine durch den Anwender oder eine Bedienperson durchgeführte Anforderung über das Bedienfeld oder Befehlseingabe werden zum Beispiel verschiedene Operationen ausgeführt, um eine bestimmte Anzahl der Tonerzeugungskanäle, eine Abtastfrequenz und eine Kapazität des Ausgabepuffers, die in dem Software-Tongenerator zu verwenden ist, (diese Kapazität entspricht einer Blockperiode) einzustellen. Diese Einstellungen und eine sonstige Information werden visuell auf dem Anzeigeschirm in Schritt S31 gekennzeichnet und dann kehrt die Haupt-Routine in einer Schleife zu Schritt S3 zurück.
  • Wenn der in Schritt S5 identifizierte Triggerfaktor die Anforderung zur Beendigung ist, die über eine Beendigungsbefehlseingabe oder dergleichen (Triggerfaktor 4) durchgeführt wurde, geht die Haupt-Routine zu Schritt S40, um die Bearbeitung zu beenden, löscht dann die visuell angezeigte Information über den Software-Tongenerator in Schritt S41 und kehrt in einer Schleife zu Schritt S3 zurück.
  • Fig. 4 ist eine graphische Darstellung, die einen Fluß verschiedener Signaldaten darstellt, wenn der vorher erwähnte Software-Tongenerator verwendet wird, um Töne zu erzeugen. Hierbei wird vorausgesetzt, dass die Tonerzeugungs-Software die Sequenzer-Software 23 aus Fig. 2 ist und ein Echtzeit-Spiel unter Verwendung der Sequenzer-Software ausgeführt wird. Die Sequenzer-Software 23 ist ausgelegt, um eine Spielinformation von der Tastatur 6 oder MIDI-Schnittstelle 5 zu empfangen und gibt entsprechende MIDI-Ereignisdaten im Ansprechen auf die empfangene Spielinformation aus.
  • Die Sequenzer-Software 23 sendet zuerst MIDI-Ereignisdaten, die einem zu erzeugenden Ton entsprechen, an einen MIDI-Treiber in der Treiber-Software- Gruppe 26. Dies geschieht durch Aufrufen einer Tongenerator-API (Application Programming Interface = Anwendungsprogrammier-Schnittstelle) der fraglichen visuellen Maschine und Erzeugen eines Software-Unterbrechungssignals. Der MIDI- Treiber überträgt die MIDI-Mitteilung an den Treiber für virtuelle Geräte mittels der Tongenerator-API, so dass die MIDI-Bearbeitungs-Routine (Schritt S10), die als der Treiber für virtuelle Geräte geladen wird, aktiviert wird, um Tonsteuerdaten zu erzeugen, die der MIDI-Mitteilung entsprechen, und die erzeugten Daten in das Tongenerator-Register für den fraglichen Tonerzeugungskanal einzustellen. Wenn ein Hardware-Unterbrechungsignal von der CODEC 11 nach Fertigstellung einer Tonwiedergabe für einen Block erzeugt wird, wird die Wellenformbildungs-Routine (Schritt S20) aktiviert, um Wellenformabtastdaten für einen Block arithmetisch zu bilden, wie bereits bemerkt, und die so gebildeten Tonwellenformabtastdaten werden in den Ausgabepuffer gespeichert. Die so in dem Ausgabepuffer gespeicherten Wellenformabtastdaten für einen Block werden dann einem DMA-Puffer übertragen. Unter Steuerung des DMAC 10 werden die Wellenformabtastdaten aus dem DMA-Puffer ausgelesen, ein Abtastwert pro Abtastzyklus, und dem D/A-Wandler zugeführt. Von dem D/A-Wandler ausgegebene analoge Signale werden mittels des Tonsystems 14 hörbar wiedergegeben.
  • Die folgenden Absätze beschreiben ein Beispiel, bei dem die Spiel-Software 31 in MS- DOS VM 30 ein Programm mit einer Funktion ist, Töne zu erzeugen unter Verwendung eines MIDI- fähigen Tongenerators. Die Spiel-Software 31 sendet zunächst MIDI- Ereignisdaten, die einem zu erzeugenden Ton entsprechen, zu dem MIDI-Treiber 32 in dem MS-DOS VM 30, und der MIDI-Treiber 32 schreibt die MIDI-Ereignisdaten in das Hardware-Register 33. Da eine Programmunterbrechung für einen direkten Zugriff von irgendeinem der Programme in Ring 3 auf das Hardware-Register 33 eingestellt ist, wird ein Unterbrechungssignal nach Feststellen des Schreibzugriffs auf das Hardware-Register 33 erzeugt, so dass eine Steuerung zu Ring 0 verschiebt, um einen der Treiber für virtuelle Geräte zu aktivieren, der der Ursache der Programmunterbrechung entspricht.
  • In einem Fall, in dem der Personal-Computer ausgerüstet mit einem normalen Hardware-Tongenerator verwendet wird, wird ein dem Hardware-Tongenerator entsprechender Treiber für virtuelle Geräte installiert und dieser Treiber für virtuelle Geräte für den Hardware-Tongenerator wird aktiviert. Da der Harware- Tongenerator über den Treiber für virtuelle Geräte aktiviert wird, kann er mit einer Vielzahl von virtuellen Maschinen gemeinsam genutzt werden.
  • In einem Fall, in dem der Personal-Computer nicht ausgerüstet mit einem normalen Hardware-Tongenerator verwendet wird, wird andererseits die Software- Tongenerator-Unterstützungs-Routine 46, einer der Treiber für virtuelle Geräte, aktiviert, um MIDI-Ereignisdaten zu der MIDI-Bearbeitungs-Routine (Schritt S10) zu senden. Danach wird die Tonerzeugungs-Bearbeitung in der vorher erwähnten Weise ausgeführt. Vom Anwendungprogramm aus betrachtet, wird die Tongenerator- Bearbeitung somit durch den Software-Tongenerator in genau der gleichen Weise ausgeführt, als wenn der verwendete Personal-Computer mit dem Hardware- Tongenerator ausgerüstet wäre, ohne irgendwelche Änderungen an dem Programm und dergleichen zu erfordern.
  • In Fig. 5 und 6 wird beispielhaft beschrieben, auf welche Weise die durch den Wellenformbildungsabschnitt aus Schritt S20 arithmetisch gebildeten Tonwellenformabtastdaten von dem D/A-Wandler zur hörbaren Wiedergabe ausgegeben werden. Wie in Fig. 5 gezeigt, ist bei der vorher erwähnten Direktspeicherzugriff-Steuereinheit (DMAC) 10 ein Zeiger-Register 101 vorgesehen, das eine Datenleseadresse p in dem DMA-Puffer 60 bezeichnet. In der Ton-Eingabe/Ausgabe-Schaltung (CODEC) 11 sind ein Ausgabe-FIFO-Puffer 111 zum Speichern der aus dem DMA-Puffer 60 ausgelesenen Tonwellenformabtastdaten, ein D/A-Wandler 112, ein Leerstellen- Nachweisabschnitt 113 zum Feststellen, ob es irgendeine Leerstelle in dem Ausgabe- FIFO-Puffer 111 gibt, und ein Nachweisabschnitt einer Anzahl von übertragenen Daten 114 zum Feststellen, wann die Anzahl der Wellenformabtastdaten, die von dem FIFO-Puffer 111 zu dem D/A-Wandler 112 übertragen werden, einen vorgegeben Wert erreicht hat, und zum Ausgeben eines Hardware-Unterbrechungssignals an die CPU 1, vorgesehen. Obgleich nicht besonders gezeigt, enthält die DMAC 10 außerdem einen Eingabe-FIFO, dem Audiosignale von der externen Audio-Eingabeschaltung 13 geliefert werden, und einen A/D-Wandler zur Konvertierung von Ausgabesignalen des Eingabe-FI FO.
  • Der Abtasttaktgenerator 12 erzeugt Abtasttaktimpulse einer Frequenz Fs, die dem FIFO-Puffer 111 und dem Nachweisabschnitt einer Anzahl von übertragenen Daten 114 zugeführt werden. Der DMA-Puffer (DMAB) 60, der zum Speichern der Tonwellenabtastdaten vorgesehen ist, die durch die Wellenformbildungsbearbeitung des Schritts S20 arithmetisch gebildet werden, weist erste und zweite Pufferbereiche DMAB1 und DMAB2 auf. Jeder der Pufferbereiche DMAB1 und DMAB2 hat eine Kapazität zum Speichern einer bestimmten Anzahl der Tonwellenformabtastdaten, die einer Blockperiode entsprechen, so dass, wenn die Tonwellenformabtastdaten aus einem der Pufferbereiche (z. B., DMAB1) ausgelesen werden, die in Schritt S20 arithmetisch gebildeten Tonwellenformabtastdaten in dem anderen Pufferbereich (z. B., DMAB2) gespeichert werden. Es ist anzumerken, dass die Anzahl der DMA- Pufferbereiche eher drei oder mehr als nur zwei sein kann.
  • Die Software-Tongenerator-Unterstützungs-Routine 46, die als ein Treiber für virtuelle Geräte vorgesehen ist, enthält den MIDI-Bearbeitungsabschnitt (Schritt S10) und Wellenformbildungsabschnitt (Schritt S20), wie bereits beschrieben, und die Wellenformbildungsberechnung wird durch den Wellenformbildungsabschnitt unter Verwendung von Wellenformdaten, die in einem Wellenformdatenspeicher (Wellenformspeicher) 70 gespeichert sind, ausgeführt.
  • Wie bereits erwähnt, wird, wenn ein MIDI-Ereignis durch das Anwendungsprogramm erzeugt wird, das eine Spielbearbeitung ausführt, ein Software-Unterbrechungssignal erzeugt, worauf der MIDI-Bearbeitungsabschnitt (Schritt S10) in der Software- Tongenerator-Unterstützungs-Routine 46 aktiviert wird und dem MIDI-Ereignis entsprechende Tonsteuerparameter in das Tongeneratorregister gespeichert werden. Durch das Aktivierten anderseits durch ein Hardware-Unterbrechungssignal der CODEC 11, bildet der Wellenformbildungsabschnitt (Schritt S20) arithmetisch eine vorgegebene Anzahl von (z. B., 64) Wellenformabtastdaten für eine Blockperiode in einer Vielzahl von Tonerzeugungskanälen (das Maximum sind 32 Kanäle) und akkumuliert diese Daten, um Wellenformabtastdaten für eine Blockperiode in dem Ausgabepuffer zu erzeugen. Nach Beendigung der Wellenformbildungsberechnung werden die in dem Ausgabepuffer erzeugten Wellenformabtastdaten zu einem der DMA- Pufferbereiche (DMAB2 in dem Beispiel aus Fig. 5) übertragen.
  • Die Tonwellenformdaten werden von dem DMAB 60 zu dem FIFO-Puffer 111 der Ton- Eingabe/Ausgabeschaltung (CODEC) 11 zur dortigen temporären Speicherung übertragen. Im Ansprechen auf jeden der Abtasttaktimpulse, die bei einer Frequenz von 48 kHz erzeugt werden, wird einer der Tonwellenformabtastdaten aus dem FIFO-Puffer 111 ausgelesen und zu dem D/A-Wandler 112 übertragen. Der D/A-Wandler 112 konvertiert die ausgegebenen Tonwellenformdaten in ein analoges Spannungssignal. Das analoge Spannungssignal wird zu dem Tonsystem 14 gesendet, in welchem es durch ein Tiepaßfilter geführt wird, durch einen Verstärker verstärkt und hörbar wiedergegeben oder durch einen Lautsprechen zum Erklingen gebracht wird.
  • Die durch den Abtasttaktgenerator 12 erzeugten Abtasttaktimpulse werden auch in den Nachweisabschnitt der Anzahl von übertragenen Daten 114 eingespeist, wobei der Nachweisabschnitt 114 die Anzahl der Wellenformabtastdaten zählt, die von dem FIFO-Puffer 111 zu dem D/A-Wandler 112 übertragen werden. Wenn festgestellt wird, dass die Anzahl der Wellenformabtastdaten, die von dem FIFO-Puffer 111 zu dem D/A-Wandler 112 übertragen werden, einen der einen Blockperiode entsprechenden Wert erreicht hat, gibt der Nachweisabschnitt der Anzahl von übertragenen Daten 114 ein Hardware-Unterbrechungssignal an die CPU 1 aus. Wie früher erwähnt, wird dieses Hardware-Unterbrechungssignal von dem Kernabschnitt 41 von RING 0 empfangen und daher wird der Wellenformbildungsabschnitt (Schritt S20) in der Software-Tongenerator-Unterstützungs-Routine 46 aktiviert.
  • Wenn der mit dem FIFO-Puffer 111 verbundene Leerstellen-Nachweisabschnitt 113 feststellt, dass eine für eine Datenspeicherung verfügbare Leerstelle in dem FIFO- Puffer erzeugt worden ist, gibt der Abschnitt 113 ein DMA-Anforderungssignal DMAreq an die DMAC 10 aus.
  • Fig. 6A ist ein Flußdiagramm, das eine Operation der DMAC 10 zeigt. Wenn der Leerstellen-Nachweisabschnitt 113 in der CODEC 11 ein DMA-Anforderungsignal DMAreq ausgibt, geht die DMAC 10 zu Schritt S100, wo sie die Tonwellenformabtastdaten ausliest, die in dem DMA 60 bei einer Adresse gespeichert sind, auf die ein aktueller Wert p des Zeigerregisters 101 weist, und überträgt die ausgelesenen Abtastdaten zu dem FIFO-Pulfer 111. Im nächsten Schritt S110 erhöht die DMAC 10 den Wert p des Zeigerregisters 101 und beendet dann den dem DMA- Anforderungssignal DMAreq entsprechenden Prozeß.
  • Auf diese Weise werden die Tonwellenformdaten von dem DMAB 60 zu dem FIFO- Puffer 111 jedesmal übertragen, wenn irgendeine Leerstelle in dem Puffer 111 festgestellt wird.
  • Fig. 6B ist eine graphische Abbildung, die ein Beispiel einer Struktur des DMAB 60 veranschaulicht, in welcher ein n-Wort-Block, der von einer Startadresse "b" bis zu einer Endadresse "b+n-1" reicht, in dem RAM 3 als der DMAB 60 verwendet wird. Der n-Wort-Block ist in zwei Bereiche unterteilt, die als die ersten und zweiten DMA-Pufferbereiche DMA1 und DMA2 verwendet werden. In dem dargestellten Beispiel ist der n-Wort-Block in die schraffierten und nichtschraffierten Bereiche unterteilt, so dass, wenn die DMAC 10 die Tonwellenformdaten aus dem schraffierten Bereich (DMA1) ausliest, die arithmetisch gebildeten Tonwellenformen in den restlichen n/2-Wort-Bereich (DMA2) beginnend mit der Adresse "a" geschreiben werden können. Wenn die Schreibadresse "a" oder die Leseadress "p" die Endadresse b+n-1 des DMAB 60 erreicht, kehrt sie zu der Startadresse "b" zurück.
  • Fig. 7A ist eine graphische Darstellung, die beispielhaft eine Arbeitstaktsteuerung der vorher erwähnten MIDI-Bearbeitung (Schritt S10) und Wellenformbildungsbearbeitung (Schritt 20) zeigt, wobei die horizontale Achse (Abszisse) eine Zeitachse ist. Nach der vorliegenden Erfindung wird eine Wellenformbildungsberechnung Block um Block ausgeführt, wie bereits erwähnt. In Fig. 7A sind eine Periode Ta vom Zeitpunkt "ta" bis "tb", eine Periode Tb vom Zeitpunkt "tb" bis "tc"und eine Periode Tc vom Zeitpunkt "tc" bis "td" alles Blöcke. Jeder nach unten gerichtete Pfeil in der obersten Reihe der Figur kennzeichnet einen Zeitpunkt, bei dem ein Software- Unterbrechungssignal auf der Grundlage eines MIDI-Ereignisses erzeugt wird, das von einem Anwendungsprogramm, wie beispielsweise der Sequenzer-Software, erzeugt wird. In dem gezeigten Beispiel wird das Software-Unterbrechungssignal zu Zeitpunkten t1 und t2 in der Periode Ta und zu Zeitpunkt t3 in der Periode Tb erzeugt.
  • In einer nächsten Reihe von Fig. 7A ist eine Zeitsteuerung gezeigt, bei der die MIDI- Bearbeitung (Schritt S10) ausgeführt wird. Wie gezeigt ist, wird die MIDI- Bearbeitung zu jedem Zeitpunkt des dem MIDI-Ereignis zugrunde liegenden Software- Unterbrechungssignals ausgeführt. Jeder nach unten gerichtete Pfeil in der dazwischenliegenden Reihe der Figur kennzeichnet einen Zeitpunkt, bei dem ein Hardware-Unterbrechungssignal durch die vorher erwähnte CODEC 11 erzeugt wird. Die Hardware-Unterbrechungssignale werden zu Zeitpunkten ta, tb, tc und td synchron mit dem Zyklus erzeugt, mit welchem die Wellenformabtastdaten aus dem DMAB 60 durch die DMAC 10 wiedergebend ausgelesen werden (i. e., synchron mit dem Blockzyklus), wie in der untersten Reihe gekennzeichnet ist. Eine Ausführung der Wellenformbildungsbearbeitung (Schritt S20) wird im Ansprechen auf jedes Hardware-Unterbrechungssignal initiiert. Bei dieser Wellenformbildungsbearbeitung werden arithmetisch gebildete Tonwellenformabtastdaten dem vorher erwähnten DMA-Puffer (DMAB) nach Beendigung der Wellenformbildungsberechnung übertragen. Der Anfangsteil, der in Fig. 7A schwarz angemalt ist, jeder Wellenformbildungsberechnung repräsentiert eine Unterbrechungs-Unterdrückungsperiode unmittelbar nach einer Erzeugung des Hardware-Unterbrechungssignals.
  • Der Software-Unterbrechung auf der Grundlage eines Auftretens eines MIDI- Ereignisses und der Hardware-Unterbrechung von der CODEC 11 werden die gleiche Priorität gegeben. Wenn daher ein Software-Unterbrechungssignal während einer Ausführung der MIDI-Bearbeitung oder Wellenformbildungsbearbeitung, die einem Hardware-Unterbrechungssignal entspricht, erzeugt wird, wird die Ausführung der Bearbeitung unterbrochen, so dass die Wellenformbildungsbearbeitung oder MIDI- Bearbeitung, die dem Software-Unterbrechungssignal entspricht, ausgeführt wird. Bei dem dargestellten Beispiel wird ein Software-Unterbrechungssignal zu einem Zeitpunkt t1 währen einer Ausführung der Wellenformbildungsbearbeitung erzeugt, die einem zu einem Zeitpunkt ta erzeugten Hardware-Unterbrechungssignal entspricht, worauf die Wellenformbildungsbearbeitung unterbrochen wird, um die dem MIDI-Ereignis entsprechende MIDI-Bearbeitung auszuführen. Nach Beendigung der MIDI-Bearbeitung wird dann der restliche Teil der unterbrochenen Wellenformbildungsbearbeitung ausgeführt. Weiter wird ein Hardware-Unterbrechungssignal zu einem Zeitpunkt tc während einer Ausführung der MIDI-Bearbeitung erzeugt, die einem zu einem Zeitpunkt t3 erzeugten Software-Unterbrechungssignal entspricht, worauf die MIDI-Bearbeitung unterbrochen wird, um die Wellenformbildungsbearbeitung auszuführen. Nach Beendigung der Wellenformbildungsbearbeitung wird dann die unterbrochene MIDI-Bearbeitung fortgesetzt.
  • Eine Wellenformbildungsberechnung, die dem in Periode Ta empfangenen MIDI- Ereignis entspricht, wird in Periode Tb ausgeführt und dann werden die durch die Berechnung gebildeten Tonwellenformen ausgelesen und in Periode Tc hörbar wiedergegeben. Das bedeutet, dass jedes MIDI-Ereignis zwei Blöcke nach Empfang des MIDI-Ereignisses hörbar wiedergegeben wird. Wenn daher ein Echtzeit-Spiel auszuführen ist, ist es wünschenswert, die Länge jeder Blockperiode durch Reduzieren der Größe des DMA-Puffers zu kürzen. Gemäß der Ausführungsform wird die Länge jeder Blockperiode so gewählt, dass sie 64 Abtastdaten entspricht. Wenn dagegen ein automatisches Spiel auszuführen ist, ist es wünschenswert, die Länge jeder Blockperiode zu vergrößern durch Erhöhen der Größe des DMA-Puffers, um einen unerwünschten Bruch von fließend erzeugten Töne zu verhindern.
  • Die Ausführungsform der vorliegenden Erfindung ist ausgelegt, um die Wellenformbildungsberechnungen auf der Block um Block-Grundlage, wie früher erwähnt, auszuführen, die Wellenformbildungsberechnung kann manchmal in dem vorgegebenen Block nicht fertiggestellt werden. Zum Beispiel, wenn die Wellenformbildungsberechnung parallel zu anderen Bearbeitungen ausgeführt wird, beispielsweise an Multimedien-Software, die Echtzeit-Rechenkapazität erfordert, kann manchmal nicht genug Zeit der Software-Tongeneratorbearbeitung zugewiesen werden auf Grund der Tatsache, dass zu viel von der Rechenkapazität der CPU für andere Bearbeitungen verbraucht wird. Nach der Ausführungsform wird die Wellenformbildung für einen solchen Block, bei dem die Berechnung nicht rechtzeitig fertiggestellt werden kann, abgebrochen. Dies ermöglicht die einem nächsten Block entsprechende Wellenformberechnung in stabiler Weise, obgleich ein temporärer Bruch bei erzeugten Tönen vorkommen könnte. Dieser temporäre Bruch ist sehr kurz (wenn die Abtastfrequenz 48 kHz ist und 64 Abtastdaten in jedem Block gebildet werden, ist die Blockperiode nur 1,3 msec) und seine Beeinträchtigung wäre unwesentlich.
  • Fig. 7B stellt beispielhaft dar, wie die Wellenformbildung abgebrochen wird, für einen Fall, in welchem die Wellenformbildungsberechnung, die einer in der Periode T4 empfangenen MIDI-Spieleingabe entspricht, von dem Beginn von Periode T5 bis zu der Mitte von Periode T7 ausgeführt wurde (obgleich in der Figur eine kontinuierliche Ausführung gezeigt ist, erfolgt die Wellenformbildungsberechnung in der Praxis intermittierend, da die Steuerung der CPU auch auf andere Bearbeitungen gerichtet ist). In dem Beispiel von Fig. 7B werden daher Tonwellenformabtastdaten gelöscht, die von Periode T5 bis Periode T7 in Entsprechung zu dem in Periode T4 empfangenen MIDI-Ereignis arithmetisch gebildet wurden, so dass es keine Ausgabe von dem DMA für entsprechende Perioden T6, T7 und T8 gibt. Somit wird keine Wellenformbildungsberechnung, die dem in Periode T5 und T6 empfangenen MIDI- Ereignis entspricht, durchgeführt und erst in der Wellenformbildungsberechnung, die dem in der nächsten Periode T7 empfangenen MIDI-Ereignis entspricht, wird eine normale, stabile Wellenformbildung fortgesetzt.
  • Fig. 8A zeigt eine Modifikation der vorliegenden Erfindung. Diese Modifikation ist derart gestaltet, dass jedes Hardware-Unterbrechungssignal von der CODEC 11 vor dem Wiedergabe-Endpunkt für einen Block in einer Zeit Ti erzeugt wird und wenn der Zeitpunkt, die aktuelle Wellenformbildungsberechnung zu initiieren, herankommt, Wellenformabtastdaten, die bereits durch frühere Wellenformbildungsberechnungen gebildet wurden, zuerst zu dem DMA-Puffer übertragen werden und dann Wellenformdaten, die bei der nächsten Wellenformbildungsberechnung zu übertragen sind, durch die aktuelle Weltenformbildungsberechnung gebildet werden. Dies ist so, da eine für die Wellenformbildungsberechnung erforderliche Zeit in Abhängigkeit von der Anzahl der MIDI-Ereignisse variiert; das heißt, durch Erzeugen jedes Hardware- Unterbrechungssignals zu einem früheren Zeitpunkt und Übertragen von Wellenformdaten, die durch eine vorhergehenden Wellenformbildungsberechnung gebildet wurden, beim Start der aktuellen Berechnung zu dem DMA-Puffer, ermöglicht die Modifikation eine stabilen Datenübertragung zu dem DMA-Puffer. Ein Vorschub einer Erzeugung des Hardware-Unterbrechungssignals um eine Zeit Ti kann durch den Nachweisabschnitt der Anzahl von übertragenen Daten 114 durchgeführt werden, wobei ein Unterbrechungssignal erzeugt wird, wenn die gezählte Anzahl von übertragenen Wellenformabtastdaten um einen der Zeit Ti entsprechenden Wert kleiner als die aus Fig. 7A ist.
  • Fig. 8B zeigt eine weitere Modifikation der vorliegenden Erfindung, bei der die Software-Unterbrechungssignale Priorität vor den Hardware-Unterbrechungssignalen haben. Wie gezeigt ist, wird, wenn ein Hardware-Unterbrechungssignal durch die CODEC 11 zu einem Zeitpunkt tc während der MIDI-Bearbeitung erzeugt wird, die einem zum Zeitpunkt t3 erzeugten Software-Unterbrechungssignal entspricht, die entsprechende Wellenformbildungsberechnung nach der MIDI- Bearbeitung ausgeführt.
  • Während im vorherhergehenden beschrieben wurde, dass der Nachweisabschnitt der Anzahl von übertragenen Daten 114 in der CODEC 11 die Anzahl von übertragenen Daten festgestellt, um ein Hardware-Unterbrechungssignal zu erzeugen, kann die CPU 1 oder die DMAC 10 die Anzahl von übertragenen Daten zu dem D/A-Wandler feststellen.
  • Während die beschriebenen Ausführungsformen Wellenformabtastdaten zu dem FIFO- Puffer 111 und D/A-Wandler 112 mittels der DMAC 10 in der Ton- Eingabe/Ausgabe-Schaltung (CODEC) 11 übertragen, können außerdem die Wellenformabtastdaten mittels der CPU 1 in einem Fall übertragen werden, in welchem ein Hochgeschwindigkeits-Bus mit einer Platine mit der darauf angebrachten CODEC 11 verbunden ist, so dass die Daten zu der CODEC mit hoher Geschwindigkeit übertragen werden können. In einem solchen Fall überträgt die CPU 1 Wellenformabtastdaten von dem FIFO-Puffer 111 zu dem D/A-Wandler, einen Abtastwert pro bei jedem Abtastzyklus erzeugten Hardware-Unterbrechungssignal, und gleichzeitig zählt die CPU 1 die Anzahl der übertragenen Abtastdaten. Jedesmal, wenn die gezählte Anzahl zeigt, dass die Übertragung von Wellenformabtastdaten für einem Block fertiggestellt ist, wird dann ein Software-Unterbrechungssignal erzeugt, um die Wellenformbildungsberechnung zu initiieren.
  • Während die Ausführungsformen unter Verwendung von Windows95 als Betriebssystem beschrieben wurden, kann das Tonerzeugungsverfahren der vorliegenden Erfindung zudem ausgeführt sein, dass es irgendein anderes Betriebssystem, wie beispielsweise WindowsNT, MacOS oder UNIX, verwendet. Die in der vorliegenden Erfindung verwendete CPU muß nicht eine x86 CPU sein, wie beispielsweise ein PowerPC (Warenmarke von IBM Corporation) oder ein anderer RISC-Prozessor.
  • Zudem kann dem Tonerzeugungsverfahren der vorliegenden Erfindung eher das FM-, physikalische Modell oder das ADPCM-Verfahren zugrunde liegen als die vorher erwähnten Wellenformspeicher-Verfahren.
  • Verschiedene Vorteile werden durch die vorliegende Erfindung erreicht, wie folgt:
  • Da die vorliegende Erfindung Tonwellenformabtastdaten zusammengefaßt auf der Block um Block-Basis (für jeden Block) arithmetisch bildet, kann die Recheneffizienz und Qualität von zu erzeugenden Tönen wirkungsvoll verbessert werden und die Anzahl von Tonerzeugungskanälen, die simultan Töne erzeugen können, nimmt ebenfalls zu.
  • Da die Treiber für virtuelle Geräte in einem zu einer Hardware näheren Niveau plaziert sind, werden Zeitverzögerungen beim Erzeugen von Unterbrechungssignalen wesentlich reduziert. Zusätzlich laufen die Treiber für virtuelle Geräte mit 32-Bit- Kodes, die MIDI-Bearbeitung und Wellenformbildungsbearbeitung kann mit Hochgeschwindigkeit ausgeführt werden, Wellenformbildungsberechnungen können in einer stabilen Weise durchgeführt werden. Abgesehen davon kann der Software- Tongenerator der vorliegenden Erfindung von einer Vielzahl von virtuellen Maschinen gemeinsam genutzt werden.
  • Die virtuellen Maschinen können überdies die gleichen Gerätetreiber verwenden, wie sie von einem Hardware-Tongenerator verwendet werden, und es kann ein Software- Tongenerator vorgesehen werden, der mit dem Harware-Tongenerator kompatibel ist.
  • Der DMA-Puffer kann zudem auf irgendeine gewünschte kleine Größe eingestellt werden, so dass Zeitverzögerungen beim Erzeugen von Tönen für ein Echtzeit-Spiel minimiert werden können. Da zudem die vorliegende Erfindung ausgelegt ist, eine Wellenformbildung für jeden Block abzubrechen, in welchem die Wellenformbildungsberechnung nicht rechtzeitig fertiggestellt werden kann, kann eine stabiler Betrieb leicht fortgesetzt werden, sogar wenn die Tonerzeugungsoperation aus irgendeinem Grund gestört ist.

Claims (19)

1. Verfahren zur Tonerzeugung mittels eines arithmetischen Verarbeitungsgerätes (1, 2, 3), das die folgenden Schritte aufweist:
Empfangen einer Befehlsinformation, die eine Tonerzeugung anweist; und Bilden von Wellenformabtastdaten des Tons entsprechend der Befehlsinformation,
dadurch gekennzeichnet, dass der Bildungsschritt die folgenden Schritte aufweist:
gemeinsames Bilden einer Vielzahl von Wellenformabtastdaten des Tons und temporäres Speichern der gebildeten Wellenformabtaatdaten in einem Ausgabepuffer (60, 111) im Ansprechen auf ein Unterbrechungssignal;
sequentielles Auslesen der Wellenformabtastdaten aus dem Ausgabepuffer mit einer vorgegebenen Wiedergabeabtastrate; und
Erzeugen des Unterbrechungssignals, wodurch das Bilden der Vielzahl von Wellenformabtastdaten intermittierend im Amsprechen auf die Erzeugung des jeweiligen Unterbrechungssignals wiederholt wird.
2. Verfahren nach Anspruch 1, bei dem eine Spielinformation durch ein Anwendungsprogramm ausgegeben wird, während das arithmetische Verarbeitungsgerät das Anwendungsprogramm ausführt,
wobei der Empfangsschritt als die Befehlsinformation die Spielinformation empfängt, die von dem Anwendungsprogramm ausgegeben wurde;
wobei der Schritt zum gemeinsamen Bilden folgendes aufweist:
einen ersten Schritt zum Erzeugen einer der Spielinformation entsprechenden Tonsteuerinformation im Ansprechen auf einen Unterbrechungsbefehl, der erzeugt wird, wenn die Spielinformation von dem Anwendungsprogramm ausgegeben wird; und
einen zweiten Schritt zum gemeinsamen Bilden einer Vielzahl von Wellenformabtastdaten und zum Speichern der gebildeten Wellenformabtastdaten in den Ausgabepuffer im Ansprechen auf das Unterbrechungssignal, das durch den Schritt des Erzeugens des Unterbrechungssignals erzeugt wird, und
wobei der Schritt des Erzeugens des Unterbrechungssignals das Unterbrechungssignal erzeugt, wenn eine Abnahme in einer Anzahl von in dem Ausgabepuffer gespeicherten Wellenformabtastdaten festgestellt wird.
3. Verfahren nach Anspruch 2, bei dem das arithmetische Verarbeitungsgerät (1, 2, 3) mit einem vorgegebenen Betriebssystem arbeitet, und bei dem der erste und der zweite Schritt als virtuelle Gerätetreiber des vorgegebenen Betriebssystems ausgeführt werden.
4. Verfahren nach Anspruch 2, bei dem der zweite Unterbrechungsbefehl erzeugt wird, wenn festgestellt wird, dass eine vorgegebene Anzahl von Wellenformabtastdaten von dem Ausgabepuffer ausgegeben wurden.
5. Verfahren nach Anspruch 1, bei dem das arithmetische Verarbeitungsgerät (1, 2, 3) ein vorgegebenes Anwendungsprogramm und eine Tonerzeugungsbearbeitung entsprechend dem Verfahren parallel ausführt, wobei das Anwendungsprogramm einen Prozeß zum Ausgeben einer Tonerzeugungsbefehlsinformation aufweist, wenn ein Ton zu erzeugen ist, wobei der Schritt zum gemeinsamen Bilden folgendes aufweist:
einen ersten Schritt zum Empfangen der Tonerzeugungsbefehlsinformation von dem Anwendungsprogramm zusammen mit einem Unterbrechungsbefehl;
einen zweiten Schritt zum Vorbereiten einer Steuerinformation, die zur Erzeugung eines der Tonerzeugungsbefehlsinformation entsprechenden Tons erforderlich ist, im Ansprechen auf den Unterbrechungsbefehl; und
einen dritten Schritt zum Bilden einer Vielzahl von Wellenformabtastdaten auf der Basis der Steuerinformation mit einer schnelleren Rate als die vorgegebene Wiedergabeabtastrate und temporäres Speichern der gebildeten Wellenformabtastdaten in den Ausgabepuffer, im Ansprechen auf das Unterbrechungssignal, und
wobei der Schritt zum Erzeugen des Unterbrechungssignals das Unterrechungssignal abhängig von dem Fortschreiten des Auslesens der Wellenformabtastdaten aus dem Ausgabepuffer erzeugt.
6. Verfahren nach Anspruch 1, bei dem der Schritt zum Erzeugen des Unterbrechungssignals das Unterrechungssignal abhängig vom Fortschreiten des Auslesens der Wellenformabtastdaten aus dem Ausgabepuffer erzeugt.
7. Verfahren nach Anspruch 1 oder 6, bei dem der Schritt zum gemeinsamen Bilden folgende Schritte aufweist:
Vorbereiten einer Steuerinformation, die zur Erzeugung eines Tons in Entsprechung zu der Befehlsinformation erforderlich ist, im Ansprechen auf den Unterbrechungsbefehl;
gemeinsames Bilden einer Vielzahl von Wellenformabtastdaten des Tons auf der Grundlage der Steuerinformation und temporäres Speichern der gebildeten Wellenformabtastdaten in den Ausgabepuffer im Ansprechen auf das Unterbrechungssignal.
8. Tonerzeugungsvorrichtung, die folgendes aufweist:
ein Speichergerät (2, 3, 8) mit einem dort gespeicherten Tonerzeugungsprogramm; und
ein Verarbeitungsgerät (1), das mit dem Speichergerät verbunden ist und das Tonerzeugungsprogramm in geeigneter Weise ausführt;
dadurch gekennzeichnet, dass die Vorrichtung außerdem folgendes aufweist:
einen Pufferspeicher (60, 111) zum Speichern einer Vielzahl von Wellenformabtastdaten;
ein Ausgabegerät (10, 11, 12) zum sequentiellen Auslesen der Wellenformabtastdaten aus dem Pufferspeicher mit einer vorgegebenen Wiedergabeabtastrate; und
eine Schaltung (114) zum Erzeugen eines Unterbrechungssignals, und dass das Verarbeitungsgerät (1) eine Tonerzeugungsbearbeitung in dem Tonerzeugungsprogramm im Ansprechen auf das Unterbrechungssignal aktiviert, und die Tonerzeugungsbearbeitung gemeinsames Bilden einer Vielzahl von Wellenformabtastdaten eines zu erzeugenden Tons und ein Speichern der Wellenformabtastdaten in einem Pufferspeicher aufweist.
9. Tonerzeugungsvorrichtung nach Anspruch 8, bei der die Schaltung (114) zur Erzeugung eines Unterbrechungssignals das Unterbrechungssignal abhängig vom Fortschreiten des Auslesens der Wellenformabtastdaten aus dem Pufferspeicher erzeugt.
10. Tonerzeugungsvorrichtung nach Anspruch 8, bei der das Speichergerät (2, 3, 8) außerdem ein Anwendungsprogramm speichert und das Verarbeitungsgerät (1) das Anwendungsprogramm auch in geeigneter Weise ausführt, wobei die Spielinformation von einem Anwendungsprogramm ausgegeben wird, während das arithmetische Verarbeitungsgerät das Anwendungsprogramm ausführt,
wobei, wenn die Spielinformation von dem Anwendungsprogramm ausgegeben wird, ein Unterbrechungsbefehl an das Tonerzeugungsprogramm gegeben wird,
wobei das Verarbeitungsgerät (1) auch eine Steuerinformationvorbereitungsbearbeitung in dem Tonerzeugungsprogramm im Ansprechen auf den Unterbrechungsbefehl aktiviert, und die Steuerinformationvorbereitungsbearbeitung eine Erzeugung einer Tonsteuerinformation enthält, die der Spielinformation entspricht, die von Anwendungsprogramm ausgegeben wird,
wobei, wenn das Verarbeitungsgerät (1) die Tonerzeugungsbearbeitung im Ansprechen auf das Unterbrechungssignal ausführt, Wellenformabtastdaten eines zu erzeugenden Tons auf der Grundlage der erzeugten Tonsteuerinformation gebildet werden, und
wobei die Schaltung (114) zum Erzeugen eines Unterbrechungssignals das Unterbrechungssignal erzeugt, wenn eine Abnahme in einer Anzahl von in dem Pufferspeicher gespeicherten Wellenformabtastdaten festgestellt wird.
11. Tonerzeugungsvorrichtung nach Anspruch 10, bei der das Verarbeitungsgerät (1) mit einem vorgegebenen Betriebssystem arbeitet, und bei der die Steuerinformationvorbereitungsbearbeitung und die Tonerzeugungsbearbeitung in einem virtuellen Gerätetreiber des vorgegebenen Betriebssystems enthalten sind.
12. Tonerzeugungsvorrichtung nach Anspruch 8 oder 9, bei der das Speichergerät (2, 3, 8) außerdem ein Anwendungsprogramm speichert, und das Verarbeitungsgerät (1) das Anwendungsprogramm und das Tonerzeugungsprogramm parallel in geeigneter Weise ausführt,
wobei das Verarbeitungsgerät (1) auch eine Vorbereitungsoperation in dem Tonerzeugungsprogramm im Ansprechen auf eine Tonerzeugungsbefehlsinformation ausführt, die auf der Grundlage einer Ausführung des Anwendungsprogramms erzeugt wird, und die Vorbereitungsoperation das Vorbereiten einer Steuerinformation aufweist, die zum Erzeugen eines Tons in Entsprechung zu der Tonerzeugungsbefehlsinformation erforderlich ist, und
wobei, wenn das Verarbeitungsgerät (1) die Tonerzeugungsbearbeitung im Ansprechen auf das Unterbrechungssignal ausführt, Wellenformabtastdaten eines zu erzeugenden Tons auf der Grundlage der Tonsteuerinformation gebildet werden.
13. Maschinenlesbares Speichermedium, das eine Gruppe von Befehlen aufweist, um das Gerät zum Ausführen eines Verfahrens zur Tonerzeugung mittels eines arithmetischen Verarbeitungsgerätes (1, 2, 3) zu veranlassen, wobei das Verfahren die folgenden Schritte aufweist:
Empfangen einer Befehlsinformation, die eine Tonerzeugung anweist; und
Bilden von Wellenformabtastdaten des Tons entsprechend der Befehlsinformation, dadurch gekennzeichnet, dass der Bildungsschritt die folgenden Schritte aufweist:
gemeinsames Bilden einer Vielzahl von Wellenformabtastdaten des Tons und temporäres Speichern der gebildeten Wellenformabtastdaten in einem Ausgabepuffer (60, 111) im Ansprechen auf ein Unterbrechungssignal;
sequentielles Auslesen der Wellenformabtastdaten aus dem Ausgabepuffer mit einer vorgegebenen Wiedergabeabtastrate; und
Erzeugen des Unterbrechungssignals, wodurch das Bilden der Vielzahl von Wellenformabtastdaten intermittierend im Amsprechen auf die Erzeugung des jeweiligen Unterbrechungssignals wiederholt wird.
14. Maschinenlesbares Speichermedium nach Anspruch 13, bei dem eine Spielinformation durch ein Anwendungsprogramm ausgegeben wird, während das arithmetische Verarbeitungsgerät das Anwendungsprogramm ausführt, wobei der Empfangsschritt als die Befehlsinformation die Spielinformation empfängt, die von dem Anwendungsprogramm ausgegeben wurde;
wobei der Schritt zum gemeinsamen Bilden folgendes aufweist:
einen ersten Schritt zum Erzeugen einer der Spielinformation entsprechenden Tonsteuerinformation im Ansprechen auf einen Unterbrechungsbefehl, der erzeugt wird, wenn die Spielinformation von dem Anwendungsprogramm ausgegeben wird; und
einen zweiten Schritt zum gemeinsamen Bilden einer Vielzahl von Wellenformabtastdaten und zum Speichern der gebildeten Wellenformabtastdaten in den Ausgabepuffer im Ansprechen auf das Unterbrechungssignal, das durch den Schritt des Erzeugens des Unterbrechungssignals erzeugt wird, und
wobei der Schritt des Erzeugens des Unterbrechungssignals das Unterbrechungssignal erzeugt, wenn eine Abnahme in einer Anzahl von in dem Ausgabepuffer gespeicherten Wellenformabtastdaten festgestellt wird.
15. Maschinenlesbares Speichermedium nach Anspruch 14, bei dem das arithmetische Verarbeitungsgerät (1, 2, 3) mit einem vorgegebenen Betriebssystem arbeitet, und bei dem der erste und der zweite Schritt als virtuelle Gerätetreiber des vorgegebenen Betriebssystems ausgeführt werden.
16. Maschinenlesbares Speichermedium nach Anspruch 14, bei dem der zweite Unterbrechungsbefehl erzeugt wird, wenn festgestellt wird, dass eine vorgegebene Anzahl von Wellenformabtastdaten von dem Ausgabepuffer ausgegeben wurden.
17. Maschinenlesbares Speichermedium nach Anspruch 13, bei dem das arithmetische Verarbeitungsgerät (1, 2, 3) ein vorgegebenes Anwendungsprogramm und eine Tonerzeugungsbearbeitung entsprechend dem Verfahren parallel ausführt, wobei das Anwendungsprogramm einen Prozeß zum Ausgeben einer Tonerzeugungsbefehlsinformation aufweist, wenn ein Ton zu erzeugen ist,
wobei der Schritt zum gemeinsamen Bilden folgendes aufweist:
einen ersten Schritt zum Empfangen der Tonerzeugungsbefehlsinformation von dem Anwendungsprogramm zusammen mit einem Unterbrechungsbefehl;
einen zweiten Schritt zum Vorbereiten einer Steuerinformation, die zur Erzeugung eines der Tonerzeugungsbefehlsinformation entsprechenden Tons erforderlich ist, im Ansprechen auf den Unterbrechungsbefehl; und
einen dritten Schritt zum Bilden einer Vielzahl von Wellenformabtastdaten auf der Basis der Steuerinformation mit einer schnelleren Rate als die vorgegebene Wiedergabeabtastrate und temporäres Speichern der gebildeten Wellenformabtastdaten in den Ausgabepuffer, im Ansprechen auf das Unterbrechungssignal, und
wobei der Schritt zum Erzeugen des Unterbrechungssignals das Unterrechungssignal abhängig von dem Fortschreiten des Auslesens der Wellenformabtastdaten aus dem Ausgabepuffer erzeugt.
18. Maschinenlesbares Speichermedium nach Anspruch 13, bei dem der Schritt zum Erzeugen des Unterbrechungssignals das Unterrechungssignal abhängig vom Fortschreiten des Auslesens der Wellenformabtastdaten aus dem Ausgabepuffer erzeugt.
19. Maschinenlesbares Speichermedium nach Anspruch 13 oder 18, bei dem der Schritt zum gemeinsamen Bilden folgende Schritte aufweist:
Vorbereiten einer Steuerinformation, die zur Erzeugung eines Tons in Entsprechung zu der Befehlsinformation erforderlich ist, im Ansprechen auf den Unterbrechungsbefehl;
gemeinsames Bilden einer Vielzahl von Wellenformabtastdaten des Tons auf der Grundlage der Steuerinformation und temporäres Speichern der gebildeten Wellenformabtastdaten in den Ausgabepuffer im Ansprechen auf das Unterbrechungssignal.
DE69613950T 1995-12-21 1996-12-18 Verfahren und Vorrichtung zur Tonerzeugung Expired - Lifetime DE69613950T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7349046A JP2904088B2 (ja) 1995-12-21 1995-12-21 楽音生成方法および装置

Publications (2)

Publication Number Publication Date
DE69613950D1 DE69613950D1 (de) 2001-08-23
DE69613950T2 true DE69613950T2 (de) 2002-04-04

Family

ID=18401130

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69613950T Expired - Lifetime DE69613950T2 (de) 1995-12-21 1996-12-18 Verfahren und Vorrichtung zur Tonerzeugung

Country Status (6)

Country Link
US (2) US5973251A (de)
EP (1) EP0780827B1 (de)
JP (1) JP2904088B2 (de)
CN (1) CN1141695C (de)
DE (1) DE69613950T2 (de)
TW (1) TW282538B (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366971B1 (en) 1998-01-09 2002-04-02 Yamaha Corporation Audio system for playback of waveform sample data
JP3409686B2 (ja) * 1998-03-17 2003-05-26 ヤマハ株式会社 複数音源ドライバの制御方法、および、複数音源ドライバの制御用プログラムが記録された記録媒体、ならびに、複数生成プログラムの制御方法
US6463390B1 (en) * 1998-07-01 2002-10-08 Yamaha Corporation Setting method and device for waveform generator with a plurality of waveform generating modules
JP3975593B2 (ja) 1999-01-21 2007-09-12 株式会社ソニー・コンピュータエンタテインメント 再生音を発生する方法、再生音を発生する電子機器及びエンターテインメント・システム
AU760713B2 (en) * 1999-05-15 2003-05-22 Resource Consortium Limited Automatic broker tools and techniques
JP2001222281A (ja) 2000-02-09 2001-08-17 Yamaha Corp 携帯電話装置及び携帯電話装置の楽曲再生方法
JP3279304B2 (ja) * 2000-03-28 2002-04-30 ヤマハ株式会社 楽曲再生装置および楽曲再生機能を備える携帯電話装置
JP3781171B2 (ja) * 2000-06-22 2006-05-31 ヤマハ株式会社 楽音発生方法
US7274967B2 (en) * 2003-10-10 2007-09-25 Nokia Corporation Support of a wavetable based sound synthesis in a multiprocessor environment
US7437613B2 (en) * 2004-01-30 2008-10-14 Intel Corporation Protecting an operating system kernel from third party drivers
TWI252468B (en) * 2004-02-13 2006-04-01 Mediatek Inc Wavetable synthesis system with memory management according to data importance and method of the same
EP1580729B1 (de) * 2004-03-26 2008-02-13 Yamaha Corporation Tonwellenform Synthesizer
US7678986B2 (en) * 2007-03-22 2010-03-16 Qualcomm Incorporated Musical instrument digital interface hardware instructions
US7663051B2 (en) * 2007-03-22 2010-02-16 Qualcomm Incorporated Audio processing hardware elements
JP5200554B2 (ja) * 2008-01-21 2013-06-05 ヤマハ株式会社 電子音楽装置及び音楽コンテンツ処理プログラム
US8781613B1 (en) * 2013-06-26 2014-07-15 Applifier Oy Audio apparatus for portable devices
CN107436618B (zh) * 2017-08-08 2019-12-27 电子科技大学 一种基于指令架构的任意波形发生器
CN107402596B (zh) * 2017-08-08 2020-03-24 电子科技大学 一种基于指令架构的任意波形发生器
CN107422780B (zh) * 2017-08-08 2020-01-17 电子科技大学 一种基于指令架构的任意波形发生器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0278438B1 (de) * 1987-02-06 1995-11-02 Yamaha Corporation Vorrichtung zur vielfachen Informationsaufzeichnung in einem elektronischen Musikinstrument
US5020410A (en) * 1988-11-24 1991-06-04 Casio Computer Co., Ltd. Sound generation package and an electronic musical instrument connectable thereto
US5121667A (en) * 1989-11-06 1992-06-16 Emery Christopher L Electronic musical instrument with multiple voices responsive to mutually exclusive ram memory segments
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
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> 音声データを変換する方法及びシステム
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
US5717154A (en) * 1996-03-25 1998-02-10 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity

Also Published As

Publication number Publication date
DE69613950D1 (de) 2001-08-23
US6040515A (en) 2000-03-21
EP0780827B1 (de) 2001-07-18
CN1159637A (zh) 1997-09-17
JP2904088B2 (ja) 1999-06-14
US5973251A (en) 1999-10-26
EP0780827A1 (de) 1997-06-25
TW282538B (en) 1996-08-01
CN1141695C (zh) 2004-03-10
JPH09179556A (ja) 1997-07-11

Similar Documents

Publication Publication Date Title
DE69613950T2 (de) Verfahren und Vorrichtung zur Tonerzeugung
DE69711518T2 (de) Auf Software basierendes Tonquellensystem und Verfahren zur Erzeugung von akustischen Wellenformdaten
DE69619587T2 (de) Verfahren und Vorrichtung zur Tonerzeugung
DE69625990T2 (de) Verarbeitungssystem für Musikinformation
DE69608292T2 (de) Audio-synthesizer
DE69114462T2 (de) Vorrichtung zur synchronen Anzeige von Liedertexten.
DE602005004685T2 (de) Tonwellenform Synthesizer
DE69618535T2 (de) Verfahren zur Tonerzeugung durch Hardware- und Softwarequellen
DE69623866T2 (de) Verfahren und Vorrichtung zur Bildung einer Tonwellenform durch kombinierte Verwendung von verschiedenen Auflösungen der Abtastwerte der Wellenformen
DE69704996T2 (de) Software-Tonerzeuger
DE69613068T2 (de) Digitales Musikinstrument mit Wellenformbearbeitung zur Erzeugung eines Klangeffektes
DE3786654T2 (de) Tonsignal-Erzeugungsvorrichtung mit einer digitalen Ton-Speicher-Funktion.
DE69313147T2 (de) Tonsignal-Generator mit Adapter zur Verbindung mit einem Personal-Computer
DE3936693A1 (de) Vorrichtung zum erzeugen digitaler audiosignale
DE69615455T2 (de) Musiksystem, Tonerzeuger und Verfahren zur Tonsynthetisierung
DE3303488A1 (de) Digitales signalverarbeitungssystem
DE102015209298A1 (de) Synchronisation von unabhängigen ausgabeströmen
DE69613049T2 (de) Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung
DE69611874T2 (de) Verfahren und Vorrichtung zur Musiktonerzeugung
DE3023581C2 (de) Verfahren zur digitalen Hüllkurvensteuerung eines polyphonen Musiksyntheseinstruments und Schaltungsanordnung zur Durchführung des Verfahrens
DE69618738T2 (de) Verfahren und Vorrichtung zur Tonerzeugung
DE68914152T2 (de) Automatische Spiel- und Tonerzeugungseinheit in einer automatischen Musikanlage.
DE69705434T2 (de) Tonerzeugungssystem unter Verwendung eines Computerprogrammes
DE69625942T2 (de) Verfahren und Vorrichtung zur Tonerzeugung
DE69732797T2 (de) Verfahren und vorrichtung zur speicherung von tonfolgen in cyclischen schleifen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition