[go: up one dir, main page]

DE69611874T2 - Verfahren und Vorrichtung zur Musiktonerzeugung - Google Patents

Verfahren und Vorrichtung zur Musiktonerzeugung

Info

Publication number
DE69611874T2
DE69611874T2 DE69611874T DE69611874T DE69611874T2 DE 69611874 T2 DE69611874 T2 DE 69611874T2 DE 69611874 T DE69611874 T DE 69611874T DE 69611874 T DE69611874 T DE 69611874T DE 69611874 T2 DE69611874 T2 DE 69611874T2
Authority
DE
Germany
Prior art keywords
waveform
data
musical
generating
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
Application number
DE69611874T
Other languages
English (en)
Other versions
DE69611874D1 (de
Inventor
Motoichi Tamura
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
Priority claimed from JP7275092A external-priority patent/JP2956552B2/ja
Priority claimed from JP7254366A external-priority patent/JP3019755B2/ja
Application filed by Yamaha Corp filed Critical Yamaha Corp
Application granted granted Critical
Publication of DE69611874D1 publication Critical patent/DE69611874D1/de
Publication of DE69611874T2 publication Critical patent/DE69611874T2/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
    • G10H5/00Instruments in which the tones are generated by means of electronic generators
    • 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
    • G10H7/006Instruments 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
    • 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
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/545Aliasing, i.e. preventing, eliminating or deliberately using aliasing noise, distortions or artifacts in sampled or synthesised waveforms, e.g. by band limiting, oversampling or undersampling, respectively
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/621Waveform interpolation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S84/00Music
    • Y10S84/02Preference networks

Landscapes

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

Description

  • Dieser Erfindung liegt ein Verfahren zur Erzeugung von Musiktönen zugrunde, welches Musiktonwellenformen erzeugt, indem auf einer programmierbaren Verarbeitungseinheit, wie einem Computer oder einem DSP (digitaler Signalprozessor) ein Musiktonerzeugungsprogramm ausgeführt wird, und weiterhin eine Vorrichtung zur Erzeugung von Musiktönen, die Musiktonwellenformen erzeugt, indem sie ein Programm zur Erzeugung von Musiktönen ausführt.
  • In einem konventionellen Tongenerator bzw. einem konventionellen Musiktonerzeugungsprogramm, welches Musiktonwellenformen durch Berechnung erzeugt, werden die Abtastfrequenz, die maximale Anzahl der gleichzeitig erzeugbaren Musiktöne sowie der Verarbeitungsumfang für den einzelnen Musikton vorab festgelegt, unabhängig von der Art der zu erzeugenden Musiktöne und der Bedingungen, unter denen weitere Bearbeitungen wie etwa eine Hintergrundbearbeitung durchgeführt werden.
  • Beispielsweise offenbart EP 0 463 411 detailliert eine Musiktonwellenformvorrichtung, welche Musiktonsignale ausgibt, die in vorgegebenen Zeitintervallen mittels eines Software-Programms erzeugt wurden. Hierin kann das anzuwendende Tonquellenverfahren durch Auswahl von Tonerzeugungskanälen gewählt werden. Das Tonquellenverfahren bzw. die Klangfarbe eines auszugebenden Musiktonsignals wird in Übereinstimmung mit Spieldaten wie Tonhöhe, Anschlagstärke und dergleichen bestimmt.
  • In dem konventionellen Tongenerator und dem Musiktonerzeugungsprogramm treten jedoch die folgenden Probleme auf:
  • (1) Die angewendeten Operationen zur Tonerzeugung sind festgelegt, weshalb in manchen Fällen unnötige Verarbeitungen ausgeführt werden und in anderen Fällen wesentliche Verarbeitungen nicht.
  • Beispielsweise werden bei einem Tongenerator oder Musiktonerzeugungsprogramm, mit dem Musiktöne simultan durch eine Vielzahl von Tonerzeugungskanälen erzeugt werden können, Musiktöne durch jeden Tonerzeugungskanal unabhängig von den durch die anderen Kanäle erzeugten Musiktönen erzeugt, und die Menge der pro Zeiteinheit zu erzeugenden Wellenformabtastwerte ist für alle Tonerzeugungskanäle konstant. Deshalb wird, obwohl die Merkmale der durch jeden Kanal erzeugten Musiktöne sich von denen der durch andere Kanäle erzeugten Musiktöne unterscheiden und diese unterschiedliche Qualitäten entsprechend der geforderten Art der Musiktöne aufweisen, für alle Tonerzeugungskanäle die gleiche Anzahl von Wellenformabtastwerten erzeugt. Demzufolge führt der konventionelle Tongenerator bzw. das Tonerzeugungsprogramm unnötige Berechnungen zur Erzeugung von Musiktönen durch.
  • Um beispielsweise Musiktöne mit Frequenzkomponenten in einem breiten Frequenzband, d. h. mit hoher Qualität zu erzeugen, muß die Berechnung zur Erzeugung von Musiktonwellenformen mit hoher Abtastfrequenz durchgeführt werden (d. h. mit einer großen Anzahl von Abtastwerten), wohingegen es für die Erzeugung von Musiktönen, welche lediglich Frequenzkomponenten in einem tiefliegenden Frequenzband aufweisen, genügt, die Erzeugung von Musiktonwellenformen mit niedriger Abtastfrequenz durchzuführen (d. h. mit einer kleinen Anzahl von Abtastwerten). Weiterhin benötigen einige Musikstücke eine große Anzahl von zu erzeugenden Musiktönen lediglich in niedriger Abspielqualität, während andere Musikstücke nur eine geringe Anzahl von zu erzeugenden Musiktönen benötigen, diese jedoch in hoher Qualität. Weiterhin muß ein Tonerzeugungskanal, der Musiktöne für einen herausragenden Teil des zu spielenden Musikstücks erzeugt, z. B. den einführenden Teil, Musiktöne in hoher Qualität erzeugen, während ein Tonerzeugungskanal, der Musiktöne für einen unauffälligen Teil, wie den begleitenden Teil erzeugt, Musiktöne von geringerer Qualität erzeugen darf, was für den Zuhörer fast keinen Unterschied in der Klangqualität ausmacht.
  • Weiterhin erfordern einige Arten von Tönen bei ihrer Erzeugung eine Umwandlung der Tonhöhe, und andere Musiktontypen benötigen eine derartige Umwandlung der Tonhöhe nicht. Einige Arten von Tönen müssen mit Hilfe eines LFO (Niederfrequenzgenerator) moduliert werden, während dies für andere Arten von Tönen nicht notwendig ist. Einige Arten von Tönen erfordern eine Bearbeitung der Klangfarbe mit Hilfe eines digitalen Filters, während andere dies nicht benötigen, und einige Arten von Musiktönen erfordern das Beigeben von Effekten, während andere dies nicht benötigen. Der konventionelle Tongenerator weist jedoch feste Schaltkreise auf, und deshalb ist es schwierig, den ursprünglichen Verarbeitungen einen neuen Prozeß hinzuzufügen oder einen verzichtbaren Prozeß zu entfernen, denn dies würde das Hinzufügen eines komplizierten Schaltkreises erfordern.
  • (2) Im Falle eines durch Software realisierten Tongenerators (Software- Tongenerator) verändert sich der Umfang der CPU-Operationen dynamisch, abhängig von der Anzahl der momentan für die Erzeugung von Musiktönen aktiven Tonerzeugungskanäle und der Inhalte der vom Tongenerator ausgeführten Operationen zur Tonerzeugung. Wird ein Software-Tonerzeugungsprogramm (im folgenden "Software-Tongenerator" genannt) auf einem Universal-Computer parallel zu anderen Anwendungsprogrammen (im folgenden "andere Anwendungen" genannt) implementiert, kann die Funktion der anderen Anwendungen manchmal unstabil werden, da sich der Operationsumfang durch den Software-Tongenerator verändert, hauptsächlich bei Erhöhung des Operationsumfangs.
  • (3) Der Operationsumfang, der dem Software-Tongenerator zugeteilt werden kann, wird nicht nur durch die Anzahl und die Arten der anderen, parallel ausgeführten Anwendungen begrenzt, sondern auch durch die Rechenkapazität der Verarbeitungseinheit, der die Operation durchführt. Da der zugeteilte Operationsumfang somit erheblich eingeschränkt ist, und außerdem die Operation zur Erzeugung von Musiktönen auf eine festgelegte und wenig flexible Weise durchgeführt wird, kann ein Anwender, der gleichzeitig eine größere Anzahl von Musiktönen niedriger Qualität und eine kleinere Menge von hochwertigen Musiktönen erzeugen möchte, beide nicht Operationsmodi wählen.
  • In erster Linie zielt die Erfindung darauf ab, ein Verfahren zur Erzeugung von Musiktönen und eine Vorrichtung zur Erzeugung von Musiktönen bereitzustellen, welche geeignet sind, Musiktöne entweder in einem Modus zu erzeugen, in dem eine größere Anzahl von Musiktönen erzeugt wird oder in einem Modus, in dem Musiktöne von hoher Qualität erzeugt werden, abhängig von der Wahl des Anwenders, d. h. dem Verwendungszweck der Musiktonerzeugung.
  • Das zweite Ziel der Erfindung besteht darin, ein Verfahren zur Erzeugung von Musiktönen und eine Vorrichtung zur Erzeugung von Musiktönen bereitzustellen, welche geeignet sind, die Berechungsinhalte zur Erzeugung von Musiktonwelienformen zu verändern, abhängig von den Inhalten der zu erzeugenden Musiktöne und von Anwendungen, die parallel zu der Operation der Musiktonwellenformerzeugung laufen.
  • Um die oben genannten Ziele zu erreichen, stellt die Erfindung ein Verfahren bereit zur Erzeugung von Musiktönen gemäß Anspruch 1 und eine Vorrichtung zur Erzeugung von Musiktönen gemäß Anspruch 16.
  • Des weiteren werden gemäß vorliegender Erfindung zum Erreichen der gesetzten Ziele maschinenlesbare Speichermedien bereitgestellt, in welchen Anweisungen gespeichert sind, die eine Maschine veranlassen, bestimmte Verfahren zur Erzeugung von Musiktönen gemäß Anspruch 21 durchzuführen.
  • Alle oben genannten und sonstigen Ziele, Merkmale und Vorteile der Erfindung werden in der folgenden detaillierten Beschreibung zusammen mit den begleitenden Zeichnungen deutlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockschaltbild, welches die Anordnung einer Vorrichtung zur Erzeugung von Musiktönen gemäß einer Ausführungsform der Erfindung zeigt.
  • Fig. 2A bis 2D zeigen Formate von verschiedenen Daten, die in dem in Fig. 1 abgebildeten RAM gespeichert werden, wobei:
  • Fig. 2A ein Format von im RAM gespeicherten Klangfarbendaten zeigt,
  • Fig. 2B ein Format von im RAM gespeicherten Musiktonwellenformdaten zeigt,
  • Fig. 2C ein Format von Ereignisdaten zeigt, gespeichert in einem Eingabepuffer, welcher im RAM voreingestellt ist, und
  • Fig. 2D ein Format von Daten zeigt, gespeichert in einem Tongenerator- Register, welches im RAM voreingestellt ist.
  • Fig. 3 zeigt Formate von Daten, gespeichert in Ausgabepuffern, welche im RAM voreingestellt sind.
  • Fig. 4 ist ein Zeitdiagramm zur Erläuterung der Grundzüge der in Fig. 1 durchgeführten Verarbeitung zur Erzeugung von Musiktönen.
  • Fig. 5 ist ein Flußdiagramm einer Hauptroutine, welche von einer in Fig. 1 enthaltenen CPU ausgeführt wird.
  • Fig. 6 ist ein Flußdiagramm, das die Unterbrechungs-verarbeitung bei MIDI- Empfangs zeigt.
  • Fig. 7 ist ein Flußdiagramm, das die Ton-EIN-Ereignis-Verarbeitung zeigt, die durchgeführt wird, wenn Daten über eine in Fig. 1 enthaltene MIDI-Schnittstelle empfangen werden.
  • Fig. 8 ist ein Flußdiagramm, das eine Teil-Klangenfarben-Auswähl- Verarbeitung zeigt, wenn ein Teil-Klangfarbenauswähl-Schalter betätigt wird.
  • Fig. 9 ist ein Flußdiagramm, das eine Teil-Modusauswähl-Verarbeitung zeigt, wenn ein Teil-Modus-Wahlschalter betätigt wird.
  • Fig. 10 ist ein Flußdiagramm, das eine Teil-Wellenformauswähl- Verarbeitung zeigt, wenn ein Wellenform-Wahlschalter betätigt wird.
  • Fig. 11 ist ein Flußdiagramm, das eine Wellenform-LPF-Verarbeitung zeigt, die ausgeführt wird, wenn ein Wellenform-LPF-Schalter betätigt wird.
  • Fig. 12A bis 12D zeigen Beispiele von Frequenzcharakteristiken von Wellenformdaten, welche durch die Wellenform-LPF-Verarbeitung gemäß Fig. 11 erzeugt werden, wobei:
  • Fig. 12A eine Frequenzcharakteristik der Original-Wellenformdaten zeigt,
  • Fig. 12B eine Frequenzcharakteristik der Wellenformdaten nach Bandbegrenzung-Verarbeitung zeigt,
  • Fig. 12C eine Frequenzcharakteristik der Wellenformdaten nach Ausführung einer Abtastung mit vermindeter Rate zeigt und
  • Fig. 12D eine Frequenzcharakteristik der Wellenformdaten nach der Ausführung der LPF-Verarbeitung zeigt.
  • Fig. 13A ist ein Flußdiagramm, das die in Schritt S6 aus Fig. 5 ausgeführte Tongenerator-Verarbeitung zeigt.
  • Fig. 13B ist eine Fortsetzung des Flußdiagramms aus Fig. 13A.
  • Fig. 14A bis 14D zeigen Formate verschiedener Daten, die in einem RAM einer Vorrichtung zur Erzeugung von Musiktönen gemäß der zweiten Ausführungsform der Erfindung gespeichert sind, wobei:
  • Fig. 14A ein Format von im RAM gespeicherten Klangfarbendaten zeigt,
  • Fig. 14B ein Format von im RAM gespeicherten Wellenformdaten zeigt,
  • Fig. 14C ein Format von Ereignisdaten zeigt, die in dem im RAM voreingestellten Eingabepuffer gespeichert werden und
  • Fig. 14D ein Format von Daten zeigt, die in dem im RAM voreingestellten Tongenerator-Register gespeichert werden.
  • Fig. 15 ist eine Abbildung, welche ein Beispiel einer Anordnung einer Schaltpult-Oberfläche zeigt, die auf dem Anzeigegerät der Vorrichtung zur Erzeugung von Musiktönen gemäß der zweiten Ausführungsform der Erfindung angezeigt wird.
  • Fig. 16 ist ein Flußdiagramm der Hauptroutine, die durch eine CPU der Vorrichtung zur Erzeugung von Musiktönen gemäß der zweiten Ausführungsform ausgeführt wird.
  • Fig. 17 ist ein Flußdiagramm, welches eine Ton-EIN-Ereignis-Verarbeitung zeigt, die eine der durch die in Fig. 16 abgebildete Hauptroutine ausgeführten MIDI- Verarbeitungen ist.
  • Fig. 18A ist ein Flußdiagramm, welcher eine in Schritt S108 aus Fig. 16 ausgeführte Tongenerator-Verarbeitung zeigt.
  • Fig. 18B ist die Fortsetzung des Flußdiagramms aus Fig. 18A.
  • Fig. 19 ist ein Flußdiagramm, welches die Wellenform-Lese- und Interpolations-Verarbeitung zeigt, die in Schritt S136 in Fig. 18 ausgeführt wird.
  • Fig. 20 ist ein Flußdiagramm, welches eine P-Anzeige-Verarbeitung zeigt, die in Schritt S109 in Fig. 16 ausgeführt wird.
  • Fig. 21A ist ein Flußdiagramm, das die Schalter-EIN-Ereignis-Verarbeitung zeigt, einer der sonstigen Verarbeitungen, die in Schritt S109 in Fig. 16 ausgeführt werden.
  • Fig. 21B ist ein Flußdiagramm, das die relativen Kapazitätsauslastung der Schalter-EIN-Ereignis-Verarbeitung zeigt, die ebenfalls eine der sonstigen Verarbeitungen darstellt, die in Schritt S109 erfolgen.
  • Fig. 22A ist ein Flußdiagramm, das die von der CPU der Erfindung ausgeführte Tongenerator-Verarbeitung entsprechend der dritten Ausführungsform zeigt und
  • Fig. 22B ist die Fortsetzung des Flußdiagramms aus Fig. 22A.
  • DETAILLIERTE BESCHREIBUNG
  • Es folgt eine detaillierte Beschreibung der Erfindung unter Bezugnahme auf die Zeichnungen, die entsprechende Ausführungsformen zeigen.
  • Fig. 1 ist eine Darstellung der Anordnung einer Vorrichtung zur Erzeugung von Musiktönen entsprechend einer ersten Ausführungsform der Erfindung. Das in Fig. 1 enthaltene Blockschaltbild zeigt die Anordnung eines Universal-Computers an sich, auf dem ein Betriebssystem (OS) wie Windows (eingetragenes Warenzeichen) verwendet werden kann. Somit kann die Erfindung als Software auf einem Universal- Computer implementiert werden. Weiterhin kann diese Erfindung in einem elektronischen Musikinstrument verwendet werden, das im wesentlichen die gleiche Anordnung, wie in Fig. 1 beschrieben, aufweist.
  • Die Vorrichtung gemäß der vorliegenden Ausführungsform setzt sich zusammen wie folgt: ein CPU 1 zur Durchführung der verschiedenen Datenverarbeitungen; eine Tastatur 2 zur Eingabe der Programmausführungsbefehle und Daten durch den Anwender; ein Anzeigegerät 3 zur Anzeige verschiedener Bild- und Schriftzeicheninformationen; eine Festplatte (HDD) 4 zur Speicherung von Daten und Programmen, die von der CPU 1 ausgeführt werden; ein ROM-Speicher 5 zur Speicherung von Programmen zur Steuerung der Datenein- und -ausgabe zu und von Tastatur 1, die Anzeigeeinheit 3 und Festplatte 4; ein RAM 6 zur Speicherung von ausgeführten Programmen, Wellenformdaten und berechneten Daten, ein Zeitgeber 7; eine MIDI- Schnittstelle 8, welche an eine Spieleinheit ähnlich einer Tastatur angeschlossen wird und von dort Spieldaten erhält; ein DMA- für (direkt memory access = Direktspeicherzugriff) Steuereinheit 9 für direkten Zugriff auf den RAM 6, um von dort Musiktonabtastdaten (Wellenformdaten) mit einer Geschwindigkeit auszulösen, die z. B. einer Abtastfrequenz von 48 kHz entspricht, und die gelesenen Daten nach Abtastwerten an einen D/A-Wandler 10 in Ansprechen auf einen Befehl der CPU 1 (im folgenden "Lese-Wiedergabe-Verarbeitung" genannt) übergibt; der D/A-Wandler 10 zum Konvertieren der von dem DMA-Steuereinheit 9 in Form eines digitalen Signals gelieferten Musiktonerzeugungsdaten in ein analoges Musiktonsignal; eine Tonsystem 11 zum Verstärken und zur Ausgabe des Musiktonsignals über einen Lautsprecher; und ein Bus 12 zur gegenseitigen Verbindung der einzelnen Komponenten 1 bis 9.
  • Die HDD 4 speichert ein Betriebsprogramm und verschiedene Daten, einschließlich automatischer Spieldaten und Code-Progressionsdaten. Im Fall, daß ein beliebiges Betriebsprogramm nicht im ROM-Speicher 5 gespeichert wird, kann ein Betriebsprogramm auf einem Festplattenlaufwerk der HDD 4 gespeichert werden. Dieses Betriebsprogramm wird in den RAM 6 eingelesen, so daß der CPU 1 mit dem Betriebsprogramm genauso läuft, als ob dieses Betriebsprogramm im ROM-Speicher 5 gespeichert wäre. Auf diese Weise werden die Ergänzung eines Betriebsprogramms und dessen Aktualisierung vereinfacht. Ein CD-ROM- (Compact Disk ROM-Speicher) Laufwerk 13 wird außerdem an den Bus 12 angeschlossen, das ein Betriebsprogramm und verschiedene, auf einer eingelegten CD-ROM gespeicherte Daten liest. Das so aufgerufene Betriebsprogramm und die verschiedenen Daten werden auf dem Festplattenlaufwerk im HDD 4 gespeichert. Somit ist es einfach, ein weiteres Betriebsprogramm oder eine neue Version des Betriebsprogramms zu installieren. Geräte, die die Verwendung von unterschiedlichen Medien ermöglichen, wie ein Floppy-Disk-Laufwerk und ein magnetooptisches Diskettenlaufwerk (MO), können außerdem als externe Speichergeräte vorgesehen werden.
  • Es wird auch eine Kommunikationsschnittstelle 14 an den Bus 12 angeschlossen. Die Kommunikationsschnittstelle 14 wird an ein Kommunikationsnetzwerk 21, wie beispielsweise ein LAN (Local Area Network), das Internet oder eine Telefonleitung angeschlossen. Die Kommunikationsschnittstelle 14 wird an einen Server-Computer 31 über das Kommunikationsnetzwerk 21 angeschlossen. Falls das Betriebsprogramm und verschiedene Daten nicht auf dem HDD 4 gespeichert werden, wird die Kommunikationsschnittstelle 14 verwendet, um Programme und Daten vom Server-Computer 31 herunterzuladen. Die vorliegende Vorrichtung zur Erzeugung von Musiktönen fungiert als Client und übermittelt einen Befehl an den Server-Computer 31, ein Betriebsprogramm und Daten durch die Kommunikationsschnittstelle 14 und das Kommunikationsnetzwerk 21 herunterzuladen. Der Server-Computer 31 erhält diesen Befehl und liefert das angeforderte Betriebsprogramm und die Daten an die Vorrichtung zur Erzeugung von Musiktönen über das Kommunikationsnetzwerk 21. Die Vorrichtung zur Erzeugung von Musiktönen empfängt das Programm und die Daten durch die Kommunikationsschnittstelle 14 und akkumuliert diese auf dem HDD 4. Der Übertragungsvorgang ist somit abgeschlossen.
  • Die vorliegende Erfindung kann alternativ auch in einen kommerziell erhältlichen PC o.a. implementiert werden, auf dem das der Erfindung angepaßte Betriebsprogramm und die Daten installiert sind. In diesem Fall kann dem Anwender ein Speichermedium, wie CD-ROM oder Floppy-Disk angeboten werden, auf welchem das der Erfindung angepaßte Betriebsprogramm und die Daten enthalten sind, und das von dem PC gelesen werden kann. Falls ein derartiger PC o.a. mit einem Kommunikationsnetzwerk wie ein LAN, das Internet oder einer Telefonleitung verbunden wird, können das Betriebsprogramm und die Daten dem PC o.a. durch das Kommunkationsnetzwerk zur Verfügung gestellt werden.
  • Im Sinne dieser Beschreibung bezieht sich der Begriff "Wellenformabtastwert(e)" oder "Abtastwert(e)" auf Wellenformabtastwerte (einen Wellenformabtastwert), welche(r) durch das Abtasten von Original-Wellenformdaten erhalten werden (wird); der Begriff "Wellenformdaten" auf jene Daten einer Reihe von Wellenformabtastwerten, die momentan zur Erzeugung von Musiktönen verwendet werden; der Begriff "Musiktonwellenformdaten" auf Daten, die aus einer Reihe von Wellenformabtastwerten durch eine Musiktonerzeugungsoperation erzeugt wurden; und der Begriff "Musiktonwellenformabtastwert" auf einen Wellenformabtastwert (Wellenformabtastwerte) von Musiktonwellenformdaten, die durch die Musiktonerzeugungsoperation erzeugt wurden.
  • Die Fig. 2A bis 2D zeigen Formate von im RAM 6 enthaltenen Klangfarbendaten und Wellenformdaten sowie Daten, die in einem Eingabepuffer und einem im RAM 6 enthaltenen Tongenerator-Register gespeichert sind.
  • Fig. 2A zeigt die im RAM 6 gespeicherten Klangfarbendaten PDp (p = 1, ..., 16), die sich wie folgt zusammensetzen: Wellenformbezeichnungswert WN(p) zur Bezeichnung der Wellenform eines Bereichs, LFO (low frequency oscillator = Niederfrequenzgenerator) -Originalsteuerdaten (OD), Originalsteuerdaten des Filter-Hüllkurven-Generators (FEG = filter envelope generator), Originalsteuerdaten des Amplituden-Hüllkurven-Generators (AEG = amplitude envelope generator), sonstigen Originaldaten und dem Berechnungsmodus CM(p). Das Symbol p steht für eine Teil-Nummer, und die Vorrichtung zur Erzeugung von Musiktönen der vorliegender Ausführungsform kann die Klangfarbendaten für 16 Teile festlegen. Weiterhin wird der Wellenformbezeichnungsdatenwert WN(p) durch einen durch den Anwender festgelegten Wellenform-Namen festgelegt (siehe Fig. 9). Der Berechnungsmodus CM(p) ist ein Datenwert, mit dem indirekt die Anzahl der pro Sekunde zu erzeugenden Abtastwerte bezeichnet wird, zur Erzeugung einer Musiktonwellenform, d. h. ein Datenwert, der einer äquivalenten Abtastfrequenz entspricht. Gemäß der vorliegenden Ausführungsform kann der Berechnungsmodus CM(p) selektiv eine Ganzzahl von 0 bis 2 annehmen. In der vorliegenden Ausführungsform werden der Berechnungsmodus CM(p) und die äquivalente Abtastfrequenz, wie folgt, gesetzt: CM(0) = 48 kHz, CM(1) = 24 kHz und CM(2) = 12 kHz.
  • Fig. 2B zeigt die Wellenformdaten WD1, WD2, ..., bei denen es sich um Originalwellenformdaten zur Bildung von Musiktonwellenformdaten handelt, welche durch die im folgenden beschriebene Musiktonerzeugungs-Verarbeitung erzeugt werden. Bei diesen werden die Wellenformdaten WD1 und WD2 jeweils aus Abtastwerten mit einer Länge gebildet, die einer vorgegebenen Zeitspanne entspricht und jeder kennzeichnet eine Wellenform, die zuauf einmal ausgelesen werden kann, oder eine Wellenform, die durch einen Einschwingabschnitte und Schleifenabschnitt gebildet wird. Die Wellenformdaten WD1 und WD2 werden jeweils durch Auslesen eines aus einer Vielzahl von Wellenformdaten erhalten, die zuvor nach Bedarf in einer vorgegebenen Aufnahmeabtastfrequenz abgetastet und auf der HDD 4 gespeichert wurde, wobei die gelesenen Daten in einem Wellenformdatenbereich im RAM 6 gespeichert werden. Die Wellenformdaten WD1' und WD2' aus Fig. 2B werden erhalten, indem die Wellenformdaten WD1 und WD2 einer vorgegebenen Bandbegrenzungs-Verarbeitung unterzogen werden, wobei die bandbegrenzten Daten mit der Hälfte der Original-Aufzeichnungsabtastfrequenz (durch Auslässen jedes zweiten Abtastwerts) mit verminderter Rate abgetastet und die durch verminderte Rate abgetasteten entstandenen Abtastwerte im Weilenformdatenbereich gespeichert werden. Die Wellenformdaten WD" in Fig. 2B entstehen, indem die Wellenformdaten WD2' einer vorgegebenen Bandbegrenzungs-Verarbeitung unterzogen werden, wobei die bandbegrenzten Daten mit der Hälfte der Abtastfrequenz der Wellenforndaten WD2, d. h. mit einem Viertel der Original-Aufzeichnungsabtastfrequenz, mit verminderter Rate abgetastet und die entstandenen Daten im Weilenformdatenbereich gespeichert werden. Die Verarbeitung zur Erzeugung der Wellenformdaten WD1', WD2' und WD2" (Wellenform-LPF-Verarbeitung) wird im folgenden beschrieben bezugnehmend auf Fig. 11.
  • Fig. 2C zeigt einen Eingabepuffer zur Speicherung der Spieldaten, die über die MIDI-Schnittstelle 8 eingegeben wurden. Dieser Eingabepuffer besteht aus einem Bereich zum Speichern von Daten, die für Anzahl der zu verarbeitenden Ereignisse kennzeichnend sind, und Bereichen zum Speichern der Ereignisdaten ID1, ID2, ID3 usw., die jeweiligen Ereignisse entsprechen. Jeder Ereigniswerte besteht aus Daten, die für Ereignisinhalte kennzeichnend sind, und Daten, die für den Auftrittszeitpunkt dieses Ereignisses kennzeichnend sind. Die Daten, die den Auftrittszeitpunkt eines Ereignisses kennzeichnend sind, wird benötigt, damit die CPU 1 eine Vielzahl von Ereignissen kollektiv verarbeiten kann.
  • Fig. 2D zeigt ein Tongenerator-Register, welches Steuerdaten für jeden bei der Musiktonerzeugungs-Verarbeitung verwendeten Tonerzeugungskanal speichert. In der vorliegenden Ausführungsform besteht das Tongenerator-Register aus Registern für 32 Kanäle. Die Steuerdaten für jeden Musiktonerzeugungskanal werden durch Bearbeiten der jeweiligen Originaldaten der Klangfarbendaten PDp (siehe Fig. 2A) entsprechend den Spieldaten, wie die Anschlagstärke, erhalten, und sie setzen sich zusammen aus der Tonhöhe SP, die für die Tonhöhe des zu erzeugenden Musiktons kennzeichnend ist; einer F-Nummer FN, die für den Adressenvorschub pro Abtastwert bezeichnend ist, um den Wellenformdaten ausgelesen werden; Wellenformbezeichnungsdaten zur Bezeichnung der auszulesenden Wellenformdaten; LFO-Steuerdaten aus der Verarbeitung der LFO-Originalsteuerdaten; FEG-Steuerdaten aus der Verarbeitung der FEG-Originalsteuerdaten; AEG-Steuerdaten aus der Verarbeitung der AEG-Originalsteuerdaten; Ton-EIN-Daten (1-Bit-Daten), die bezeichnen, ob ein Musikton zum Erklingen gebracht wird oder nicht; anderen Daten und dem Berechnungsmodus CM(i) (i = 1, ... 32).
  • Die F-Nummer FN ist ein numerischer Wert des Adressenvorschubs pro Abtastwert, dessen Berechnung die folgende Gleichung (1) zugrunde liegt:
  • FN = 2(SP-OP)/1200 · 2(CM-WM)
  • wobei gilt: SP steht für die Tonhöhe SP eines zu erzeugenden Musiktons; OP für die Tonhöhe (Originaltonhöhe) zugehörig zu den durch Wellenformbezeichnungsdaten bezeichneten Wellenformdaten, die Abtastwert für Abtastwert mit einer Abtastfrequenz von 48 kHz gelesen werden; CM für den Berechnungsmodus CM(i); und WM für den Wellenformmodus, der für eine Abtastfrequenz kennzeichnend ist, mit welcher der Musikton aufgenommen wurde (Aufnahmeabtastfrequenz), d. h. es handelt sich hier um einen numerischen Wert, der jeden der Wellenformdaten zugewiesen wird und indirekt die Aufnahmeabtastfrequenz der Wellenformdaten bezeichnet (in der vorliegenden Ausführungsform nimmt der der Wellenformmodus eine Ganzzahl von 0 bis 2 an, ähnlich zum Berechnungsmodus CM(i)). Beispielsweise entspricht der Wellenformmodus WM = 0 einer Aufnahmeabtastfrequenz von 40 bis 48 kHz, WM = 1 einer Aufnahmeabtastfrequenz von 20 bis 24 kHz und WM = 2 einer Aufnahmeabtastfrequenz von 10 bis 12 kHz. Jeder Wellenformdatenwert, dem ein Wert (i) des Wellenformmodus zugewiesen ist, kann eine Hochfrequenzkomponente mit einem oberen Grenzfrequenzwert gleich der Hälfte der Aufnahmeabtastfrequenz beinhalten. Die Werte SP und OP werden durch 1200 dividiert, da diese Werte in 1/100 Halbton (1 Cent)-Werten vorgegeben werden.
  • Die F-Nummer FN steuert den Tonhöhenkonvertierungsmodus.
  • Weiterhin enthält das Tongenerator-Register einen Arbeitsbereich für eine Tonerzeugungs-Verarbeitung. Dieser Arbeitsbereich wird genutzt, wenn es nötig ist, die F-Nummer FN beispielsweise durch LFO-Steuerdaten zu korrigieren.
  • Fig. 3 zeigt im RAM 6 voreingestellte Formate von Ausgabepuffern.
  • In der Figure dient ein Puffer 0 zum Akkumulieren von 128 Musiktonwellenformabtastwerten, die von einem Musiktonerzeugungskanal erzeugt werden, welchem der Berechnungsmodus 0 (CM(i) = 0) zugewiesen ist, ein Datenwert von den im oben beschriebenen Tongenerator-Register gespeicherten Steuerdaten, ein Puffer 1 zum Akkumulieren von 64 Musiktonwellenformabtastwerten, die von einem Musiktonerzeugungskanal erzeugt werden, welchem der Berechnungsmodus 1 (CM(i) = 1) zugewiesen ist, und ein Puffer 2 zum Akkumulieren von 32 Musiktonwellenformabtastwerten, die von einem Musiktonerzeugungskanal erzeugt werden, welchem der Berechnungsmodus 2 (CM(i) = 2) zugewiesen ist.
  • Ein Puffer 1' kann 128 Musiktonwellenformabtastwerte durch Interpolieren der 64 Musiktonwellenformabtastwerte in dem Puffer 1 erzeugen, und ein Puffer 2' kann 128 Musiktonwellenformabtastwerte durch Interpolieren der 32 Musiktonwellenformabtastwerte in dem Puffer 2 erzeugen. Die so erzeugten 128 Musiktonwellenformabtastwerte in dem Puffer 1' und jene aus dem Puffer 2' werden zusammen mit den 128 Musiktonwellenformabtastwerten in dem Puffer 0 akkumuliert in 128 Musiktonwellenformabtastwerte, die dann in Puffer 0 zur Wiedergabe gespeichert werden. Somit fungiert der Puffer 0 auch als Speicher für die 128 Musiktonwellenformabtastwerte, die durch die DMA-Steuereinheit 9 zur Wiedergabe ausgelesen werden sollen.
  • Durch derartiges Interpolieren von Musiktonwellenformabtastwerten, die bei solchen geringen Abtastgeschwindigkeiten erzeugt wurden (Wellenformabtastwerte in den Puffern 1 und 2 in der vorliegenden Ausführungsform) in 128 Musiktonwellenformabtastwerten, können die 128 in den Puffer 0 und die 64 und 32 in den Puffern 1 und 2 erzeugten Musiktonwellenformabtastwerte akkumuliert werden, ohne Aliasing-Geräusche zu erzeugen, woraus sich schließlich 128 Musiktonwellenformabtastwerte für die Wiedergabe erhalten werden können. Das in der Ausführungsform verwendete Interpolationsverfahren kann ein gängiges Verfahren sein, wie lineare Interpolation.
  • In der vorliegenden Ausführungsform sind, wie oben beschrieben, drei Arten von Puffern, 0 bis 2 vorgesehen, und ihre Puffergrößen werden auf das Verhältnis von Puffer 0 : Puffer 1 : Puffer 2 = 4 : 2 : 1 eingestellt. Diese Einstellung ist jedoch nicht einschränkend. Alternativ können beispielsweise zwei Arten von Puffern, 0 und 1, bereitgestellt werden, deren Puffergrößen dem Verhältnis von Puffer 0 : Puffer 1 = 3 : 1 genügen.
  • Nachfolgend wird eine Übersicht der Musiktonerzeugungs-Bearbeitung, die durch die Vorrichtung zur Erzeugung von Musiktönen nach der vorliegenden Ausführungsform ausgeführt wird, unter bezug auf die Fig. 4A, 4B und 4C beschrieben.
  • Wenn beispielsweise ein Ton-EIN-Ereignis eines Teils p in den Eingabepuffer aus Fig. 2C eingegeben wird, werden Klangfarbendaten PDp entsprechend dem Ereignis bezeichnet, und anschließend werden der Wellenformname WN(p) und der zu den bezeichneten Daten PDp zugehörige Berechnungsmodus CM(p) automatisch bezeichnet, wobei die CPU 1 Wellenformabtastwerte eines Musiktons erzeugt, die dem Eingabe-Ereignis bei einer Zeitdichte (äquivalente Abtastfrequenz) entspricht, die durch den Berechnungsmodus CM(p) an einem dem Berechnungsmodus entsprechenden Ausgabepuffer bestimmt wird. Weiterhin führt die CPU 1 eine Musiktonerzeugungsberechnung einschließlich Interpolation dieser Wellenformabtastwerte durch, speichert die berechneten Daten, d. h. Musiktonwellenformabtastwerte, im Ausgabepuffer 0 des RAM 6 und benachrichtigt die DMA-Steuereinheit 9 von der Fertigstellung der Berechnung (Fig. 4B). Die DMA-Steuereinheit 9 liest die Musiktonwellenformabtastwerte folgerichtig aus dem Ausgabepuffer 0 (Fig. 4C). Eine Spieldateneingabe über die MIDI-Schnittstelle 8 während eines Zeitraums von dem direkt zuvorliegenden Zeitpunkt tBC der Erzeugung eines Takt-Signals BC bis zum aktuellen Zeitpunkt tBC der Erzeugung eines Takt- Signals BC wird der aktuellen Berechnung zum Erzeugen eines Musiktons unterzogen. Lesen und Wiedergabe der Musiktonwellenformabtastwerte, deren Berechnung zu einem Zeitpunkt tCE fertiggestellt ist, werden durch die DMA-Steuereinheit 9 beginnend beim nächsten Zeitpunkt des Auftretens des Takt-Signals BC zum Erzeugen eines Musiktons durchgeführt. Jeder in Fig. 48 abgebildete Pfeil P kennzeichnet einfach die Übereinstimmung zwischen den berechneten Musiktonwellenformabtastwerten und der Lese-Wiedergabe-Verarbeitung, sagt jedoch nicht aus, daß das Ergebnis der zum Zeitpunkt tCE fertiggestellten Berechnung zum Zeitpunkt tBC übertragen wird.
  • Gemäß der vorliegender Ausführungsform beträgt die Abtastfrequenz des DAC 10 der Vorrichtung zur Erzeugung von Musiktönen 48 kHz, und dementsprechend wird das Takt-Signal BC in Zeitintervallen von 2,7 msec (128/48k) erzeugt. Somit beträgt die maximale Verzögerungszeit von der Eingabe der Spieldaten bis zur tatsächlichen Erzeugung eines Musiktones etwa 5 msec, was für das menschliche Ohr kein akustisches Problem darstellt. Bei automatischem Spiel kann die Verzögerungszeit länger sein, und daher kann auch die Größe des Ausgabepuffers 0 länger eingestellt sein. Weiterhin muß die Lese-Wiedergabe-Verarbeitung nicht zu dem gleichen gleichen Zeitpunkt wie eine Erzeugung des Takt-Signals BC gestartet werden, sondern kann bei irgendeinem Zeitpunkt gestartet werden, wie beispielsweise dem Verlauf einer vorgegebenen Zeitspanne nach dem Zeitpunkt tBC einer Erzeugung des Takt- Signals BC, soweit dies für das menschliche Gehör kein akustisches Problem darstellt.
  • Es folgt eine Beschreibung der Steuerungs-Verarbeitung, die durch die CPU 1 der Vorrichtung zur Erzeugung von Musiktönen gemäß oben beschriebener Konstruktion unter bezug auf die Fig. 5 bis 13 ausgeführt werden.
  • Fig. 5 zeigt eine von der CPU 1 ausgeführte Hauptroutine. Die Hauptroutine wird gestartet, wenn der Anwender eine Spannungsquelle der Vorrichtung zur Erzeugung von Musiktönen einschaltet (wenn das Programm des Software- Tongenerators angesteuert wird, bei Implementierung der Erfindung in einem Universal-Personalcomputer). Fig. 6 zeigt die Unterbrechungs-verarbeitung nach MIDI-Empfang. Diese Unterbrechungsverarbeitung wird nach Eingabe von Spieldaten über die MIDI-Schnittstelle 8 mit höchster Priorität ausgeführt.
  • Zuerst wird die Verarbeitung aus Fig. 6 beschrieben. In Schritt S11 werden empfangene Daten geholt, und in Schritt S12 werden die empfangenen Daten in den Eingabepuffer des RAM 6 zusammen mit Zeitdaten eingeschrieben, die bezeichnen, wann der Datenwert empfangen wurden.
  • In der Hauptroutine aus Fig. 5 werden zuerst in Schritt S1 die Initialisierungen ausgeführt, d. h. alle Tonerzeugungskanäle werden ausgeschaltet, alle Register werden gelöscht, und die Lese-Wiedergabe-Verarbeitung durch die DMA- Steuereinheit 9 wird für den Start initialisiert. Danach folgt in Schritt S2 die Feststellung, ob der Eingabepuffer die empfangenen Daten enthält oder nicht. Wenn der Eingabepuffer keine empfangenen Daten enthält, schreitet das Programm zu Schritt S4 fort, wogegen, wenn der Eingangspuffer empfangene Daten enthält, den empfangenen Daten entsprechende Operationen, wie beispielsweise Ton-EIN-Ereignis- Verarbeitung, Note-AUS-Ereignis-Verarbeitung und von Pedal-Verarbeitung in Schritt S3 ausgeführt werden, wonach das Programm zu Schritt S4 fortschreitet.
  • In Schritt S4 wird festgestellt, ob ein Schalter-Ereignis, wie die Klangfarbenauswahl, aufgetreten ist. Wenn kein Schalter-Ereignis stattgefunden hat, schreitet das Programm sofort zu Schritt S6 fort, wenn dagegen ein Schalt-Ereignis aufgetreten ist, wird eine Bedienleisten-Schalter (SW)-Ereignis-Verarbeitung ausgeführt, z. B. durch Auswählen einer Klangfarbe für jeden MIDI-Kanal entsprechend einer Einstellung des Klangfarbenwahlschalters in Schritt S5, und dann schreitet das Programm zu Schritt S6 fort.
  • In Schritt S6 wird eine in den Fig. 13A und 13B gezeigte Subroutine zur Tongenerator-Verarbeitung ausgeführt, die im folgenden näher beschrieben wird. Sonstige Verarbeitungen werden in Schritt S7 ausgeführt, wonach das Programm zu Schritt S2 zurückkehrt. Danach werden die Schritte S2 bis S7 wiederholt ausgeführt.
  • Fig. 7 zeigt Details der Ton-EIN-Ereignis-Verarbeitung, die eine der in Schritt S3 aus Fig. 5 ausgeführten Verarbeitungen für empfangene Daten ist.
  • Zuerst werden in Schritt S21 eine Tonhöhe und Teil-Nummer, die durch die empfangenen Ton-EIN-Daten bezeichnet wurden, jeweils in einem im RAM 6 voreingestellten Bereich SP (im folgenden werden die in diesem gespeicherten Inhalte "Tonhöhe SP" genannt) und einem Bereich p (im folgenden werden die gespeicherten Inhalte dieses Bereichs "Teil p" genannt) gespeichert, und gleichzeitig wird der Ereignissauftritts-Zeitpunkt (Empfangszeitpunkt) in einem im RAM 6 voreingestellten Bereich TM (im folgenden werden die Inhalte dieses Bereichs "Auftrittszeitpunkt TM" genannt) gespeichert.
  • Dann wird in Schritt S22 die Tonerzeugungs-Zuweisungs-Verarbeitung durchgeführt, um einen Tonerzeugungskanal des Tongenerator-Registers (Fig. 2D) zu bestimmen, in welchen die Klangfarbendaten einzuschrieben sind, und die zugewiesene Kanal-Nummer wird in einem Bereich i (im folgenden werden die gespeicherten Inhalte dieses Bereichs "zugewiesener Kanal i" genannt) gespeichert.
  • Im folgenden Schritt S23 werden Klangfarbendaten PDp für den Teil p (siehe Fig. 2A) ausgelesen, um einen Wellenformnamen (Wellenformbezeichnungsdaten) WN(p) und einen Berechnungsmodus CM(p) zu erhalten, weiterhin werden dem Berechnungsmodus CM(p) entsprechende Wellenformdaten aus den Wellenformdaten mit dem Wellenformnamen WN(p) ausgewählt, und eine Leseadresse im RAM 6 (siehe Fig. 2B) zum Auslesen der Wellenformdaten wird als Wellenformbezeichnungsdaten für den zugewiesenen Kanal i (siehe Fig. 2D) eingestellt.
  • In diesem Zusammenhang können eine Vielzahl von Wellenformdaten mit dem gleichen Wellenformnamen WN(p) vorliegen. Beispielsweise erhält man die Wellenformdaten WD2' und WD2" durch das Abtasten mit verminderter Rate der Wellenformdaten WD2, wie bereits erwähnt, weshalb sie den gleichen Wellenformnamen besitzen wie die der Wellenformdaten WD2. Falls also eine Vielzahl von Wellenformdaten mit den gleichen Wellenformnamen vorliegt, wird einer von diesen ausgewählt, der dem Berechnungsmodus CM(p) entspricht.
  • Sogar wenn eine Vielzahl von Wellenformdaten mit dem selben Wellenformnamen vorliegt, kann es vorkommen, daß keine Wellenformdaten vorliegen, die dem Berechnungsmodus CM(p) entsprechen. Beispielsweise liegen in Fig. 2B keine Wellenformdaten WD1" vor, die dem Berechnungsmodus CM(p) (p = 2) entsprechen. Dies folgt aus der Tatsache, daß der Anwender keine Wellenformdaten WD1" vorbereitet hat, wie z. B. durch eine Wellenform-LPF-Verarbeitung (im folgenden unter bezug auf Fig. 11 beschrieben). In einem derartigen Fall können keine dem Berechnungsmodus CM(p) entsprechenden Wellenformdaten ausgewählt werden, und daher werden Wellenformdaten mit dem gleichen Wellenformnamen WN(p), die aber einem unterschiedlichen Wellenformmodus WM entsprechen, ausgewählt, und ein gewünschtes Musiktonsignal wird durch Ändern der Lesegeschwindigkeit zum Auslesen der Wellenformdaten, d. h. durch Veränderung der Tonhöhe der Wellenformdaten, insbesondere durch Einstellen der F-Nummer FN erzeugt.
  • In der vorliegenden Ausführungsform werden der Berechnungsmodus CM(p) und der Wellenformmodus WM einer für die Musiktonerzeugung im Berechnungsmodus CM(p) geeigneten Wellenform im Verhältnis 1 : 1 eingestellt. Genauer gesagt, wenn der Berechnungsmodus CM(p) auf CM(p) = 0 eingestellt ist, werden Wellenformdaten ausgewählt, denen der Wellenformmodus WM = 0 zugewiesen ist. Jedoch basieren der Berechnungsmodus CM(p) und der Wellenformmodus WM auf unterschiedlichen Konzepten und entsprechen einander nicht immer. Die vorliegende Ausführungsform ist lediglich so ausgelegt, daß Wellenformdaten erzeugt werden, deren Wellenformmodus WM dem Berechnungsmodus CM(p) entspricht.
  • In Fig. 7 werden in Schritt S24 die Klangfarbendaten PDp (Klangfarbendaten, die durch eine Klangfarbennummer TC(p) bezeichnet werden, auf die später eingegangen wird) für ein Teil Q entsprechend der Tonhöhe SP und dem Berechnungsmodus CM(p) verarbeitet und in einem vorgegebenen Bereich des Tongenerator-Registers des zugewiesenenen Kanals i gemeinsam mit dem Ereignisauftrittszeitpunkt TM eingestellt. Eines der Ziele der Verarbeitung von Klangfarbendaten PDp ist es, die zeitliche Veränderung der Form der Lautstärke- Hüllkurven-Generator- (EG)-Steuerdaten zum Steuern eines nicht abgebildeten Lautstärke-Hüllkurven-Generators und eine Veränderung der nicht abgebildete Grenzfrequenz eines Klangfarbenfilters entsprechend dem Berechnungsmodus C(p) zu vermeiden. Ein weiteres Ziel der Verarbeitung ist es, ähnlich wie bei gewöhnlichen elektronischen Musikinstrumenten, die Musiktoncharakteristiken einschließlich der Form der Hüllkurve entsprechend der Spielinformation, wie der Tonhöhe SP, zu variieren. Die Klangfarbenummer TC(p) wird durch den Anwender eingestellt, wie beschrieben unter bezug auf Fig. 8.
  • Als nächstes werden in Schritt S25 Ton-EIN-Daten in das Tongenerator- Register bei den zugewiesenen Kanal i eingeschrieben, woraufhin die aktuelle Routine beendet wird.
  • Die Fig. 8 bis 11 zeigen Routinen zum Ausführen verschiedener Ereignis- Verarbeitungen, die durch Betätigen der jeweiligen Bedienleisten-Schalter durch den Anwender angesteuert werden. Jede Verarbeitung entspricht einer der in Fig. 5 unter Schritt S5 ausgeführten Bedienleisten-Schalter-Ereignis-Verarbeitungen. Die Bedienleisten-Schalter können auf der Tastatur 2 angebracht sein bzw. alternativ können sie am Anzeigegerät 3 abgebildet sein. Im letzteren Fall wird der Cursor mittels der Auf- bzw. Ab-Taste der Tastatur 2 oder einer nicht abgebildeten Maus bewegt, um einen gewünschten Bedienleisten-Schalter zu betätigen.
  • Fig. 8 zeigt ein Teils-Klangfarbeauswähl-Routine, die ausgeführt wird, wenn ein nicht abgebildeten Teil-Klangfarbenauswahl-Schalter der Bedienleisten-Schalter betätigt wird.
  • Zuerst wird in Schritt 31, nach Eingabe einer Teil-Nummer durch den Anwender, die Teil-Nummer im Bereich p gespeichert und nach Eingabe einer Klangfarbennummer durch den Anwender, die Klangfarbennummer in einen Bereich TC(p), der im RAM voreingestellt wurde, gespeichert. Die im Bereich TC(p) gespeicherte Klangfarbennummer ist die oben genannten Klangfarbennummer TC(p).
  • Dann werden in Schritt S32 die Klangfarbendaten vorbereitet. Genauer gesagt, werden die durch die Klangfarbennummer TC(p) bezeichneten Klangfarbendaten aus einer Gruppe von zuvor in einem vorgegebenen Bereich auf der Festplatte im HDD 4 gespeicherten Klangfarbendaten ausgelesen und in einem Klangfarbendatenbereich PDp, welcher durch den Teil p gekennzeichnet ist, geladen. Weiterhin wird ein bezug zu den Wellenformbezeichnungsdaten WN(p) in den geladenen Klangfarbendaten hergestellt, und es wird festgelegt, ob die durch die Daten WN(p) und den Berechnungsmodus CM(p) bezeichneten Wellenformdaten im Wellenformdatenspeicherbereich der Fig. 2B vorhanden sind oder nicht. Wenn die Daten nicht vorhanden sind, werden die auf der Festplatte im HDD 4 gespeicherten Wellenformdaten ausgelesen und in den Wellenformdatenspeicherbereich geladen. Bei dieser Gelegenheit werden die für den Teil p vorher eingestellten Klangfarbendaten in einem ensprechenden Speicherbereich der Festplatte 4 gesichert.
  • Fig. 9 zeigt eine Routine für die Auswahl eines Teilmodus, welche dann ausgeführt wird, wenn der nicht abgebildete Teilmodus-Wahlschalter betätigt wird.
  • Zuerst wird, ähnlich wie in Schritt S31, eine vom Anwender eingegebene Teil- Nummer im Bereich p gespeichert, und wenn der Anwender einen Berechnungsmodus eingibt, wird in Schritt S41 dieser Berechnungsmodus (eine Ganzzahl aus 0 bis 2) im Bereich CM(p) im Klangfarbendatenbereich, der durch den Teil p bezeichnet wird, gespeichert.
  • Fig. 10 zeigt eine Routine für die Auswahl einer Teil-Wellenform, die dann ausgeführt wird, wenn der nicht abgebildete Teil-Wellenformauswähl-Schalter betätigt wird.
  • Zuerst wird, ähnlich wie in Schritt S31, eine vom Anwender eingegebene Teil- Nummer im Bereich p gespeichert, und wenn der Anwender einen Wellenformnamen eingibt, wird in Schritt S51 der Wellenformname im Bereich WN(p) im Klangfarbendatenbereich, der durch den Teil p bezeichnet wird, gespeichert.
  • Als nächstes werden in Schritt S52 die dem Berechnungsmodus CM(p) entsprechenden Wellenformdaten vorbereitet. Genauer gesagt, werden die durch den Wellenformnamen WN(p) bezeichneten Wellenformdaten aus der Gruppe von Wellenformdaten, die im vorgegebenen Bereich auf der HDD 4 unter Berücksichtigung des Berechnungsmodus CM(p) gespeichert wurden, ausgelesen, und die so ausgelesenen Wellenformdaten werden in den Wellenformdatenbereich im RAM 6 (siehe Fig. 2B) geladen.
  • Die Umschreibung "unter Berücksichtigung des Berechnungsmodus CM(p)" bedeutet folgendes:
  • Wenn eine Vielzahl von Wellenformdaten mit dem gleichen Wellenformnamen WN(p) vorhanden sind, einschließlich der Wellenformdaten, denen der dem Berechnungsmodus CM(p) entsprechende Wellenformmodus WM zugewiesen ist, dann werden nur die Wellenformdaten mit dem hier zugewiesenen Wellenformmodus WM ausgewählt und in den Wellenformdatenbereich geladen. Auf diese Weise kann der RAM 6 effizient genutzt werden. Alternativ können alle Wellenformdaten mit dem gleichen Wellenformnamen WN(p) unabhängig vom Berechnungsmodus CM(p) in den Wellenformdatenbereich geladen werden.
  • Wenn Wellenformdaten mit dem gleichen Wellenformnamen bereits im Wellenformdatenbereich des RAM 6 gespeichert wurden, ist die vorhandene Barbeitung nicht nötig, jedoch stellt ein Wieder-Laden der Wellenformdaten kein Problem dar.
  • Fig. 11 zeigt eine Routine für die Durchführung einer Wellenform-LPF- Verarbeitung, welche ausgeführt wird, wenn der nicht abgebildete Wellenform-LPF- Schalter betätigt wird.
  • Zuerst werden in Schritt S61, sobald der Anwender eine zu verarbeitende Wellenform und Inhalte einer Verarbeitung für die Wellenform eingibt, die zu verarbeitenden Wellenformdaten aus dem Wellenformdatenbereich des RAM 6 ausgelesen. Können die zu verarbeitenden Wellenformdaten nicht ausgelesen werden, werden sie aus der Gruppe der auf der Festplatte 4 gespeicherten Wellenformdaten abgerufen. Die Inhalte der Verarbeitung weisen verschiedene Arten des Abtastens mit verminderter Rate und ein zu begrenzendes Frequenzband auf.
  • Dann wird in Schritt S62 festgelegt, ob die so ausgelesenen Wellenformdaten einen wiederholt auszulesenden Schleifenabschnitt enthalten. Enthalten die Wellenformdaten keinen Schleifenabschnitt, erfolgt in Schritt S63 die Bandbegrenzungs-Verarbeitung. Dann wird in Schritt S64 zur Fertigstellung der Wellenform das Abtasten mit vermindeter Rate durchgeführt, und anschließend werden in Schritt S65 die so fertiggestellten Wellenformdaten im Wellenformdatenbereich in dem RAM 6 gespeichert. Die Bandbegrenzung-Verarbeitung wird angewandt, um ein Mischen von Aliasing-Geräuschen in die gespeicherten Wellenformdaten zu vermeiden, was der Fall wäre, wenn der Vorgang des Abtastens mit vermindeter Rate ausgeführt würde, um die Wellenformdaten in ihrer bestehenden Form ohne Ausführen der Bandbegrenzungs-Verarbeitung zu speichern. Deshalb sollte eine Bandbegrenzungs- Verarbeitung in soweit ausgeführt werden, daß das Auftreten von Aliasing-Geräuschen beim Abtasten mit vermindeter Rate vermieden wird. Ein zu begrenzendes Frequenzband wird in Schritt S61 durch den Anwender eingestellt.
  • In Fig. 12A bis 12D werden die Bearbeitungen der Schritte S63 und S64 erklärt. In den Figuren repräsentiert die Abszisse die Frequenz und die Ordinate den Pegel. Fig. 12A zeigt ein Beispiel des Frequenzspektrums einer Wellenform (Wellenformname: PIANO. 0) vor der Wellenform-LPF-Verarbeitung, d. h. ein Frequenzspektrum einer Original-Wellenform, die mit einer vorgegebenen Aufnahmeabtastfrequenz Fs zur Berechnung von Musiktonwellenformdaten bei der äquivalenten Abtastfrequenz von 48 kHz (Wellenformmodus WM = 0) abgetastet wurde. Fig. 12B zeigt ein Frequenzspektrum einer Wellenform, das entstand, nachdem eine Bandbegrenzung an der Wellenform aus Fig. 12A durchgeführt wurde. Fig. 12C zeigt ein Frequenzspektrum einer Wellenform, das durch Abtastung der Wellenform mit vermindeter Rate aus Fig. 12B mit der Hälfte der Originalaufnahmeabtastfrequenz entsteht, zur Berechnung der Musiktonwellenformdaten bei der äquivalenten Abtastfrequenz von 24 kHz (Wellenformmodus WM = 1). Fig. 12D zeigt ein Frequenzspektrum einer Wellenform, das entsteht, wenn die Wellenform aus Fig. 12C der Wellenform-LPF- Verarbeitung, d. h. der Bandbegrenzung-Verarbeitung unterzogen wurde, und anschließend die entstandenen Wellenformdaten mit einer Frequenz mit vermindeter Rate abgetastet wurden, die nur halb so groß wie die Aufnameabtastfrequenz ist, um die Musiktonwellenformdaten bei der äquivalenten Abtastfrequenz von 12 kHz (Wellenformmodus WM = 2) zu berechnen. Das in Fig. 12C beschriebene Abtasten mit vermindeter Rate wird, wie bereits unter bezug auf Fig. 12B zuvor beschrieben ausgeführt, indem jeder zweite Abtastwert der Wellenformdaten von Fig. 12B ausgelassen wird. Ähnlich erfolgt das Abtasten mit vermindeter Rate in Fig. 12D, indem nach Ausführen der Bandbegrenzungs-Verarbeitung jeder zweite Abtastwert der Wellenformdaten aus Fig. 12C ausgelassen wird. Deshalb kann das Abtasten mit vermindeter Rate gemäß der vorliegenden Ausführungsform nur bei einer Frequenz, die ein 2-n-Faches (n: eine positive Ganzzahl) der Aufnahmeabtastfrequenz der Original-Wellenform beträgt, ausgeführt werden. Es ist jedoch möglich, durch simultane Ausführung der Verarbeitungen in Schritten S63 und S64 das Abtasten mit einer Frequenz mit vermindeter Rate vorzunehmen, die ein willkürliches Vielfaches der Abtastfrequenz des Original-Wellenform ist.
  • Unter erneuter Bezugnahme auf Fig. 11, wird, wenn in Schritt S62 festgestellt wird, daß die abgerufenen Wellenformdaten einen Schleifenabschnitt aufweisen, in Schritt S66 die Wellenform in eine Wellenform mit Einschwingabschnitt ausgebildet, wobei mehrere Wiederholungen des Schleifenabschnitts mit dem Einschwingabschnitt verbunden werden. Dann erfolgt in Schritt S67 die Bandbegrenzung-Verarbeitung der ausgebildeten Wellenformdaten, und anschließend werden die bandbegrenzten Daten in Schritt S68 mit vermindeter Rate abgetastet. Dann werden in Schritt S69 ein neuer Einschwingabschnitt und ein Schleifenabschnitt separat von den so erzeugten Wellenformdaten abgetrennt, und eine Wellenform wird aus den Wellenformdaten in Schritt S70 fertiggestellt und gespeichert, ähnlich wie in Schritt S65. Die Verarbeitungen der Schritte S67 und S68 entsprechen den Schritten S63 und S64. Der Grund, weshalb die Wellenform mit einem Schleifenabschnitt der oben beschriebenen Verarbeitung unterzogen wird, ist folgender: bei Wellenformdaten mit Einschwingabschnitt und Schleifenabschnitt wird der Schleifenabschnitt aus einer kleinen Anzahl von Abtastwerten gebildet, weshalb ein Tiefpaßfilter höher Ordnung nicht geeignet ist, um die Originalwellenform einer Frequenzbegrenzung direkt zu unterziehen, wodurch keine zufriedenstellende Banddämpfungcharakteristik erhalten werden kann. Mit dem oben beschriebenen Verarbeitungverfahren kann ein Tiefpaßfilter höherer Ordnung auch für Wellenformdaten mit einem Schleifenabschnitt eingesetzt werden, um eine LPF- Verarbeitung mit verminderten Nebengeräuschen zu erreichen.
  • Die Fig. 13A und 13B zeigen die Details der in Schritt S6 aus Fig. 5 ausgeführten Tongenerator-Verarbeitung.
  • Erst werden, in Schritt S81 in Fig. 13A die Inhalte des Tongenerator- Registers (Fig. 2D) überprüft, um festzustellen, ob in Schritt S82 neue Daten in das Register geschrieben wurden oder nicht. Wenn keine neuen Daten eingeschrieben wurden, schreitet das Programm unmittelbar zu Schritt S84 fort. Wurden dagegen neue Daten geschrieben, erfolgt in Schritt S83 für den Tonerzeugungskanal, in den den neue Daten eingeschrieben wurden, die Tongenerator-Steuervorbereitungs- Verarbeitung. Genauer gesagt, besteht die Tongenerator-Steuervorbereitungs- Verarbeitung aus dem Konvertieren von Daten in einem Tonerzeugungskanals i (in welchen Daten neu eingeschrieben wurden) in verschiedene Steuerdaten für die aktuelle Wellenformberechnung und dem Einstellen der ersten Lese-Adresse zum Auslesen der Wellenformdaten, die den Daten in Kanal i entsprechen.
  • Im folgenden Schritt S84, wird die Berechnungszeit-Steuerung durchgeführt. Insbesondere wird ein Zeitpunkt für den Beginn des Auslesens von momentan wiedergegebenen Wellenformdaten auf einen Zeitpunkt tBC (Fig. 4) eingestellt, um die Berechnung der als nächstes wiederzugebenden Wellenformdaten derart einzuleiten, daß die Wellenformdaten kontinuierlich gelesen und ohne Unterbrechung in dem Wiedergabeblock (DMA-Steuereinheit 9) wiedergegeben werden. Im folgenden Schritt S85 wird festgelegt, ob der Berechnungsstartzeitpunkt tBC erreicht ist oder nicht, wobei das Programm sofort beendet wird, falls dies nicht der Fall ist.
  • Wurde der Berechnungsstartzeitpunkt erreicht, erfolgt zuerst eine Kanal- Steuerung, um eine Reihe von Berechnungen und einen Kanal zu bestimmen, der gemäß der durch die jeweiligen Kanäle zu erzeugenden Musiktöne in der Musiktonerzeugung unterbrochen werden soll (Schritt S86). Die Berechnungsfolge wird festgelegt, um die Berechnung für Kanäle zur Erzeugung von Musiktönen mit einer höheren Priorität früher auszuführen, falls nicht alle Berechnungen in der vorgesehenen Zeit beendet werden können (d. h. die Berechnungen werden sofort nach Erreichen der Zeit unterbrochen). Dann werden die in Schritt S83 vorbereiteten Daten auf der Zeitachse abgebildet, um Wellenformberechnung vorzubereiten (Schritt S87). Dann wird in Schritt S88 die Nummer eines Musiktonerzeugungskanals mit der ersten Berechnungsreihenfolge auf den Parameter i eingestellt.
  • In Schritt S89 aus Fig. 13B, wird der Wert des Berechnungsmodus CM(i) bestimmt, und wenn CM(i) = 0 gilt, wird ein Musiktonwellenformdatenwert für 128 Abtastwerte für den Kanal i erzeugt und den Daten in dem Puffer 0 in Schritt S90 hinzugefügt. Wenn CM(i) = 1 gilt, wird ein Musiktonwellenformdatenwert für 64 Abtastwerte für den Kanal i erzeugt und den Daten in dem Puffer 1 in Schritt S91 hinzugefügt. Wenn CM(i) = 2 gilt, wird ein Musiktonwellenformdatenwert für 32 Abtastwerte für den Kanal i erzeugt und in Schritt S92 den Daten in dem Puffer 2 hinzugefügt. Die Verarbeitungen der Schritte S90 bis S92 stellen keine einfache Addition von Musiktondatenwerten zu den Daten in dem entsprechenden Puffer dar. Genauer gesagt, erfolgt die Addition nach dem Ausführen der Steuerung der Aktualisierung einer Lese-Adresse, die der F-Nummer FN für jeden Kanal i (siehe Fig. 2D) entspricht, des Lesens und der Interpolierns des Wellenformabtastdatenwerts, der der Lese-Adresse entspricht, die aus dem in Fig. 2B gezeigten Wellenformdatenspeicherbereich ausgelesen wurde, und der anschließenden Klangfarben- und Lautstärke-Hüllkurven-Verarbeitung der interpolierten Wellenformabtastwerte, um Musiktonabtastwerte zu erhalten. Die oben beschriebenen Verarbeitungen werden für jeden Abtastwert von Musiktonwellenformdaten, der durch eine Musiktonerzeugungs-Verarbeitung erzeugt werden, wiederholt durchgeführt. Beispielsweise werden die oben genannten Verarbeitungen für den Kanal i mit dem Berechnungsmodus CM(i) = 0 so oft wiederholt, bis 128 Musiktonwellenformabtastwerte erhalten werden. Die ausgelesenen Wellenformdaten sind durch die Wellenformbezeichnungsdaten bezeichnete Wellenformdaten. Die Wellenformdaten werden entsprechend dem Wellenformnamen WN(p) des Teils p, zu dem ein durch den Tonerzeugungskanal i erzeugter Musikton gehört, und den Berechnungsmodus CM(i) ausgewählt und bezeichnet. Wenn die Aufnahmeabtastfrequenz der für ein momentan erzeugtes Musiktonsignal verwendeten Wellenformdaten nicht dem für den Kanal i eingestellten Berechnungsmodus (äquivalente Abtastfrequenz) entspricht, wird der Wert der F-Nummer FN durch den letzten Begriff der Gleichung (1) für die Berechnung der F-Nummer FN korrigiert. Diese Korrektur wird durchgeführt, um die Erzeugung eines Musiktons in der bezeichneten Tonhöhe sicherzustellen. Für Details der Verarbeitung in den S90 bis S92 wird auf die Beschreibung und Fig. 13 der japanischen Patentanmeldung Nr. 7- 197923 vom 12. Juli 1995 (entsprechend der amerikanischen Patentanmeldung vom 11. Juli 1996) verwiesen.
  • Wie bereits beschrieben, ist es möglich, auch wenn eine Wellenform mit einem für den bezeichneten Berechnungsmodus geeigneten Wellenformmodus nicht ausgewählt wird, Musiktonwellenformabtastwerte in der bezeichneten Tonhöhe SP in jedem beliebigen Berechnungsmodus durch Korrektur der F-Nummer FN zu erzeugen. Setzt jedoch die F-Nummer FN einen Wert voraus, der infolge der Korrektur etc. stark von dem Referenzwert "1" abweicht, kann der resultierend erzeugte Musikton von minderer Qualität sein. Wenn z. B. die F-Nummer FN für den Kanal infolge der Korrektur auf einen großen Wert korrigiert wird (z. B. FN > 2), dann übersschreiten die Hochfrequenzbandkomponenten der aus dem Wellenformdatenspeicherbereich ausgelesenen Wellenformdaten die Hälfte der äquivalenten Abtastfrequenz, was zur Erzeugung von Aliasing-Geräuschen in den durch die Interpolation erhaltenen Wellenformabtastwerten führt. Umgekehrt werden, wenn die F-Nummer FN infolge der Korrektur auf einen sehr kleinen Wert korrigiert wurde (z. B. FN < 0,5), die durch Interpolation erhaltenen Wellenformabtastwerte nur höhere harmonische Frequenzkomponenten enthalten, die niedriger als ein Viertel der äquivalenten Abtastfrequenz sind, wodurch die Qualität, die der für den Kanal festgelegten Zeitdichte zur Erzeugung von Musiktonwellenformabtastwerten entspricht, nicht erreicht wird. Deshalb ist es wünschenswert, bei der Bezeichnung von Wellenformdaten durch Wellenformbezeichnungsdaten, die zur Erzeugung von Musiktönen durch jeden Kanal i auszugelesen sind, Wellenformdaten zu wählen, die einen ihnen zugewiesenen Wellenformmodus besitzen, der für den Berechnungsmodus CM (i) für jeden Kanal geeignet ist, z. B. Wellenformdaten mit WM = 1 wenn CM = 1.
  • Erneut bezugnehmend auf Fig. 13B wird in Schritt S93 festgestellt, ob der momentane Kanal i der letzte Kanal ist oder nicht, d. h. ob die Wellenformberechnungen für alle Kanäle, die für die Erzeugung von Musiktönen benötigt werden, fertiggestellt wurden. Wenn eine Wellenform für einen oder mehrere Kanäle zu berechnen bleibt, wird in Schritt S94 die beim nächsten Mal zu berechnende Kanal-Nummer auf den Kanal i eingestellt und danach kehrt das Programm zu Schritt S89 zurück, um die Verarbeitung zu wiederholt auszuführen. Andererseits, wenn jedoch die Wellenformberechnungen für alle Kanäle fertiggestellt wurden, schritet das Programm zu Schritt S95 fort.
  • Im Schritt S95, wie bereits unter bezug auf Fig. 3 beschrieben, werden 64 in dem Puffer 1 und 32 in dem Puffer 2 erzeugte Musiktonwellenformabtastwerte interpoliert (überabgetastet), und die so erhaltenen jeweiligen 128 Musiktonwellenformdatenabtastwerte werden in den Puffern 1' und 2' als Musiktonwellenformdaten gespeichert. Dann werden in Schritt S96 die 128 Musiktonwellenformabtastwerte, die durch Addition der jeweiligen 128 Musiktonwellenformabtastwerte in den Puffern 0, 1' und 2' erhalten wurden, in den Puffer 0 gespeichert.
  • Im folgenden Schritt S97 werden die derart in Puffer 0 gespeicherten Musiktonwellenformdaten einer Hall-Bearbeitung unterzogen, um den Daten einen Halleffekt beizugeben. Dann wird in Schritt S98 die Wiedergabe der 128 Musiktonwellenformabtastwerte in Puffer 0 für den Wiedergabebereich reserviert und die vorliegende Tonerzeugungs-Verarbeitung anschließend beendet.
  • Wie bereits beschrieben, werden gemäß der vorliegenden Ausführungsform eine Vielzahl von Berechnungsmodi für die Berechnung von Musiktonwellenformdaten zur Erzeugung von Musiktönen bereitgestellt, und der Anwender kann den gewünschten Berechnungsmodus frei auswählen, und somit kann der Anwender entweder einen Modus wählen, in welchem eine vergrößerte Anzahl von Musiktönen erzeugt wird, oder einen Modus, in welchem qualitativ hochwertige Musiktöne erzeugt werden, abhängig vom Verwendungszweck der Musiktonerzeugung.
  • Da außerdem der Berechnungsmodus für jeden Teil festgelegt werden kann, können Musiktöne für den Teil mit höherer akustischer Wirkung in hoher Qualität erzeugt werden, um somit die eingeschränkte Rechenkapazität der Vorrichtung zur Erzeugung von Musiktönen bestmöglich auszunutzen.
  • Weiterhin können Wellenformdaten mit einer geringen Aufnahmeabtastfrequenz für einen Berechnungsmodus (Modus 1 oder 2) zur Erzeugung von Musiktönen in schlechterer Qualität durch LPF-Verarbeitung aus Wellenformdaten mit hoher Aufnahmeabtastfrequenz für einen Berechnungsmodus (Modus 0) zur Erzeugung von Musiktönen mit hoher Qualität vorbereitet werden. Außerdem können Wellenformdaten aus den so erzeugten Wellenformdaten entsprechend dem durch den Anwender ausgewählten Berechnungsmodus ausgewählt werden, um somit Musiktöne zu erzeugen. Demzufolge kann beispielsweise eine Wellenform im Falle, daß Musiktöne durch einen Kanal erzeugt werden, in dem die Berechnung mit einer geringen äquivalenten Abtastfrequenz durchgeführt wird, die gleiche Klangfarbe haben, wie die Wellenform eines mit hoher äquivalenter Abtastfrequenz berechneten Musiktons, ohne Aliasing- Geräusche zu erzeugen, obwohl diese eine geringfügig schlechtere Qualität aufweist.
  • Und außerdem gilt auch, daß die Wellenformdaten automatisch entsprechend dem durch den Anwender ausgewählten Berechnungsmodus gewählt werden, und demzufolge können in einem Kanal zur Erzeugung von Musiktönen mit hoher äqivalenter Abtastfrequenz Wellenformdaten mit hoher Aufnahmeabtastfrequenz und mit Frequenzkomponenten eines weiten Frequenzbereichs verarbeitet werden, während in einem Kanal zur Erzeugung von Musiktönen mit geringer äquivalenter Abtastfrequenz Wellenformdaten mit geringer Aufnahmeabtastfrequenz und mit Frequenzkomponenten eines engen Frequenzbereichs verarbeitet werden können. Dadurch entfällt die Notwendigkeit, die Bezeichnung einer Wellenform in den Klangfarbendaten zu ändern.
  • Nach der vorliegenden Ausführungsform werden, im Falle, daß ein Berechnungsmodus CM(p) zur Berechnung einer kleineren Anzahl von Abtastwerten ausgewählt wurde, wenn keine Wellenformdaten mit dem dem ausgewählten Berechnungsmodus CM(p) entsprechenden Wellenformmodus vorhanden sind, Wellenformdaten mit einem Wellenformmodus WM ausgewählt, der einem sich von dem gewählten Modus unterscheidendem Berechnungsmodus CM(p) entspricht, um ein Musiktonsignal auf der Grundlage der ausgewählten Wellenformdaten zu erzeugen. Dies ist jedoch nicht einschränkend. Es ist möglich, dass automatisch festzustellen ist, ob Wellenformdaten mit einem dem gewählten Berechnungsmodus CM(p) entsprechenden Wellenformmodus vorliegen oder nicht, und falls keine Daten vorliegen, erfolgt automatisch die Wellenform-LPF-Verarbeitung gemäß Fig. 11, um Wellenformdaten mit einem dem gewählten Berechnungsmodus CM(p) entsprechenden Wellenformmodus vorzubereiten, wobei ein Musiktonsignal auf der Grundlage der derart vorbereiteten Wellenformdaten erzeugt wird.
  • Weiterhin werden nach der vorliegender Ausführungsform die Wellenformdaten WDn (n = 1, 2, ...) der Wellenform-LPF-Verarbeitung unterzogen, um dabei Wellenformdaten WDn' und WDn" mit geringeren Aufnahmeabtastfrequenzen zu erhalten, dies ist jedoch nicht einschränkend. Die Wellenformdaten WDn können auch einer anderen Verarbeitung als der Wellenform-LPF-Verarbeitung unterzogen werden. Beispielsweise können Musiktöne zuerst mit einer geringen Aufnahmeabtastfrequenz aufgezeichnet werden, um die Wellenformdaten WDn' und WDn" direkt zu erhalten. Weiterhin können neben den Wellenformdaten WDn auch die Wellenformdaten WDn' und WDn" auf der Festplatte 4 gespeichert werden. Dann können die Wellenformdaten WDn' und WDn" direkt von der Festplatte 4 ohne Ausführen der Wellenform-LPF-Verarbeitung in den RAM 6 eingelesen werden.
  • Obwohl gemäß vorliegender Ausführungsform nur ein Berechnungsmodus CM(p) für jeden Teil ausgewählt werden kann, ist dies nicht einschränkend. Alternativ kann der Berechnungsmodus automatisch über eine Vielzahl von Kanälen gewechselt werden, die Musiktöne für den gleichen Teil entsprechend der für jeden Kanal eingestellten Lautstärke, Tonhöhe etc. erzeugen.
  • Nachfolgend wird ein zweite Ausführungsform der Erfindung beschrieben. Die zweite Ausführungsform verwendet Hardware (Fig. 1) und den grundlegende Musiktonerzeugungs-Verarbeitung (Fig. 4), die im wesentlichen identisch mit der der ersten Ausführungsform sind, außer daß die Inhalte der durch die CPU 1 ausgeführten Steuer-Verarbeitung und die dafür verwendeten Formate der Musiktonsteuerdaten sich von jenen der ersten Ausführungsform unterscheiden.
  • Die Fig. 14A bis 14E zeigen im RAM 6 gespeicherte Formate von Klangfarbendaten und Wellenformdaten und im Eingabepuffer gespeicherte Daten und das im RAM 6 voreingestellte Tongenerator-Register.
  • In Fig. 14A wird zuerst ein Format des Klangfarbendaten-Registers gezeigt, in welchem die Klangfarbendaten gespeichert werden, deren Berechnungsmodus CM(p), wie beschrieben unter Fig. 2A, weggelassen wird.
  • Fig. 14B zeigt ein Format eines Abtastwertpuffers WB. Fig. 14E zeigt ein Format des Abtastwertpuffers OB, der dem Puffer 0 in Fig. 3 entspricht.
  • Die Puffer WB und OB verfügen jeweils über einen Wellenformdatenspeicherbereich für jeweils 128 Musiktonwellenformabtastwerte (WSD1 bis WSD128 und OD1 bis OD128). Der Ausgabepuffer OB speichert die durch sequenzielles Addieren von Musiktonwellenformdaten für 32 Tonerzeugungskanäle erhaltenen Wellenformdaten. Eine Berechnung der Wellenformdaten wird durch Berechnung von 128 Abtastwerten zur Wiedergabe über eine Zeitspanne, die einem Zeitrahmen pro Kanal entspricht, und durch Wiederholung der gleichen Berechnung für die maximal 32 Kanäle (d. h. die momentan zum Erklingen gebrachten verwendeten Kanäle) durchgeführt. Der Abtastwertpuffer WB speichert Wellenformdaten für einen Kanal, und der Ausgabepuffer OB akkumuliert neue Wellenformdaten für einen Kanal zu den dort bereits gespeicherten Wellenformdaten, sobald die neuen Wellenformdaten für einen Kanal berechnet sind. In diesem Zusammenhang ist die einem Rahmen entsprechende Zeitperiode gleich einem Zeitintervall zwischen den in Fig. 4C abgebildeten benachbarten Takt-Auftrittszeitpunkten gemäß der ersten Ausführungsform.
  • Fig. 14C zeigt ein Format des Eingabepuffers, das mit dem Format des Eingabepuffers in Fig. 2C identisch ist, dessen Beschreibung weggelassen wird.
  • Fig. 14D zeigt ein Format des Tongenerator-Registers, das dem Tongenerator-Register aus Fig. 2D in der ersten Ausführungsform entspricht. Das Tongenerator-Register in Fig. 14D unterscheidet sich von dem Tongenerator- Register in Fig. 2D insofern, als es eine Ton-Nummer anstelle der Tonhöhe PS und der F-Nummer FN aus Fig. 2D speichert, den Bereich für den Berechnungsmodus CM(p) in Fig. 2D weggelassen hat und einen Bereich zur Speicherung von Daten CD1 bis CD6 enthält, auf den später eingegangen wird. Davon abgesehen ist das Tongenerator-Register der vorliegenden Ausführungsform identisch mit der ersten Ausführungsform, und aus diesem Grund wird auf dessen Beschreibung verzichtet.
  • Fig. 15 zeigt eine beispielhafte Anordnung einer Steuer-Bedienleistenansicht, die auf der Anzeigeeinheit 3 angezeigt wird, wenn eine weiter unten beschriebene Hauptroutine der Fig. 16 angesteuert wird. Die Ansicht wird auf einem Teil des Monitors des Anzeigegeräts 3 in einem sogenannten Fenster-Format angezeigt. Bei der Steuer-Bedienleistenabbildung sind verschiedene Anzeigefelder angeordnet, einschließlich einem MIDI-Monitor 31, einem LFO EIN/AUS-Anzeigefeld 33, einem Interpolationeinstellungs-Anzeigefeld (INT) 34, einem Digitalfilter (DCF) -Einstellungs-Anzeigefeld 35, einem Effekt- (EFT) -Einstellungs-Anzeigefeld 36, einem Abtastfrequenz-(GSR) -Einstellungs-Anzeigefeld 37, einem Einstellungs- Anzeigefeld für die maximalen Anzahl von Tonerzeugungskanälen (MPF) 38, einem Anzeigefeld für die Anzahl der momentan zum Erklingen gebrachten Kanäle 39, ein Anzeigefeld für die relative Kapazitätsauslastung 40, und einem Tonpegel-Anzeigefeld 41. Weiterhin gibt es verschiedene Tastenschalter, einschließlich einer Cursor (CURSOR)-Taste 42, einem Wert (VALUE) -Schalter 43, einem Kapazitätsauslastung (DUTY) -Schalter 44 und einem Rücksetz (RESET) Schalter 45. Der Abschnitt 32 mit schraffiertem Hintergrund zeigt an, daß der Cursor dort plaziert ist.
  • Auf dem MIDI-Monitor 31 leuchtet eine Lampe, die einem MIDI-Kanal entspricht, der Daten empfangen oder geliefert hat. Ein LFO (Niederfrequenzgenerator), der über den EIN/AUS-Anzeigebereich des LFO 33 angezeigt wird, gibt ein Schwingungseffekt-Vibrato einem zu erzeugenden Musikton bei. Das EIN/AUS-Schalten des LFO kann durch Bewegen des Cursors 32 auf dem Anzeigefeld 33 mit Hilfe der Cursor-Taste 42 und Betätigen des Wert-Schalters 43 durchgeführt werden. Die von den anderen Anzeigefeldern 34 bis 38 angezeigten Funktionen können auf die gleiche Weise ein- oder ausgeschaltet werden.
  • Das Interpolationseinstellung-Anzeigefeld 34 zeigt an, welches Interpolationsverfahren ausgewählt wurde. Genauer gesagt, wenn die Abtastfrequenz von Wellenformdaten in einer Wellenformtabelle (entsprechend dem Wellenformdaten-Speicherbereich aus Fig. 2B bei der ersten Ausführungsform) im RAM 6 gemäß der Abtastfrequenz eines zu erzeugenden Musiktons versetzt wird, kann eine Leseadressierung zum Auslesen der Wellenformdaten einen nicht ganzzahligen Teil aufweisen. Das Interpolationseinstellung-Anzeigefeld 34 wählt ein geeignetes Interpolationsverfahren aus, um einen dem nicht ganzzahligen Teil entsprechenden Abtastwert zu erhalten. Das Interpolationseinstellung-Anzeigefeld 34 kann ein 4- Punkt-lnterpolationsverfahrens, das eine Kubik-Funktion anwendet, ein 2-Punkt- Interpolationsverfahrens, das eine lineare Funktion anwendet und un keinen Gebrauch von dem Interpolationsverfahren macht, das für Musiktöne ausgewählt wird, bei denn keine Frequenzverschiebung erforderlich ist, wie bei Perkussionsinstrumententönen.
  • Das Digitalfilter-Einstellungs-Anzeigefeld 35 wählt als digitales Filter, ein Filter erster Ordnung, ein Filter zweiter Ordnung oder ohne Klangfarbenfilter aus.
  • Das Effekt-Einstellungs-Anzeigefeld 36 schaltet den Halleffekt oder ein Tiefpaßfilter (LPF) ein bzw. aus.
  • Die oben genannten Einstellungs-Anzeigefelder stellen die Inhalte der von der CPU 1 ausgeführten Tongenerator-Verarbeitung aus.
  • Weiterhin betrifft das Abtastfrequenz-Einstellungs-Anzeigefeld 37 eine dritte Ausführungsform der Erfindung, welche im folgenden mit bezug auf Fig. 22A und 22B beschrieben wird, und die äquivalente Abtastfrequenz (normalerweise 48 kHz) ändert, in welcher die Berechnung von Musiktonwellenformdaten durch den Software- Tongenerator erfolgt, wenn er auf eine geringere Frequenz eingestellt werden soll. Gemäß der Ausführungsform kann die Abtastfrequenz zusätzlich zu 48 kHz auf 24 kHz und 12 kHz eingestellt werden.
  • Das Einstellungs-Anzeigefeld für die maximalen Anzahl von Tonerzeugungskanälen 38 betrifft eine vierte Ausführungsform der Erfindung, auf welche im folgenden eingegangen wird, und zeigt die maximale Anzahl der Tonerzeugungskanäle an, die zur Tonerzeugung durch den Software-Tongenearator zu verwenden sind, der simultan maximal 32 Musiktöne erzeugen kann, wenn die maximale Zahl der gleichzeitig zu erzeugenden Musiktöne auf weniger als 32 einschränkt ist, um die Belastung der CPU 1 zu reduzieren. Die maximale Anzahl der Tonerzeugungskanäle, die zur Tonerzeugung verwendet werden können, kann in einem Bereich von 1 bis 32 durch Ändern des numerischen Wertes verändert werden, der von dem Einstellungs-Anzeigefeld für die maximalen Anzahl von Tonerzeugungskanälen 38 angezeigt wird.
  • Das Anzeigefeld für die Anzahl der momentan zum Erklingen gebrachten Kanäle 39 zeigt die Anzahl der aktuell für die Tonerzeugung genutzten Kanäle an, d. h. die Anzahl der momentan durch den Software-Tongenerator erzeugten Musiktöne.
  • Das Anzeigefeld für die relative Kapazitätsauslastung 40 zeigt das Verhältnis der durch den Software-Tongenerator belegten Kapazität zu der Gesamtkapazität der CPU 1. Die Kapazität wird in einer Querstrichabbildung 40a angezeigt. Weiterhin kann durch Bedienung des Schalters für die relative Kapazitätsauslastung 44, der obere Grenzwert DR der relativen Auslastung der Kapazität der CPU 1, die durch den Software-Tongenerator belegt werden kann, eingestellt werden, und die so eingestellte obere Grenze der relativen Kapazitätsauslastung wird im Anzeigefeld für die relative Kapazitätsauslastung 40 in einer gepunkteten Linie 40b angezeigt.
  • Das Tonerzeugungspegel-Anzeigefeld 41 zeigt den Tonpegel eines momentan erzeugten Musiktonsignals in einer Querstrichabbildung 41a.
  • Nachfolgend werden die Steuer-Verarbeitungen, die durch die Vorrichtung zur Erzeugung von Musiktönen nach der zweiten Ausführungsform durchgeführt werden, mit bezug auf die Fig. 16 bis 20 beschrieben.
  • Fig. 16 zeigt eine Hauptroutine, die durch die CPU 1 ausgeführt wird. Wenn das Programm getriggert wird, werden in Schritt S101 zuerst die Initialisierungen, wie Voreinstellung der Registerbereiche ausgeführt und anschließend wird eine auf dem Bildschirm in Fig. 15 gezeigte anzuzeigende Abbildung in Schritt S102 vorbereitet. Dann wird das Auftreten eines Triggerfaktors in Schritten S103 und S104 erwartet. Wenn ein Triggerfaktor vorliegt, werden in Schritt S105 die Inhalte des Triggerfaktors bestimmt und daraufhin die entsprechende Verarbeitung ausgeführt. Der Triggerfaktors weist die folgenden Bearbeitungen auf: eine MIDI-Verarbeitung, die auszuführen ist, wenn MIDI-Daten in den Eingabepuffer in Schritt S106 geschrieben werden; eine Tongenerator-Verarbeitung, die in Schritt S108 in den einem Rahmen entsprechenden vorgegebenen Zeitintervallen auszugeführen ist; sonstigen Verarbeitungen, die auszugeführen sind, wenn in Schritt S110 sonstige Schalter- Ereignisse auftreten; und eine Beendigungsverarbeitung, welche auszuführen ist, wenn in Schritt S112 ein Beendigungs-Befehl eingegeben wird. Die Beendigungsverarbeitung ist zum Sichern von Einstellungsdaten und zum Löschen der Register da. Nach Ausführung der Beendigungs-Verarbeitung wird die Abbildung aus Fig. 15 geschlossen und dann das Programm beendet. Wenn in Schritt S106 die MIDI- Verarbeitung durchgeführt wurde, wird in Schritt S107 auf dem MIDl-Monitor 31 eine Anzeige beleuchtet, die dem Kanal entspricht, der die MIDI-Daten empfangen hat. Sonstige Verarbeitungen weisen Verarbeitungen auf, die verschiedenen Bedienleisteneingaben und Befehlseingaben entsprechen, die teilweise unter bezug auf Fig. 21 nachfolgend beschrieben werden. Nachdem die sonstigen Verarbeitungen durchgeführt wurden, erfolgt in Schritt S111 die Anzeige-Änderungs-Verarbeitung, die einer Durchführung der sonstigen Verarbeitungen entspricht. Die Tongenerator- Verarbeitung in Schritt S108 erfolgt, wenn festgestellt wird, daß die in Fig. 4C gezeigte Lese-Wiedergabe-Verarbeitung zum nächsten Rahmen fortgeschritten ist, was durch eine Unterbrechnung, die durch Durchzählen von 128 Abtast-Takten durch den Zeitgeber 7 getriggert wird, oder durch Triggern der DMA-Steuereinheit 9 ausgelöst wird. Die Tongenerator-Verarbeitung wird im einzelnen unter bezug auf die Fig. 18A, 18B und 19 beschrieben. Die mit relativen Kapazitätsauslastung/erzeugten Musiktonanzahl-Anzeige-Verarbeitung (P-Anzeige-Verarbeitung) in Schritt S109 wird unter bezug auf Fig. 19 beschrieben. In diesem Zusammenhang beziehen sich die Fig. 18A, 18B und 19 auf die zweite Ausführungsform, bei der EINVAUS-schalten des LFO, ein Interpolationseinstellen, ein Digitalfiltereinstellen und Effekteinstellen durch Bewegen des Cursors in der Steueransicht auf der Anzeige 3 durch geführt werden können. Andererseits beziehen sich die Fig. 22A und 22B auf die dritte Ausführungsform, bei der ein Abtastfrequenzeinstellen durch Bewegen des Cursors in der Steuer-Ansicht auf der Anzeige 3 durchgeführt werden können. In der vorliegenden Beschreibung wird auch die vierte Ausführungsform kurz beschrieben, in welcher die maximale Anzahl der zu erzeugenden Musiktöne (maximale Anzahl der zur Tonerzeugung verwendeten Tonerzeugungskanäle) durch Bewegen des Cursors in der Steuer-Ansicht eingestellt werden kann.
  • Fig. 17 zeigt Einzelheiten einer Ton-EIN-Ereignis-Verarbeitung, bei welcher es sich um eine der MIDI-Verarbeitung handelt, die, ähnlich wie die MIDI- Empfangsunterbrechungs-Verarbeitung aus Fig. 6, dann ausgeführt wird, wenn Ton- EIN-Ereignisdaten in den Eingabepuffer geschrieben wurden.
  • Zunächst werden in Schritt S120 die Ton-Nummer, Geschwindigkeit und Tonnummer für jeden Teil bei den empfangenen Daten jeweils als Parameter NN, VEL und t eingestellt, und gleichzeitig wird der Ereignisauftritts-Zeitpunkt (Datenempfangszeit) als Parameter TM eingestellt. Dann wird in Schritt S121 die Tonerzeugung-Zuweisungs-Verarbeitung durchgeführt, um einen Tonerzeugungskanal des Tongenerator-Registers (Fig. 14D) zu bestimmen, in welchen die Klangfarbendaten einzuschrieben sind, und die zugewiesene Kanal-Nummer wird als Parameter i eingestellt. Im folgenden Schritt S122 werden die Klangfarbendaten TP(t), welche entsprechend der Klangnummer t für jeden Teil aus dem RAM 6 ausgelesen wurden, entsprechend der Ton-Nummer NN und der Geschwindigkeit VEL bearbeitet. Weiterhin wird in Schritt S123 der so bearbeitete Klangfarbenwert (einschließlich der Tonerzeugungstonhöhe FN) zusammen mit den Ton-EIN-Daten und dem Ereignisauftrittszeitpunkt TM in das i-Kanalregister des Tongenerator-Registers eingeschrieben und anschließend wird das Programm beendet.
  • Die Fig. 18A und 18B zeigen ein Programm zur Ausführung der Tongenerator-Verarbeitung, die in den einem Rahmen entsprechenden Zeitintervallen getriggert wird.
  • Erst wird in Schritt S130 aus Fig. 18A, der Zeitpunkt berechnet, zu welchem die Tongenerator-Verarbeitung beendet werden soll. Der Beendigungszeitpunkt wird auf der Grundlage der relativen Kapazitätsauslastung der Kapazität, die durch den Software-Tongenerator belegt wird, zu der Gesamtkapazität der CPU 1 berechnet, und die Verarbeitung in Schritt S130 dient zur Berechnung einer Zeitspanne, in welcher Musiktonwellenformdaten (Tongenerator-Verarbeitung) erzeugt werden können. Genauer gesagt, werden in der Tongenerator-Verarbeitung Wellenformdaten für einen Rahmen (128 Abtastwerte) für 32 Kanäle berechnet, jedoch wird im Falle, daß die vorgegebene Zeitspanne, in welcher die CPU belegt sein darf, abgelaufen ist, die Verarbeitung zwangweise beendet, sogar bevor die Berechnung der Wellenformdaten fertiggestellt ist. Wenn die Berechnung unterbrochen ist, können die Wellenformdaten für einige Kanäle nicht berechnet werden. In diesem Fall werden die Musiktöne aus diesen Kanälen zwangsweise gedämpft, d. h. der Lautstärkepegel der Musiktonsignale wird deutlich verringert, um die Erzeugung von Musiktönen zu stoppen. Der Zeitpunkt der Zwangsdämpfung TL (Zeitgrenze) kann mit der folgenden Gleichung (2) berechnet werden:
  • TL = ST + FL · DR - US - AS ...(2)
  • wobei ST den Start-Zeitpunkt des momentan wiederzugebende Rahmens, FL eine Zeitrahmenlänge (Länge eines Rahmens), DR die relative Kapazitätsauslastung, US eine Beendigungszeitspanne (eine Zeitspanne, die zur Beendigung der Verarbeitung erforderlich ist (Zwangsdämpfung)) und AS eine Zeitspanne nach der Verarbeitung (eine Zeitspanne, die zur Ausführung einer Hall-Bearbeitung, LPF-Berechnung etc. an den erzeugten Wellenformen für eine Vielzahl von Kanälen und anschließender Reservierung der Wellenformen für die Wiedergabe durch die DMA-Steuereinheit 9 erforderlich ist, um dadurch die Tongenerator-Verarbeitung fertigzustellen) repräsentiert.
  • Die Zeitbegrenzung TL gibt somit an, wie lange die während der Tongenerator- Verarbeitung für jeden Rahmen ausgeführte Musiktonerzeugungs-Verarbeitung für jeden Kanal fortgesetzt werden soll. Nach der Gleichung (2) ist von der Zeitspanne ab dem aktuellen Start-Zeitpunkt des Zeitrahmens (ST) bis zum aktuellen Beendigung- Zeitpunkt des Zeitrahmens (ST + FL) eine durch die relative Kapazitätsauslastung bestimmte erste Zeitspanne für die Tongenerator-Verarbeitung und die restliche Zeitspanne für andere Verarbeitungen durch den Software-Tongenerator und sonstige Anwendungs-Verarbeitungen reserviert. Die relative Kapazitätsauslastung DR wird durch den Schalter für die relative Kapazitätsauslastung 44 eingestellt. In der obigen Gleichung (2), wird die Zeitgrenze präzise berechnet, indem die Beendigungszeitspanne US und die Zeitspanne nach der Verarbeitung AS berücksichtigt werden, jedoch können diese Überlegungen auch weggelassen werden.
  • Als nächstes wird in Schritt S131 die Kanal-Steuerung ausgeführt. Die Kanal- Steuerung dient zum Einstellen der Berechnungsreihenfolge der 32 Kanäle, so daß die Wellenformberechnung eines Kanals zur Musikton-Erzeugung mit höherer Priorität (ein Kanal zur Musikton-Erzeugung, der unverzichtbar ist) früher erfolgt, da der vorhergehenden Beschreibung zu entnehmen ist, besteht für eine Wellenformberechnung für einen Kanal dem ein niedriger Stellenwert zur Berechnung zugeteilt wurde eine höhere Wahrscheinlichkeit vor seiner Fertigstellung beendet zu werden. Unter einem Kanal zur Musikton-Erzeugung mit einer höheren Priorität versteht man einen Kanal zur Musikton-Erzeugung mit einem höheren Klangpegel oder einen Kanal zur Musikton-Erzeugung, der nur über einen sehr kurzen Zeitraum Musiktöe ausgibt. Andererseits versteht man unter einem Kanal zur Musikton- Erzeugung mit geringerer Priorität nicht nur einen Kanal, der derzeit nicht zur Musiktonausgabe benutzt wird, sondern auch einen Kanal zur Musikton-Erzeugung mit niedrigerem Klangpegel. Nach Durchführung der Kanal-Steuerung, wird der Ausgabepuffer OB gelöscht und der die Berechnungsfolge bezeichnende Zeiger i wird in Schritt S132 auf 1 eingestellt. Danach erfolgt in den Schritten S133 bis S144 die Wellenformdatenberechnungs-Verarbeitung für jeden Tonerzeugungskanal.
  • Zuerst wird in Schritt S133 eine durch einen Adressenzeiger im RAM 6 bezeichnete Adresse auf eine Adresse eingestellt, die einem Kanal des Tongenerator- Registers mit der i-ten Stelle der Berechnungsfolge entspricht, so daß Daten für den Kanal i gelesen werden können, um dadurch die der Wellenformdatenberechnung- Vorbereitungs-Verarbeitung auszuführen. Dann wird ein LFO-Flag (LFO- Kennzeichen) CD1 in Schritt S134 geprüft. Wenn CD1 = 1 gilt, erfolgt in Schritt S135 die LFO-Verarbeitung. Der LFO-Verarbeitung dient der Frequenzmodulation einer F-Nummer FN, die der Ton-Nummer NN entspricht, durch eine LFO- Wellenform (d. h. Vibrato-Bearbeitung). Die Frequenz des LFO ist geringer als die Musiktonfrequenz, und ein Zeitrahmen besitzt eine kurze Zeitspanne (128 Abtastwerte), weshalb ein LFO-Frequenzwert für einen Zeitrahmen ausreichend ist. Wird keine Vibrato-Bearbeitung benötigt, fährt das Programm nach dem Schritt S134 mit Schritt S136 fort. In Schritt S136 erfolgt ein Wellenform-Lesen aus der bezeichneten Wellenformtabelle, und die Interpolation-Verarbeitung wird durchgeführt.
  • Das Wellenform-Lesen und die Interpolation-Verarbeitung in Schritt S136 werden im folgenden unter bezug auf Fig. 19 detailliert beschrieben. In der Verarbeitung werden die Wellenformdaten für den durch den Parameter i bezeichneten Kanal für einen Rahmen (128 Abtastwerte) berechnet. Zuerst wird in Schritt S150 ein Abtastwertnummer-Zähler s auf 1 gesetzt. Dann wird in Schritt S151 unter bezug auf das Interpolationsverfahren-Register CD2 ein Interpolationsverfahren ausgewählt. Wenn CD 2 = 0 gilt, erfolgt keine Interpolation, wie bei der Erzeugung von Tönen eines Perkussionsinstruments, die keine Tonhöhen-Konvertierung benötigen. Wenn CD2 = 1 gilt, wird eine 2-Punkt-lnterpolation durchgeführt, wie in einem Fall, wenn eine grobe Interpolation ausreichend ist. Wenn CD5 = 2 gilt, wird eine 4-Punkt- Interpolation durchgeführt, wie bei der Erzeugung von zarten Musiktönen, in welchen Aliasing-Geräusche auffallen würden.
  • Erfolgt keine Interpolation, wird die F-Nummer FN zu einer Adresse addiert, die durch die direkt vorausgehende Berechnung (gemäß vorliegender Ausführungsform eine Adresse, die am Ende des Auslesens der Wellenform im direkt vorausgehenden Zeitrahmen für den Tonerzeugungskanal erzeugt wurde, für welchen die aktuelle Berechnung durchgeführt wird) verwendet wurde, um somit die Adresse in Schritt S152 zu aktualisieren. Ein Wellenformabtastwert wird aus der bezeichneten Wellenformtabelle entsprechend der aktualisierten Adresse gelesen und in ein RD- Register gesetzt, das in einem vorgegebenen Bereich des RAM 6 voreingestellt ist, in Schritt S153. Dann werden in Schritt S154 die Inhalte des RD-Registers in einen Abtastwertpuffer WSD(s) gesetzt. Die oben beschriebene Verarbeitung wird so oft wiederholt, bis der Abtastwertnummer-Zähler s in Schritt S155 und S156 bis auf 128 durchgezählt. Wenn die beschriebene Verarbeitung 128 Mal ausgeführt wurde, kehrt das Programm zu der Tongenerator-Verarbeitung gemäß Fig. 18A und 18B zurück.
  • In der oben beschriebenen Verarbeitung, wird der durch den nicht ganzzahligen Teil der Adresse der F-Nummer FN verursachte nicht ganzzahlige Teil vernachlässigt, wodurch Aliasing-Geräusche entstehen. Enthält die F-Nummer FN jedoch keinen nicht ganzzahligen Teil, so entfällt dieses Problem.
  • Wenn CD2 = 1 gilt, d. h. bei 2-Puntt-lnterpolation, erfolgt in Schritt S157 eine Aktualisierung der Adresse durch Hinzufügen der F-Nummer FN zu der für eine direkt vorausgehende Berechnung verwendete Adresse. In diesem Fall enthält die aktualisierte Adresse einen Ganzzahl-Teil und einen nicht ganzzahligen Teil, sodaß Wellenformdaten mit zwei Abtastwerten, die die Adresse einschließen (Abtastwerte, die durch eine Adresse des Ganzzahl-Teils und eine Adresse des Ganzzahl-Teils plus 1 bezeichnet werden) in Schritt S158 aus der bezeichneten Wellenformtabelle gelesen werden. Die Daten der zwei Abtastwerte werden auf der Grundlage eines Wertes des nicht ganzzahligen Teils linear interpoliert, und der daraus resultierende Wert wird in Schritt S159 in dem im RAM 6 voreingestellten ID-Register eingestellt. Dann werden in Schritt S160 die Inhalte des ID-Registers im Abtastwertpuffer WSD(s) eingestellt. Der vorher beschriebene Verarbeitung wird in Schritt S161 und S162 wiederholt ausgeführt, bis der Abtastwertnummer-Zähler s bis 128 durchgezählt. Nach 128 Wiederholungen der Verarbeitung, kehrt das Programm zur Tongenerator- Verarbeitung in Fig. 18A und 18B zurück.
  • Wenn CD2 = 2 gilt, d. h. bei 4-Punkt-lnterpolation, erfolgt in Schritt S163 eine Aktualisierung der Adresse durch Hinzufügen der F-Nummer FN zu der für eine direkt vorausgehende Berechnung verwendeten Adresse. In diesem Fall enthält die aktualisierte Adresse einen Ganzzahl-Teil und einen nicht ganzzahligen Teil, sodaß Wellenformdaten mit vier Abtastwerten, die die Adresse einschließen (Abtastwerte, die durch Adressen des Ganzzahl-Teils minus 1, des Ganzzahl-Teils, des Ganzzahl- Teils plus 1 und des Ganzzahl-Teils plus 2 bezeichnet werden) in Schritt S164 aus der bezeichneten Wellenformtabelle gelesen werden. Der Wert eines Punktes, der dem nicht ganzzahligen Teil auf einer Kurve dritter Ordnung (kubische Kurve) entspricht, die die vier Abtastwerte verbindet, wird bestimmt, und der so bestimmte Wert wird in Schritt S166 im ID-Register eingestellt. Dann werden in Schritt S166 die Inhalte des ID-Registers iin den Abtastwertpuffer WSD(s) gesetzt. Die oben beschriebene Verarbeitung wird in Schritt S167 und S168 wiederholt ausgeführt, bis der Abtastwertnummer-Zähler s auf 128 durchgezählt. Nach 128 Wiederholungen der Verarbeitung kehrt das Programm zur Tongenerator-Verarbeitung in Fig. 18A und 18B zurück.
  • Nochmals zurückkommend auf Fig. 18A, wird in Schritt S137 nach Durchführung des Wellenform-Auslesens und Interpolationsverarbeitung ein Filter- Steuer-Register CD3 in Fig. 18B geprüft. Gilt CD3 = 0, erfolgt keine Digitalfilter- Verarbeitung, wonach das Programm mit Schritt S140 fortfährt, um die Lautstärkensteuerung und Akkumulations-verarbeitung durchzuführen. Wenn CD5 = 1 gilt, wird in Schritt S138 eine Filter erster Ordnung-Verarbeitung mit einer den Filter-Steuerdaten entsprechenden Frequenzcharakteristik an den Werten der Abtastwertpuffer WB (WSD(1) bis WSD(128)) durchgeführt. Falls andererseits gilt CD5 = 2, wird in Schritt S139 eine Filter zweiter Ordnung -Verarbeitung mit einer den Filtersteuerdaten entsprechenden Frequenzcharakteristik an den Werten der Abtastwertpuffer WB durchgeführt. Dann werden in Schritt S140 die Lautstärkensteuerung und Akkumulations-Verarbeitung ausgeführt.
  • In Schritt S140 wird die Lautstärkensteuerung durchgeführt, welche eine Lautstärkezeitvariation von einer ansteigenden Flanke einer Musiktonwellenform und bis zu einer abfallenden Flanke derselben an den Werten der Abtastwertpuffer WB (WSD(1) bis WSD(128)) auf der Grundlage eines Amplituden-Hüllkurven- Generators (EG) und den Kanallautstärkenparametern anwendet. Die Amplitude EG erzeugt im allgemeinen eine gemäßigte Kurve, weshalb ein einziger EG-Wert für 128 Abtastwerte ausreicht. Die so über den Pegel gesteuerten Werte der Abtastwertpuffer WB werden zu den jeweiligen Abtastwerten in den Ausgabepuffern OB (OD(1) bis OD(128)) addiert. Die Addition wird für jeden Kanal mit der i-ten Stelle der Berechnungsfolge wiederholt ausgeführt, wobei ein akkumulierter Wert der bis dahin für alle Kanäle erzeugten Musiktonwellenformdaten in dem Ausgabepuffer OB gespeichert wird.
  • Danach wird in Schritt S141 festgestellt, ob der Beendigungszeitpunkt TL erreicht wurde oder nicht. Wenn der Beendigungszeitpunkt TL erreicht wurde, erfolgt in Schritt S143 die Beendigungs-Verarbeitung, das heißt, daß gedämpfte Wellenformen zur zwangsweisen Dämpfung von Musiktonwellenformen für Kanäle erzeugt werden, deren Wellenformdaten vor dem Beendigungszeitpunkt noch nicht berechnet wurden, und die so erzeugten Wellenformen zu Daten in dem Ausgabepuffer OB addiert werden.
  • Wenn der Beendigungszeitpunkt nicht erreicht wurde, so wird in Schritt S142 festgestellt, ob die Verarbeitung für alle momentan zur Tonerzeugung verwendeten Kanäle durchgeführt wurde oder nicht. Obgleich 32 Kanäle im Tongenerator-Register bereitgestellt werden, wird das Programm, falls die Anzahl der momentan für die Tonerzeugung verwendeten Kanäle geringer als 32 ist und die Antwort auf die Frage in Schritt S142 positiv (YES) ausfällt, wenn die Verarbeitung zur Erzeugung von Musiktönen für diese Kanäle abgeschlossen ist, zu Schritt S145 usw. fortschreiten. Falls andererseits die Musiktonerzeugungs-Verarbeitung nicht für alle momentan zur Tonerzeugung verwendeten Kanäle fertiggestellt wurde, wird in Schritt S144 l zu dem die Berechnungsfolge bezeichnenden i-Wert hinzugefügt, wonach das Programm zu Schritt S133 zurückkehrt.
  • Wenn die Musiktonerzeugungs-Verarbeitung für alle Kanäle fertiggestellt wurde, oder wenn die Beendigungs-Verarbeitung durchgeführt wurde, schreitet das Programm zu Schritt S145 fort, in welchem das Effekt-Steuer-Register geprüft wird. Wenn CD4 = 0 gilt, wird keine Effekt-Beigebung ausgeführt, wonach das Programm zu Schritt S148 springt. Wenn CD4 = 1 gilt, erfolgt die Berechnung des Tiefpaßfilters, um in Schritt S146 durch ein Tiefpaßfilter LPF alle Hochfrequenzkomponenten der 128 Abtastwerte in dem Ausgabepuffer OB abzuschneiden, wonach das Programm mit Schritt S148 fortfährt. Gilt CD4 = 2, erfolgt die Berechnung des Halls, um den 128 Abtastwerten in Schritt S147 einen Halleffekt beizugeben, wonach das Programm zu Schritt S148 fortschreitet.
  • In Schritt S148 wird die Wiedergabe der so vorbereiteten und im Ausgabepuffer OB gespeicherten Wellenformdaten reserviert, indem die DMA- Steuereinheit 9 von den im RAM 6 gespeicherten Adressen an informiert wird.
  • Fig. 20 zeigt ein Programm zur Ausführung der Verarbeitungen für die relative Kapazitätsauslastung und die Anzeige der Anzahl der erzeugten Musiktöne (P Anzeige-Verarbeitung). Zuerst wird in Schritt S171 eine CPU-Zeitspanne berechnet, die für den gesamten Software-Tongenerator- bzw. die Tongenerator-Verarbeitung durch die CPU 1 vorbehalten ist. Es erfolgt die Berechnung des Verhältnisses der so berechneten Zeitspanne, die der CPU 1 vorbehalten ist, zu der gesamte Berechnungszeitspanne, und das berechnete Verhältnis wird auf dem CPU- Belegungsverhältnis-Anzeigefeld 40 in einer Querstrichabbildung in Schritt S172 angezeigt. Dann wird in Schritt S173 die Anzahl der momentan zur Tonerzeugung genutzten Tonerzeugungskanäle auf dem Anzeigefeld für die momentan zum Erklingen gebrachte Anzahl von Kanälen 39 angezeigt.
  • Fig. 21A zeigt ein Programm für die Durchführung einer Schalter-Ein- Ereignis-Verarbeitung, welche eine der sonstigen Verarbeitungen ist. Wenn der in dem Anzeigefenster 30 gezeigte Schalter 43 betätigt wird, wird ein Wert der Daten CDx, der der aktuellen Position des Cursors 32 entspricht, entsprechend einem Operationsumfang und Richtung des betätigten Schalters eingestellt. Die Daten CDx werden in der oben beschriebenen Tongenerator-Verarbeitung verwendet.
  • Gemäß der vorliegenden Ausführungsform kann der Cursor 32 mit Hilfe der Cursor-Taste 42 zu irgendeiner Position des LFO-EIN/AUS-Anzeigefelds 33, des Interpolationseinstellungs-Anzeigefelds 34, des Digitalfilterseinstellungs- Anzeigefelds 35 und des Effekteinstellungs-Anzeigefelds 36 in der in Fig. 15 gezeigten Abbildung der Steuerung der Anzeige bewegt werden. Entsprechend einer Betätigung des Wertschalters 43, wird ein Datenwert, der der Position des Cursors 32 entspricht, d. h. die Daten CD1 in dem LFO-EIN/AUS-Anzeigefeld 33 geändert, die Daten CD2 in dem Interpolationseinstellungs-Anzeigefeld 34, die Daten CD5 in dem Digitalfilterseinstellungs-Anzeigefeld 35 und die Daten CD4 im Effekteinstellungs- Anzeigefeld 36 jeweils eingestellt und geändert.
  • Fig. 21B zeigt ein Programm für die Schalter-EIN-Ereignis-Verarbeitung der relativen Kapazitätsauslastung. Wenn der Schalter zur Einstellung der relativen Kapazitätsauslastung 44 betätigt wird, wird die relative Kapazitätsauslastung DR entsprechend Operationsumfang und Richtung des betätigten Schalters geändert, und die gepunktete Linie 40b des CPU-Belegungsverhältnis-Anzeigefeld 40 wird entsprechend der geänderten Daten der relativen Kapazitätsauslastung DR in Schritt S175 geändert.
  • Die Fig. 22A und 22B zeigen ein Programm zur Durchführung der Tongenerator-Verarbeitung, die von einer Vorrichtung zur Erzeugung von Musiktönen einer erfindungsgemäßen dritten Ausführungsform durchgeführt wird. Zuerst wird in Schritt S181 in Fig. 22A, eine Berechnung des Zeitpunkts durchgeführt, bei dem die Musiktonerzeugungs-Verarbeitung beendet werden soll. Der Beendigungszeitpunkt TL wird unter Verwendung der folgenden Gleichung (2) bestimmt:
  • TL = ST + FL · DR - US - AS ... (2)
  • wobei ST einen Anfangszeitpunkt des momentan wiederzugebenden Zeitrahmens, FL eine Rahmenzeitlänge (Länge eines Zeitrahmens), DR die relative Kapazitätsauslastung, US eine Beendigungszeitspanne (eine Zeitspanne, die zur Beendigung derVerarbeitung erforderlich ist) und AS eine Zeitspanne nach der Verarbeitung (eine Zeitspanne, die zum Übergehen in eine andere Verarbeitung erforderlich ist) repräsentiert.
  • Als nächstes erfolgt in Schritt S182 die Kanal-Steuerung, um die Berechnungsreihenfolge der 32 Kanäle so einzustellen, daß ein Kanal zur Musiktonerzeugung mit einer höheren Priorität der Wellenformberechnung früher unterzogen wird. Danach werden drei unabhängige Ausgabepuffer OB0, OB1 und OB2 gelöscht und ein die Berechnungsreihenfolge kennzeichnender Zeiger i wird in Schritt S183 auf 1 gesetzt, woraufhin die Schritte S184 bis S192 ausgeführt werden. Die Ausgabepuffer OB0, OB1 und OB2 entsprechen jeweils den Puffern 2, 1 und 0 aus Fig. 3.
  • Zuerst erfolgt in Schritt S184 die der Wellenformdaten-Berechnungs- Vorbereitungs-Verarbeitung einschließlich dem Einstellen einer Adresse, die Kanal i des Tongenerator-Registers (Kanal-i-Register) entspricht. Dann wird ein Abtastwertfrequenz-Steuer-Register CD5 in Schritt S185 aus Fig. 22B geprüft. Wenn CD5 = 2 gilt, was bedeutet, daß Wellenformdaten für einen Rahmen (128 Abtastwerte) mit dem originalen Genauigkeitgrad (d. h. mit der äquivalenten Original- Abtastfrequenz) gebildet werden sollen, dann werden Wellenformdaten für 128 Abtastwerte berechnet und den Daten im Ausgabepuffer OB2 hinzugefügt in Schritt S188. Wenn CD5 = 1 gilt, was bedeutet, daß Wellenformdaten für einen Rahmen mit der Hälfte des originalen Genauigkeitgrades (mit der Hälfte der äquivalenten Abtastfrequenz: 64 Abtastwerten) gebildet werden soll, werden Wellenformdaten für 64 Abtastwerte berechnet und den Daten im Ausgabepuffer OB1 hinzugefügt in Schritt S187. Wenn CD5 = 0 gilt, was bedeutet, daß Wellenformdaten für einen Rahmen mit einem Viertel des originalen Genauigkeitgrades (mit einem Viertel der äquivalenten Abtastfrequenz: 32 Abtastwerte) gebildet werden soll, werden Wellenformdaten für 32 Abtastwerte berechnet und den Daten im Ausgabepuffer OB0 hinzugefügt in Schritt S186.
  • Der Wert des Registers CD5 (im folgenden "Daten CD5" genannt) kann für jeden Kanal i getrennt als Daten CD5(i), abhängig von einem Musikteil der Musiktöne, die dem Kanal zugewiesenen wurden, wenn der Kanal zum Erklingen gebracht wird, eingestellt werden oder alternativ kann dieser als einziger Wert CD5 für den gesamten Software-Generator eingestellt werden.
  • Im letzteren Fall, d. h. die Daten CD5 als einziger Wert einzustellen sind, wird der Cursor in dem Abtastfrequenz-Einstellungs-Anzeigefeld 37 in der Steuer-Ansicht aus Fig. 15 plaziert, und der Wertschalter 43 wird betätigt. Entsprechend der Antwort auf die Frage aus Schritt S185, die von der eingegebenen Größe des einzigen Werts Daten CD5 abhängt, schreitet das Programm mit einem der Schritte S186 bis S188 fort, um die oben beschriebene entsprechende Verarbeitung auszuführen.
  • Wenn andererseits die Daten CD5 für jeden Kanal abhängig von einem Musikteil der zu erzeugenden Musiktöne eingestellt werden, werden die Daten CD5 für jeden von 1 bis 16 MIDI-Kanälen eingestellt. Genauer gesagt, setzt der Anwender die Daten CD5 auf 16 Werte CD5(1) bis CD(16) für die jeweiligen 16 MIDI-Kanäle vor dem Musikspiel. Wenn zudem ein Ton-EIN-Ereignis eingegeben wird, um die in Fig. 17 gezeigte Ton-EIN-Verarbeitung durchzuführen, während eine Schreib-Verarbeitung in das Kanal i Tonerzeugungs-Register in Schritt S123 ausgeführt wird, werden die Daten CD5(i) für den MIDI-Kanal, der dem Teil t entspricht, für welchen das Ereignis eingegeben wird, in dem Tongenerator-Register eingestellt. Das bedeutet, die für den Teil t eingestellte Daten CD5(i) werden als die Daten CD5(i) für den zugewiesenen Tonerzeugungskanal i des Tongenerator-Registers eingestellt. Somit werden die Daten CD5(i) für jeden Tonerzeugungskanal i eingestellt, und die Schritte S186 bis S188 werden nach dem Schritt S185 in Abhängigkeit von den Daten CD5(i) für jeden Tonerzeugungskanal i ausgeführt.
  • Als nächstes werden nachfolgend die durch die Daten CD5 gesteuerten Musiktoncharakteristiken beschrieben. In der in den Fig. 22A und 22B beschriebenen Tonerzeuger-Verarbeitung, wird durch selektive Durchführung der Schritte S186 bis S188 in Abhängigkeit von der Ermittlung des Schritts S185 die Anzahl der zu erzeugende Wellenformabtastwerte als Wellenformdaten für einen Rahmen geändert wird. Je größer die Anzahl der Wellenformabtastwerte ist, die für jeden Kanal für einen Rahmen zu erzeugen sind, um so länger ist die Zeitspanne, die zur Verarbeitung der Daten pro Kanal erforderlich ist. Das bedeutet, es besteht eine Korrelation zwischen der Anzahl der zu erzeugenden Wellenformabtastwerte und der Verarbeitungszeitspanne. Bei der vorliegender Ausführungsform ist die Anzahl der pro Sekunde zu erzeugenden Rahmen festgelegt (48(kHz)/128 = 378 Rahmen), und dementsprechend entspricht eine Änderung der Anzahl der pro Rahmen zu erzeugenden Abtastwerte einer Änderung der äquivalenten Abtastfrequenz. Die äquivalente Abtastfrequenz wird entsprechend den Daten CD5 auf 48 kHz (CD5 = 2), 24 kHz (CD5 = 1) und 12 kHz (CD5 = 0) eingestellt.
  • Unter erneuter Bezugnahme auf Fig. 22B wird in Schritt S189 ermittelt, ob der Beendigungszeitpunkt TL erreicht wurde oder nicht. Wenn die Antwort positiv (JA) ist, wird die Beendigungs-Verarbeitung in Schritt S191 in einer Weise ähnlicher wie die oben beschriebenen der zweiten Ausführungsform.
  • Wenn andererseits der Beendigungszeitpunkt TL nicht erreicht wurde, wird in Schritt S190 bestimmt, ob die Verarbeitung für alle Kanäle fertiggestellt wurde oder nicht. Ist die Antwort negativ (NEIN), wird in Schritt S192 l zu i addiert, wonach das Programm zu Schritt S184 in Fig. 22A zurückkehrt.
  • Wenn die Verarbeitung für alle Kanäle fertiggestellt bzw. die Beendigungsverarbeitung durchgeführt wurde, fährt das Programm mit Schritt S193 fort, wobei die Inhalte des Ausgabepuffers OB0 mit der vierfachen Frequenz der äquivalenten Abtastfrequenz (vierfaches Überabtasten) überabgetastet (oversampled) wird, um die Daten für 128 Abtastwerte zu erhalten, die den Daten im Ausgabepuffer OB2 hinzugefügt werden. Weiterhin werden der Inhalte des Ausgabepuffers OB1 mit der zweifachen Frequenz der äquivalenten Abtastfrequenz (zweifaches Überabtasten) überabgetastet, um die Daten für 128 Abtastwerte zu erhalten, die den Daten im Ausgabepuffer OB2 hinzugefügt werden. Danach werden die im Ausgabepuffer OB2 gespeicherten Wellenformdaten in Schritt S194 einer Hallbearbeitung unterzogen, und die mit Hall versehenen Wellenformdaten in dem Ausgabepuffer OB2 werden in Schritt S194 in der DMA-Steuereinheit 9 zur Wiedergabe reserviert.
  • Durch die oben erwähnte wirksame Einstellung der Daten CD5 wird die Abtastfrequenz geändert, um Musiktonwellenformen zu erzeugen, wodurch es möglich wird, Musiktonwellenformen abhängig von der Kapazität der CPU 1 zu erzeugen.
  • Bei der vierten Ausführungsform, wird die maximale Anzahl der simultan durch den Software-Tongenerator zum Erklingen gebrachten Tonerzeugungskanäle auf 32 oder weniger wie den oben angeführten Daten CD6 begrenzt, und die Beendigungsverarbeitung in Schritt S141 aus Fig. 18B wird Auf der Grundlage von Ergebnissen der Ermittlung, ob die Anzahl der momentan zum Erklingen gebrachten Tonerzeugungskanäle die eingeschränkte maximale Zahl erreicht hat oder nicht, ausgeführt. Das bedeutet, nach der vierten Ausführungsform wird das Datum (1), das für die maximale Anzahl der simultan zum Erklingen zu bringenden Tonerzeugungskanäle kennzeichnend ist, durch den Anwender im Anzeigefeld für die Einstellung der maximalen Anzahl von Tonerzeugungskanälen 38 in Fig. 15 eingestellt, und daraufhin erzeugt der Software-Tongenerator Musiktöne auf der Grundlage des Daten CD6-Werts als maximale Anzahl der simultan zum Erklingen zu bringenden Tonerzeugungskanäle, d. h. unter Verwendung der eingeschränkten maximalen Anzahl von Kanälen oder weniger. In diesem Fall kann das Belegungsverhältnis (die relative Kapazitätsauslastung) der CPU 1 durch solches Steuern der Anzahl der Tonerzeugeungskanäle, die simultan zum Erklingen gebracht werden sollen, begrenzt wird.
  • Es folgt die Beschreibung einer fünften Ausführungsform der Erfindung. In den bereits beschriebenen zweiten und dritten Ausführungsformen wird die obere Grenze der Kapazität der CPU 1, die für Verarbeitung des Software-Tongenerators benutzt werden soll, aus der Gesamtkapazität der CPU 1 auf der Grundlage der durch den Anwender eingestellten relativen Kapazitätsauslastung DR gesteuert. Andererseits wird entsprechend der beschriebenen vierten Ausführungsform die maximale Anzahl der durch den Software-Tongenerator zum Erklingen gebrachten Tonerzeugungskanäle auf den durch den Anwender eingestellten Wert CD6 eingeschränkt. In jeder der Ausführungsformen wird die Anzahl der durch den Software-Tongenerator zum Erklingen gebrachten Tonerzeugungskanäle geändert. Jedoch wirkt sich die Änderung nur auf die Tonerzeugungs-Verarbeitung zur Erzeugung von Wellenformen in Schritt S108 aus, kann jedoch nicht für andere Verarbeitungen als die Tongenerator- Verarbeitung wirksam angewendet werden, z. B. für die Tonerzeugungs-Zuweisungs- Verarbeitung (Tonerzeugungs-Kanalzuweisungs-Verarbeitung).
  • Gemäß vorliegender Ausführungsform wird, wenn eine Ton-EIN-Ereignis- Verarbeitung in einem Tongenerator ausgeführt wird, die die Anzahl von simultan zum Erklingen gebrachten Tonerzeugungskanälen ändern kann, die Tonerzeugungskanalzuweisung in Schritt S121 entsprechend der Anzahl von Tonerzeugungskanälen, die aktuell simultan erklingen sollen, geändert. Das bedeutet, in der in Schritt S121 ausgeführten Ton-EIN-Ereignis-Verarbeitung wird die Anzahl der simultan zum Erklingen gebrachten Kanäle, die der Kapazität (Rechenkapazität) der CPU 1 entspricht, entsprechend den Daten für die relative Kapazitätsauslastung DR geändert, oder die Daten CD6 werden empfangen, und die Musiktonzuweisung wird mit der maximalen Anzahl von Tonerzeugungskanälen MP, die durch den Wert der empfangenen Daten eingestellt wurde, ausgefüht. Wenn die Anzahl PN der momentan Musiktöne erzeugenden Kanäle im Tongenerator-Register geringer ist als ein Wert (MP - 1), dann wird ein leerer Kanal oder mehrere leere Kanäle MP der Tonerzeugung zugewiesen, d. h. eingestellt zur Erzeugung von Musiktönen. Wenn andererseits die Kanalanzahl PN größer als der Wert (MP - 1) ist, werden einer oder mehrere Kanäle, deren Anzahl einer Anzahl (PN - MP + 1) entspricht, die den Wert (MP - 1) überschreitet, als ein Kanal oder Kanäle eingestellt, die einer Tonerzeugungsdämpfung unterzogen werden, und es erfolgt ein Befehl an den bzw. die Kanäle, die Tonerzeugung zu stoppen, und gleichzeitig wird ein einzelner leerer Kanal zur Zuweisung für die Tonerzeugung zurückbehalten. Nach der Verarbeitung wird die Musiktonzuweisung auf der Grundlage der Anzahl der momentan klingenden Kanäle durchgeführt, die eine Tonerzeugung-Zuweisung auf zu viele Kanäle verhindern kann, was Geräuschbildung oder Tonerzeugung-Zuweisung auf zu wenige Kanäle verursacht, welches eine nicht zufriedenstellende Verwendung der Tonerzeugungskapazität des Tongenerators mit sich bringt. Die Anzahl der simultan zum Erklingen gebrachten Kanäle wechselt schnell oder beständig im Verlauf der Zeit, wenn der Verarbeitungsumfang pro Kanal aufgrund einer Änderung der Klangfarbe geändert wird oder wenn die Daten DR oder der Wert CD6 während des Abspielens von Musik geändern wird. Jedoch erhält man gemäß der vorliegenden Ausführungsform die Anzahl der durch den Tongenerator simultan zum Erklingen gebrachten Kanäle, wenn die Musiktonzuweisung nach Eingabe eines Ton- EIN-Ereignisses etc. ausgeführt wird, um einn solche schnelle bzw. beständige Änderung der Anzahl der simultan zum Erklingen gebrachten Kanäle bewältigen zu können. Dieses Verfahren beschränkt sich nicht auf den Software-Tongenerator, sondern es kann auch für alle Arten von Tongeneratoren verwendet werden, die eine Änderung der maximalen Anzahl von simultan klingenden Kanälen entsprechend den Bedingungen vorsehen.
  • Obgleich in den oben beschriebenen Ausführungsformen das EIN/AUS-Stellen des digitalen Filters DCF für den gesamten Software-Tongenerator ausgeführt wird, kann das EIN/AUS-Stellen für jeden Klangfarbenteil und/oder jeden Tonerzeugungskanal ausgeführt werden. Das bedeutet, es ist möglich, ein Digitalfilter- Einstellungs-Register CD3(i) für jeden der Klangfarbenteile und/oder Tonerzeugungskanäle vorab einzustellen, und das EIN/AUS-Stellen des digitalen Filters DCF kann in jedem Einstellmodus des Klangfarbenteils und/oder des Tonerzeugungskanals ausgeführt werden. In den zuvor beschriebenen und in Fig. 18A und 18B abgebildeten Tongenerator-Verarbeitungen wird in Schritt S137 eine Bestimmung für jeden Tonerzeugungskanal ausgeführt, um das EIN/AUS-Stellen des digitalen Filters für jeden der Klangfarbenteile und/oder jeden der Tonerzeugungskanäle leicht zu bewältigen. Weiterhin können die sonstigen Daten CD1, CD2 usw. für jeden Klangfarbenteil und/oder jeden Tonerzeugungskanal in ähnlicher Weise voreingestellt werden.
  • Zur Erzeugung von rhythmischen Tönen ist im allgemeinen keine Tonhöhenkonvertierung notwendig, weshalb die Daten CD2 auf 0 (keine Interpolation) gesetzt wird. Um Musiktönen für andere Musikinstrumente abzugleichen, können die Daten CD2 jedoch auf 1 gesetzt werden, um die Tonhöhe zu steuern.
  • In den oben beschriebenen Ausführungsformen ist keine Berechnung der Steuerung der relativen Auslastung über die MIDI-Ereignis-Verarbeitung vorgesehen. Die Berechnung der Steuerung der relativen Auslastung kann jedoch die MIDI-mäßige Verarbeitung als eine der durch den Software-Tongenerator durchgeführten Operationen in Erwägung ziehen.
  • Die Anzeige der CPU-Leistung und der Anzahl der erzeugten Musiktöne (Tonerzeugungskanäle) kann schnell wechseln und deshalb kann, um die optische Wiedergabe für den Anwender zu erleichtern, eine Glättungs-Verarbeitung für die Anzeige ausgeführt werden.
  • Der Software-Tongenerator kann so ausgelegt werden, daß er als Eingabe- Spieldaten nicht nur MIDI-Daten von einer externen Vorrichtung empfängt, sondern auch MIDI-Ereignisse, die durch ein automatisches Spielprogramm wiedergegeben werden, das durch Computer per se ausgeführt wird, ebenso wie durch Spielsoftware erzeugte Tonerzeugungsinstrunstruktionen, etc..
  • Der erfindungsgemäße Software-Tongenerator, wie zuvor beschrieben, mit einem Universalzweck-Computer implementiert werden, in welchen ein Betriebssystem (OS) wie Windows (eingetragenes Warenzeichen) installiert ist. Dies ist jedoch nicht einschränkend. Der Software-Tongenerator kann mit einer Steuer- CPU, die in einem elektronischen Musikinstrument mit Spielbedienelementen, wie beispielsweise einer Tastatur oder einem Tongeneratormodul ohne Spielbedienelementen vorgesehen ist, implementiert werden. Im letzteren Fall kann ein durch einen elektronische Schaltung konventionell gebildeter Tongeneratorabschnitt reduziert oder weggelassen werden. Alternativ können sowohl ein Hardware- Tongeneratorabschnitt als auch der Software-Tongenerator verwendet werden.
  • Bei der Effekt-Steuerung nach den oben beschriebenen Ausführungsformen wird eine der Verarbeitung auf der Grundlage des Werts der Daten CD4 ausgewählt: keinen Effekt-Ausführung-Verarbeitung, Tiefpaßfilter-Verarbeitung und die Hall- Verarbeitung. In anderen Worten, zwei unterschiedliche Arten von Effekten, d. h. Tiefpaßfilter-Verarbeitung und die Hall-Verarbeitung, können Wellenformdaten selektiv beigegeben werden. Eine Auswahl der beiden Effektarten kann als Auswahl von unterschiedlichen Berechnungumfängen, die für die Verarbeitung der Daten benötigt werden, angesehen werden. Weitere Ausführungsformen von Effektauswahl sind möglich. Beispielsweise kann der Anwender eines aus einer Vielzahl von Effektprogrammen wählen, die die gleiche Effektart bieten, jedoch sich im Grad der Effektbearbeitung und des für die Verarbeitung erforderlichen Berechnungsumfangs unterscheiden. Das bedeutet, wenn der Grad der Effektbearbeitung angehoben wird, wird der Rechenumfang, der für die anderen Verarbeitungen benötigt wird, verringert, was zu einer verringerten Anzahl von simultan zum Erklingen gebrachten Tonerzeugungskanälen führt. Deshalb kann der Anwender das Gleichgewicht zwischen der Anzahl der simultan zum Erklingen gebrachten Kanäle und dem Effektgrad durch Einstellung des CD4-Werts steuern.
  • Weiterhin zeigt der zeitliche Ablauf der durch den Software-Tongenerator ausgeführten Verarbeitungen aus Fig. 4 nur ein Beispiel. Die zeitlichen Wechselbeziehungen zwischen Rahmengröße, Eingabe der Spieldaten, Wellenformberechnung und Lesen und Wiedergabe von Wellenformdaten werden durch die Abbildung nicht eingeschränkt. Beispielsweise kann der zeitliche Ablauf der Spieldaten-Eingabe, Wellenformberechnung und Lesen und Wiedergabe der Wellenformdaten im Hinblick auf den Rahmen unterschiedlich eingestellt werden. Außerdem kann, obwohl die Länge der Zeit eines Rahmensin den oben beschriebenen Ausführungsformen festgelegt ist, für jeden Rahmen variabel sein. Die vorliegenden Erfindung ist jedoch dadurch gekennzeichnet, daß eine Vielzahl von Wellenformabtastwerten in der Zeitrichtung durch eine Tongenerator-Verarbeitung erzeugt werden können.

Claims (25)

1. Verfahren zur Erzeugung von Musiktönen, das auf einem Computer (31) ausgeführt wird, welches folgendes aufweist:
einen Spielinformationsempfangsschritt (S11) zum Empfangen einer Spielinformation (MIDI), die eine Tonhöhe jedes zu erzeugenden Musiktons bezeichnet;
einen Steuerinformationsempfangsschritt zum Empfangen einer Steuerinformation (OD);
einen Wellenformabtastwert-Erzeugungsschritt zum Erzeugen einer Folge von Musiktonwellenformabtastwerten für jeden von einer Vielzahl von Kanälen (1ch-32ch) über einen vorgegebenen Zeitraum in Ansprechen auf die empfangene Spielinformation (MIDI), wobei jede Folge von erzeugten Musiktonwellenformabtastwerten die Tonhöhe aufweist, die durch die Spielinformation (MIDI) bezeichnet ist, und die Anzahl dieser Wellenformabtastwerte für jede erzeugte Folge über den vorgegebenen Zeitraum von der Steuerinformation (OD) gesteuert wird; und
einen Wiedergabeschritt zur Wiedergabe der Folge von Musiktonwellenformabtastwerten, die durch den Wellenformabtastwert-Erzeugungsschritt erzeugt werden.
2. Verfahren zur Erzeugung von Musiktönen nach Anspruch 1, bei dem die Spielinformation (MIDI) aus einer Vielzahl von Stücken besteht, die jeweils einer Vielzahl von Spielteilen, z. B. Klavier, Violine, entsprechen, und bei dem die Zeitdichte für jeden Spielteil unabhängig von der Zeitdichte für die anderen Spielteile ebenso wie von der Tonhöhe jedes zu erzeugenden Musiktons ist.
3. Verfahren zur Erzeugung von Musiktönen nach Anspruch 1, bei dem der Wellenformabtastwert-Erzeugungsschritt eine Musiktonerzeugungsberechnung ausführt, um eine Wellenform auf der Grundlage von Daten (WD), die in einem Speicher (6) im voraus gespeichert sind, im Ansprechen auf die Spielinformation (MIDI) zu bilden, um dadurch eine Folge von Musiktonwellenformabtastwerten, die die durch die Spielinformation (MIDI) bezeichnete Tonhöhe aufweisen, mit einer Zeitdichte zu erzeugen, die der Steuerinformation (OD) entspricht; und der Wellenformabtastwert-Erzeugungsschritt eine Musiktonerzeugungsberechnung ausführt, um eine Wellenform durch selektives Verwenden verschiedener Daten der Daten (WD) zu bilden, die in dem Speicher (6) entsprechend der Steuerinformation (OD) gespeichert sind.
4. Verfahren zur Erzeugung von Musiktönen nach Anspruch 1, welches auf einem Computer mit einem Speicher (6) ausgeführt wird, der eine Folge von ersten Wellenformdaten (WD) speichert, die bei einer vorgegebenen Abtastfrequenz abgetastet werden, wobei das Verfahren folgendes aufweist:
einen Konvertierungsschritt zum Konvertieren der Folge von ersten Wellenformdaten (WD) in eine Folge von zweiten Wellenformdaten (WD), die bei einer Abtastfrequenz abgetastet werden, die unterschiedlich zu der vorgegebenen Abtastfrequenz ist und eine identische Wellenform zu der der Folge der ersten Wellenformdaten (WD) aufweist, und wobei diese Folge der zweiten Wellenformdaten (WD) in dem Speicher (6) gespeichert wird,
wobei dem Wellenformabtastwert-Erzeugungsschritt die Folge von ersten Wellenformdaten (WD) oder die Folge der zweiten Wellenformdaten (WD) zu Grunde liegt, die in dem Speicher (6) gespeichert sind, und eine von diesen entsprechend der Steuerinformation (OD) ausgewählt wird.
5. Verfahren nach Anspruch 4, bei dem die Zeitdichte entsprechend der empfangenen Steuerinformation (OD) ausgewählt wird, die die Anzahl der Wellenformabtastwerte für jede Folge steuert, die in dem vorgegebenen Zeitraum erzeugt wird.
6. Verfahren zur Erzeugung von Musiktönen nach Anspruch 1, bei dem die Steuerinformation (OD) eine Berechnungsauflösungsinformation enthält, die sich auf eine Abtastfrequenz bezieht, bei der Musiktonwellenformabtastwerte erzeugt werden.
7. Verfahren nach Anspruch 1 oder 6, das eine Anzeigeschritt (S107) aufweist, um auf einen Anzeigegerät (3) einen Berechnungsumfang, der für die Musiktonwellenformberechnung erforderlich ist, und eine Anzahl von Musiktönen anzuzeigen, die durch die Musiktonwellenformberechnung erzeugt werden.
8. Verfahren nach Anspruch 1, bei dem die Steuerinformation (OD) eine Information ist, die sich auf die Abtastfrequenz bezieht, bei der Musiktonwellenformabtastwerte erzeugt werden.
9. Verfahren nach Anspruch 1, bei dem die Steuerinformation (OD) von einem Anwender dieses Computers (31) bezeichnet werden kann.
10. Verfahren nach Anspruch 1, das einen Anzeigeschritt (S107) aufweist, um auf einen Anzeigegerät (3) eine Abtastfrequenz anzuzeigen, bei der die Musiktonwellenformabtastwerte erzeugt werden.
11. Verfahren zur Erzeugung von Musiktönen nach Anspruch 1, das außerdem folgendes aufweist: einen Anzeigeschritt (S107), um auf einem Anzeigegerät (3) wenigstens einen der nachgenannten Punkte anzuzeigen: (i) einen Maximalwert des Verhältnisses der Kapazität des Computers, die zur Erzeugung der Musiktöne reserviert ist, zu dessen Gesamtkapazität, (ii) einen aktuellen Wert des Verhältnisses der Kapazität des Computers (31), die zur Erzeugung der Musiktöne reserviert ist, zu dessen Gesamtkapazität, (iii) eine Abtastfrequenz, bei der Musiktonwellenformabtastwerte erzeugt werden, (iv) einen Effekt, der momentan den zu erzeugenden Musiktönen beigegeben wird, (v) einen aktuellen Wert einer Anzahl von Tonerzeugungskanälen (1ch-32ch), die simultan zum Erklingen gebracht werden, und (vi) einen Maximalwert der Anzahl der Tonerzeugungskanäle (1ch-32ch), die simultan zum Erklingen gebracht werden.
12. Verfahren zur Erzeugung von Musiktönen nach Anspruch 1, das außerdem folgendes aufweist: einen Anzeigeschritt (S107), um auf einem Anzeigegerät (3) wenigstens einen der nachgenannten Punkte anzuzeigen: (i) einen aktuellen Wert des Verhältnisses der Kapazität des Computers, die zur Erzeugung der Musiktöne reserviert ist, zu dessen Gesamtkapazität und (ii) einen aktuellen Wert der Anzahl von Tonerzeugungskanälen (1ch-32ch), die simultan zum Erklingen gebracht werden, und um simultan auf dem Anzeigegerät (3) wenigstens einen der nachgenannten Punkte anzuzeigen: (i) einen Maximalwert des Verhältnisses der Kapazität des Computers (31), die zur Erzeugung der Musiktöne reserviert ist, zu dessen Gesamtkapazität, (ii) eine Abtastfrequenz, bei der Musiktonwellenformabtastwerte erzeugt werden, (iii) einen Effekt, der momentan den zu erzeugenden Musiktönen beigegeben wird, und (iv) einen Maximalwert der Anzahl der Tonerzeugungskanäle (1ch-32ch), die simultan zum Erklingen gebracht werden.
13. Verfahren zur Erzeugung von Musiktönen nach Anspruch 2, bei dem die Steuerinformation (OD) aus Teilen besteht, die jeweils der Vielzahl der Spielteile entsprechen.
14. Verfahren nach Anspruch 13, bei dem die Steuerinformation (OD) eine Information enthält, die sich auf eine Abtastfrequenz bezieht, bei der die Folge von Musiktonwellenformabtastwerten erzeugt werden, wobei die Abtastfrequenz auf verschiedene Werte bezüglich der Folge von Musiktonwellenformabtastwerten für wenigstens einen der Vielzahl der Spielteile und der Folge von Musiktonwellenformabtastwerten für die anderen Spielteile eingestellt wird.
15. Verfahren nach Anspruch 14, das einen Akkumulationsschritt zum Akkumulieren der Folge von Musiktonwellenformabtastwerten für diesen wenigsten einen aus der Vielzahl der Spielteile und der Folge von Musiktonwellenformabtastwerten für die anderen Spielteile enthält, die bei unterschiedlichen Werten der Abtastfrequenz erzeugt werden, und bei dem der Wiedergabeschritt die akkumulierten Folgen von Musiktonwellenformabtastwerten als die Folge von Musiktonwellenformabtastwerten wiedergibt.
16. Vorrichtung zum Erzeugen von Musiktönen, die folgendes aufweist:
einen Computer (31), der geeignet ist, einen Musiktonerzeugungsvorgang auszuführen, und Musiktöne ausgibt, die Musiktonwellenformabtastwerten entsprechen;
wobei der Tonerzeugungsvorgang die folgenden Schritte aufweist:
einen Spielinformationsempfangsschritt (S11) zum Empfangen einer Spielinformation (MIDI), die eine Tonhöhe jedes zu erzeugenden Musiktons bezeichnet;
einen Steuerinformationsempfangsschritt zum Empfangen einer Steuerinformation (OD);
einen Wellenformabtastwert-Erzeugungsschritt zum Erzeugen einer Folge von Musiktonwellenformabtastwerten für jeden von einer Vielzahl von Kanälen (1ch-32ch) über einen vorgegebenen Zeitraum in Ansprechen auf die empfangene Spielinformation (MIDI), wobei jede Folge von erzeugten Musiktonwellenformabtastwerten die Tonhöhe aufweist, die durch die Spielinformation (MIDI) bezeichnet ist, und die Anzahl dieser Wellenformabtastwerte für jede erzeugte Folge über den vorgegebenen Zeitraum von der Steuerinformation (OD) gesteuert wird; und
einen Wiedergabeschritt zur Wiedergabe der Folge von Musiktonwellenformabtastwerten, die durch den Wellenformabtastwert-Erzeugungsschritt erzeugt werden.
17. Vorrichtung zum Erzeugen von Musiktönen nach Anspruch 16, bei der die Spielinformation (MIDI) aus einer Vielzahl von Stücken besteht, die jeweils einer Vielzahl von Spielteilen, z. B. Klavier, Violine, entsprechen; wobei die Zeitdichte für jeden Spielteil unabhängig von der Zeitdichte für die anderen Spielteile ebenso wie von der Tonhöhe jedes zu erzeugenden Musiktons ist und die Steuerinformation (OD) aus Stücken besteht, die jeweils der Vielzahl von Spielteilen entsprechen.
18. Vorrichtung zum Erzeugen von Musiktönen nach Anspruch 16 oder 17, die einen Wellenformspeicher (6) zur Speicherung von Wellenformdaten (WD) aufweist:
wobei der Wellenformabtastwert-Erzeugungsschritt eine Musiktonerzeugungsberechnung ausführt, um eine Wellenform auf der Grundlage von Daten (WD), die in einem Speicher (6) im voraus gespeichert sind, im Ansprechen auf die Spielinformation (MIDI) zu bilden, um dadurch eine Folge von Musiktonwellenformabtastwerten, die die durch die Spielinformation (MIDI) bezeichnete Tonhöhe aufweisen, mit einer Zeitdichte zu erzeugen, die der Steuerinformation (OD) entspricht; und
der Wellenformabtastwert-Erzeugungsschritt eine Musiktonerzeugungsberechnung ausführt, um eine Wellenform durch selektives Verwenden verschiedener Daten der Daten (WD) zu bilden, die in dem Speicher (6) entsprechend der Steuerinformation (OD) gespeichert sind.
19. Vorrichtung zum Erzeugen von Musiktönen nach Anspruch 16, bei der die Steuerinformation (OD) Berechnungsauflösungsinformation enthält, die sich auf eine Abtastfrequenz bezieht, bei der Musiktonwellenformabtastwerte erzeugt werden.
20. Vorrichtung zum Erzeugen von Musiktönen nach Anspruch 16, bei der der Tonerzeugungsvorgang außerdem folgendes aufweist: einen Anzeigeschritt (S107), um auf einem Anzeigegerät (3) wenigstens einen der nachgenannten Punkte anzuzeigen: (i) einen Maximalwert des Verhältnisses der Kapazität des Computers, die zur Erzeugung der Musiktöne reserviert ist, zu dessen Gesamtkapazität, (ii) einen aktuellen Wert des Verhältnisses der Kapazität des Computers (31), die zur Erzeugung der Musiktöne reserviert ist, zu dessen Gesamtkapazität, (iii) eine Abtastfrequenz, bei der Musiktonwellenformabtastwerte erzeugt werden, (iv) einen Effekt, der momentan den zu erzeugenden Musiktönen beigegeben wird, (v) einen aktuellen Wert einer Anzahl von Tonerzeugungskanälen (1ch-32ch), die simultan zum Erklingen gebracht werden, und (vi) einen Maximalwert der Anzahl der Tonerzeugungskanäle (1ch-32ch), die simultan zum Erklingen gebracht werden.
21. Maschinenlesbares Speichermedium zum Speichern von Befehlen, um zu veranlassen, dass eine Maschine ein Verfahren zur Erzeugung von Musiktönen ausführt, das auf einem Computer (31) ausgeführt wird und folgendes aufweist:
einen Spielinformationsempfangsschritt (S11) zum Empfangen einer Spielinformation (MIDI), die eine Tonhöhe jedes zu erzeugenden Musiktons bezeichnet;
einen Steuerinformationsempfangsschritt zum Empfangen einer Steuerinformation (OD);
einen Wellenformabtastwert-Erzeugungsschritt zum Erzeugen einer Folge von Musiktonwellenformabtastwerten für jeden von einer Vielzahl von Kanälen (1ch-32ch) über einen vorgegebenen Zeitraum in Ansprechen auf die empfangene Spielinformation (MIDI), wobei jede Folge von erzeugten Musiktonwellenformabtastwerten die Tonhöhe aufweist, die durch die Spielinformation (MIDI) bezeichnet ist, und die Anzahl dieser Wellenformabtastwerte für jede erzeugte Folge über den vorgegebenen Zeitraum von der Steuerinformation (OD) gesteuert wird; und
einen Wiedergabeschritt zur Wiedergabe der Folge von Musiktonwellenformabtastwerten.
22. Maschinenlesbares Speichermedium nach Anspruch 21, bei dem die Spielinformation (MIDI) aus einer Vielzahl von Stücken besteht, die jeweils einer Vielzahl von Spielteilen, z. B. Klavier, Violine, entsprechen, und bei dem die Zeitdichte für jeden Spielteil unabhängig von der Zeitdichte für die anderen Spielteile ebenso wie von der Tonhöhe jedes zu erzeugenden Musiktons ist.
23. Maschinenlesbares Speichermedium nach Anspruch 20, bei dem der Wellenformabtastwert-Erzeugungsschritt eine Musiktonerzeugungsberechnung ausführt, um eine Wellenform auf der Grundlage von Daten (WD), die in einem Speicher (6) im voraus gespeichert sind, im Ansprechen auf die Spielinformation (MIDI) zu bilden, um dadurch eine Folge von Musiktonwellenformabtastwerten, die die durch die Spielinformation (MIDI) bezeichnete Tonhöhe aufweisen, mit einer Zeitdichte zu erzeugen, die der Steuerinformation (OD) entspricht; und der Wellenformabtastwert-Erzeugungsschritt eine Musiktonerzeugungsberechnung ausführt, um eine Wellenform durch selektives Verwenden verschiedener Daten der Daten (WD) zu bilden, die in dem Speicher (6) entsprechend der Steuerinformation (OD) gespeichert sind.
24. Maschinenlesbares Speichermedium nach Anspruch 20, bei dem das Verfahren zur Erzeugung von Musiktönen, das auf einem Computer (31) mit einem Speicher (6) zum Speichern einer Folge von ersten Wellenformdaten (WD) ausgeführt wird, die bei einer vorgegebenen Abtastfrequenz abgetastet werden, folgendes aufweist:
einen Konvertierungsschritt zum Konvertieren der Folge von ersten Wellenformdaten (WD) in eine Folge von zweiten Wellenformdaten (WD), die bei einer Abtastfrequenz abgetastet werden, die unterschiedlich zu der vorgegebenen Abtastfrequenz ist und eine identische Wellenform zu der der Folge der ersten Wellenformdaten (WD) aufweist, und wobei diese Folge der zweiten Wellenformdaten (WD) in dem Speicher (6) gespeichert wird,
wobei dem Wellenformabtastwert-Erzeugungsschritt die Folge von ersten Wellenformdaten (WD) oder die Folge der zweiten Wellenformdaten (WD) zu Grunde liegt, die in dem Speicher (6) gespeichert sind, und eine von diesen entsprechend der Steuerinformation (OD) ausgewählt wird.
25. Maschinenlesbares Speichermedium nach Anspruch 20, bei dem die Steuerinformation (OD) eine Berechnungsauflösungsinformation enthält, die sich auf eine Abtastfrequenz bezieht, bei der Musiktonwellenformabtastwerte erzeugt werden.
DE69611874T 1995-09-29 1996-09-27 Verfahren und Vorrichtung zur Musiktonerzeugung Expired - Lifetime DE69611874T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP7275092A JP2956552B2 (ja) 1995-09-29 1995-09-29 楽音発生方法および装置
JP7254366A JP3019755B2 (ja) 1995-10-02 1995-10-02 楽音発生方法および楽音発生装置

Publications (2)

Publication Number Publication Date
DE69611874D1 DE69611874D1 (de) 2001-04-05
DE69611874T2 true DE69611874T2 (de) 2001-10-04

Family

ID=26541656

Family Applications (3)

Application Number Title Priority Date Filing Date
DE69611874T Expired - Lifetime DE69611874T2 (de) 1995-09-29 1996-09-27 Verfahren und Vorrichtung zur Musiktonerzeugung
DE69632351T Expired - Lifetime DE69632351T2 (de) 1995-09-29 1996-09-27 Verfahren und Vorrichtung zur Musiktonerzeugung
DE69632695T Expired - Lifetime DE69632695T2 (de) 1995-09-29 1996-09-27 Verfahren und Vorrichtung zur Musiktonerzeugung

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE69632351T Expired - Lifetime DE69632351T2 (de) 1995-09-29 1996-09-27 Verfahren und Vorrichtung zur Musiktonerzeugung
DE69632695T Expired - Lifetime DE69632695T2 (de) 1995-09-29 1996-09-27 Verfahren und Vorrichtung zur Musiktonerzeugung

Country Status (5)

Country Link
US (2) US6326537B1 (de)
EP (3) EP1011090B1 (de)
KR (2) KR100416932B1 (de)
DE (3) DE69611874T2 (de)
SG (2) SG75928A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3409686B2 (ja) 1998-03-17 2003-05-26 ヤマハ株式会社 複数音源ドライバの制御方法、および、複数音源ドライバの制御用プログラムが記録された記録媒体、ならびに、複数生成プログラムの制御方法
US6535772B1 (en) 1999-03-24 2003-03-18 Yamaha Corporation Waveform data generation method and apparatus capable of switching between real-time generation and non-real-time generation
US7277765B1 (en) 2000-10-12 2007-10-02 Bose Corporation Interactive sound reproducing
JP4012682B2 (ja) * 2000-12-04 2007-11-21 ヤマハ株式会社 音源システム
JP4012691B2 (ja) * 2001-01-17 2007-11-21 ヤマハ株式会社 波形データ処理装置及び波形データ処理方法並びに波形データ処理装置において読み取り可能な記録媒体
KR100386590B1 (ko) * 2001-02-28 2003-06-02 엘지전자 주식회사 미디어 라우팅 장치
US7663052B2 (en) * 2007-03-22 2010-02-16 Qualcomm Incorporated Musical instrument digital interface hardware instruction set
JPWO2008149675A1 (ja) * 2007-06-05 2010-08-26 株式会社アドバンテスト 波形発生装置、波形発生方法およびプログラム
JP4544278B2 (ja) * 2007-07-18 2010-09-15 ヤマハ株式会社 波形生成システム
US20100217922A1 (en) * 2008-07-24 2010-08-26 Masahiro Nakanishi Access module, storage module, musical sound generating system and data writing module
JP5399831B2 (ja) * 2009-09-11 2014-01-29 株式会社コナミデジタルエンタテインメント 音楽ゲームシステム及びそのコンピュータプログラム並びに効果音データの生成方法
JP5782677B2 (ja) 2010-03-31 2015-09-24 ヤマハ株式会社 コンテンツ再生装置および音声処理システム
EP2573761B1 (de) 2011-09-25 2018-02-14 Yamaha Corporation Anzeigen von inhalt im verhältnis zur musikreproduktion mittels einer informationsverarbeitungsvorrichtung unabhängig von der musikreproduktionsvorrichtung
JP5494677B2 (ja) 2012-01-06 2014-05-21 ヤマハ株式会社 演奏装置及び演奏プログラム
US11024272B2 (en) 2017-01-19 2021-06-01 Inmusic Brands, Inc. Graphical interface for selecting a musical drum kit on an electronic drum module

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3610800A (en) * 1969-10-30 1971-10-05 North American Rockwell Digital electronic keyboard instrument with automatic transposition
US3809786A (en) * 1972-02-14 1974-05-07 Deutsch Res Lab Computor organ
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
GB2040537B (en) * 1978-12-11 1983-06-15 Microskill Ltd Digital electronic musical instrument
USRE33738E (en) * 1979-04-27 1991-11-12 Yamaha Corporation Electronic musical instrument of waveform memory reading type
US4253624A (en) 1980-04-07 1981-03-03 Colbert Robert E Welding wire dispenser
US4432293A (en) 1980-11-10 1984-02-21 White Consolidated Industries, Inc. Vertical axis rotary loop taker
GB2097167B (en) * 1981-03-31 1984-12-19 Casio Computer Co Ltd Electronic musical instrument
JPS58211789A (ja) * 1982-06-04 1983-12-09 ヤマハ株式会社 楽音合成装置
JPS6388646A (ja) 1986-10-01 1988-04-19 Nec Corp ジヨブ対応cpuリソ−ス平均化方式
JPS63172196A (ja) 1987-01-09 1988-07-15 松下電器産業株式会社 電子楽器
JPH0719150B2 (ja) 1987-07-14 1995-03-06 ロ−ランド株式会社 電子楽器のアサイナ
JPS6446138A (en) 1987-08-14 1989-02-20 Nec Corp Multi-job control system
JPH0727374B2 (ja) 1988-09-06 1995-03-29 カシオ計算機株式会社 電子楽器
JPH0285895A (ja) 1988-09-22 1990-03-27 Casio Comput Co Ltd 電子楽器の楽音波形合成装置
EP0376342B1 (de) * 1988-12-29 1994-07-27 Casio Computer Company Limited Datenverarbeitungsvorrichtung für ein elektronisches Musikinstrument
US5319151A (en) 1988-12-29 1994-06-07 Casio Computer Co., Ltd. Data processing apparatus outputting waveform data in a certain interval
US5248842A (en) * 1988-12-30 1993-09-28 Kawai Musical Inst. Mfg. Co., Ltd. Device for generating a waveform of a musical tone
GB2232024B (en) * 1989-05-22 1994-01-12 Seikosha Kk Method and apparatus for recording and/or producing sound
US5661253A (en) * 1989-11-01 1997-08-26 Yamaha Corporation Control apparatus and electronic musical instrument using the same
US5121667A (en) * 1989-11-06 1992-06-16 Emery Christopher L Electronic musical instrument with multiple voices responsive to mutually exclusive ram memory segments
US5111727A (en) * 1990-01-05 1992-05-12 E-Mu Systems, Inc. Digital sampling instrument for digital audio data
NO903807L (no) * 1990-02-09 1991-08-12 Int Control Automation Finance Fremgangsmaate og anordning for aa detektere en skadet ph-sensor.
JPH03262750A (ja) 1990-03-14 1991-11-22 Kasai Kogyo Co Ltd 自動車用内装部品及びその製造方法
DE69130748T2 (de) * 1990-06-28 1999-09-30 Casio Computer Co., Ltd. Vorrichtung zur Erzeugung von Musikwellenformen
US5200564A (en) 1990-06-29 1993-04-06 Casio Computer Co., Ltd. Digital information processing apparatus with multiple CPUs
JP2641605B2 (ja) * 1990-08-06 1997-08-20 株式会社河合楽器製作所 電子楽器のチャンネル割り当て装置及びチャンネル割り当て方法
JP2518464B2 (ja) * 1990-11-20 1996-07-24 ヤマハ株式会社 楽音合成装置
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 ヤマハ株式会社 波形発生装置
JPH0683359A (ja) 1992-08-31 1994-03-25 Casio Comput Co Ltd 音発生装置
JP2768168B2 (ja) * 1992-09-18 1998-06-25 ヤマハ株式会社 楽音合成装置
JP2888712B2 (ja) * 1992-11-06 1999-05-10 株式会社河合楽器製作所 楽音発生装置
JP3482685B2 (ja) * 1993-05-25 2003-12-22 ヤマハ株式会社 電子楽器の音源装置
JP3288500B2 (ja) 1993-09-27 2002-06-04 株式会社河合楽器製作所 電子楽器の楽音発生装置
US5629490A (en) * 1993-09-27 1997-05-13 Kabushiki Kaisha Kawai Gakki Seisakusho Piano
JP3561939B2 (ja) * 1993-12-14 2004-09-08 ヤマハ株式会社 波形メモリ音源
JP2921376B2 (ja) * 1993-12-22 1999-07-19 ヤマハ株式会社 楽音発生装置
TW281745B (de) * 1994-03-31 1996-07-21 Yamaha Corp
JP2762926B2 (ja) * 1994-05-10 1998-06-11 ヤマハ株式会社 楽音生成装置
JP2950461B2 (ja) * 1994-05-31 1999-09-20 株式会社河合楽器製作所 楽音発生装置
JP2699886B2 (ja) * 1994-08-19 1998-01-19 ヤマハ株式会社 楽音制御情報発生装置
TW282537B (de) * 1994-11-02 1996-08-01 Seikosha Kk
US5567901A (en) * 1995-01-18 1996-10-22 Ivl Technologies Ltd. Method and apparatus for changing the timbre and/or pitch of audio signals
US5663514A (en) * 1995-05-02 1997-09-02 Yamaha Corporation Apparatus and method for controlling performance dynamics and tempo in response to player's gesture
SG42418A1 (en) 1995-06-19 1997-08-15 Yamaha Corp Method and device for forming a tone waveform by combined use of different waveform sample forming resolutions
JP3267106B2 (ja) * 1995-07-05 2002-03-18 ヤマハ株式会社 楽音波形生成方法
US5663517A (en) * 1995-09-01 1997-09-02 International Business Machines Corporation Interactive system for compositional morphing of music in real-time
US5596159A (en) * 1995-11-22 1997-01-21 Invision Interactive, Inc. Software sound synthesis system

Also Published As

Publication number Publication date
US20020014146A1 (en) 2002-02-07
EP1011091A1 (de) 2000-06-21
KR100416932B1 (ko) 2004-06-12
KR970017162A (ko) 1997-04-30
DE69632695D1 (de) 2004-07-15
EP1011090B1 (de) 2004-06-09
DE69632695T2 (de) 2005-06-16
EP1011091B1 (de) 2004-04-28
US6326537B1 (en) 2001-12-04
US6509519B2 (en) 2003-01-21
DE69632351D1 (de) 2004-06-03
SG50769A1 (en) 1998-07-20
EP1011090A1 (de) 2000-06-21
DE69632351T2 (de) 2005-05-25
SG75928A1 (en) 2000-10-24
EP0766226B1 (de) 2001-02-28
DE69611874D1 (de) 2001-04-05
KR100402364B1 (ko) 2003-10-17
EP0766226A1 (de) 1997-04-02

Similar Documents

Publication Publication Date Title
DE69611874T2 (de) Verfahren und Vorrichtung zur Musiktonerzeugung
DE69711518T2 (de) Auf Software basierendes Tonquellensystem und Verfahren zur Erzeugung von akustischen Wellenformdaten
DE69804518T2 (de) Vorrichtung und Verfahren zur Erzeugung von Tönen durch Zeitstrecken- und Kompressionstechnik
EP1415297B1 (de) Automatische erzeugung von musikalischen sratch-effekten
DE3889051T2 (de) Vorrichtung zur Tonsignalerzeugung.
DE69515742T2 (de) Digitale Bearbeitung von Audio-Mustern
DE69614938T2 (de) Verfahren und vorrichtung zur änderung des klanges und/oder der tonhöhe von audiosignalen
DE69608292T2 (de) Audio-synthesizer
DE69613068T2 (de) Digitales Musikinstrument mit Wellenformbearbeitung zur Erzeugung eines Klangeffektes
DE69619587T2 (de) Verfahren und Vorrichtung zur Tonerzeugung
DE69730873T2 (de) Software-Tonerzeuger
DE69732311T2 (de) Verfahren zur Erzeugung von Musiktönen
DE10164686A1 (de) Automatische Erkennung und Anpassung von Tempo und Phase von Musikstücken und darauf aufbauender interaktiver Musik-Abspieler
DE102007049662B4 (de) Musikklanggenerator
DE3887809T2 (de) Elektronisches Musikinstrument.
DE69517294T2 (de) Vorrichtung zur automatischen Aufführung
DE60026189T2 (de) Verfahren und Vorrichtung zur Wellenformkomprimierung und Erzeugung
DE3689928T2 (de) Effektvorrichtung für elektronisches Musikinstrument.
DE69623866T2 (de) Verfahren und Vorrichtung zur Bildung einer Tonwellenform durch kombinierte Verwendung von verschiedenen Auflösungen der Abtastwerte der Wellenformen
DE69718209T2 (de) System und verfahren zum generieren fraktioneller längenaufschublinien in einem digitalen signalverarbeitungssystem
DE69222795T2 (de) Digitaler Tonhöhenversetzer
DE3023581A1 (de) Verfahren zur digitalen huellkurvensteuerung eines polyphonen musiksyntheseinstruments und schaltungsanordnung zur durchfuehrung des verfahrens
DE69704528T2 (de) Verfahren und Vorrichtung zur Erzeugung von Musiktönen, zur Bearbeitung und Wiedergabe von Musikdaten mit Hilfe von Speichermitteln
DE69923752T2 (de) Vorrichtung zum Senden und Empfängen von Musikdaten und Speicherungsmittel
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
8328 Change in the person/name/address of the agent

Representative=s name: KEHL & ETTMAYR, PATENTANWAELTE, 81679 MUENCHEN