-
HINTERGRUND DER ERFINDUNG
-
[Technisches Gebiet]
-
Die
vorliegende Erfindung betrifft einen Klangwellenformsynthetisierer
zum Synthetisieren von Wellenformdaten zum Erzeugen einer Klanquellenform,
wie eines musikalischen Klangs oder einer Stimme.
-
[Hintergrund]
-
Elektronische
Musikvorrichtungen, welche ein Klangerzeugungssystem des Wellenformspeichertyps
haben (Wellenformtabellentyp) sind bekannt, welche Wellenformdaten
als Materialien gemäß Aufführungsdaten
zum Synthetisieren einer Musikklangwellenform verarbeiten.
-
4(a), 4(b) und 4(c) sind Blockdiagramme, welche einige elektronische
Musikvorrichtungen zeigen, welche ein Klangerzeugungssystem des
Wellenformspeichertyps haben.
-
In 4(a) sind eine CPU (Central Processing Unit =
zentrale Verarbeitungseinheit) 102 zum Steuern der Klangerzeugung,
ein Speicher-RAM (Random Access Memory = Speicher mit willkürlichem
Zugriff) 103, und ein Klangerzeugungs-LSI (Large Scale
Integrated Circuit = Hochskalierter integrierter Schaltkreis) 104 mit
einem CPU Bus 101 verbunden. Der Klangerzeugungs-LSI 104 ist
mit einem Wellenform-ROM (Read Only Memory = Nur-Lese-Speicher) 106 über einen
Wellenformspeicherbus 105 verbunden.
-
Ein
Verarbeitungsprogramm zum Betreiben der CPU 102 ist in
dem Speicher-RAM 103 geladen. Andererseits werden die Aufführungsdaten
(Musikwellenformsteuerungsinformation) in den Arbeits-RAM 103 durch
den CPU Bus 101 von einer Tastatur oder Ähnlichem,
nicht gezeigt, eingegeben. Die CPU 102 erzeugt Klangerzeugungsparameter (Steuerungsparameter)
basierend auf den Aufführungsdaten,
und gibt diese zu dem Klangerzeugungs-LSI 104 aus. Der
Klangerzeugungs-LSI 104 liest Wellenformdaten als Materialien
von dem Wellenform-ROM (Read Only Memory = Nur-Auslese-Speicher) 106 gemäß den Klangerzeugungsparametern
aus. Dann verarbeitet der LSI die Wellenformdaten zum Synthetisieren
einer musikalischen Klangwellenform. Die synthetisierte musikalische
Klangwellenform wird in ein analoges Signal durch eine CODEC (Codierer/Decodierer)
konvertiert, welcher nicht gezeigt ist, um ein musikalisches Klangsignal
zu erzeugen.
-
Wie
in 4(b) gezeigt ist, kann ein DSP (Digital
Signal Processor = digitaler Signalprozessor) 107 zur Klangerzeugung
anstatt des Klangerzeugungs-LSI
verwendet werden.
-
Der
DSP ist ein Mikroprozessor, welcher dediziert ist zur digitalen
Signalverarbeitung. Er erreicht Hochgeschwindigkeitssummation- und
Multiplikationsoperationen. Er kann auch das Klangerzeugungssystem
mit einem anderen System ersetzen, oder es durch Veränderung
der Mikroprogrammcodes aktualisieren. Die musikalische Klangwellenform,
welche durch den DSP 107 synthetisiert wird, wird durch
den CODEC konvertiert, welcher nicht gezeigt ist, und zwar in das
analoge Signal derart, dass das analoge Signal ausgegeben werden
wird.
-
Der
DSP 107 kann von dem Typ sein, welcher einen Bus (DSP-Bus 108)
und ein Arbeits-RAM 110 zwischen verarbeiteten Wellenformdaten
gemeinsam benutzt, welche in der Signalverarbeitung verwendet werden,
und die Signalverarbeitungsprogrammanweisungen.
-
Weil
jedoch die CPU 102 und der DSP 107 beide eine
Funktion des Zuweisen von Buszugriffsrecht haben, so genannte Ausgleichsfunktion,
können
sie nicht den Bus gemeinsam verwenden.
-
Es
ist allgemein bekannt, dass ein gemeinsam verwendeter Speicher zwei
Busse verbindet, welche in der
japanischen
Patentveröffentlichung
mit Anmeldungsnummer 6-59678 offenbart ist. Deshalb wird
ein gemeinsam ver wendeter Speicher
109 in
4(b) vorgesehen, wobei der Arbeits-RAM
110 mit
dem DSP-Bus
108 verbunden ist.
-
Andererseits
wird der Wellenform-ROM 106 herausskaliert, um die Fähigkeit
zum Speichern der Wellenformdaten genügend zu erhöhen, um hochqualitative musikalische
Klangwellenformen wiederzugeben.
-
Es
gibt jedoch eine Kostengrenze für
solchen Hochkapazitäts-Wellenform-ROM zum Speichern von
Wellenformdaten für
diverse Tonfarben von verschiedenen Musikinstrumenten.
-
Um
dies zu lösen
gibt es noch eine andere Konfiguration, wie in 4(c) gezeigt ist, wobei eine HDD (Hard Disk Drive
= Festplattenlaufwerk) 113 mit dem CPU Bus 101 durch
eine HDC (Hard Disk Controller = Festplattensteuerung) 112 verbunden
ist, während
ein Wellenform-RAM 111 verwendet wird.
-
In
diesem Fall überträgt die CPU 102 Wellenformdaten
von dem HDD (Hard Disk Drive) 113 zu dem Arbeits-RAM 103 vor
dem Starten der Musikaufführung.
Dann überträgt die CPU 102 und
speichert die Wellenformdaten in den Wellenform-RAM 111.
In der Praxis greift die CPU 102 auf die HDD 113 zu,
um die Wellenformdaten der Tonfarbe eines benötigten Musikinstruments von
dem HDD 113 zu dem Wellenform-RAM 111 durch den
Arbeits-RAM 103 zu übertragen.
Wenn jedoch die Veränderung
der Tonfarbe zu einer anderen verändert wird, müssen Wellenformdaten
der Tonfarbe eines anderen Musikinstruments zu dem Wellenform-RAM 111 übertragen
werden. Dies verursacht ein anderes Problem, nämlich dass es Zeit benötigt, um
die Wellenformdaten zu verändern.
Es gibt auch eine Grenze für
die Datengröße, welche
in den Wellenform-RAM 111 speicherbar ist, zu vernünftigen
Kosten.
-
Deshalb
gibt es ein anderes Verfahren, welches Sampler-Verfahren genannt
wird. In der musikalischen Klangsyntheseverarbeitung nach dem Starten
der Aufführung
werden Wellenformdaten, welche zur musikalischen Klangsynthese nötig sind, eine
nach dem anderen von der HDD 113 zu dem Wellen form-RAM 111 durch
den Arbeits-RAM 103 geliefert. Gemäß diesem System können Benutzer auf
fast unbegrenzte Mengen von Wellenformdaten zugreifen. Dieses System
ist als ein „Sampler" Programm implementiert,
welches auf einem Personalcomputer läuft.
-
Weil
jedoch die Latenz von dem Empfang einer Anfrage zum Lesen von Wellenformdaten
zum tatsächlichen
Lesen von der HDD 113 zu wichtig zum Vernachlässigen ist,
müssen
große
Beträge
von Wellenformdaten welche zur musikalischen Klangsynthese nötig sind,
ausgelesen und in den Arbeits-RAM 113 vorab gespeichert
werden.
-
Der
CPU Bus 101 wird hauptsächlich
zur Klangerzeugungsparametersynthese verwendet. Diese Verarbeitung
benötigt
ein relativ großskaliges Programm
mit einem komplizierten Algorithmus, dessen Verarbeitungslast sehr
hoch ist.
-
Jedoch
ist der CPU Bus, welcher in dem System eingebaut ist, langsamer
als die CPU für
einen Personalcomputer. Ferner ist die Geschwindigkeit des CPU Busses
nur ein Teil der Geschwindigkeit des internen Betriebs der CPU.
Die CPU 102 ist ausgebildet zum Verwenden von 70–80 Prozent
der Datenübertragungskapazität schlechtestenfalls
zum Ausführen
des Befehls „fetch" zur beschäftigten
Zeit.
-
Wenn
deshalb zu viel der Datenübertragungskapazität des CPU-Busses 101 von
der Übertragung
von Wellenformdaten zwischen dem HDC 112 und dem Arbeits-RAM 103 aufgebraucht
wird, kann die CPU 102 nicht genügend Berechnungsleistung liefern.
-
Eine
musikalische Klangdatenaufzeichnungs-/Wiedergabe-Vorrichtung ist
bekannt, wie offenbart in der
japanischen
Patentveröffentlichung
mit Anmeldungsnummer 6-51776 , wobei eine HDD mit einem
Bus unterschiedlich von dem Bus auf der Wiedergabeseite und dem
CPU Bus derart verbunden ist, dass Wellenformdaten, welche von der
HDD ausgelesen werden, zu dem Bus auf der Wiedergabeseite durch
einen gemeinsam verwendeten Puffer übertragen werden.
-
5 ist
ein Blockdiagramm, welches eine konventionelle musikalische Klangdatenaufzeichnung-/Verarbeitungs-Vorrichtung
zeigt. In dieser Konfiguration sind andere Blöcke zum Aufzeichnen von Wellenformdaten
auf der HDD nicht gezeigt.
-
Ein
Personalcomputer 121 und eine Wiedergabesteuerungseinrichtung 122 sind über ein
serielles Kabel verbunden. Ferner sind der Personalcomputer 121,
die Wiedergabesteuerungseinrichtung 122, und eine HDD 122 über SCSI
(Small Computer System Interface) Busse jeweils verbunden.
-
Der
Personalcomputer 121 erlaubt Benutzern, Auswahl und Einstelloperationen
auf Dateinamen auszuführen,
und sendet Information zum Spezifizieren des Orts der Datendatei
zu der Wiedergabesteuerungseinrichtung 122 über das
serielle Kabel aus.
-
Die
Wiedergabesteuerungseinrichtung 122 liest musikalische
Klangwellenformdaten aus, welche in der HDD 123 gespeichert
sind, und zwar über
den SCSI-Bus zum Wiedergeben der musikalischen Klangwellenformdaten.
-
In
der Wiedergabesteuerungseinrichtung 122 sind ein Mikrocomputer,
welcher im Wesentlichen aus einer CPU 126 besteht, ein
RAM 127 und ein ROM 128 mit einem CPU Bus 125 verbunden. Eine
serielle Eingabe-/Ausgabe-Schnittstelle 124, eine SCSI-Schnittstelle 129,
eine Wiedergabe-/Übertragungs-Steuerung 130,
und ein Klangerzeuger 131 sind auch mit dem CPU Bus 125 verbunden.
Der Betrieb dieser Komponenten wird durch die CPU 126 gesteuert.
-
Die
Wiedergabe-/Übertragungs-Steuerung 130 wird
durch einen Einfangpuffer 134 geliefert. Der Einfangpuffer 134 ist
mit der SCSI-Schnittstelle 129 durch einen Wellenformdatenbus 132 verbunden, und
zu einem Wiedergabepuffer 135 durch einen Bus 133.
-
Die
musikalischen Klangwellenformdaten, welche von der HDD 123 ausgelesen
werden, sind in dem Einfangpuffer 134 gespeichert. Nach
dem Entfernen von unnötigen
Header-Teilen und dem Umordnen der Daten überträgt der Einfangpuffer 134 einen
Block (16K words) von musikalischen Klangwellenformdaten, eine geeignete
Einheit zum Wiedergeben und Lesen, zu dem Wiedergabepuffer 135 (zwei 4K
words). Die Schreib-/Lese-Betriebe des Einfangpuffers 134 werden
durch einen Systemtaktpuls 1 oder 0 jeweils geschaltet.
-
Der
Wiedergabeklangerzeuger 131 liest und gibt einen Block
von musikalischen Klangwellenformdaten von dem Wiedergabepuffer 135 ansprechend auf
einen Samplingtakt aus. Während
dieses Vorgangs kann die Tonhöhe
der gelesenen Wellenform gesteuert werden.
-
Wie
in der
japanischen Patenveröffentlichung
mit Anmeldungsnummer 6-51776 offenbart
erlaubt eine solche Konfiguration, bei der der Einfangpuffer
134 zwischen
dem Wellenformdatenbus
132 und dem Wellenformwiedergabebus
133 vorgesehen ist,
beiden Bussen, musikalische Klangwellenformen unabhängig voneinander
zu übertragen.
-
Die Übertragungsfunktion,
welche in der
japanischen Patentveröffentlichung
mit Anmeldungsnummer 6-51776 offenbart ist, ist zum Auslesen
und Wiedergeben einer vorbestimmten Blockgröße von Wellenformdaten von
der HDD
123.
-
Mit
anderen Worten lehrt die
japanische
Patentveröffentlichung
mit Anmeldungsnummer 6-51776 nicht, wie jeder Bus Wellenformdaten überträgt, welche
von einem Speicher mit großer
Latenz wie der HDD
123 ausgelesen werden, wenn der Betrag
von Wellenformdaten, welche zur musikalischen Klangwellenformsynthese
notwendig sind, gemäß Zeit variierenden
Faktoren wie Aufführungsdaten (musikalische
Wellenformsteuerungsinformation) variieren.
-
US 5,668,336 offenbart ein
Musiksystem, welches ein Hauptsystem und ein Untersystem hat. Das
Untersystem hat ein RAM, welches dazu in der Lage ist, dass Wellenformdaten
daraus ausgelesen werden und darin rein geschrieben werden, und
zwar auf parallele Art und Weise. Wellenformdaten werden sequentiell
von dem RAM in der Reihenfolge gelesen, in welcher die Wellenformdaten
in das RAM geschrieben wurden. Musikalische Töne werden basierend auf den
gelesenen Wellenformdaten synthetisiert. Das Hauptsystem hat eine
externe Speichereinrichtung, welche Wellenformdaten speichert, und bestimmt
Pakete, in welche Wellenformdaten von der externen Speichereinrichtung
zu dem RAM zum Erzeugen von musikalischen Tönen übertragen werden sollen, geteilt
wird, und zwar basierend auf der Schreibzeitperiode, welche für eine Einheit
von Daten benötigt
wird, welche in die ersten Speichermittel geschrieben werden sollen,
und eine Lesezeitperiode, welche für die Einheit von Daten benötigt wird, welche
von dem RAM gelesen werden sollen. Wellenformdaten werden sequentiell
von der externen Speichereinrichtung in den bestimmten Paketen gelesen.
Die gelesenen Wellenformdaten werden sequentiell in das RAM bei
Gebieten davon geschrieben, von welchen vorher gespeicherte Wellenformdaten
gelesen wurden.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung wurde gemacht, um die oben erwähnten Probleme
zu lösen,
und es ist ein Ziel der vorliegenden Erfindung, einen Klangwellenformsynthetisierer
vorzusehen, welcher dazu in der Lage ist, Wellenformdaten von einem
Speichermedium auszulesen und sie zu einem Signalverarbeitungsabschnitt
effizient zu übertragen.
-
In
einem Aspekt der Erfindung wird eine Klangwellenformsynthesevorrichtung
gemäß Anspruch
1 vorgesehen. Bevorzugte Ausführungsbeispiele
der vorliegenden Erfindung können
von den abhängigen
Ansprüchen
erhalten werden.
-
Klangwellenformsynthetisiervorrichtung
beinhaltet einen Wellenformdatenlieferabschnitt, einen Wellenformpuffer,
einen Wellenformdatenverarbeitungsabschnitt und einen Steuerungsdatenverarbeitungsabschnitt.
Der Wellenformdatenlieferabschnitt empfängt eine Benachrichtigung einer
ersten Übertragungsanforderung
und dieser liest die Wellenformdaten von dem Speichermedium zum
Liefern der Wellenformdaten ansprechend auf die erste Übertragungsanforderung
aus. Der Wellenformpuffer ist mit dem Wellenformdatenlieferabschnitt
zum Speichern der Wellenformdaten verbunden, welche von dem Wellenformdatenlieferabschnitt
geliefert werden. Der Wellenformdatenverarbeitungsabschnitt empfängt eine
Benachrichtigung einer zweiten Anforderung und dieser ist mit dem
Wellenformpuffer zum Übertragen
der Wellenformdaten von dem Wellenformpuffer zu dem Wellenformdatenverarbeitungsabschnitt ansprechend
auf die zweite Übertragungsanforderung
verbunden. Der Wellenformdatenverarbeitungsabschnitt führt die
Klangwellenformsynthese basierend auf den übertragenen Wellenformdaten
und gegebenen Steuerungsparametern aus, während ein Zustand der Klangwellenformsynthese
und ein Fortschritt der Klangwellenformsynthese benachrichtigt werden.
Der Steuerungsdatenverarbeitungsabschnitt erzeugt die erste Übertragungsanforderung basierend
auf dem Fortschritt der Klangwellenformsynthese benachrichtigt von
dem Wellenformdatenverarbeitungsabschnitt, und sendet dem Wellenformdatenlieferabschnitt
die Benachrichtigung der ersten Übertragungsanforderung.
Der Steuerungsdatenverarbeitungsabschnitt empfängt die Wellenformsteuerungsinformation
von außen
und erzeugt die Steuerungsparameter basierend auf der Wellenformsteuerungsinformation
und dem Zustand der Klangwellenformsynthese, wie von dem Wellenformdatenverarbeitungsabschnitt
benachrichtigt. Der Steuerungsdatenverarbeitungsabschnitt sendet
dem Wellenformdatenverarbeitungsabschnitt die Benachrichtigung der
zweiten Übertragungsanforderung
korrespondierend zu der ersten Übertragungsanforderung
zusammen mit den erzeugten Steuerungsparametern.
-
Bevorzugterweise
beinhaltet der Wellenformdatenverarbeitungsabschnitt einen ersten
Bus, einen ersten Speicher, welcher mit dem ersten Bus zum Speichern
der Wellenformdaten verbunden ist, und einen digitalen Signalprozessor,
welcher mit dem ersten Bus zum Verarbeiten der Wellenformdaten während der
Klangwellenformsynthese verbunden ist, während der Wellenformdatenlieferabschnitt
einen zweiten Bus, eine Ausleseeinrichtung zum Auslesen der Wellenformdaten
von dem Speichermedium und zum Einfügen der ausgelesenen Wellenformdaten
zu dem zweiten Bus, und einen zweiten Speicher, welcher mit dem
zweiten Bus zum Speichern der Wellenformdaten verbunden ist, beinhaltet,
und zwar derart, dass der Wellenformpuffer zwischen dem ersten Bus
und dem zweiten Bus zum Übertragen
der Wellenformdaten von dem zweiten Speicher des Wellenformdatenverarbeitungsabschnitts
zu dem ersten Speicher des Wellenformdatenverarbeitungsabschnitts
durch den Wellenformpuffer verbunden ist.
-
In
einem solchen Fall erzeugt der Steuerungsdatenverarbeitungsabschnitt
ferner eine Leseanforderung gemäß der Wellenformsteuerungsinformation,
und sendet eine Benachrichtigung der Leseanfrage zu der Leseeinrichtung
des Wellenformdatenverarbeitungsabschnitts. Die Ausleseeinrichtung wird
betrieben, wenn sie die Benachrichtigung der Leseanfrage zum Auslesen
der Wellenformdaten von dem Speichermedium und zum Übertragen
der ausgelesenen Wellenformdaten zu dem zweiten Speicher empfängt.
-
Ferner
beinhaltet der Wellenformdatenlieferabschnitt eine Steuerung zum
Steuern des zweiten Busses derart, dass der Übertragung der Wellenformdaten
von dem zweiten Speicher zu dem Wellenformpuffer eine höhere Priorität gegeben
wird als die Übertragung
der Wellenformdaten von dem Speichermedium zu dem zweiten Speicher.
-
Ferner
sendet der Steuerungsdatenverarbeitungsabschnitt die Benachrichtigung
der Leseanfrage zu der Leseeinrichtung des Wellenformdatenlieferabschnitts
vor dem Start der Eingabe der Wellenformsteuerungsinformation in den
Steuerungsdatenverarbeitungsabschnitt derart, dass die Wellenformdaten
vor der Klangwellenformsynthese zu dem zweiten Speicher von dem
Speichermedium übertragen
werden.
-
Bevorzugterweise
führt der
Wellenformdatenverarbeitungsabschnitt die Klangwellenformsynthese
zum Synthetisieren einer Klangwellenform auf einer Rahmen-um-Rahmen
Basis aus, wenn die Wellenformdaten in Synchronisation mit einer
gegebenen Rahmenperiode derart sind, dass jeder Rahmen eine gegebene
Anzahl von Samples der Klangwellenform beinhaltet, und wobei der
Wellenformdatenlieferabschnitt betrieben wird, wenn die Benachrichtigung
der ersten Übertragungsanfrage
zum Übertragen
der Wellenformdaten von dem Speichermedium zu dem Wellenformpuffer
korrespondierend zu der Rahmenperiode empfangen wird.
-
In
einem anderen Aspekt der Erfindung wird ein Verfahren des Betreibens
einer Klangwellenformsynthetisiervorrichtung gemäß Anspruch 7 vorgesehen. Das
erfindungsgemäße Verfahren
wird durch folgende Schritte ausgeführt: Betreiben des Wellenformdatenlieferabschnitts,
wenn eine Benachrichtigung einer ersten Übertragungsanfrage von dem Steuerungsdatenverarbeitungsabschnitt
zum Auslesen der Wellenformdaten von einem Speichermedium und Liefern
der ausgelesenen Wellenformdaten zu dem Wellenformpuffer ansprechend
auf die erste Übertragungsanfrage
empfangen wird; Betreiben des Wellenformpuffers zum Speichern der
Wellenformdaten, welche von dem Wellenformdatenlieferabschnitt geliefert
werden; Betreiben eines Wellenformdatenverarbeitungsabschnitts,
wenn eine Benachrichtigung einer zweiten Übertragungsanfrage von dem
Steuerungsdatenverarbeitungsabschnitt zum Übertragen der Wellenformdaten
von dem Wellenformpuffer zu dem Wellenformdatenverarbeitungsabschnitt
ansprechend auf die zweite Übertragungsanfrage
empfangen wird; Betreiben des Wellenformdatenverarbeitungsabschnitts
zum Durchführen
der Klangwellenformsynthese basierend auf den übertragenen Wellenformdaten
und Steuerungsparametern, welche von dem Steuerungsdatenverarbeitungsabschnitt
eingefügt
wurden, während
ein Zustand der Klangwellenformsynthese und ein Fortschreiten der Klangwellenformsynthese
zu dem Steuerungsdatenverarbeitungsabschnitt benachrichtigt wird;
Betreiben des Steuerungsdatenverarbeitungsabschnitts zum Erzeugen
der ersten Übertragungsanfrage
basierend auf dem Fortschritt der Klangwellenformsynthese, wie von
dem Wellenformdatenverarbeitungsabschnitt benachrichtigt, und zum Senden
zu dem Wellenformdatenlieferabschnitt der Benachrichtigung der ersten Übertragungsanfrage; Betreiben
des Steuerungsdatenverarbeitungsabschnitts, wenn die Wellenformsteuerungsinformation empfangen
wird, zum Erzeugen der Steuerungsparameter basierend auf der Wellenformsteuerungsinformation
und dem Zustand der Klangwellenformsynthese, wie von dem Wellenformdatenverarbeitungsabschnitt
benachrichtigt; und Betreiben des Steuerungsdatenverarbeitungsabschnitts
zum Senden zu dem Wellenformdatenverarbeitungsabschnitts der Benachrichtigung
der zweiten Übertragungsanfrage korrespondierend
zu der ersten Übertragungsanfrage
zusammen mit den erzeugten Steuerungsparametern.
-
In
dieser Struktur ermöglicht
es die Verwendung des Wellenformpuffers, die Synthese einer zweiten
Wellenform zu steuern, welche durch den Wellenformdatenverarbeitungsabschnitt
durchgeführt
wird, und zum Auslesen der Wellenformdaten von dem Speichermedium,
durchgeführt
durch den Wellenformdatenlieferabschnitt unabhängig voneinander während der
Verarbeitung der Klangwellenformsynthese. Weil der Wellenformdatenverarbeitungsabschnitt
Wellenformdaten von dem Wellenformpuffer zu geeigneten Zeitpunkten übertragen kann,
kann der Einfluss des Lesens der Wellenformdaten von dem Speichermedium
auf die Klangwellenformsyntheseverarbeitung verringert werden.
-
In
dieser Struktur werden die Übertragung auf
dem ersten Bus zwischen dem digitalen Signalprozessor, dem ersten
Speicher, und dem Wellenformpuffer, und die Übertragung von Wellenformdaten
oder Ähnlichem
auf dem zweiten Bus zwischen der Speichermediumleseeinrichtung,
der Übertragungssteuerung,
dem zweiten Speicher, und dem Wellenformpuffer, unabhängig voneinander
während der
Klangwellenformsyntheseverarbeitung gesteuert. Es erlaubt dem Signalprozessor,
die Wellenformdaten zwischen dem ersten Speicher und dem Wellenformpuffer
effizient zu geeigneten Zeitpunkten zu übertragen.
-
Weil
ferner der zweite Bus derart gesteuert wird, dass der Übertragung
von Wellenformdaten von dem zweiten Speicher zu dem Wellenformpuffer
eine höhere
Priorität
gegeben wird als der Übertragung von
Wellenformdaten von dem Speichermedium zu dem zweiten Speicher,
kann der Einfluss der Übertragung
von dem Speichermedium auf die Klangwellenformsyntheseverarbeitung
verringert werden.
-
Zusätzlich führt die
Speichermediumleseeinrichtung die Übertragung von Wellenformdaten
von dem Speichermedium zu dem zweiten Speicher und die Übertragung
von Wellenformdaten von dem zweiten Speicher zu dem Wellenformpuffer
jeweils aus. Dies ermöglicht
es, Wellenformdaten effizient zu übertragen, welche in dem Speichermedium
gespeichert sind, und zwar mit längerer
Verzögerung
als der zweite Speicher.
-
Weil
ferner ein Rahmen von Wellenformdaten als eine Einheit synthetisiert
wird, wird der Betrag von Wellenformdaten, welche durch den Wellenformdatenverarbeitungsabschnitt
verarbeitet werden soll, gleichmäßig in der
Zeit gemacht. Mit anderen Worten, weil der Betrag von verarbeiteten
Wellenformdaten nicht soviel von Rahmen zu Rahmen verändert wird,
kann der Wellenformdatenverarbeitungsabschnitt gleichmässig betrieben
werden.
-
Zusätzlich werden
die Übertragung
von Wellenformdaten, durchgeführt
durch den Wellenformdatenverarbeitungsabschnitt, und die Übertragung
von Wellenformdaten, durchgeführt
durch den Wellenformdatenlieferabschnitt, synchron mit einer gegebenen
Rahmenperiode derart durchgeführt,
dass der Betrag von Wellenformdaten, welcher zu einem Zeitpunkt übertragen
wird, angemessen groß in
der Größe wird,
wodurch effiziente Übertragung
mit wenigem Overhead ermöglicht
wird.
-
Gemäß der vorliegenden
Erfindung ermöglicht
der Wellenformpuffer, dass Lesen und die Übertragung von Wellenformdaten
von einem Speichermedium mit großer Kapazität wie einer Festplatte mit großer Latenz
zu dem Wellenformdatenverarbeitungsabschnitt während des Betriebs des Erzeugens eines
musikalischen Klangs. Deshalb kann eine Musik mit hoher Qualität sogar
in Echtzeit synthetisiert werden.
-
Während der
Datenlese- und Übertragungsoperationen
kann die Datenübertragungskapazität auf dem
Bus, mit welchem der Signalprozessor verbunden ist, effizient verwendet
werden.
-
Während der
Datenlese- und Übertragungsoperationen
werden die Wellenformdaten in Einheiten von Rahmen derart übertragen,
dass die Datenübertragungskapazität effizient
verwendet werden kann.
-
Als
ein Ergebnis kann eine Verringerung in der Verarbeitungsleistung
des Wellenformdatenverarbeitungsabschnitts verhindert werden, und
somit wird eine Anzahl von gleichmäßig erzeugten Klängen, genug
zur praktischen Verwendung, erhalten.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm zum Erklären der
funktionalen Struktur eines bevorzugten Ausführungsbeispiels der vorliegenden
Erfindung.
-
2 ist
ein Blockdiagramm, welches ein spezifisches Beispiel zeigt, in welchem
das in 1 gezeigte Ausführungsbeispiel auf eine elektronische Musikvorrichtung
eines Wellenformspeicherklangerzeugungssystems angewandt wird.
-
3-1 und 3-2 sind
ein Sequenzdiagramm zum Erklären
eines Beispiels der Verarbeitungszeitgebung von jeder Komponente
in dem spezifischen Beispiel von 2.
-
4(a), 4(b) und 4(c) sind Blockdiagramme, welche einige elektronische
Musikvorrichtungen eines Wellenformspeicherklangerzeugungssystems
zeigen.
-
5 ist
ein Blockdiagramm, welches eine konventionelle musikalische Klangdatenaufzeichnungs-/Wiedergabevorrichtung
zeigt.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
1 ist
ein Blockdiagramm zum Erklären der
funktionalen Struktur des bevorzugten Ausführungsbeispiels der vorliegenden
Erfindung.
-
Das
Ausführungsbeispiel
sieht einen Klangwellenformsynthetisierer als eine elektronische
Musikvorrichtung oder Ähnliches
zum Durchführen
von Klangwellenformsynthese basierend auf Wellenformsteuerungsinformation
und Wellenformdaten, welche in einem Speicher gespeichert sind,
vor. In dem Klangwellenformsynthetisierer ist ein Abschnitt, welcher
durch Bezugszeichen 1 bezeichnet ist, eine Steuerungsdatenverarbeitungseinheit,
ein Abschnitt, welcher durch 2 bezeichnet ist, ist eine
Wellenformdatenverarbeitungseinheit, ein Abschnitt, welcher durch 3 bezeichnet
ist, ist eine Wellenformdatenliefereinheit, und ein Abschnitt, welcher
durch 5 bezeichnet ist, ist eine Schnittstelleneinheit.
-
Die
Wellenformdatenliefereinheit 3 ist mit einem Wellenformdatenspeicher 4 wie
einer HDD verbunden.
-
Die
Schnittstelleneinheit 5 verbindet die Steuerungsdatenverarbeitungseinheit 1,
die Wellenformdatenverarbeitungseinheit 2, und die Wellenformdatenliefereinheit 3 miteinander.
Ein Wellenformpuffer 6 verbindet die Wellenformdatenverarbeitungseinheit 2 und
die Wellenformdatenliefereinheit 3, wodurch ein Pufferrelais
für die Übertragung
von Wellenformdaten vorgesehen wird. Dies erlaubt der Wellenformdatenverarbeitungseinheit 2,
eine Klangwellenform zu synthetisieren, und der Wellenformdatenliefereinheit 3 zum
Auslesen von Wellenformdaten individuell ohne Verursachen von Interferenz
miteinander.
-
Verschiedene
Verfahren können
für die Schnittstellen
zwischen der Steuerungsdatenverarbeitungseinheit 1 und
der Wellenformdatenverarbeitungseinheit 2, und zwischen
der Steuerungsdatenverarbeitungseinheit 1 und der Wellenformdatenliefereinheit 3 verwendet
werden. In dem gezeigten Beispiel sind diese Schnittstellen direkte
Verbindungen.
-
Die
Steuerungsdatenverarbeitungseinheit 1, die Wellenformdatenverarbeitungseinheit 2 und
die Wellenformdatenliefereinheit 3 führen interne Verarbeitung unabhängig voneinander
auf einer allein stehenden Basis aus. In dem gezeigten Beispiel
sind jedoch diese Operationen in Einheiten von Rahmenperioden korrespondierend
zu den vorbestimmten mehreren Samplingperioden konsolidiert.
-
Die
Wellenformdatenverarbeitungseinheit 2 hat einen Signalverarbeitungsbus
(erster Bus) 20, mit welchem ein digitaler Signalprozessor 21 und
ein Speicher (erster Speicher) 22 verbunden sind. Die Signalverarbeitungseinheit 21 hat
auch eine eingebaute Übertragungssteuerung
(erste Übertragungssteuerung) 23.
Die Ausgabe der Signalverarbeitungseinheit 21 ist mit einer
Klangwellenformausgabeeinheit, nicht gezeigt, verbunden.
-
Die
Wellenformdatenverarbeitungseinheit 2 synthetisiert einen
Rahmen von Klangwellenformrahmen um Rahmen basierend auf akquirierten
Steuerungsparametern und übertragenen
Wellenformdaten. Die synthetisierten mehreren Samples der Klangwellenform
werden zu der Klangwellenformausgabeeinheit geliefert, von welcher
ein Sample von Klangwellenform jede Samplingperiode ausgegeben wird.
-
Die
Klangwellenformsynthese auf einer Rahmenbasis kann ansprechend auf
die Lieferung eines Rahmen-Sync-Signals von der Klangwellenformausga beeinheit
durchgeführt
werden. In diesem Fall korrespondiert das Rahmen-Sync-Signal zu vorbestimmten mehreren
Samplingtaktpulsen.
-
Der
Wellenformdatenverarbeitungsabschnitt 2 akquiriert von
der Steuerungsdatenverarbeitungseinheit 1 Steuerungsparameter,
welche zur Klangwellenformsynthese notwenig sind, mindestens für die derzeitige
Rahmenperiode. Zwischenzeitlich überträgt die Übertragungssteuerung 23 Wellenformdaten,
welche notwendig sind zur Klangwellenformsynthese mindestens für die derzeitige
Rahmenperiode, von dem Wellenformpuffer 6 zu dem Speicher 22.
-
Die
Akquisition von Steuerungsparametern und die Übertragung der Wellenformdaten
kann in Einheiten von Rahmenperioden gemäß dem Fortschritt von Klangwellenformsynthese
durchgeführt werden.
-
Die
Einheiten von Rahmenperioden bedeuten ein Zeitintervall, welches
ein ganzzahliges Vielfaches von einer Rahmenperiode ist. Der Wert
des ganzzahligen Vielfachen kann bei unterschiedlichen Zeiten variieren.
-
Der
Wellenformdatenverarbeitungsabschnitt 2 kann auch Klangwellenformsynthese
auf jedem Sample von Klangwellenform durchführen. Jedoch variiert die Anzahl
von Samples von Wellenformdaten, welche für Klangwellenformsynthese verwendet werden,
abhängig
von den Zuständen
wie Tonhöhe. Deshalb
kann die Menge von Wellenformdaten, welche temporär geliefert
wird, nicht ausreichend sein, und dies kann Rauschen in der synthetisierten
Wellenform verursachen. Es ist bevorzugt, dass die Signalverarbeitungseinheit 21 die
Verarbeitung Rahmen um Rahmen durchführt, wobei jeder Rahmen eine angemessene
Größe hat,
weil sie die Variationen von notwendigen Wellenformdaten unterdrücken kann.
-
Wenn
ferner die Klangwellenformsynthese durchgeführt wird für jedes Sample von Klangwellenform,
können
die Wellenformdaten Sample um Sample transferiert werden müssen. In
einem solchen Fall wird ein bestimmter Be trag von Overhead jedes
Mal gebraucht, wenn ein Sample von Wellenformdaten übertragen
wird. Im Gegensatz dazu, wenn Klangwellenformsynthese durch den
Rahmen durchgeführt
wird, können
die Wellenformdaten auch jede Rahmenperiode übertragen werden, und zwar auf
dem Signalverarbeitungsbus 20 oder dem Wellenformdatenbus 30,
wodurch effiziente Datenübertragung
mit hoher Geschwindigkeit erreicht wird.
-
Die
Wellenformdatenverarbeitungseinheit 2 synthetisiert eine
Klangwellenform Rahmen um Rahmen, und dies fügt einen Verzögerungsrahmen
ein. Jedoch wird eine solche Verzögerung praktisch nicht signifikant
sein, bis eine Rahmenperiode extrem lang ist.
-
Das
Folgende beschreibt eine spezifische Struktur des Wellenformdatenverarbeitungsabschnitts 2.
-
Der
Signalprozessor 21 synthetisiert eine Klangwellenform,
Rahmen um Rahmen, basierend auf den Steuerungsparametern und den
Wellenformdaten, welche in dem Speicher 22 gespeichert
sind, während
er die Steuerungsdatenverarbeitungseinheit 1 über den
Zustand und den Fortschritt der Klangwellenformsynthese benachrichtigt.
-
Beim
Empfang der Benachrichtigung einer Wellenformdatenübertragungsanfrage
(zweite Übertragungsanfrage)
von der Steuerungsdatenverarbeitungseinheit 1 überträgt die Übertragungssteuerung 23 Wellenformdaten
von dem Wellenformpuffer 6 zu dem Speicher 22.
-
Der
Signalprozessor 21 kann interne Signalverarbeitung auch
während
der Übertragung
von Wellenformdaten auf dem Signalverarbeitungsbus 20 durchführen.
-
Die
mehreren Samples von Klangwellenformsynthese durch den Signalprozessor 21 werden zur
nicht gezeigten Klangwellenformausgabeeinheit geliefert, und Sample
um Sample für
jede Samplingperiode ausgegeben.
-
Der
Zustand und der Fortschritt von Klangwellenformsynthese können bei
jeder Rahmenperiode zusammen mit der Klangwellenformsyntheseverarbeitung
benachrichtigt werden.
-
Die
Steuerungsdatenverarbeitungseinheit 1 hat einen Steuerungsparametererzeuger 11 und
einen Anfrageerzeuger 12, zu welchen die Wellenformsteuerungsinformation
eingegeben wird. In dem Fall einer elektronischen Musikvorrichtung
ist die eingegebene Wellenformsteuerungsinformation Aufführungsinformation,
welche von einer Tastatur ausgegeben wird, oder von einem Musikdatenspeicher ausgelesen
wird.
-
Wie
oben stehend erwähnt
verwendet die Wellenformdatenverarbeitungseinheit 2 Wellenformdaten,
welche von dem Wellenformpuffer 6 Stück um Stück jedes Mal übertragen
werden, wenn eine Wellenform für
einen Klang synthetisiert wird. Deshalb benötigt sie ein neues Stück von Wellenformdaten, welches
unmittelbar hinter dem synthetisierten Stück von Klangwellenformdaten
in Sequenz angeordnet ist. Wenn ferner die Erzeugung einer unterschiedlichen
Art von Klang angewiesen wird, werden die Wellenformdaten verwendet,
bis zu der Zeit, in welcher sie unnötig werden, und die Übertragung
einer neuen Art von Wellenformdaten wird benötigt.
-
In
einem solchen Fall empfängt
der Anfrageerzeuger 12 der Steuerungsdatenverarbeitungseinheit 1 die
Benachrichtigung des Fortschritts der Klangwellenformsynthese von
dem Signalprozessor 21, und berechnet den verbleibenden
Betrag von Wellenformdaten, welcher für weitere Klangwellenformsynthese
notwendig ist, von den Wellenformdaten, welche durch die Wellenformdatenverarbeitungseinheit 2 akquiriert
sind und in dem Speicher 22 gespeichert sind. Dann sendet
er der Wellenformdatenverarbeitungseinheit 3 die Benachrichtigung
der ersten Übertragungsanfrage
zum Anfragen von Wellenformdaten, welche von dem Berechnungsergebnissen
bestimmt wurden, wie sie kürzlich
für Klangwellenformsynthese
notwendig wurden. Die erste Übertragungsanfrage
beinhaltet Information zum Spezifizieren von bestimmten Stücken von
Wellenformdaten, welche geliefert werden sollen.
-
Der
Anfrageerzeuger 12 sendet dann der Wellenformdatenverarbeitungseinheit 2 die
Benachrichtigung der zweiten Übertragungsanfrage,
welche gemäß der ersten Übertragungsanfrage
erzeugt wurde, und zwar derart, dass angefragte Wellenformdaten
von dem Wellenformpuffer 6 zu dem Signalprozessor 21 übertragen
werden.
-
Die
erste Übertragungsanfrage
und die zweite Übertragungsanfrage
können
zu jeder Zeitperiode zusammen mit der Klangwellenformsyntheseverarbeitung
gesendet werden. In einem solchen Fall kann die Wellenformdatenverarbeitungseinheit 2 ein
Rahmensynchronisationssignal liefern.
-
Wenn
die Wellenformdatenverarbeitungseinheit 2 keine neuen Wellenformdaten
benötigt,
werden sowohl die erste Übertragungsanfrage
wie auch die zweite Übertragungsanfrage
nicht benachrichtigt.
-
Die
erste Übertragungsanfrage
und die zweite Übertragungsanfrage
können
auch gesendet werden, wenn der Betrag von Wellenformdaten, welcher zur
Klangwellenformsynthese notwendig ist und in dem Speicher 22 bleibt,
gleich zu oder weniger als ein vorbestimmter Betrag wird.
-
Zusätzlich kann,
anstelle des verbleibenden Betrags von Wellenformdaten, die erste Übertragungsanfrage
und die zweite Übertragungsanfrage gemäß dem Betrag
von Wellenformdaten, welcher bereits zur Klangwellenformsynthese
verbraucht wurde, gesendet werden.
-
Der Übertragungserzeuger 12 sendet
einer Speichermediumlesesteuerung (Leseeinrichtung) 31 eine
Leseanfrage zum vorab Auslesen, und zwar von dem Wellenformdatenspeicher
(Speichermedium) 4, von Wellenformdaten, welche von der
herein gegebenen Wellenformsteuerungsinformation erwartet werden,
dass sie kürzlich
notwendig zur weiteren Klangwellenformsynthese werden. Der Betrag
von lesbaren Wellenformdaten wird derart bestimmt, dass er nicht
den verfügbaren
Speicherpuffer übersteigt,
nachdem die Wellenformdaten von einem Speicher 32 zu dem
Wellenformpuffer 6 übertragen wurden.
-
Andererseits
erzeugt der Steuerungsparametererzeuger 11 Steuerungsparameter
basierend auf der Wellenformsteuerungsinformation und dem Zustand
der Klangwellenformsynthese, und benachrichtigt die Wellenformdatenverarbeitungseinheit 2 über die
erzeugten Steuerungsparameter. Die Benachrichtigung der Steuerungsparameter
können auch
jede Rahmenperiode zusammen mit der Klangwellenformsyntheseverarbeitung
gesendet werden.
-
Beim
Empfang der ersten Übertragungsanfrage überträgt die Wellenformdatenliefereinheit 3 Wellenformdaten,
welche in Kürze
zur Klangwellenformsynthese benötigt
werden, von dem Speicher 32 zu dem Wellenformpuffer 6.
-
Dann,
beim Empfang der zweiten Übertragungsanfrage, überträgt die Wellenformdatenverarbeitungseinheit 2 die
Wellenformdaten von dem Wellenformpuffer 6 zu dem Speicher 22.
-
Das
Folgende beschreibt eine spezifische Struktur der Wellenformdatenliefereinheit 3.
-
Die
Wellenformdatenliefereinheit 3 hat einen Wellenformdatenbus
(zweiter Bus) 30, mit welcher die Speichermediumlesesteuerung
(Leseeinrichtung) 31, der Speicher (zweiter Speicher) 32,
und eine Übertragungssteuerung
(zweiter Übertragungssteuerung) 33 verbunden
sind.
-
Beim
Empfang der oben erwähnten
ersten Übertragungsanfrage
wählt die Übertragungssteuerung 33 mindestens
einen Teil der Wellenformdaten aus, welche in dem Speicher 32 gespeichert
sind, und zwar zum Übertragen
dieser von dem Speicher 32 zu dem Wellenformpuffer 6.
-
Dann,
beim Empfang der oben erwähnten Leseanfrage,
liest die Speichermediumlesesteuerung 31 Wellenformdaten
von dem Speicher des Wellenformdatenspeichers 4 zum Übertragen
dessen zu dem Speicher 32 aus.
-
Busausgleich
wird durchgeführt,
um Busübertragungen
auf dem Wellenformdatenbus 30 derart auszugleichen, dass
der Übertragung
von Wellenformdaten von dem Speicher 32 höhere Priorität als der Übertragung
von Wellenformdaten zu dem Speicher 32 gegeben wird, um
einen Mangel von Wellenformdaten, welche zur Klangwellenformsynthese
zu der Wellenformdatenverarbeitungseinheit 2 durch den
Wellenformpuffer 6 übertragen
werden, zu vermeiden.
-
Wenn
die Wellenformdaten auf dem Wellenformdatenbus 30 jede
Rahmenperiode übertragen werden,
wird Burstmodustransfer aktiviert, wodurch effiziente Übertragung
mit hoher Geschwindigkeit erreicht wird. Eine solche Übertragung
kann unmittelbar ansprechend auf jede erste Übertragungsanfrage durchgeführt werden,
welche jede Rahmenperiode benachrichtigt wird. Alternativ kann sie
durch das Liefern eines Rahmensynchronisationssignals von der Wellenformdatenverarbeitungseinheit 2 oder Ähnlichem
durchgeführt
werden.
-
Die
Steuerungsdatenverarbeitungseinheit 1 kann der Speichermediumlesesteuerung 31 die
Benachrichtigung der Leseanfrage vor dem Beginn der Eingabe der
oben erwähnten
Wellenformsteuerungsinformation senden, und zwar derart, dass die
Wellenformdaten, von welchen erwartet wird, dass sie zu der Zeit
des Beginns der Eingabe der Wellenformsteuerungsinformation notwendig
sind, vorab von dem Wellenformdatenspeicher 4 zu dem Speicher 32 übertragen
werden.
-
In
einem solchen Fall können,
sobald die Eingabe der Wellenformsteuerungsinformation gestartet
wird, die Wellenformdaten, welche zur Klangwellenformsynthese notwendig
sind, nach dem Start der Sitzung von dem Speicher 32 zu
dem Wellenformpuffer 6 in einer kurzen Zeit übertragen
werden.
-
Wenn
die Wellenformdatenverarbeitungseinheit 2 zwei oder mehr
Klangwellenformen gleichzeitig auf mehren Kanälen synthetisiert, wird die
Steuerungsdatenverarbeitungseinheit 1 von der Information über den
Zustand und den Fortschritt der Klangwellenformsynthese auf einer
Kanalbasis benachrichtigt. Der Steuerungsparametererzeuger 11 benachrichtigt
die Wellenformdatenverarbeitungseinheit 1 der Steuerungsparameter
für jeden
Kanal, während
der Anfrageerzeuger 12 die ersten und zweiten Anfragen
für jeden
Kanal benachrichtigt. Die Wellenformdatenliefereinheit 3 liest
Wellenformdaten für
jeden Kanal aus und liefert die Wellenformdaten für jeden
Kanal aus und liefert die Wellenformdaten für jeden Kanal zu dem Wellenformpuffer 6.
-
Das
Obige beschreibt, dass die Steuerungsparameter, die zweite Übertragungsanfrage,
der Zustand von Klangwellenformsynthese, der Fortschritt der Klangwellenformsynthese,
und die erste Übertragungsanfrage
in Einheiten von Rahmenperioden zusammen mit der Klangwellenformsyntheseverarbeitung
benachrichtigt werden. Jedoch werden sie nicht notwendigerweise
in Einheiten von Rahmenperioden benachrichtigt.
-
Andererseits
ist es bevorzugt, dass die Übertragung
von Wellenformdaten von der Wellenformdatenliefereinheit 3 zu
dem Wellenformpuffer 6 und der Übertragung von Wellenformdaten
von dem Wellenformpuffer 6 zu der Wellenformdatenverarbeitungseinheit 2 in
Einheiten von Rahmenperioden durchgeführt werden soll. Dies ist so,
weil wenn die Wellenformdaten in Einheiten von Rahmenperioden übertragen
werden, der Betrag von Wellenformdaten, welcher zu einer Zeit übertragen
wird, angemessen groß in
der Größe wird,
und somit wird der Betrag von Overhead relativ klein. Ferner, weil
die Burstmodeübertragung
aktiviert ist, wird die Transfereffizienz ebenfalls verbessert.
-
2 ist
ein Blockdiagramm, welches ein spezifisches Beispiel zeigt, in welchem
das Ausführungsbeispiel,
welches in 1 gezeigt ist, auf eine elektronische
Musikvorrichtung eines Wellenformspeicherklangerzeugungs systems
angewandt wird. In 2 wurde Teilen, welche ähnlich sind
zu denjenigen in 1, die gleichen Bezugszeichen
gegeben.
-
Die
elektronische Musikvorrichtung ist von einer Drei-Bus Struktur,
bestehend aus einem CPU-Bus 41 zur Steuerung der Datenverarbeitung, einem
DSP-Bus 42 korrespondierend zu dem Signalverarbeitungsbus 20 in 1,
und einem HDD-Bus 43 korrespondierend zu dem Wellenformdatenbus 30 in 1.
Datenübertragung
zwischen diesen Bussen wird über
einen gemeinsam verwendeten Speicherblock 45 in der Schnittstelleneinheit 5 durchgeführt. Dies
verringert das Auftreten von Zugriffsverstopfungen auf einem Bus,
und somit den Verkehrsstau auf dem Bus.
-
Die
Steuerungsdatenverarbeitungseinheit 1, die Wellenformdatenverarbeitungseinheit 2 und
die Wellenformdatenliefereinheit 3 werden in Einheiten von
Rahmenperioden durch die Schnittstelleneinheit 5 betrieben.
-
Die
Schnittstelleneinheit 5 hat den gemeinsam verwendeten Speicherblock 45 und
eine Hardware-Interruptleitung für
IRQ#2. Andererseits ist IRQ#1 ein Hardwareinterrupt von einem CODEC 52 zu
einem DSP 50, welcher alle 64 Samples (ein Rahmen) erzeugt
wird. Der IRQ#1 ist ein Trigger für die Rahmengverarbeitung in
dem DSP 50. Andererseits ist der IRQ#2 ein Hardwareinterrupt
von dem DSP 50 zu einer CPU 46, welcher jede Rahmenperiode
erzeugt wird, aber zu einem unterschiedlichen Zeitpunkt von dem
IRQ#1. Mit anderen Worten ist der IRQ#2 ein Trigger zur Rahmenverarbeitung
in der CPU 46.
-
Die
Steuerungsdatenverarbeitungseinheit 1 ist mit dem CPU Bus 41 vorgesehen.
Die CPU 46 und ein Arbeitsspeicher bzw. Arbeits-RAM 47,
welcher die Funktionen des Steuerungsparametererzeugers 11 implementiert,
und der Anfrageerzeuger 12, welcher in 1 gezeigt
ist, eine MIDI-(Musical Instrumental Digital Interface)Schnittstelle 48 zum
Eingeben von Aufführungsinformation
(Wellenformsteuerungsinformation), ein Boot-ROM 49 zum
Laden eines CPU Steuerungsprogramms in den Arbeitsspeicher 47 beim Einschalten,
und Ähnliches
sind mit dem CPU-Bus 41 verbunden. Wenn die CPU 46 eine MIDI-Schnittstelle
beinhaltet, kann die MIDI-Schnittstelle 48 durch diejenige
der CPU 46 ersetzt werden. Die anderen Blöcke, wie
Eingabeoperatoren, eine Anzeige, eine I/O-Schnittstelle, ein Effektor-LSI,
und Ähnliches,
welche nichts mit der vorliegenden Erfindung zu tun haben, sind
nicht in 2 gezeigt.
-
Die
CPU 46 liest das Verarbeitungsprogramm von dem Arbeitsspeicher 47 aus,
liest und schreibt den Arbeitsspeicher 47 zum temporären Speichern
von Daten, und liest und schreibt den gemeinsam verwendeten Speicherblock 45 wie
benötigt.
Die CPU 46 belegt den CPU-Bus 41. Das Meiste der
Datenübertragungskapazität des CPU-Busses 41 wird
für die
CPU 46 zum Lesen des Befehls „fetch" bei der Ausführung des Verarbeitungsprogramms
auf dem Arbeitsspeicher 47 verwendet
-
Die
Wellenformdatenverarbeitungseinheit 2 ist mit dem DSP-Bus 42 verbunden,
durch den sie mit folgendem verbunden ist: Mit dem DSP 50,
welcher als die Signalverarbeitungseinheit 50 in 1 funktioniert,
mit dem Arbeitsspeicher 51, der als der Speicher 22 funktioniert,
mit einem Boot-ROM 53 zum Laden eines Steuerungsprogramms
in den Arbeitsspeicher 51 beim Einschalten, und Ähnlichem.
Der DSP 50 ist mit dem CODEC 52 verbunden, welcher
als die Klangwellenformausgabeeinheit funktioniert.
-
Der
DSP 50 liest das Steuerungsprogramm von dem Arbeitsspeicher 51 aus,
liest und schreibt den Arbeitsspeicher 51 zum temporären Speichern von
Daten, und liest und schreibt den gemeinsam verwendeten Speicherblock 55 wie
benötigt.
Der DSP 50 belegt den DSP-Bus 42.
-
Die
Verarbeitung für
Klangwellenformsynthese, welche durch den DSP 50 durchgeführt wird,
hat einen relativ einfachen Verarbeitungsalgorithmus basierend auf
Wiederholungsverarbeitung (Schleifenverarbeitung). Insbesondere,
weil Operationen korrespondierend zu der Wiederholungsverarbeitung
in dem Programm einen solch kleinen Speicherraum benötigen, dass
sie in ei nem Befehlscash in dem DSP 50 gespeichert werden
können,
benötigt
der Befehl „fetch" kaum das Band des
DSP-Busses 42. Die Großteil
der Übertragungskapazität wird für die Übertragung
von Wellenformdaten von einem gemeinsam verwendeten Wellenformspeicher 58 zu
dem Arbeitsspeicher 51 und der Übertragung von verarbeiteten Daten
zwischen dem DSP 50 und dem Arbeitsspeicher 51 verwendet.
-
Der
Arbeitsspeicher 51 speichert temporär und hält für jeden Kanal bestimmte Stücke von
Wellenformdaten korrespondierend in der Anzahl zu der maximalen
Anzahl von Kanälen,
welche zum Erzeugen von Klängen
zu der gleichen Zeit in der Lage sind. Jeder Kanal besteht aus einem
Puffer, welcher zum Speichern von „Managementinformation" und „4096 Samples
von teilweisen Wellenformen" in
der Lage ist.
-
Der
DSP 50 kann auch digitale Wellenformdaten ohne durch den
CODEC 52 ausgeben. Wenn ein Effektor-LSI mit dem CPU Bus 41 verbunden
ist, und durch die CPU 46 gesteuert wird, werden die musikalischen
Klangwellenformdaten, welche in dem DSP 50 synthetisiert
werden, zu dem Eingabeterminal des Effektor-LSI geliefert. In diesem
Fall prägt
der Effektor die Wellenformdaten mit einem Effekt/mit Effekten auf,
D/A-konvertiert sie und gibt sie aus.
-
Andererseits
ist die Wellenformdatenliefereinheit 3 mit dem HDD-Bus 43 verbunden,
durch welchen sie mit einem HDC 59, welcher als die Speichermediumlesesteuerung 31 in 1 funktioniert, einem
Arbeitsspeicher 60, welcher als der Speicher 32 funktioniert,
einem DEMAC 61, welcher als die Übertragungssteuerung 33 funktioniert
verbunden ist.
-
In
diesem Fall wird anstatt des Wellenformdatenspeichers 4 in 1 eine
HDD 44 mit großer Kapazität, welche
zum Speichern von großen
Datenmengen in der Lage ist, verwendet, obwohl sie höhere Latenz
hat.
-
Die
HDD 44 kann nicht nur einen erheblichen Betrag von Wellenformdaten
akkumulieren, sondern auch die Wellenformdaten mit hoher Geschwindigkeit übertragen.
Wenn die HDD 44 der neueste Typ ist, ist es eine allgemeine
Regel, dass die sequentielle Zugriffsrate ungefähr 30–40 Mbps ist, und dass die
willkürliche
Zugriffsrate ungefähr
10–20
Mbps ist.
-
Jedoch
ist die Verzögerungszeit
vom Empfangen einer Leseanfrage zum Starten des Lesens sehr lang,
ungefähr
einige 10 ms. Deshalb muß, wenn
der Benutzer musikalische Klänge
in Echtzeit erzeugen will, die Verzögerungszeit bis zu dem Start des
Erklingens innerhalb von 10 ms sein.
-
Somit
werden die Wellenformdaten vorab von der HDD 44 ausgelesen
und temporär
in dem Arbeitsspeicher 60 gespeichert.
-
Der
HDD-Bus 43 wird hauptsächlich
für die Übertragung
von Wellenformdaten von der HDD 44 zu dem Arbeitsspeicher 60 und
der Übertragung
von Wellenformdaten von dem Arbeitsspeicher 60 zu dem Wellenformpuffer 58 verwendet.
-
Deshalb
wird zumindest ein Teil von Wellenformdaten zweimal auf dem HDD-Bus 43 während unterschiedlichen Übertragungsperioden übertragen.
-
Weil
die Wellenformdaten, welche von der HDD 44 und dem Arbeitsspeicher 60 übertragen
werden, Wellenformdaten sind, von welchen erwartet wird, dass sie
in Kürze
notwendig sind, müssen
all die Stücke
von Wellenformdaten nicht von dem Arbeitsspeicher 60 zu
dem Wellenformpuffer 58 übertragen werden. Es kann sein,
dass der Betrag von Wellenformdaten, welcher pro Einheitszeit übertragen
wird (Benutzungsverhältnis
des Busbandes) von dem Arbeitsspeicher 60 zu dem Wellenformpuffer 58 kleiner
ist als von der HDD 44 zu dem Arbeitsspeicher 60.
-
Die
Anzahl von Malen, welche die Wellenformdaten pro Einheitszeit von
dem Arbeitsspeicher 60 zu dem Wellenformpuffer 58 übertragen
werden (zum Beispiel einmal für
einen Rahmen) ist auch größer als
diejenige von der HDD 44 zu dem Arbeitsspeicher 60,
das heißt
der Betrag von Übertragung zu
jeder Zeit ist klein.
-
Deshalb
werden der DSP-Bus und der HDD-Bus 43 vorgesehen, um die
Last des Übertragens
von Wellenformdaten zu teilen, wodurch von dem DSP-Bus 42 eine
Last genommen wird.
-
Der
Arbeitsspeicher 60 besteht aus einem Speicher und Ringpuffern.
Der Speicher speichert statisch den ersten Teil von Wellenformdaten,
welcher beim Anschalten des Systems erklingen kann (zum Beispiel
der erste halbe zweite Teil), für
jeden von all den Tastencodes für
all die Tonfarben (jede der Tonhöhen
für all
die Tasten, welche auf dem Keyboard aufgeführt werden). Die Ringpuffer
werden so häufig
vorgesehen, wie die maximale Anzahl von Kanälen, welche zum Erzeugen von
Klängen
zu der gleichen Zeit in der Lage ist. Der statische Speicher kann
unter den Kanälen
gemeinsam verwendet werden.
-
Die
Ringpuffer haben jeweils eine konstante Speicherkapazität, wobei
die Lese- und Schreibeadressen zirkuliert werden. Neue Wellenformdaten werden über vorherige
Daten in der Reihenfolge geschrieben. Jeder der Ringpuffer speichert
beispielsweise Wellenformdaten für
eine und eine halbe Sekunde.
-
Die
Managementinformation für
den Arbeitsspeicher 60 wird durch die CPU 46 auf
der Seite der Steuerungsdatenverarbeitungseinheit 1 gehalten.
-
Der
gemeinsam verwendete Speicherblock 45 ist zwischen den
zwei Bussen zum logischen Verbinden dieser verbunden. Auf ihn kann
von beiden Bussen zugegriffen werden, wodurch er als eine Verbindung
zur Datenübergabe
zwischen den Bussen dient. Der gemeinsam verwendete Speicherblock 45 kann
von jedem Bus asynchron zu jeder Zeit gelesen oder geschrieben werden.
-
Der
gemeinsam verwendete Speicherblock kann unter Verwendung eines Dual-Anschluss RAMs,
eines FIFO (First In First Out = zuerst rein zuerst aus), oder mit
einem Zeitaufteilmechanismus zum Schalten eines RAMs zwischen den
zwei Bussen ansprechend auf einen Hochgeschwindigkeitstakt implementiert
sein. Der gemeinsam verwendete Speicherblock 45 besteht
aus einer dedizierten Hardware. Die Funktionen des gemeinsam verwendeten
Speicherblocks 45 können
auch unter Verwendung eines FPGA (Field Programmalbe Gate Array) implementiert
sein. In diesem Fall kann der gemeinsam verwendete Speicherblock 45 die
Funktionen des DMAC 61 beinhalten.
-
In
der Schnittstelleneinheit 5 werden die Übertragung von Information über die
Klangerzeugungsparameter und den Klangerzeugungszustand, und die Übertragung
der Ausleseanfrage und die Übertragungsanfragen,
wie auch die Übertragung von
Wellenformdaten, welche durch den Wellenformpuffer 6 in 1 durchgeführt wird,
durch den gemeinsam verwendeten Wellenformpufferspeicher 58, einen
gemeinsam verwendeten Klangerzeugungsparameterspeicher 54,
einen gemeinsam verwendeten Klangerzeugungszustandsspeicher 55,
einen gemeinsam verwendeten Leseanfragespeicher 56, und einen
gemeinsam verwendeten Übertragungsanfragespeicher 57 jeweils
durchgeführt.
-
Der
gemeinsam verwendete Klangerzeugungsparameterspeicher 54 und
der gemeinsam verwendete Klangerzeugerzustandsspeicher 55 sind zwischen
dem CPU Bus 41 und dem DSP-Bus 42 verbunden. Der
gemeinsam verwendete Leseanfragespeicher 56 und der gemeinsam
verwendete Übertragungsanfragespeicher 57 sind
zwischen dem CPU Bus 41 und dem HDD-Bus 43 verbunden. Der gemeinsam
verwendete Wellenformpufferspeicher 58 ist zwischen dem
HDD-Bus 43 und dem DSP-Bus 42 verbunden.
-
Der
gemeinsam verwendete Wellenformpufferspeicher 58 ist unter
Verwendung eines Ringpuffers implementiert; er hält einen Teil von Wellenformdaten,
welcher in dem Arbeitsspeicher 60 gespeichert ist.
-
Die
Managementinformation für
den gemeinsam verwendeten Wellenformpufferspeicher 58 wird durch
die CPU 46 gehalten. Der Ringpuffer speichert nur Wellenformdaten.
-
Das
Folgende beschreibt Klangerzeugungsparameter. Die „Klangerzeugungsparameter" in 2 beinhalten
Parameter zum Anweisen der „Übertragung
von dem gemeinsam verwendeten Wellenformpufferspeicher 58 zu
dem Arbeitsspeicher 51" (die
zweite Übertragungsanfrage
in 1), wie auch als „normale Klangerzeugungsparameter" (Steuerungsparameter
in 1).
-
Die „normalen
Klangerzeugungsparameter" beinhalten
die Note-an, Notennummer, einhüllenden Pegel,
etc.
-
Die
Klangerzeugungsparameter werden in Einheiten von Rahmenperioden
aktualisiert und in einem Format von „Paketgröße + Paketkörper (16 Bit·n)" geschrieben (n ist
eine positive Ganzzahl), und zwar von dem ersten Teil des gemeinsam
verwendeten Klangerzeugungsparameterspeichers 54. Wenn
es keine Klangparameter gibt, welche in einer Rahmenperiode übertragen
werden sollen, wird „0" für die Paketgröße geschrieben.
Zwei oder mehr Klangerzeugungsparameter können in dem oben erwähnten Paketkörper gespeichert
werden.
-
Das
Folgende beschreibt die „Übertragungsanfrage".
-
Die „Übertragungsanfrage" wird benachrichtigt,
wenn eine Anfrage zum Übertragen
von dem Arbeitsspeicher 60 zu dem gemeinsam verwendeten Wellenformpufferspeicher 58 durchgeführt wird.
-
Die Übertragungsanfrage
besteht aus der „Startadresse
zum Übertragen
auf dem Arbeitsspeicher 60" + „Übertragungsgröße" + „Klangkanal
auf der Zielseite".
-
Das
Folgende beschreibt den „Klangerzeugungszustand."
-
Der „Klangerzeugungszustand" in 2 beinhaltet
information, welche anzeigend ist für „den Fortschritt von musikalischer
Klangwellenformsynthese" (der
Fortschritt von Klangwellenformsynthese in 1), wie
auch Information über „den normalen Klangerzeugungszustand" (der Zustand der
Klangwellenformsynthese in 1).
-
Die
Information, welche „den
normalen Klangerzeugungszustand" anzeigt,
beinhaltet den Note-an Zustand, den derzeitigen Zustand des einhüllenden
Pegels, etc, wie diejenige, welche für existierende Tonerzeuger
beschrieben ist.
-
Andererseits
ist die Information, welche „den Fortschritt
von musikalischer Klangwellenformsynthese" anzeigt, Information über die
Position von Wellenformdaten, welche derzeit für musikalische Klangsynthese
verarbeitet wird. Die Wellenformposition ist eine Klangposition
mit Bezug auf die Position der Note-an eingestellt auf „0" als ein Referenzpunkt. Beispielsweise
wird die Wellenformposition als die kumulative Anzahl von Sampeln
repräsentiert.
-
Der
gemeinsam verwendete Klangerzeugungszustandsspeicher 55 ist
derart eine Abbildung zum Anzeigen des Zustands von jeder Klangerzeugung
für jeden
der Kanäle,
welcher dazu in der Lage ist, Klänge
zu der Zeit zu generieren. Der Speicher ist seiner Speicheradresse
vorab zugeordnet.
-
3-1 und 3-2 sind
ein Sequenzdiagramm zum Erklären
eines Beispiels der Verarbeitungszeitgebung für jede Komponente in dem spezifischen
Beispiel von 2.
-
Die
Sequenz von Operationen ist in die folgenden fünf Teile eingeteilt: Verarbeitung,
welche ansprechend auf MIDI-Ereignisse durchgeführt wird, Verarbeitung, welche
ansprechend auf HDD Auslesen durchgeführt wird, Verarbei tung, welche
ansprechend auf den IRQ#2 durchgeführt wird. Verarbeitung, welche
ansprechend auf den IRQ#1 durchgeführt wird, und CODEC Verarbeitung.
-
In
den 3-1 und 3-2 wird
die Verarbeitung ansprechend auf MIDI-Ereignisse durchgeführt, und die Verarbeitung betreffend
der HDD Ereignisse fährt
in unterschiedlichen Zeiteinheiten von den anderen fort.
-
Der
DSP 50 führt
Signalverarbeitung für
musikalische Klangsynthese in Einheiten von Rahmenperioden aus.
Wenn der Samplingtakt 44,1 kHz und der Rahmen 64 Samples
ist, ist eine Rahmenperiode ungefähr 1,45 msec.
-
Es
sei angenommen, dass das Programm und die Daten, welche zum Betreiben
der CPU 46 notwendig sind, in dem Boot-ROM 49 gespeichert sind.
In diesem Fall werden sie zu dem Arbeitsspeicher 47 bei
dem Starten des Systems zum Starten der Ausführung des Programms übertragen.
-
Ebenso
sind das Programm und Daten, welche zum Betreiben des DSP 50 benötigt werden,
in dem Boot-ROM 53 gespeichert, und werden zu dem Arbeitsspeicher 51 zum
Starten der Ausführung
des Programms übertragen.
-
Wenn
musikalische Klänge
in Echtzeit erzeugt werden sollen, wird die Leseanfrage von der CPU 46 beim
Einschalten des Systems benachrichtigt, oder derart, dass das erste
Stück von
allen Wellenformdaten, welches zum Erzeugen von Klängen verwendet
werden könnte,
vorher von der HDD 44 zu dem RAM 60 durch den
HDC 49 übertragen
wird, und in dem RAM 60 während der musikalischen Klangsyntheseverarbeitung
gehalten wird.
-
Das
Folgende nimmt einfache Aufführungsinformation
als ein Beispiel zum Beschreiben einer Sequenz von Operationen von
dem Empfangen von Aufführungsinformation „Note-an" zum Beginnen der Erzeugung
von einem Klang zum Empfangen von Aufführungsinformation „Note-aus." In diesem Beispiel
wird Aufführungsinformation „Ausdruck" auf halber Strecke
durch die Sequenz von Operationen zum Verändern des Klangvolumens empfangen.
-
Wie
in 3-1(a) gezeigt ist, werden Stücke von
Aufführungsinformation
(Wellenformsteuerungsinformation) 71, 75 und 77 als
MIDI-Daten empfangen, und in den Arbeitsspeicher 47 eingegeben. Dann,
wie in 3-1(b) gezeigt ist, verwendet
die CPU 46 MIDI-Ereignisse, wie Note-an, Note-aus, Steuerungsveränderung,
und Tonhöhenbiegung,
und triggert zum Erzeugen von Klangerzeugungsparametern.
-
Obwohl
nicht gezeigt werden die Klangerzeugungsparameter auch ansprechend
auf einen Zeitinterrupt von 5–20
msec während
der Erzeugung des Klangs erzeugt.
-
Die
Klangerzeugungsparameter werden basierend auf Aufführungsdaten
wie den MIDI-Daten und „der
normale Klangerzeugungszustand" (Zustand
der Klangwellenformsynthese) einschließlich des Note-an Zustands,
dem derzeitigen Zustand der Amplitudeneinhüllenden wie oben stehend erwähnt, erzeugt.
-
Die
CPU 46 erzeugt die Klangerzeugungsparameter 72, 76 und 78 auf
dem Arbeitsspeicher 47. Zeit, welche zum Erzeugen von Verarbeitung
benötigt
wird, ist nicht konstant.
-
Die
CPU 46 steuert das Lesen der HDD 44. Dann bestimmt
sie Wellenformdaten, von welchen erwartet wird, dass sie in Kürze zur
weiteren musikalischen Klangwellenformsynthese basierend auf den empfangenen
MIDI-Daten benötigt werden.
-
Wie
in 3-1(c) gezeigt ist, wird die Leseanfrage 73 zum
Lesen von der HDD 44 zu dem Arbeitsspeicher 60 der
Wellenformdaten übertragen, von
welchen erwartet wird, dass sie in Kürze notwendig werden, und zwar
von dem Arbeitspeicher 47 zu dem gemeinsam verwendeten
Leseanfragespeicher 56.
-
Wenn
zum Beispiel MIDI-Daten empfangen werden zum Starten der Erzeugung
eines Klangs mit einer bestimmten Tonhöhe, werden Wellenformdaten auf
der Wellenform das musikalischen Klangs mit der erklingenden Tonhöhe, und
alle Stücke
von Wellenformdaten auf den Wellenformen des musikalischen Klangs
in dem Bereich von möglichen
Tonhöhen
variierend mit Tonhöhenverbiegungsbetrieb
von der ursprünglichen
Tonhöhe
des Klangs (zum Beispiel zwei Oktaven über oder unter der Tonhöhe der aktuellen Note)
nacheinander von der HDD 44 ausgelesen und in dem Arbeitsspeicher 60 vorab
gespeichert.
-
Dann,
wie in 3-1(d) gezeigt ist, greift
der HDC 59 auf den gemeinsam verwendeten Leseanfragespeicher 56 zu,
und zwar zum Auslesen einer Leseanfrage 74, welche darin
gespeichert ist.
-
Dann,
wie in 3-1(e) gezeigt ist, liest der HDC 59 Wellenformdaten
basierend auf der Leseanfrage von der HDD 44 aus, und überträgt sie zu
dem Arbeitsspeicher 60.
-
Die
Aufgabe auf der CPU 46 wird blockiert, und zwar bis zur
Vervollständigung
des angefragten Lesens zum Zeitpunkt 79 wie in 3-1(c) gezeigt ist. Es erlaubt der CPU 46 zum Übertragen
der nächsten
Leseanfrage 80 zu dem gemeinsam verwendeten Leseanfragespeicher 56,
sobald das Lesen von Wellenformdaten vervollständigt ist.
-
Das
folgende beschreibt die Verarbeitung, welche ansprechend auf den
IRQ#2 durchgeführt wird.
-
Wie
in 3-2(k) gezeigt ist, wird ein Interruptsignal
(IRQ#2) 91 von dem DSP 50 zu der CPU 46 benachrichtigt.
Dann, wie in 3-2(f) gezeigt ist, liest
die CPU 46 Information über
den Klangerzeugungszustand („normaler Klangerzeugungszustand" und der Fortschritt
von musikalischer Klangwellenformsynthese) 92 in dem derzeitigen
Rahmen (1) von dem gemeinsam verwendeten Klangerzeugungszustandsspeicher 55 aus,
und schreibt sie in den Arbeitsspeicher 47.
-
Die
CPU 46 berechnet basierend auf dem Klangerzeugungszustand
(der Fortschritt von musikalischer Klangwellenformsynthese) 92 den
Betrag von Wellenformdaten, welcher in dem Arbeitsspeicher 51 verbleibt,
wie notwendig für
den nächsten Rahmen
(2) und ferner Rahmen, welche auf den nächsten Rahmen folgen, und überträgt in Kürze notwendige
Wellenformdaten, sofern vorhanden.
-
Dann,
wie in 3-2(d) gezeigt ist, sendet die
CPU 46 dem gemeinsam verwendeten Übertragungsanfragespeicher 57 die
Benachrichtigung einer „Übertragungsanfrage" 93 für die Übertragung
von Wellenformdaten von dem Arbeitsspeicher 60 zu dem Wellenformpuffer 58.
Die Wellenformdaten, welche übertragen
werden sollen, korrespondieren zu denjenigen, welche zu dem Arbeitsspeicher 51 später übertragen
werden sollen.
-
Dann,
wie in 3-2(h) gezeigt ist, greift
der DEMAC 61 auf der Seite der Wellenformdatenliefereinheit 3 auf
den gemeinsam verwendeten Übertragungsanfragespeicher 57 zu,
und zwar zum Akquirieren einer „Übertragungsanfrage" 94. Im
Allgemeinen, obwohl der DEMAC nicht auf einen Speicher zum Auslesen
von Daten zugreift, weil der DEMAC 61 ein spezialisierter
Typ von DEMAC ist oder der gemeinsam verwendete Speicherblock 45 eine
Funktion zum Benachrichtigen des DEMAC 61 über die
Anfrage ist, kann der DEMAC 61 die „Übertragungsanfrage" akquirieren.
-
Dann überträgt, wie
in 3-2(e) gezeigt ist, der DEMAC 61 Wellenformdaten
von dem Arbeitsspeicher 60 zu dem gemeinsam verwendeten
Wellenformpufferspeicher 58. Die Aufgabe der Übertragungsanfrage
wird blockiert bis zur Vervollständigung
der Übertragung,
welche durch die „Übertragungsanfrage" wie in 3-2(d) gezeigt benachrichtigt wird.
-
Schlussendlich,
wie in 3-2(j) gezeigt ist, erzeugt
die CPU 46 Klangerzeugungsparameter basierend auf der Aufführungsinformation
und dem „normalen
Klangerzeugungszustand" (Zustand
der Klangwellenformsynthese), und überträgt die Klangerzeugungsparameter,
welche in dem Arbeitsspeicher 47 gespeichert sind, zu dem
gemeinsam verwendeten Klangerzeugungsparameterspeicher 54.
-
Das
Folgende beschreibt die Verarbeitung, welche ansprechend auf den
IRQ#1 durchgeführt wird.
-
Wie
in 3-2(p) gezeigt ist, werden Interruptsignale
(IRQ#1) 81, 86, ... bei jedem Rahmen erzeugt und
zu dem DSP 50 geliefert.
-
Dann überträgt, wie
in 3-2(l) gezeigt ist, der DSP 50 Klangerzeugungsparameter 82, 87,
... von dem gemeinsam verwendeten Klangerzeugungsparameterspeicher 54 zu
dem Arbeitsspeicher 51.
-
Die
Klangerzeugungsparameter sind klein in der Datengröße, so dass
der DSP 50 sie zu ihrem internen RAM übertragen kann, anstatt sie
zu dem Arbeitsspeicher 51 zu übertragen.
-
Dann überträgt, wie
in 3-2(m) gezeigt ist, der DSP 50 den
letzten Klangerzeugungszustand 83, 88, ... in
dem derzeitigen Rahmen (1) von dem Arbeitsspeicher 51 zu
dem gemeinsam verwendeten Klangerzeugungszustandsspeicher 55.
Wie oben stehend beschrieben wird der übertragene Klangerzeugungszustand
zu dem RAM 47 auf der Seite der Steuerungsdatenverarbeitungseinheit 1 zu
Zeitpunkten wie in 3-2(f) gezeigt übertragen.
-
Der
Klangerzeugungszustand ist klein in der Datengröße, so dass der DSP 50 ihn
zu seinem internen RAM übertragen
kann, anstatt ihn zu dem Arbeitsspeicher 51 zu übertragen.
-
Dann überträgt er wie 3-2(n) gezeigt ist, Wellenformdaten 84, 89,
..., welche in dem gemeinsam verwendeten Wellenformpufferspeicher 58 gespeichert
sind, zu dem Arbeitsspeicher 51. Diese Übertragungen können direkt
durch den DSP 50 selbst gesteuert werden. Alternativ, wenn
der DSP 50 einen eingebauten DEMAC hat (Übertragungssteuerung 23)
wie in dem Ausführungsbeispiel,
kann der eingebaute DEMAC diese Übertragungen
gemäß den Anweisungen
von der Haupteinheit des DSP 50 steuern.
-
Die
Wellenformdaten, welche in dem gemeinsam verwendeten Wellenformpufferspeicher 58 gespeichert
sind, sind Wellenformdaten, welche in den Arbeitsspeicher 60 eingelesen
werden, wie in 3-1(e) gezeigt ist,
und zwar ansprechend auf die Leseanfrage 73 in 3-1(c), und sind in dem gemeinsam verwendeten
Wellenformpufferspeicher 58 zum Zeitpunkt 59 in 3-2(e) gespeichert. Man beachte hier,
dass die in 3-1(e) ausgelesenen Wellenformdaten
nicht in 3-1 und 3-2 gezeigt sind,
weil sie bereits vor der Periode des Rahmens (1) ausgelesen
wurden.
-
Mit
anderen Worten werden unter den Wellenformdaten, welche in dem Arbeitsspeicher 60 gespeichert
sind, Wellenformdaten, welche für
den nächsten
Rahmen (2) notwendig sind, und weitere Rahmen, welche dem
nächsten
Rahmen folgen, basierend auf dem letzten Klangerzeugungszustand (dem
Fortschritt der musikalischen Klangsynthese) 92 in dem
derzeitigen Rahmen (1), wie in 3-2(f) gezeigt
ist, bestimmt werden, und in dem gemeinsam verwendeten Wellenformpufferspeicher 58 gespeichert
werden.
-
Dementsprechend
sind die Wellenformdaten 84, welche zu dem Arbeitsspeicher 51 in 3-2(n) übertragen werden, Wellenformdaten,
welche notwendig sind für
den nächsten
Rahmen (2) und ferner Rahmen, welche auf den nächsten Rahmen
folgen. Dann wird, weil es bestimmt wird, dass keine neuen Wellenformdaten
für die
Rahmen (2)-Periode notwendig sind, keine Anfrage zum Übertragen
von Wellenformdaten erzeugt, wie in 3-2(g) gezeigt
ist. Als ein Ergebnis werden keine Wellenformdaten zu dem gemein sam
verwendeten Wellenformpufferspeicher 58 übertragen,
wie in 3-2(i) gezeigt ist, und somit
zu dem Arbeitsspeicher 51 wie in 3-2(n) gezeigt
ist.
-
Dann
liest, wie in 3-2(o) gezeigt ist,
der DSP 50 die Klangerzeugungsparameter (normale Klangerzeugungsparameter) 82 und
die Wellenformdaten 84, welche in dem Arbeitsspeicher 51 gespeichert
sind, aus und führt
auf dem Speicher 51 die musikalische Klangsynthese von
64 Samples in den nächsten
Rahmen (2) basierend auf den gelesenen Parametern und den
Wellenformdaten aus.
-
Der
DSP 50 führt
musikalische Klangsynthese für
einen Rahmen nacheinander in der Reihenfolge für jeden der Kanäle aus,
welche zum Erzeugen von Klängen
zu der gleichen Zeit in der Lage sind, und addiert die eben synthetisierten
musikalischen Klangwellenformdaten der Kanäle zu den akkumulierten Wellenformen.
-
Der
CODEC 52 D/A konvertiert die musikalischen Klangwellenformdaten
für einen
Rahmen, welcher in dem Arbeitsspeicher 51 gespeichert ist, Sample
um Sample zum Ausgeben eines synthetisierten Klangs.
-
In
der obigen Beschreibung überlappen
die Periode für
die Übertragung
von Wellenformdaten von dem gemeinsam verwendeten Wellenformpufferspeicher 58 zu
dem Arbeitsspeicher 51 und die Periode für die Übertragung
von Wellenformdaten von dem DSP 50 zu dem Arbeitsspeicher 51 nicht
auf dem DSP-Bus 42, wie in 3-2(l) und 3-2(n) gezeigt ist, weil der DSP 50 Busausgleich
derart durchführt,
dass sie in Rotation durchgeführt
werden.
-
Andererseits
wird der HDD-Bus derart gesteuert, dass die Übertragung von Wellenformdaten von
dem Arbeitsspeicher 60 zu dem gemeinsam verwendeten Wellenformpufferspeicher 58 durch
den DEMAC 61, wie in 3-2(e) gezeigt
ist, höhere
Priorität
gegeben wird als der Übertragung
von Wellen formdaten von dem HDC 59 zu dem Arbeitsspeicher 60,
wie in 3-1(e) gezeigt ist.
-
Konsequenterweise
wird, wenn Verstopfung auftritt, Busausgleich durchgeführt werden
zum Unterbrechen der Übertragung
von Wellenformdaten von dem HDC 59 zu dem Arbeitsspeicher 60 und zum
Erlauben der Übertragung
von Wellenformdaten von dem Arbeitsspeicher 60 zu dem gemeinsam
verwendeten Wellenformpufferspeicher 58.
-
Diese
Prioritätssteuerung
wird durchgeführt zum
Verhindern des Lesens von dem HDD 44 vom Beeinflussen der
Verarbeitung für
musikalische Klangwellenformsynthese, welche durch die Wellenformdatenverarbeitungseinheit 2 durchgeführt wird.
-
Es
sei angenommen, dass der gemeinsam verwendete Wellenformpufferspeicher 58 nicht
vorgesehen wird und der HDD-Bus 43 direkt mit dem DSP-Bus 42 in 2 verbunden
ist. In diesem Fall, wenn der DSP 50 Busausgleich durchführt, wird
ein Teil der tatsächlich
benötigten
Wellenformdaten, welche von dem HDT 59 zu dem Arbeitsspeicher 60 übertragen
werden, von dem Arbeitsspeicher 60 zu dem Arbeitsspeicher 51 übertragen
werden. Dies verursacht, das eine Menge von Wellenformdaten fließt, die
das Doppelte des vorbestimmten Übertragungsbetrags
bei dem Maximum ist. Weil der DSP-Bus 42 beabsichtigt ist
zum Übertragen
von beträchtlichen
Mengen von Daten, verursacht ein Verkehrsstau auf dem DSP-Bus 42 eine Übertragungsverzögerung,
was zu einem Hindernis in der Verarbeitung von musikalischen Klangwellenformsynthese führt, welche
durch den DSP 50 durchgeführt wird.
-
Im
Gegensatz dazu beeinflusst die Struktur mit dem gemeinsam verwendeten
Wellenformpufferspeicher 58 nicht die Datenübertragungskapazität des DSP-Bus 42.
-
Ferner
wird in der obigen Beschreibung die Leseanfrage durchgeführt wie
in 3-1(c) gezeigt ist, und zwar synchron
mit der Vervollständigung
des Wellenformdatenlesebetriebs, wie in 3-1(e) gezeigt
ist. Alternativ kann ein gemeinsam verwendeter Speicher zum Speichern
der Benachrichtigung der Vervollständigung des Lesebetriebs eben
in dem gemeinsam verwendeten Speicherblock 45 derart geliefert
werden, so dass die Benachrichtigung der Vervollständigung
des Lesebetriebs von dem HDD 59 zu der CPU 46 durch
den gemeinsam verwendeten Speicher gesendet werden wird, wodurch
die Leseanfrage asynchron mit dem Lesebetrieb gemacht wird.
-
Ebenso
kann ein gemeinsam verwendeter Speicher zum Speichern von Benachrichtigung
der Vervollständigung
des Wellenformübertragungsbetriebs
auch eben in dem gemeinsam verwendeten Speicherblock 45 derart
vorgesehen werden, dass die Benachrichtigung der Vervollständigung
der Wellenformübertragungsoperation
von dem HDT 59 zu der CPU 46 durch den gemeinsam
verwendeten Speicher gesendet werden wird, wodurch die Übertragungsanfrage
asynchron mit der Wellenformübertragungsoperation
gemacht wird. Ferner wird in der obigen Beschreibung der gemeinsam
verwendete Leseanfragespeicher 56 wie in den 3(c) und 3(d) gezeigt
verwendet. Alternativ kann ein Interruptsignal verwendet werden
zum Senden der Benachrichtigung einer Leseanfrage von der CPU 46 zu
dem HDC 59.
-
Ebenso
kann ein solches Interruptsignal auch zum Senden der Benachrichtigung
einer Übertragungsanfrage
anstatt der Verwendung des gemeinsam verwendeten Übertragungsanfragespeichers 57 verwendet
werden.
-
Ferner
werden in der obigen Beschreibung die gemeinsam verwendeten Speicher
verwendet zum Benachrichtigen der Klangerzeugungsparameter und des
Klangerzeugungszustands. Alternativ kann der DSP-Bus mit einem I/O-Anschluss
vorgesehen sein, durch welchen er mit dem CPU Bus 41 verbunden
ist, wie der Wiedergabeklangerzeuger 131 in 5.
In diesem Fall gibt es, weil ein solcher I/O-Anschluss mit sowohl
dem DSP-Bus 41 wie auch dem CPU Bus 41 verbunden
ist, keinen Bedarf zum Vorsehen des gemein sam verwendeten Klangerzeugungsparameterspeichers 54 und
des gemeinsam verwendeten Klangerzeugungszustandsspeichers 55.
-
Ebenso
können
der HDC 59 und der DEMAC 61 auch mit I/O-Anschlüssen jeweils
vorgesehen sein, durch welche sie mit dem CPU Bus 41 ebenso wie
die SCSI-Schnittstelle 129 in 5 verbunden sind.
In diesem Fall gibt es keinen Bedarf zum Vorsehen der gemeinsam
verwendeten Speicher jeweils zum Benachrichtigen der Leseanfrage
und der Übertragungsanfrage.
-
Ferner
werden in der obigen Beschreibung das Verarbeitungsprogramm, welches
für den
Betrieb der CPU 46 notwendig ist, und das Verarbeitungsprogramm,
welches für
den Betrieb des DSP 50 notwendig ist, in den Boot-ROMs 59 und 53 jeweils gespeichert,
und werden in die Arbeitsspeicher 47 und 51 beim
Anschalten des Systems geladen.
-
Alternativ
können
die Boot-ROMs 49 und 53 nur einen Boot-Lader speichern,
um zu Erlauben, dass das Verarbeitungsprogramm in der HDD 44 gespeichert
ist. In diesem Fall liest der Boot-Lader jedes Programm von der
HDD 44 beim Anschalten des Systems aus und liest es in
den Arbeitsspeicher 47 oder 51.
-
Beim
Laden des Programms von der HDD 44 muß ein Datenpuffer zur Programmübertragung
nur in dem gemeinsam verwendeten Speichertopf 45 vorgesehen
sein.
-
Ferner
nimmt die obige Beschreibung die HDD als ein Beispiel des Wellenformdatenspeichers, aber
sie kann jeglicher andere Speicher mit hoher Kapazität sein,
auch wenn er Zeit zum Lesen von Daten von seinem Speichermedium
braucht. Zum Beispiel kann er eine Wiedergabeeinrichtung für Speichermedien,
wie eine CD-ROM (Compact Disc Read Only Memory), MO (Magneto Optical
Disk), und DVD (Digital Versstile Disk), oder ein RAM mit niedriger Geschwindigkeit
mit großer
Zugriffsverzögerung sein.
Es kann auch ein USB 2.0 Flashspeicher oder anderer Flash-ROM sein.
-
Das
Obige beschreibt das spezifische Beispiel dieses Falls, in welchem
Aufführungsinformation
wie MIDI-Nachrichten, welche in Echtzeit eingegeben und zum Synthetisieren
einer musikalischen Klangwellenform verarbeitet werden. Jedoch können Musikdaten
wie ein SMF (Standard-MIDI-File), welche in einem Speicher gespeichert
sind, auch zum Synthetisieren einer musikalischen Klangwellenform wiedergegeben
werden. In diesem Fall, wenn Musikdaten in Echtzeit-MIDI-Daten gemäß Zeitinformation konvertiert
werden (Dauerinformation), welche in den musikalischen Daten beinhaltet
ist, zeitlich zu steuern, kann die musikalische Klangwellenform
auf die gleiche Art und Weise wie das obige spezifische Beispiel
synthetisiert werden.
-
Alternativ
kann die Zeitinformation in den Klangerzeugungsparametern (Steuerungsparameter)
in einer solchen Art und Weise beinhaltet sein, dass die Zeitinformation
zu dem DSP 50 benachrichtigt wird und durch den DSP 50 zum
Synthetisieren der musikalischen Klangwellenform interpretiert wird.
-
In
diesem Fall kann, weil die Verzögerungszeit
bis zum Start des Klangs vorbestimmt ist, die Kapazität des Arbeitsspeichers
auch verringert werden.
-
Ferner
wird die obige Beschreibung durchgeführt basierend auf der Annahme,
dass die musikalische Klangwellenform in einem Wellenformspeicherklangerzeugungssystem
erzeugt wird. Jedoch ist die vorliegende Erfindung auf jegliche
andere Klangerzeugungssysteme unter Verwendung von Wellenformdaten
als Materialien anwendbar.
-
Zum
Beispiel ist sie auf ein Multi-Aufführung AEM (Articulation Element
Modeling) Klangerzeugungssystem anwendbar.
-
Ferner
ist sie nicht auf die Synthese von musikalischen Klangwellenformen
eingeschränkt,
welche den Klang von akustischen Musikinstrumenten imitieren. Sie
kann musikalische Klangwellenformen verwenden, welche künstlich
erzeugt sind. Sie ist ferner anwendbar auf die Synthese einer menschlichen Stimme,
die ein Lied singt, oder eine Ankündigung macht, solang das System
zum Synthetisieren von Klangwellenformen ist. Zusammengefasst ist
die Erfindung auf die Synthese von Klang einschließlich musikalischen
Klangsignalen und menschlicher Stimme anwendbar.