DE69632695T2 - Verfahren und Vorrichtung zur Musiktonerzeugung - Google Patents

Verfahren und Vorrichtung zur Musiktonerzeugung Download PDF

Info

Publication number
DE69632695T2
DE69632695T2 DE69632695T DE69632695T DE69632695T2 DE 69632695 T2 DE69632695 T2 DE 69632695T2 DE 69632695 T DE69632695 T DE 69632695T DE 69632695 T DE69632695 T DE 69632695T DE 69632695 T2 DE69632695 T2 DE 69632695T2
Authority
DE
Germany
Prior art keywords
data
waveform
tone
musical
processing
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
DE69632695T
Other languages
English (en)
Other versions
DE69632695D1 (de
Inventor
Motoichi Hamamatsu-shi 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 DE69632695D1 publication Critical patent/DE69632695D1/de
Publication of DE69632695T2 publication Critical patent/DE69632695T2/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

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf ein Verfahren zum Erzeugen von Musiktönen, welches Musiktonwellenformen erzeugt durch Ausführen eines Musiktonerzeugungsprogramms mit Hilfe einer programmierbaren Verarbeitungseinheit, wie einer CPU oder einem DSP (Digital Signal Processor = digitaler Signalprozessor), und sie bezieht sich auch auf eine Vorrichtung zum Erzeugen von Musiktönen, welche Musiktonwellenformen erzeugt durch Ausführen eines Musiktonerzeugungsprogramms.
  • Stand der Technik
  • Bei einem konventionellen Tongenerator oder einem konventionellen Musiktonerzeugungsprogramm, welches Musiktonwellenformen durch Berechnung erzeugt, werden die Abtastfrequenz, die maximale Anzahl von Musiktönen, die gleichzeitig erzeugt werden könnnen, und die Inhalte einer Verarbeitung von jedem Musikton im voraus eingestellt, unabhängig von den Arten von zu erzeugenden Musiktönen und Bedingungen, bei welchen andere Verarbeitungen, wie beispielsweise eine Hintergrundbearbeitung, ausgeführt werden.
  • EP-A-463411 offenbart beispielsweise eine Musiktonwellenformvorrichtung, die Musiktonsignale ausgibt, welche durch ein Software-Programm in vorgegebenen Zeitintervallen erzeugt werden. Hierbei kann das anzuwendende Tonquellenverfahren durch Auswählen von Tonerzeugungskanälen ausgewählt werden. Das Tonquellenverfahren oder die Klangfarbe wird in Entsprechung zu Spieldaten bestimmt.
  • Bei dem herkömmlichen Tongenerator und dem Musiktonerzeugungsprogramm treten jedoch die folgenden Probleme auf:
  • (1) Die angewendeten Operationen zur Musiktonerzeugung sind festgelegt, und daher werden in einigen Fällen unnötige Verarbeitungen ausgeführt und in anderen Fällen werden wesentliche Verarbeitungen nicht ausgeführt.
  • Beispielsweise werden bei einem Tongenerator oder Musiktonerzeugungsprogramm, das Musiktöne simultan durch eine Vielzahl von Tonerzeugungskanälen erzeugen kann, Musiktöne durch jeden Tonerzeugungskanal unabhängig von denen erzeugt, die durch die anderen Kanäle erzeugten werden, und die Anzahl der pro Zeiteinheit zu erzeugenden Wellenformabtastwerte ist für all die Tonerzeugungskanäle konstant. Deshalb wird, obgleich Musiktöne, die durch einen jeweiligen Kanal erzeugt werden, unterschiedliche Charakteristiken zu denen aufweisen, die durch die anderen Kanäle erzeugten werden, und unterschiedliche Qualitäten aufweisen, die in Entsprechung zu den Arten der Musiktöne benötigt werden, die gleiche Anzahl von Wellenformabtastwerten für all die Tonerzeugungskanäle erzeugt. Folglich führt der herkömmliche Tongenerator oder das Musiktonerzeugungsprogramm unnötige Operationen zur Erzeugung von Musiktönen durch.
  • Um beispielsweise Musiktöne mit Frequenzkomponenten über ein breites Frequenzband, d.h. mit hoher Qualität zu erzeugen, muß die Operation zum Erzeugen von Musiktonwellenformen mit hoher Abtastfrequenz durchgeführt werden (d.h., mit einer großen Anzahl von Abtastwerten), wogegen es ausreichend ist, um Musiktöne mit Frequenzkomponenten nur in einem tiefen Frequenzband zu erzeugen, die Operation zum Erzeugen von Musiktonwellenformen bei einer niedrigen Abtastfrequenz durchzuführen (d.h. mit einer geringen Anzahl von Abtastwerten). Einige Musikstücke erfordern ferner eine große Anzahl Musiktönen, die jedoch mit niedriger Qualität zu erzeugen sind, wenn sie gespielt werden, während andere Musikstücke nur eine geringe Anzahl Musiktöne benötigen, die jedoch in hoher Qualität zu erzeugen sind. Weiterhin muß ein Tonerzeugungskanal, der Musiktöne für einen herausragenden Teil eines zu spielenden Musikstücks erzeugt, wie beispielsweise einen Hauptteil, Musiktöne in hoher Qualität erzeugen, während ein Tonerzeugungskanal, der Musiktöne für einen unspektakulären Teil erzeugt, wie beispielsweise einen Hintergrundmusik-Teil, Musiktöne mit verminderter Qualität erzeugen darf, wobei dem Zuhörer nahezu kein Unterschied in der Klangqualität vermittelt wird.
  • Ferner ist für einige Arten von Musiktönen eine Konvertierung der Tonhöhe ihrer Musiktonwellenformen bei ihrer Erzeugung erforderlich, während für andere Arten von Musiktönen eine solche Konvertierung der Tonhöhe nicht erforderlich ist. Einige Arten von Musiktönen erfordern eine Modulation mittels eines LFO (Low Frequency Oscillator = Niederfrequenzoszillator), während andere Arten dergleichen nicht benötigen. Für einige Arten von Musiktönen ist eine Klangfarbenverarbeitung mit Hilfe eines Digitalfilters erforderlich, wogegen andere dergleichen nicht benötigen und für einige Arten von Musiktönen ist ein Beigeben eines Effekts zu denselben erforderlich, was für andere dagegen nicht benötigt wird. Der herkömmliche Tongenerator weist jedoch festgelegte Schaltungen auf und es ist daher schwierig, eine neue Verarbeitung zu den ursprünglich festgelegten Verarbeitungen hinzuzufügen oder eine entbehrliche Verarbeitung aus denselben wegzulassen, was ein Hinzufügen einer komplizierten Schaltung nötig macht.
  • (2) Bei einem Tongenerator, der durch eine Software realisiert wird (Software-Tongenerator), ändert sich sein mittels einer CPU durchgeführter Berechnungsumfang dynamisch, abhängig von der Anzahl der Tonerzeugungskanäle, die gleichzeitig zum Erzeugen von Musiktönen in Betrieb sind, und von den Inhalten von durch den Tongenerator durchgeführten Musiktonerzeugungsoperationen. Wenn ein Software-Tongeneratorprogramm (nachfolgend als "der Software-Tongenerator" bezeichnet) durch einen Universal-Computer parallel mit anderen Anwendungsprogrammen (nachfolgend als "die anderen Anwendungen" bezeichnet) implementiert ist, kann die Operation der anderen Anwendungen manchmal instabil sein aufgrund einer Änderung im Umfang einer Operation durch den Software-Tongenerator, insbesondere einer Zunahme in dem Umfang einer Operation.
  • (3) Der Operationsumfang, der einem zu verarbeitenden Software-Tongenerator zugeordnet werden kann, ist nicht nur durch die Anzahl und Arten der anderen Anwendungen, die parallel ausgeführt werden, eingeschränkt, sondern auch durch die Verarbeitungskapazität der Verarbeitungseinheit, die die Operation ausführt. Da der zugewiesene Umfang einer Operation somit stark eingeschränkt ist und auch die Operation zum Erzeugen von Musiktönen auf eine festgelegte oder nicht anpassungsfähige Art und Weise durchgeführt wird, sogar wenn ein Anwender es wünscht, eine erhöhte Anzahl von Musiktönen gleichzeitig aber mit herabgesetzter Qualität zu erzeugen oder eine geringere Anzahl von Musiktönen mit einer hohen Qualität zu erzeugen, kann er keinen der zwei Operations-Modi wählen.
  • KERN DER ERFINDUNG
  • Es ist ein erstes Ziel der Erfindung ein Verfahren zur Musiktonerzeugung und eine Vorrichtung zur Musiktonerzeugung 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.
  • Es ist ein zweites Ziel der Erfindung, ein Verfahren zur Erzeugung von Musiktönen und eine Vorrichtung zur Erzeugung von Musiktönen bereitzustellen, welche geeignet sind, die Inhalte einer Operation zum Erzeugen von Musiktonwellenformen zu verändern, abhängig von den Inhalten der zu erzeugenden Musiktöne und von Anwendungen, die parallel zu der Operation zum Erzeugen von Musiktonwellenformen ausgeführt werden.
  • Um das erste Ziel zu erreichen, wird nach einem ersten Gesichtspunkt der Erfindung ein Verfahren zum Erzeugen von Musiktönen bereitgestellt, wie es in Anspruch 1 dargelegt ist.
  • Gemäß der Erfindung werden ferner eine Vorrichtung und ein maschinenlesbares Speichermedium bereitgestellt, wie es jeweils in Anspruch 10 und Anspruch 13 dargelegt ist.
  • Das vorher beschriebene und andere Ziele, Merkmale und Vorteile der Erfindung werden in der folgenden detaillierten Beschreibung in Verbindung mit den anhängenden Zeichnungen klarer veranschaulicht.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaltbild, welches die Anordnung einer Vorrichtung zur Erzeugung von Musiktönen gemäß einer Ausführungsform der Erfindung zeigt.
  • 2A bis 2D zeigen Formate von verschiedenen Daten, die in dem in 1 abgebildeten RAM gespeichert werden, wobei:
  • 2A ein Format von im RAM gespeicherten Klangfarbendaten zeigt,
  • 2B ein Format von im RAM gespeicherten Musiktonwellenformdaten zeigt,
  • 2C ein Format von Ereignisdaten zeigt, gespeichert in einem Eingabepuffer, welcher im RAM voreingestellt ist, und
  • 2D ein Format von Daten zeigt, gespeichert in einem Tongenerator-Register, welches im RAM voreingestellt ist.
  • 3 zeigt Formate von Daten, gespeichert in Ausgabepuffern, welche im RAM voreingestellt sind.
  • 4 ist ein Zeitdiagramm zur Erläuterung der Grundzüge der in 1 durchgeführten Verarbeitung zur Erzeugung von Musiktönen.
  • 5 ist ein Flußdiagramm einer Hauptroutine, welche von einer in 1 enthaltenen CPU ausgeführt wird.
  • 6 ist ein Flußdiagramm, das die Unterbrechungs-Verarbeitung bei MIDI-Empfangs zeigt.
  • 7 ist ein Flußdiagramm, das die Ton-EIN-Ereignis-Verarbeitung zeigt, die durchgeführt wird, wenn Daten über eine in 1 enthaltene MIDI-Schnittstelle empfangen werden.
  • 8 ist ein Flußdiagramm, das eine Teil-Klangenfarben-Auswähl-Verarbeitung zeigt, wenn ein Teil-Klangfarbenauswähl-Schalter betätigt wird.
  • 9 ist ein Flußdiagramm, das eine Teil-Modusauswähl-Verarbeitung zeigt, wenn ein Teil-Modus-Wahlschalter betätigt wird.
  • 10 ist ein Flußdiagramm, das eine Teil-Wellenformauswähl-Verarbeitung zeigt, wenn ein Wellenform-Wahlschalter betätigt wird.
  • 11 ist ein Flußdiagramm, das eine Wellenform-LPF-Verarbeitung zeigt, die ausgeführt wird, wenn ein Wellenform-LPF-Schalter betätigt wird.
  • 12A bis 12D zeigen Beispiele von Frequenzcharakteristiken von Wellenformdaten, welche durch die Wellenform-LPF-Verarbeitung gemäß 11 erzeugt werden, wobei:
  • 12A eine Frequenzcharakteristik der Original-Wellenformdaten zeigt,
  • 12B eine Frequenzcharakteristik der Wellenformdaten nach Bandbegrenzung-Verarbeitung zeigt,
  • 12C eine Frequenzcharakteristik der Wellenformdaten nach Ausführung einer Abtastung mit vermindeter Rate zeigt und
  • 12D eine Frequenzcharakteristik der Wellenformdaten nach der Ausführung der LPF-Verarbeitung zeigt.
  • 13A ist ein Flußdiagramm, das die in Schritt S6 aus 5 ausgeführte Tongenerator-Verarbeitung zeigt.
  • 13B ist eine Fortsetzung des Flußdiagramms aus 13A.
  • 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:
  • 14A ein Format von im RAM gespeicherten Klangfarbendaten zeigt,
  • 14B ein Format von im RAM gespeicherten Wellenformdaten zeigt,
  • 14C ein Format von Ereignisdaten zeigt, die in dem im RAM voreingestellten Eingabepuffer gespeichert werden und
  • 14D ein Format von Daten zeigt, die in dem im RAM voreingestellten Tongenerator-Register gespeichert werden.
  • 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.
  • 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.
  • 17 ist ein Flußdiagramm, welches eine Ton-EIN-Ereignis-Verarbeitung zeigt, die eine der durch die in 16 abgebildete Hauptroutine ausgeführten MIDI-Verarbeitungen ist.
  • 18A ist ein Flußdiagramm, welcher eine in Schritt S108 aus 16 ausgeführte Tongenerator-Verarbeitung zeigt.
  • 18B ist die Fortsetzung des Flußdiagramms aus 18A.
  • 19 ist ein . Flußdiagramm, welches die Wellenform-Lese- und Interpolations-Verarbeitung zeigt, die in Schritt S136 in 18 ausgeführt wird.
  • 20 ist ein Flußdiagramm, welches eine P-Anzeige-Verarbeitung zeigt, die in Schritt S109 in 16 ausgeführt wird.
  • 21A ist ein Flußdiagramm, das die Schalter-EIN-Ereignis-Verarbeitung zeigt, einer der sonstigen Verarbeitungen, die in Schritt S109 in 16 ausgeführt werden.
  • 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.
  • 22A ist ein Flußdiagramm, das die von der CPU der Erfindung ausgeführte Tongenerator-Verarbeitung entsprechend der dritten Ausführungsform zeigt und
  • 22B ist die Fortsetzung des Flußdiagramms aus 22A.
  • DETAILLIERTE BESCHREIBUNG
  • Es folgt eine detaillierte Beschreibung der Erfindung unter Bezugnahme auf die Zeichnungen, die entsprechende Ausführungsformen zeigen.
  • 1 ist eine Darstellung der Anordnung einer Vorrichtung zur Erzeugung von Musiktönen entsprechend einer ersten Ausführungsform der Erfindung. Das in 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 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 auszulesen, 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.ä. 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.ä. mit einem Kommunikationsnetzwerk wie ein LAN, das Internet oder einer Telefonleitung verbunden wird, können das Betriebsprogramm und die Daten dem PC o.ä. 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), welcher) 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 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.
  • 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 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.
  • 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 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 Auslassen jedes zweiten Abtastwerts) mit verminderter Rate abgetastet und die durch verminderte Rate abgetasteten entstandenen Abtastwerte im Wellenformdatenbereich gespeichert werden. Die Wellenformdaten WD" in 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 Wellenformdatenbereich gespeichert werden. Die Verarbeitung zur Erzeugung der Wellenformdaten WD1', WD2' und WD2" (Wellenform-LPF-Verarbeitung) wird im folgenden beschrieben bezugnehmend auf 11.
  • 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.
  • 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 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) (1)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 48kHz 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.
  • 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 4A, 4B und 4C beschrieben.
  • Wenn beispielsweise ein Ton-EIN-Ereignis eines Teils p in den Eingabepuffer aus 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 (4B). Die DMA-Steuereinheit 9 liest die Musiktonwellenformabtastwerte folgerichtig aus dem Ausgabepuffer 0 (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 4B 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 5 bis 13 ausgeführt werden.
  • 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). 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 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 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 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.
  • 7 zeigt Details der Ton-EIN-Ereignis-Verarbeitung, die eine der in Schritt S3 aus 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 (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 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 2B) zum Auslesen der Wellenformdaten wird als Wellenformbezeichnungsdaten für den zugewiesenen Kanal i (siehe 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 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 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 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 p 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 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 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 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.
  • 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 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.
  • 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.
  • 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 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.
  • 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 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. 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. 12B zeigt ein Frequenzspektrum einer Wellenform, das entstand, nachdem eine Bandbegrenzung an der Wellenform aus 12A durchgeführt wurde. 12C zeigt ein Frequenzspektrum einer Wellenform, das durch Abtastung der Wellenform mit vermindeter Rate aus 12B mit der Hälfte der Originalaufnahmeabtastfrequenz entsteht, zur Berechnung der Musiktonwellenformdaten bei der äquivalenten Abtastfrequenz von 24kHz (Wellenformmodus WM = 1). 12D zeigt ein Frequenzspektrum einer Wellenform, das entsteht, wenn die Wellenform aus 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 12C beschriebene Abtasten mit vermindeter Rate wird, wie bereits unter bezug auf 12B zuvor beschrieben ausgeführt, indem jeder zweite Abtastwert der Wellenformdaten von 12B ausgelassen wird. Ähnlich erfolgt das Abtasten mit vermindeter Rate in 12D, indem nach Ausführen der Bandbegrenzungs-Verarbeitung jeder zweite Abtastwert der Wellenformdaten aus 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 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 13A und 13B zeigen die Details der in Schritt S6 aus 5 ausgeführten Tongenerator-Verarbeitung.
  • Erst werden, in Schritt S81 in 13A die Inhalte des Tongenerator-Registers (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 (4) eingestellt, um die Berechnung der als nächstes wiederzugebenden Wellenformdaten derart einzuleiten, daß die Wellenformdaten kontinuirlich 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 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
  • 2D) entspricht, des Lesens und der Interpolierns des Wellenformabtastdatenwerts, der der Lese-Adresse entspticht, die aus dem in 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 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 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 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 ägivalenter 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 Wellenform daten zu erzeugen. Dies ist jedoch nicht einschränkend. Es ist möglich, dass automatisch fetszustellen 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äß 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 (1) und den grundlegende Musiktonerzeugungs-Verarbeitung (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 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 14A wird zuerst ein Format des Klangfarbendaten-Registers gezeigt, in welchem die Klangfarbendaten gespeichert werden, deren Berechnungsmodus CM(p), wie beschrieben unter 2A, weggelassen wird.
  • 14B zeigt ein Format eines Abtastwertpuffers WB. 14E zeigt ein Format des Abtastwertpuffers OB, der dem Puffer 0 in 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 4C abgebildeten benachbartenTakt-Auftrittszeitpunkten gemäß der ersten Ausführungsform.
  • 14C zeigt ein Format des Eingabepuffers, das mit dem Format des Eingabepuffers in 2C identisch ist, dessen Beschreibung weggelassen wird.
  • 14D zeigt ein Format des Tongenerator-Registers, das dem Tongenerator-Register aus 2D in der ersten Ausführungsform entspricht. Das Tongerterator-Register in 14D unterscheidet sich von dem Tongenerator-Register in 2D insofern, als es eine Ton-Nummer anstelle der Tonhöhe PS und der F-Nummer FN aus 2D speichert, den Bereich für den Berechnungsmodus CM(p) in 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.
  • 15 zeigt eine beispielhafte Anordnung einer Steuer-Bedienleistenansicht, die auf der Anzeigeeinheit 3 angezeigt wird, wenn eine weiter unten beschriebene Hauptroutine der 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 erpfangen 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 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-Interpolationsverfahrens, 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 Ordnungoder 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 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 16 bis 20 beschrieben.
  • 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 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 Beendigungs-Verarbeitung, welche auszuführen ist, wenn in Schritt S112 ein Beendigungs-Befehl eingegeben wird. Die Beendigungs-Verarbeitung ist zum Sichern von Einstellungsdaten und zum Löschen der Register da. Nach Ausführung der Beendigungs-Verarbeitung wird die Abbildung aus 15 geschlossen und dann das Programm beendet. Wenn in Schritt S106 die MIDI-Verarbeitung durchgeführt wurde, wird in Schritt S107 auf dem MIDI-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 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 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 18A, 18B und 19 beschrieben. Die mit relativen Kapazitätsauslastung/erzeugten Musiktonanzahl-Anzeige-Verarbeitung (P-Anzeige-Verarbeitung) in Schritt S109 wird unter bezug auf 19 beschrieben. In diesem Zusammenhang beziehen sich die 18A, 18B und 19 auf die zweite Ausführungsform, bei der EIN-/AUS-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 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.
  • 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 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 (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 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 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+FLxDR-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 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-Interpolation durchgeführt, wie in einem Fall, wenn eine grobe Interpolation ausreichend ist. Wenn CD3 = 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äß 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-Punkt-Interpolation, 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 18A und 18B zurück.
  • Wenn CD2 = 2 gilt, d.h. bei 4-Punkt-Interpolation, 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 in 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 18A und 18B zurück.
  • Nochmals zurückkommend auf 18A, wird in Schritt S137 nach Durchführung des Wellenform-Auslesens und Interpolationsverarbeitung ein Filter-Steuer-Register CD3 in 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 CD3 = 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 CD3 = 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 1 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 Ausgabe-puffer 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.
  • 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.
  • 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 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 CD3 in dem Digitalfilterseinstellungs-Anzeigefeld 35 und die Daten CD4 im Effekteinstellungs-Anzeigefeld 36 jeweils eingestellt und geändert.
  • 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 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 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 der Verarbeitung 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 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 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 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 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 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 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 1 zu i addiert, wonach das Programm zu Schritt S184 in 22A zurückkehrt.
  • Wenn die Verarbeitung für alle Kanäle fertiggestellt bzw. die Beendigungs-Verarbeitung 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 Beendigungs-Verarbeitung in Schritt S141 aus 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 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 Biedingungen 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 Sonerzeugungskanal 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 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 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 (13)

  1. Verfahren zum Erzeugen von Musiktönen, das auf einem Computer ausgeführt wird und folgende Schritte aufweist: einen ersten Empfangsschritt zum Empfangen einer Vielzahl von Teilen einer Spielinformation, um eine Erzeugung von Musiktönen zu befehlen; einen zweiten Empfangsschritt zum Empfangen einer Begrenzungsinformation, die eine maximale Größe der Verarbeitungskapazität des Computers, welche verwendet werden kann, definiert; und einen Erzeugungsschritt zum Ausführen einer Musiktonwellenformberechnung für eine Vielzahl von Kanälen im Ansprechen auf die Spielinformation, um Musiktonwellenformen in der Vielzahl der Kanäle zu erzeugen; wobei der Erzeugungsschritt, der die Musiktonwellenformen mittels der Musiktonwellenformberechnung erzeugt, in Entsprechung zu der Begrenzungsinformation beendet wird.
  2. Verfahren nach Anspruch 1, das einen Anzeigeschritt aufweist, um auf einer Anzeigeeinheit einen Berechnungsumfang, der für die Musiktonwellenformberechnung erforderlich ist, und eine Anzahl von Musiktönen anzuzeigen, die durch die Musiktonwellenformberechnung erzeugt werden.
  3. Verfahren zum Erzeugen von Musiktönen nach Anspruch 1, das außerdem folgendes aufweist: einen Anzeigeschritt, um auf einer Anzeigeeinheit wenigstens einen der nachgenannten Punkte anzuzeigen: (i) einen Maximalwert des Verhältnisses der Computer-Kapazität, die zur Erzeugung der Musiktöne frei ist, zu dessen Gesamtkapazität, (ii) einen aktuellen Wert des Verhältnisses der Computer-Kapazität, die zur Erzeugung der Musiktöne frei ist, zu dessen Gesamtkapazität, (iii) eine Abtastfrequenz, bei der Musiktonwellenformabtastwerte erzeugt werden, (iv) einen Effekt, mit dem momentan die zu erzeugenden Musiktöne belegt werden, (v) einen aktuellen Wert der Anzahl der Tonerzeugungskanäle, die simultan zum Erklingen gebracht werden, und (vi) einen maximalen Wert einer Anzahl von Tonerzeugungskanälen, die simultan zum Erklingen gebracht werden.
  4. Verfahren zum Erzeugen von Musiktönen nach Anspruch 1, das außerdem folgendes aufweist: einen Anzeigeschritt, um auf einer Anzeigeeinheit wenigstens einen der nachgenannten Punkte anzuzeigen: (i) einen aktuellen Wert des Verhältnisses der Computer-Kapazität, die zur Erzeugung der Musiktöne frei ist, zu dessen Gesamtkapazität und (ii) einen aktuellen Wert einer Anzahl von Tonerzeugungskanälen, die simultan zum Erklingen gebracht werden, und um simultan auf der Anzeigeeinheit wenigsten einen der nachgenannten Punkte anzuzeigen: (i) einen Maximalwert des Verhältnisses der Computer-Kapazität; die zur Erzeugung der Musiktöne frei ist, zu dessen Gesamtkapazität, (ii) eine Abtastfrequenz, bei der Musiktonwellenformabtastwerte erzeugt werden, (iii) einen Effekt, mit dem momentan die zu erzeugenden Musiktöne belegt werden, und (iv) einen Maximalwert der Anzahl der Tonerzeugungskanäle, die simultan zum Erklingen gebracht werden.
  5. Verfahren nach Anspruch 1, bei dem die Begrenzungsinformation von einem Benutzer in dem Computer eingestellt werden kann.
  6. Verfahren nach Anspruch 1, bei dem der Erzeugungsschritt die Musiktonwellenformberechnungen für wenigstens einen Kanal aus der Vielzahl der Kanäle nicht weiter ausführt, wenn die Musiktonwellenformberechnung für diesen wenigstens einen Kanal aus der Vielzahl der Kanäle beendet wurde.
  7. Verfahren nach Anspruch 1, bei dem der Empfangsschritt eine Empfangsstatusinformation, die sich auf den Computer bezieht, aufweist und in dem Erzeugungsschritt eine maximale Anzahl von Tonerzeugungskanälen, die simultan erklingen sollen, entsprechend der Statusinformation geändert wird.
  8. Verfahren nach Anspruch 7, bei dem die Statusinformation eine Information enthält, die die maximale Anzahl der Tonerzeugungskanäle betrifft, die simultan erklingen sollen.
  9. Verfahren nach Anspruch 7 bei dem die Statusinformation eine Information enthält, die ein maximales Verhältnis der Kapazität des Computers betrifft, die zum Erzeugen von Musiktönen frei ist, zu dessen Gesamtkapazität.
  10. Vorrichtung zur Erzeugung von Musiktönen, die folgendes aufweist: einen Computer zum Empfangen a) einer Vielzahl von Teilen einer Spielinformation für eine Erzeugung von Musiktönen und b ) einer Begrenzungsinformation, die einen maximalen Umfang der Verarbeitungskapazität des Computers definiert, welche verwendet werden kann, und Mittel zum Ausführen einer Musiktonwellenformberechnung für eine Vielzahl von Kanälen im Ansprechen auf die Spielinformation zum Erzeugen von Musiktönen in der Vielzahl der Kanäle; wobei die Berechnung in Entsprechung zu der Begrenzungsinformation beendet wird.
  11. Vorrichtung zur Erzeugung von Musiktönen nach Anspruch 10, die außerdem folgendes aufweist: eine Ausgabe zum Ausgeben von Musiktönen, die den Musiktonwellenformabtastwerten entsprechen; wobei der Computer eine Statusinformation empfängt, die den Computer betrifft, und wobei bei der Musiktonwellenformberechnung sich eine maximale Anzahl von Tonerzeugungskanälen, die simultan erklingen sollen, entsprechend der Statusinformation ändert.
  12. Vorrichtung zur Erzeugung von Musiktönen nach Anspruch 10, die außerdem folgendes aufweist: eine Anzeigeeinheit, um wenigstens einen der nachgenannten Punkte anzuzeigen: (i) einen Maximalwert des Verhältnisses der Computer- Kapazität, die zur Erzeugung der Musiktöne frei ist, zu dessen Gesamtkapazität, (ii) einen aktuellen Wert des Verhältnisses der Computer-Kapazität, die zur Erzeugung der Musiktöne frei ist, zu dessen Gesamtkapazität, (iii) eine Abtastfrequenz, bei der Musiktonwellenformabtastwerte erzeugt werden, (iv) einen Effekt, mit dem momentan die zu erzeugenden Musiktöne belegt werden, (v) einen aktuellen Wert der Anzahl der Tonerzeugungskanäle, die simultan zum Erklingen gebracht werden, und (vi) einen maximalen Wert einer Anzahl von Tonerzeugungskanälen, die simultan zum Erklingen gebracht werden.
  13. Maschinenlesbares Speichermedium zum Speichern von Befehlen, um einen Computer zur Durchführung eines Verfahrens zum Erzeugen von Musiktönen zu veranlassen, welches folgendes aufweist: einen ersten Empfangsschritt zum Empfangen einer Vielzahl von Teilen einer Spielinformation, um Musiktönen zu erzeugen; einen zweiten Empfangsschritt zum Empfangen einer Begrenzungsinformation, die eine maximale Größe der Verarbeitungskapazität des Computers, welche verwendet werden kann, definiert; und einen Erzeugungsschritt zum Ausführen einer Musiktonwellenformberechnung für eine Vielzahl von Kanälen im Ansprechen auf die Spielinformation, um Musiktonwellenformen in der Vielzahl der Kanäle zu erzeugen; wobei der Erzeugungsschritt, der die Musiktonwellenformen mittels der Musiktonwellenformberechnung erzeugt, in Entsprechung zu der Begrenzungsinformation beendet wird.
DE69632695T 1995-09-29 1996-09-27 Verfahren und Vorrichtung zur Musiktonerzeugung Expired - Lifetime DE69632695T2 (de)

Applications Claiming Priority (4)

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

Publications (2)

Publication Number Publication Date
DE69632695D1 DE69632695D1 (de) 2004-07-15
DE69632695T2 true DE69632695T2 (de) 2005-06-16

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
DE69632695T Expired - Lifetime DE69632695T2 (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

Family Applications Before (1)

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

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69632351T Expired - Lifetime DE69632351T2 (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
KR20090133135A (ko) * 2007-06-05 2009-12-31 가부시키가이샤 어드밴티스트 파형 발생 장치, 파형 발생 방법 및 프로그램
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 ヤマハ株式会社 演奏装置及び演奏プログラム
US10923088B2 (en) * 2017-01-19 2021-02-16 Inmusic Brands, Inc. Systems and methods for transferring musical drum samples from slow memory to fast memory

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3610799A (en) * 1969-10-30 1971-10-05 North American Rockwell Multiplexing system for selection of notes and voices in an electronic musical instrument
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 電子楽器の楽音波形合成装置
DE68917113T2 (de) * 1988-12-29 1995-03-16 Casio Computer Co Ltd 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
CN1591564B (zh) 1995-06-19 2010-10-06 雅马哈株式会社 形成乐音波形的方法和装置
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
EP1011090A1 (de) 2000-06-21
EP0766226A1 (de) 1997-04-02
US20020014146A1 (en) 2002-02-07
DE69611874T2 (de) 2001-10-04
KR100416932B1 (ko) 2004-06-12
EP1011091A1 (de) 2000-06-21
DE69632351T2 (de) 2005-05-25
DE69611874D1 (de) 2001-04-05
US6509519B2 (en) 2003-01-21
DE69632351D1 (de) 2004-06-03
SG75928A1 (en) 2000-10-24
EP1011090B1 (de) 2004-06-09
EP0766226B1 (de) 2001-02-28
KR100402364B1 (ko) 2003-10-17
DE69632695D1 (de) 2004-07-15
KR970017162A (ko) 1997-04-30
SG50769A1 (en) 1998-07-20
US6326537B1 (en) 2001-12-04
EP1011091B1 (de) 2004-04-28

Similar Documents

Publication Publication Date Title
DE69632695T2 (de) Verfahren und Vorrichtung zur Musiktonerzeugung
DE3528719C2 (de)
DE3546620C2 (de)
DE69533822T2 (de) Verfahren zur Wiedergabe von Audiosignalen und Vorrichtung dafür
EP1415297B1 (de) Automatische erzeugung von musikalischen sratch-effekten
DE3936693C2 (de) Vorrichtung zum Erzeugen digitaler Audiosignale
DE69724919T2 (de) Verfahren zur Erzeugung von Musiktönen
DE60026189T2 (de) Verfahren und Vorrichtung zur Wellenformkomprimierung und Erzeugung
DE69632696T2 (de) Digitales Musikinstrument mit Wellenformbearbeitung zur Erzeugung eines Klangeffektes
DE60024157T2 (de) Vorrichtung und Verfahren zur Eingabe eines Vortragstils
DE102007049662A1 (de) Musikklanggenerator
DE3023581C2 (de) Verfahren zur digitalen Hüllkurvensteuerung eines polyphonen Musiksyntheseinstruments und Schaltungsanordnung zur Durchführung des Verfahrens
DE3417394C2 (de)
DE60033098T2 (de) Verfahren und Vorrichtung zur Aufnahme/Wiedergabe oder Erzeugung von Wellenformen mittels Zeitlageinformation
DE4226929C2 (de) Tonhöhensteuervorrichtung
DE60106680T2 (de) Wellenformsignalerzeugung mit Synthetisierung von pseudo-tiefen Tönen
DE69923752T2 (de) Vorrichtung zum Senden und Empfängen von Musikdaten und Speicherungsmittel
DE102020200185B4 (de) Klangsteuerungsvorrichtung, klangsteuerungsverfahren und programm
DE69732797T2 (de) Verfahren und vorrichtung zur speicherung von tonfolgen in cyclischen schleifen
DE60032844T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Wellenform auf einem Auslegungsstildatenstrom basiert
DE3604686C2 (de)
DE60032085T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Wellenform mit verbessertem Übergang zwischen aufeinandervolgenden Dateimodulen
DE60302333T2 (de) Optimierung der Wiedergabe einer MIDI-Datei
DE112006002058T5 (de) Vorrichtung zur Speicherung von Klangfarben, Verfahren zur Speicherung von Klangfarben sowie Computerprogramm zur Speicherung von Klangfarben
DE60014483T2 (de) Gerät und Verfahren zur Wiedergabe einer Sprachdatei

Legal Events

Date Code Title Description
8364 No opposition during term of opposition