-
Hintergrund der Erfindung
-
(Gebiet der Erfindung)
-
Die
vorliegende Erfindung betrifft einen Tonsignalgenerator, der Tonsignale,
die mit verschiedenen speziellen Klangeffekten, wie beispielsweise
Modulation und Tonhöhenänderung,
versehen sind, gleichzeitig mit Musiktönen und normalen Klangeffekten
erzeugen kann, und insbesondere die Verbesserung der Zugriffseffektivität eines
Speichers, in welchem die Tonsignale gespeichert sind.
-
(Beschreibung des Stands der Technik)
-
TV-Spiele
und elektronische Musikinstrumente zur Unterhaltung weisen in der
Praxis Tonsignalgeneratoren auf. Bei diesem Instrument werden Daten
von Tonsignalen, die in einer mit einem ROM oder einem CD-ROM ausgestatteten
Spielkassette gespeichert sind, einem internen RAM des Spielinstruments
zugeführt,
und die Daten werden entsprechend dem Verlauf eines Spielprogramms
ausgelesen, das zur Erzeugung von Musiktönen mit normalen Klangeffekten
und Musiktönen
als Hintergrundmusik ausgeführt
wird.
-
Es
gibt Filterdaten zum Beigeben verschiedener Klangeffekte zu in dem
RAM zu erzeugenden Tonsignaldaten neben den vorher beschriebenen
Daten, und ein Pufferbereich zum Beigeben der Klangeffekte und andere
Bereiche zum Speichern von Verarbeitungsdaten sind ebenfalls in
dem RAM ausgewiesen. Eine CPU und andere Vorrichtungen greifen im
allgemeinen in dem TV-Spiel oder Musikinstrument häufig auf
den RAM zu.
-
Auf
den RAM wird jedoch kontinuierlich zugegriffen bis ein Taste-AUS-Signal
(i.e., ein Ton-AUS-Signal) eingegeben wird, selbst dann noch, wenn
das erzeugt zu werdende Tonsignal einen derart niedrigen Pegel annimmt,
dass praktisch kein Ton mehr zu hören ist. Der Zugriff ist offensichtlich
unnötig,
wodurch nutzloser Energieverbrauch erzeugt wird.
-
Zur
Lösung
des Problems haben Programmierer ein Programm derart erstellt, dass
das Taste-AUS-Signal während
der Tonsignalerzeugung erzeugt wird. Ein solches Programm stellt
eine erhöhte Programmierbelastung
an den Programmierer dar. Es gibt mehrere Wege, um sich mit der
Freigabe von unnötig
besetztem RAM-Platz auseinanderzusetzen.
-
US 4 357 849 offenbart einen
Tastenschalterinformationszuordner. Wenn eine Taste angeschlagen
oder freigegeben ist, erzeugt eine Tastaturschaltung eine entsprechende
Tasteninformation. Ein Datenprozessor bestimmt dann, ob diese Information entweder
einem Anschlag oder einer Freigabe einer Taste entspricht und erzeugt
einen Tastenkode, der die gesamte Tasteninformation kombiniert.
Dieser Tastenkode wird dann an einen Zuordnungsspeicher geliefert.
Ein Hüllkurvengenerator
bestimmt das Ende des Tonklangs, gibt den entsprechenden Tastenkode
aus dem Zuordnungsspeicher gleichzeitig frei und sendet diese Information
zurück
an den Datenprozessor. Falls alle Kanäle des Zuordnungsspeichers
in Gebrauch sind, erzeugt die CPU ein Anforderungssignal, dass der
Prozeß,
der gerade ausgeführt,
unterbrochen wird, um zu ermöglichen,
dass die Kanäle
des Zuordnungsspeichers schnell freigegeben werden.
-
In
US 5 123 323 ist ein Verfahren
zur Bestimmung eines Extremwertkanals eines elektronischen Musikinstruments
offenbart. In einem Speicher einiger Musikinstrumente sind mehrere
Gruppen von Kanälen
zum Speichern von Musiktoninformation mit allen den Gruppen vorgesehen,
die unterschiedlichen Zwecken dienen, und die daher unabhängig von
einander zugeordnet werden. Das Verfahren ist in der Lage, die Kanäle jeder
Gruppe, die den Musikton mit dem höchsten oder den niedrigsten
Pegel ihres Hüllkurvensignals
enthalten, mit Hilfe verschiedener Detektoreinheiten zu ermitteln.
-
Aus
US 5 159 144 ist ein elektronisches
Musikinstrument bekannt, das eine integrierte Resthüllkurvenlautstärke von
Musiktönen
berechnet, die den Tonerzeugungskanälen zugeordnet werden sollen. Immer
wenn alle Tonerzeugungskanäle
verwendet werden, wird der Kanal, der den Musikton mit der geringsten
integrierten Restlautstärke
halt, dann durch einen Musikton ersetzt, der einer neu angeschlagenen Taste
auf einer Tastatur entspricht.
-
In
EP 0 204 122 wird ein elektronisches
Musikinstrument offenbart, das eine Tastatur aufweist. Eine CPU
ordnet Tastenkodes ausgewählten
Tonerzeugungskanälen
eines RAM zu. Dabei wird ein Ton entsprechend dem zugeordneten Tastenkode
erzeugt. Immer wenn eine neue Taste auf der Tastatur angeschlagen
wird, wird der jeweilige in dem RAM gespeicherte Tastenkode in einen
Hüllkurvengenerator
eingespeist, um Daten zu erzeugen, die die Amplitude der Hüllkurven
des entsprechenden Tons repräsentieren.
Die CPU modifiziert diese Daten unter zur Hilfenahme von Gewichtungsdaten,
die den von dem ROM zugeführten
jeweiligen Tastenkodes entsprechen. Auf der Grundlage dieser Gewichtungsdaten
wählt die
CPU den "am wenigsten
wichtigen" aus, wobei
sie ihn durch den Datenwert ersetzt, der der neu angeschlagenen
Taste auf der Tastatur entspricht.
-
US 4 067 253 offenbart eine
Tongeneratorschaltung mit Hüllkurven-Phasen-Adaption.
-
Alle
Vorrichtungen nach dem Stand der Technik greifen jedoch kontinuierlich
auf die Kanäle des
RAM-Speichers zu, um den Kanal, der das Tonsignal mit dem niedrigsten
Hüllkurvenpegel
enthält, zu
ermitteln, zu löschen
oder freizugeben.
-
Der
Tonsignalgenerator weist gewöhnlich
einen Generator zur Erzeugung von Hüllkurvenwellendaten auf, die
dem aus dem RAM ausgelesenen Tonsignal beigegeben werden. 15 zeigt
ein Beispiel von Tonsignaldaten, beispielsweise von Musiktonsignaldaten
und Hüllkurvenwellendaten
(EG-Daten). Der Tonsignaldatenwert weist Einschwingdaten auf, die
in dem Einschwingteil des Tonsignaldatenwertes angeordnet sind,
und Schleifendaten, die in dem Folgteil angeordnet sind. Der EG-Datenwert
ist, wie in 15 gezeigt, in vier Phasen unterteilt,
A Einschwingphase, D Ausklingphase, S Haltephase (oder D2 zweite
Abklingphase) und R Freigabephase. Wenn das Tonsignal gelesen wird,
wird der EG-Datenwert den Tonsignaldaten zugeführt. In 15 ist der
Schleifendatenwert zwischen einer Schleifenstartadresse LSA und
einer Schleifenendadresse LEA angeordnet, und, wenn die Leseadresse
die LEA erreicht, kehrt die Leseadresse zu LSA zurück, wobei
die Leseadresse zwischen der LSA und der LEA in einer Schleife geführt wird.
-
Bei
dem vorher erwähnten
Tonsignalgenerator wird, wenn eine Tonhöhe geändert wird, eine Leseadressenänderungsbreite
der Tonsignaldaten geändert.
Das heißt,
wenn die Tonhöhe
sich nach oben ändert,
wird die Leseadressenänderungsbreite
vergrößert, und
wenn die Tonhöhe
sich nach unten ändert,
wird die Leseadressenänderungsbreite verkleinert.
-
Da
jedoch die Erzeugungsgeschwindigkeit der EG-Daten konstant ist,
wird, wenn die Leseadressenänderungsbreite
gemäß der Tonhöhenänderung geändert wird,
der Phasenänderungzeitpunkt
von der Einschwingphase zu der Abklingphase in den EG-Daten desynchronisiert
zu dem Phasenzeitpunkt von den Einschwingdaten zu den Schleifendaten
in den Tonsignaldaten. Daher kann kein reines Tonsignal erzeugt
werden.
-
Um
dieses Problem zu lösen,
wurde ein erster Tonsignalgenerator mit einem Tastenskalierungsweg
vorgesehen, bei dem ein Gradient der Einschwingphase im Ansprechen
auf die Tonhöhenänderung
geändert
wird. Bei diesem Tastenskalierungsweg ist es jedoch schwierig, eine
präzise
Phasenübereinstimmung
der Einschwingphase in den EG-Daten und der Einschwingdaten in den
Tonsignaldaten aufrechtzuhalten, und eine Struktur zur Änderung
einer Form der EG-Daten zu vereinfachen.
-
Kern der Erfindung
-
Es
ist daher ein Ziel der vorliegenden Erfindung, einen Tonsignalgenerator
zu schaffen, dessen Energieverbrauch minimiert ist.
-
Ein
weiteres Ziel der vorliegenden Erfindung ist, einen Tonsignalgenerator
zu schaffen, bei dem der Speicherzugriff wirksamer ist.
-
Es
ist ein weiteres Ziel der vorliegenden Erfindung, einen Tonsignalgenerator
zu schaffen, der in der Lage ist, die Phasenlage der EG-Daten und
der Tonsignaldaten präzise
zu synchronisieren.
-
Eine
Ausführungsform
der vorliegenden, durch die beigefügten Patentansprüche definierten Erfindung
weist folgendes auf: einen Speicher zum Speichern von Tonsignaldaten,
wobei die Tonsignaldaten Einschwingdaten für eine Einschwingphase der
Tonsignaldaten und folgende Daten für eine folgende Phase der Tonsignaldaten
umfassen; einen Lesekontroller zum Lesen der Tonsignaldaten aus dem
Speicher; einen Hüllkurvendatenerzeuger
zum Erzeugen von Hüllkurvendaten
entsprechend der Einschwingphase und der folgenden Phase der Tonsignaldaten;
und eine Hüllkurvenweitergabeschaltung
zum Modifizieren der von dem Lesekontroller gelesenen Tonsignaldaten
auf Grundlage der von dem Hüllkurvendatenerzeuger
erzeugten Hüllkurvendaten,
wobei der Hüllkurvendatenerzeuger
eine Phase der erzeugten Hüllkurvendaten
von der Einschwingphase zu der folgenden Phase umwandelt, wenn der
Lesekontroller das Lesen der Einschwingphase der Tonsignaldaten
beendet, um eine Phasenzeitabstimmung der Hüllkurvendaten und der Tonsignaldaten
anzupassen.
-
Gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung erzeugt der Lesekontroller ein Steuersignal,
wenn er das Lesen der Einschwingphase der Tonsignaldaten beendet,
und ein Phasenübergangskontroller
die Phase der von dem Hüllkurvendatenerzeuger
erzeugten Hüllkurvendaten ändert von
der Einschwingphase zu der folgenden Phase, wenn das Steuersignal
von dem Lesekontroller erzeugt wird.
-
Gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung kann der Tonsignaldatengenerator so aufgebaut
sein, dass der Hüllkurvendatenerzeuger
eine Datenwandelrate auswählt,
bevor das Steuersignal von dem Lesekontroller erzeugt wird, wobei
der Hüllkurvendatenerzeuger
eine erste Datenwandelrate auswählt,
und wenn das Steuersignal von dem Lesekontroller erzeugt wird, der
Phasenübergangskontroller
die Phase der Hüllkurvendaten von
der Einschwingphase zu der folgenden Phase ändert, indem er den Hüllkurvendatenerzeuger
veranlaßt,
eine zweite Datenwandelrate auszuwählen, die sich von der ersten
Datenwandelrate unterscheidet.
-
Diese
Konfiguration eines Tonsignalgenerators ermöglicht eine Phasenzeitabstimmung
der Hüllkurvendaten
und der Tonsignaldaten, so dass diese exakt zusammenpassen.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
ein Blockschaltbild eines TV-Spielgerätes, bei dem ein Tonsignalgenerator
LSI verwendet wird, der die vorliegende Erfindung enthält.
-
2 ist
ein Blockschaltbild des Tonsignalgenerators LSI.
-
3 ist
ein Blocksckschaltbild einer PCM-Schaltung in dem Tonsignalgenerator
LSI.
-
4 ist
ein Blockschaltbild eines DSP in dem Tonsignalgenerator LSI.
-
5 stellt
den inneren Aufbau eines DRAM dar, der mit dem Tonsignalgenerator 151 verbunden ist.
-
6 stellt
den Aufbau eines Inverters in der PCM-Schaltung dar.
-
7 zeigt ein Beispiel einer Welle zur Modulation,
die in dem DRAM gespeichert ist.
-
8 zeigt
ein Beispiel einer Hüllkurve,
die von der PCM-Schaltung erzeugt wird.
-
9 zeigt
eine Prioritätsordnungstabelle des
Zugriffs auf den DRAM.
-
10 ist
ein Flußdiagramm,
das einen Prozeß einer
Speichersteuereinheit zeigt.
-
Beschreibung der bevorzugten Ausführungsform
-
1 ist
ein Blockschaltbild eines TV-Spielgerätes, bei dem ein Tonsignalgenerator
LSI verwendet wird.
-
Eine
Anzeige 4 und ein Lautsprecher 5 werden mit einem
Spielgerät 1 verbunden.
Die Anzeige 4 und der Lautsprecher 5 können wie
die in einem normalen TV-Empfänger
verwendet werden. Mit dem Spielgerät 1 sind auch eine
Spielkassette 3 mit einem ROM 19, in dem ein Spielprogramm
gespeichert ist, und eine Steuereinheit 2 für einen
Spieler zum Spielen eines Spiels verbunden. Die Steuereinheit 2 ist mit
dem Spielgerät 1 durch
ein Kabel oder dergleichen verbunden, und die Spielkassette wird
in einem in dem Spielgerät 1 angebrachten
Schlitz eingesetzt.
-
Das
Spielgerät 1 ist
mit einer Haut-CPU (MCPU) 10 ausgestattet, die ein Gesamtprogramm des
Spielverlaufs steuert. Mit der MCPU 10 sind die Steuereinheit 2,
der in der Spielkassette 3 montierte ROM 19, eine
Anzeigesteuereinheit 14 zur Steuerung der Anzeige 4 und
ein Tonsignalgenerator LSI 11 zur Erzeugung von Tonsignalen,
wie beispielsweise Musiktonsignalen, mit Klangeffekten und Musiktönen wie
beispielsweise eine Hintergrundsmusik, verbunden. Eine Ton-CPU (SCPU
= sound CPU) 12, ein DRAM 13, in welchem ein Programm
für die
SCPU 12 und PCM-Wellendaten
gespeichert werden, und ein D/A-Wandler 16 zur Konvertierung
erzeugter Musiktondaten in analoge Musiktonsignale, sind mit dem
Tonsignalgenerator LSI 11 verbunden. Der Lautsprecher 5 ist
mit dem D/A-Wandler 16 verbunden. Der Tonsignalgenerator
LSI 11 ist mit einem externen Eingabeanschluß ausgestattet,
in den digitale Tondaten von einem externen Tonsignalgenerator 18 eingegeben
werden können.
Ein VRAM 15, in welchem ein Bildschirmanzeigedatenwert
gespeichert ist, und die Anzeige 4 sind mit der Anzeigensteuereinheit 14 verbunden.
-
Wenn
der Strom einschaltet wird, nachdem die Spielkassette 3 in
das Spielgerät
eingesetzt ist, liest die MCPU 10 bestimmte Bildschirmdaten
und liefert diese zu der Anzeigesteuereinheit 14. Die MCPU 10 schreibt
dann Programme und die PCM-Wellendaten
in den DRAM 13 zur Erzeugung der Tonsignaldaten mit den
Klangeffekten und der BGM(Back Ground Musik = Hintergrundsmusik)-Tonsignaldaten.
Danach wird das Spielprogramm durch eine Operation der Steuereinheit 2 gestartet
und das Überschreiben
der Bildschirmdaten und das Erzeugen der Tonsignaldaten mit den
Klangeffekten und den BGM-Tonsignaldaten wird durchgeführt. Die
Verlaufskontrolle des Spielprogramms, i.e., das Überschreiben der Bildschirmdaten,
wird direkt von der MCPU 10 ausgeführt. Die MCPU 10 gibt
Instruktionen an die SCPU 12 zur Erzeugung der Tonsignaldaten
mit den Klangeffekten und den BGM-Tonsignaldaten, und die Synthetisierung
des realen Tonsignals wird von der SCPU 12 auf der Grundlage
des Programms und der PCM-Wellendaten, die in den DRAM 13 geschrieben
sind, ausgeführt.
-
2 ist
ein internes Blockschaltbild des Tonsignalgenerators LSI 11.
In dem Tonsignalgenerator LSI 11 erzeugt eine PCM-Schaltung 23 digitale Niederfrequenzsignaldaten,
wie beispielsweise Tonsignaldaten und Modulationssignaldaten, wenn
diese die in dem DRAM 13 gespeicherten PCM-Wellendaten
liest (unter Bezugnahme auf 1). Wenn,
wie vorher beschrieben, die Spielkassette 3 in den Schlitz eingesetzt
wird und der Strom eingeschaltet ist, fließt ein Datenwert von dem ROM 19 zu
dem DRAM 13. Daher können
die Tonsignaldaten mit den Klangeffekten und den BGM-Tonsignaldaten in
jedem Spielprogramm individuell verschiedenen sein. Mit dem DRAM 13 sind
die MCPU 10 und die SCPU 12 über eine Speichersteuereinheit 21 und
eine CPU-Schnittstelle 20 verbunden, und die in dem Tonsignalgenerator
LSI 11 montierte PCM-Schaltung 23 und ein DSP
(digital signal processor = Digitalsignalprozessor) 24 sind über die
Speichersteuereinheit 21 verbunden. Die MCPU 10,
die SCPU 12, die PCM-Schaltung 23 und der DSP 24 sind
für den DRAM 13 in
zeitlich gestaffelter Weise individuell zugänglich. Das interne Register 22 ist
mit der CPU-Schnittstelle 20 verbunden. In die PCM-Schaltung 23 und
den DSP 24 gesetzte Daten und Daten zur Bestimmung von
Daten, dass sie durch die MCPU 10 und die SCPU 11 in
diese zu setzen sind, werden temporär in dem internen Register 22 gespeichert.
-
5 zeigt
den internen Aufbau des DRAM 13. In dem DRAM 13 werden
ein SCPU- Programmbereich
für die
SCPU 12, ein PCM-Wellendatenbereich und ein DSP-Ringpuffer belegt.
Der PCM-Wellendatenwert enthält
Stimmenwellendaten, um Musiktonsignale mit den Klangeffekten und
den BGM-Tönen
zu erzeugen, und die Modulationswellendaten, die als Parameter für die Klangeffekte,
wie beispielsweise die Modulation, verwendet werden. Verschiedene
Arten von Stimmenwellendaten und die Modulationswellendaten sind
vorhanden und werden für
jeden Datenwert in dem DRAM 13 gespeichert. Der DSP-Ringpufferbereich
wird verwendet, um die Tonsignaldaten zu verzögern, um dadurch den Filtervorgang
und die Modulation oder dergleichen in dem Prozess des DSP 24 zu
bewirken.
-
Als
der Stimmenwellendatenwert wird im allgemeinen ein Abtastdatenwert
der Tonsignale mit den Klangeffekten oder der Tonsignale von natürlichen
Instrumenten verwendet. Solche Tonsignale halten ein Tonerzeugung
lange Zeit aufrecht, so dass der Stimmenwellendatenwert einen Startadressendatenwert
SA, und den Schleifen-Startadressenwert LSA und Schleifen-Endadressendatenwert
LEA für wiederholtes
Lesen aufweist. Zuerst wird der SA ausgelesen, und dann werden LSA,
LEA aufeinanderfolgend und wiederholt gelesen. Folglich gestattet
das wiederholte Lesen zwischen dem LSA und dem LEA ein Erzeugen
von Tonsignalen über
lange Zeit. Der Modulationsdatenwert ist im allgemeinen ein einfacher
Datenwert, wie beispielsweise ein Sinuskurven-Wellendatenwert oder ein Wellendatenwert,
wie es in 7 (7A, 7B, 7C)
gezeigt ist, da er zur Modulierung von Musiktonsignalen oder dergleichen
da ist.
-
Das
SCPU-Programm, die Stimmenwellendaten und die Modulationsdaten werden
durch die MCPU 10 geschrieben, wenn die Spielkassette 3 in den
Schlitz eingesetzt ist. Die SCPU weist ein SCPU-Programm auf der
Grunglage der Instruktionen der MCPU 10 auf. Die PCM-Schaltung 23 liest die
PCM-Wellendaten auf der Grundlage der Instruktionen der SCPU 12 und
erzeugt die digitalen Niederfrequenzsignaldaten. Der digitale Niederfrequenzsignaldatenwert
wird als der Tonsignaldatenwert oder der Klangeffektdatenwert verwendet.
Die PCM-Schaltung 23 hat zweiunddreißig zeitgestaffelte Kanäle, in denen
zweiunddreißig
Arten der digitalen Niederfrequenzsignaldaten individuell erzeugt
werden können.
-
9 zeigt
eine Prioritätordnungstabelle
des Zugriffs zu dem DRAM 13, die in der Speichersteuereinheit 21 gesetzt
ist. Der Prozeß des
Tonsignalgenerators LSI 11 ist durch zweiunddreißig Zeitfenster
in einem Abtasttakt der PCM-Wellendaten zeitlich gestaffelt. Die
Speichersteuereinheit 21 arbeitet nach einem Speicherzyklus,
der durch Division des Abtasttaktes in einhunderacht Teile erzeugt
wird. Vier Speicherzyklen entsprechen daher einem Fenster in dem Tonsignalgenerator.
Wie in 9 gezeigt, werden vier Prioritätsordnungen für das Speicherzugriffsrecht
gesetzt. In der ersten Prioritätsordnung
werden die Speicherzugriffsrechte des DSP 23 und der PCM 24 alternierend
zugewiesen, in der zweiten, dritten und vierten Prioritätsordnung
werden die Speicherzugriffsrechte eines Erneuerungszyklus des DRAM, der
MCPU 10 und der SCPU 12 zugewiesen. Da für den DSP 23 und
die PCM 24 Echtzeitprozesse für die digitalen Niederfrequenzsignaldaten
erforderlich sind, wird ihnen die höchste Prioritätsordnung
in der Tabelle zugewiesen.
-
Die
PCM-Schaltung 23 erzeugt die digitalen Niederfrequenzsignaldaten
durch Lesen der PCM-Wellendaten entsprechend den Instruktionen der
SCPU 12. Der digitale Niederfrequenzsignaldatenwert wird
als der Musiktonsignaldatenwert verwendet, wie beispielsweise die
BGM-Daten oder die Modulationsdaten. Die PCM-Schaltung 23 hat
zweiunddreißig
zeitlich gestaffelte Kanäle,
wodurch sie in der Lage ist, zweiunddreißig Arten der digitalen Niederfrequenzsignaldaten
unabhängig
zu erzeugen. Die PCM-Schaltung 23 überwacht
unabhängig
einen Pegel der digitalen Niederfrequenzsignaldaten jedes Kanals,
wobei Zugriffsblockierungssignaldaten INH an die Speichersteuereinheit 21 durch
Entscheiden, dass keine Erzeugung der digitalen Niederfrequenzsignaldaten
weiterhin erforderlich ist, ausgegeben werden, wenn der Pegel geringer
als einbestimmter Wert wird. Wenn der INH bei dem Kanal empfangen wird,
beendet die Speichersteuereinheit 21 den Zugriff auf den
DRAM 13 bezüglich
des Kanals, und wenn irgendein Speicherzugriff von einer anderen Vorrichtung
oder Schaltung angefordert wird, greift die Speichersteuereinheit 21 auf
den DRAM 13 als Antwort auf die Anfrage zu, wobei in der
Speicherzugriff-Prioritätstabelle
niederrangige Teilnehmer die Möglichkeit
haben, auf den DRAM 13 zuzugreifen.
-
Der
Tonsignaldatenwert in dem digitalen Niederfrequenzsignaldatenwert,
den die PCM-Schaltung 23 erzeugt,
wird in den DSP 24 eingegeben oder direkt in eine Ausgabe-Mischschaltung OMIX 25 eingegeben.
Der Modulationssignaldatenwert wird in den DSP 24 als Koeffizienten
der Klangeffekte eingegeben. Üblicherweise
wird der Lesedatenwert des Stimmenwellendatenbereichs als der Tonsignaldatenwert verwendet,
und der Lesedatenwert des Modulationswellendatenbereichs wird als
der Modulationssignaldatenwert verwendet. Es ist jedoch frei, wie
der Signaldatenwert verwendet wird, um damit irgendwelche gewünschten
Klangeffekte zu erzeugen. Es ist beispielsweise möglich, den
Lesedatenwert des Stimmenwellendatenbereichs als den Modulationssignaldatenwert
zu verwenden. Zudem hat der DSP 24 einen äußeren externen
Anschluß,
in welchen andere Tonsignaldaten oder andere Modulationssignaldaten eingegeben
werden können.
-
Der
DSP 24 ist eine Schaltung, um verschiedene Klangeffekte,
wie beispielsweise Modulation, Filterung und Tonhöhenänderung
den eingegebenen Tonsignaldaten zuzuführen und so erhaltene Daten zu
der Ausgabemischschaltung OMIX 25 auszugegeben. Um die
Klangeffekte den Tonsignalen zuzuführen, wird der Modulationssignaldatenwert,
der einer der digitalen Niederfrequenzdaten ist, in den DSP 24 eingegeben,
und der DSP 24 verwendet die Modulationssignaldaten als
die Koeffizienten zum Zuführen
der Klangeffekte. Der Tonsignaldatenwert, dem die Klangeffekte von
dem DSP 24 zugeführt werden,
wird in die Ausgabemischschaltung OMIX 25 eingegeben. Die
OMIX-Schaltung 25 ändert
jeden Tonsignaldatenwert in den zweiunddreißig Kanälen in Stereosignaldaten in
zwei Kanälen
und gibt den Stereosignaldatenwert an die DIA-Wandlerschaltung 16 aus.
-
3 zeigt
eine interne Konfiguration der PCM-Schaltung 23.
-
Die
PCM-Schaltung 23 weist einen Phasengenerator 30,
einen Adressenzeiger 31, eine Interpolationsschaltung 32,
eine Ausschneideschaltung 33, einen Inverter 34,
einen Niederfrequenzwellengenerator zur Amplitudenmodulation (ALFO) 35,
einen Hüllkurvengenerator 36,
eine Multipliziererschaltung 37 und einen Addierer 38 auf.
Der Prozeß in
der PCM-Schaltung wird durch Zeitstafflung der zweiunddreißig Kanäle ausgeführt.
-
FNS-Daten,
Frequenzbestimmungsdaten in einer Oktav, die einem Tonhöhennamen
und einem Oktavdatenwert OCT entsprechen, werden von der SCPU 12 geliefert,
und der Datenwert wird in den Phasengenerator 30 gesetzt.
Der Phasengerenator 30 erzeugt Phasendaten auf der Grundlage
der FNS und der OCT für
jeden bestimmten Abtastzyklus. Der Phasendatenwert wird in den Adressenzeiger 31 eingegeben.
Der Startadressendatenwert SA, der Schleifen-Startadressendatenwert
LSA und der Schleifen-Endadressendatenwert LEA, die einen Satz von
PCM-Wellendaten bestimmen, werden in den Adressenzeiger 31 von
der SCPU 12 eingegeben. Der Adressenzeiger 31 bestimmt
einen Zuwachsbetrag einer Adressennummer entsprechend den Phasendaten,
die von dem Phasengenerator 30 eingegeben werden, und gibt
den Adressendatenwert aus, der einen Dezimalbruch enthält. Der Dezimalbruchdatenwert
FRA wird zu der Interpolationsschaltung 32 ausgegeben,
und zwei ganzzahlige Adressen MEA, zwischen denen der FRA liegt,
werden zu dem DRAM 13 über
die Speichersteuereinheit 21 ausgegeben.
-
Der
erste PCM-Wellendatenwert und der zweite PCM-Wellendatenwert, der
dem ersten PCM-Wellendatenwert nachfolgt, werden aus dem DRAM 13 entsprechend
den zwei eingegebenen ganzzahligen Adressen MEA gelesen. Der von
dem DRAM 13 gelesene PCM-Wellendatenwert wird in die Interpolationsschaltung 32 durch
die Speichersteuereinheit 21 eingegeben. Die Interpolatiorisschaitung 32 interpoliert
die zwei eingegebenen PCM-Wellendatenwerte entsprechend dem FRA,
der von dem Adressenzeiger 31 eingegeben worden ist, und
erzeugt die digitalen Niederfrequenzsignaldaten. Die Interpolationsschaltung 32 gibt
so erhaltene Daten an die Ausschneideschaltung 33 aus.
Die Ausschneideschaltung 33 ist ein Selektor, dessen Ausgabe
zwischen den digitalen Niederfrequenzdaten, die von der Interpolationsschaltung 32 eingegeben werden,
und den Daten "Alle
0" wechselt, wobei
diese beiden für
die Ausgabe entsprechend einem Auswählsignaldatenwert SSCTL, der
von der SCPU 12 eingegeben wird, ausgewählt werden. Wenn der SSCTL "0" ist, wird der von der Interpolationsschaltung 32 eingegebene
digitale Niederfrequenzsignaldatenwert so wie ist an den Inverter 34 ausgegeben. Wenn
der SSCTL "1" ist, werden die
Daten "Alle 0" an den Inverter 34 anstelle
der digitalen Niederfrequenzsignaldaten ausgegeben. Da der Lesedatenwert
von dem DRAM 13, auf den der Adressenzeiger 31 zugreift,
ganz und gar ungültig
wird, wenn der SSCTL "1" ist, wird der SSCTL
der Speichersteuereinheit als ein Blockierdatenwert zum Arbeiten
geliefert. Wenn der SSCTL "1" bei einem Kanal
ist, gibt es folglich keinen Zugriff zu dem DRAM 13 bei
dem Kanal, um dadurch einen Speicherzyklus möglich zu machen.
-
Der
in 6 gezeigte Inverter 34 invertiert jedes
Bit der digitalen Niederfrequenzdaten, die aus einer Vielzahl von
Bits (zum Beispiel sechzehn Bits) bestehen, entsprechend den SPCTL.
Der SPCTL besteht aus von der SCPU eingegebenen Zwei-Bit-Daten. Die digitalen
Niederfrequenzsignaldaten und die SPCTL werden in zwei Eingabeanschlüsse der XOR-Schaltung
eingegeben. Ein höherwertiges
Bit der SPCTL wird in die XOR als ein Vorzeichen-Bit (das Maximumbit)
der digitalen Niederfrequenzsignaldaten eingegeben, während ein
niederwertiges Bit des SPCTL in die XOR als Zahlen-Bit (Amplitudenbits)
eingegeben wird. Wenn der SPCTL "0" und "0" ist, wird der eingegebene digitale
Niederfrequenzsignaldatenwert ausgegeben wie er ist; andereseits wird,
wenn der SPCTL "1" und "0" ist, nur das Zeichen-Bit des eingegebenen
digitalen Niederfrequenzsignaldatenwerts invertiert und ausgegeben. Wenn
außerdem
der SPCTL "0" und "1" ist, werden die Zahlen-Bits des digitalen
Niederfrequenzsignaldatenwertes invertiert und ausgegeben, und wenn der
SPCTL "1" und "1" ist, werden alle Bits invertiert und
ausgegeben.
-
Der
von dem Inverter 34 ausgegebene digitale Niederfrequenzsignaldatenwert
(einschließlich Gleichstromsignaldaten)
wird in die Multipliziererschaltung 39 eingegeben. Der
ALFO 35 und der EG 36 werden über einen Addierer 38 mit
der Multipliziererschaltung 39 verbunden. Das heißt, ein
von dem ALFO 35 erzeugter Niederfrequenzsiganaldatenwert wird
in den Addierer 38 eingegeben, und ein von dem EG 36 erzeugter
Hüllkurvendatenwert
wird mit dem Gesamtpegeldatenwert TL multipliziert, um ihn an den
Addierer 38 auszugeben. Der im Addierer 38 addierte
Datenwert wird in die Multipliziererschaltung 39 und einen
Vergleicher 60 eingegeben. Wenn ein normaler Musiktonsignaldatenwert
als der digitale Niederfrequenzsignaldatenwert eingegeben wird, verarbeitet
die Multipliziererschaltung 39 das Signal durch Amplitudenmodulation
und Hüllkurvenbeigebung.
Wenn der digitale Niederfrequenzsignaldatenwert oder Hüllkurvendatenwert
als der Modulationsdatenwert bei dem DSP 24 verwendet wird,
wird der digitale Niederfrequenzsignaldatenwert auf einen bestimmten
Wert festgesetzt und der Ausgabedatenwert aus dem Addierer 38 wird
in die Multipliziererschaltung 39 eingegeben. Wenn der
Modulationsdatenwert zum Beigeben der Klangeffekte als der digitale
Niederfrequenzsignaldatenwert eingegeben wird, werden der ALFO 35 und
der EG 36 im wesentlichen ausgeschaltet, um die Modulationsdaten
auszugeben wie sie sind. Die Ausschneideschaltung 33 und
der Inverter 34 sind hauptsächlich für diesen Zweck ausgelegt.
-
Wenn
ein Programmierer es daher wünscht, dass
die Wellendaten des ALFO 35 oder des EG 36 direkt
von der Multipliziererschaltung 39 ausgegeben werden, wird
beispielsweise der SSCTL auf "1" gesetzt und der
SPCTL wird auf "0" und "1" gesetzt. Daraus resultiert, dass die
Ausgabe der Ausschneideschaltung 33 auf "0, 0 ... 0" festgesetzt wird,
und die die Ausgabe des Inverters 34 auf den Maximaldatenwert "0, 1 ... 1" festgesetzt wird.
Dieser festgesetzte Datenwert wird mit dem Ausgabedatenwert des ALFO 35 oder
dem Ausgabewert des EG 36 multipliziert, und daher wird
der Ausgabedatenwert des ALFO 35 oder des EG 36 direkt
von der Multipliziererschaltung 37 ausgegeben.
-
In
der Multipliziererschaltung 39 wird der folgende Prozeß ausgeführt.
-
Wenn
der Musiktonsignaldatenwert in die Multipliziererschaltung 39 als
der digitale Niederfrequenzsignaldatenwert eingegeben wird und der Niederfrequenzwellensignaldatenwert
von dem ALFO 35 in die Schaltung 39 eingegeben
wird, wird der eingegebene Musiktonsignaldatenwert durch die Niederfrequenzwellensignaldaten
moduliert.
-
Wenn
der Musiktonsignaldatenwert in die Multipliziererschaltung 39 als
der digitale Niederfrequenzsignaldatenwert eingegeben wird und der
Hüllkurvenwellendatenwert
von dem EG 36 in die Schaltung 39 eingegeben wird,
wird der eingegebene Musiktonsignaldatenwert mit dem Hüllkurvenwellendatenwert
multipliziert, um die Änderung
des Lautstärkevolumens
entsprechend den Hüllkurvenwellendaten
zu erzeugen.
-
Wenn
der Niederfrequenzsignaldatenwert oder der Hüllkurvenwellendatenwert direkt
zur Modulation in dem DSP 24 verwendet werden, wird der
digitale Niederfrequenzsignaldatenwert auf einen bestimmten Wert
in der Ausschneideschaltung 33 festgesetzt (geändert),
und der Niederfrequenzsignaldatenwert und der Hüllkurvenwellendatenwert werden direkt
von der Multipliziererschaltung 39 ausgegeben.
-
Wenn
der digitale Niederfrequenzsignaldatenwert als der Modulationsdatenwert
zur Erzeugung der Tonsignaldaten mit den Klangeffekten verwendet wird,
werden der ALFO 35 und der EG 36 im wesentlichen
auf "AUS" gesetzt, dass die
Modulationsdaten direkt von der Multipliziererschaltung 39 ausgegeben werden.
-
Der
ALFO 35 und der EG 36 sind nach einer bekannten
Schaltung ausgelegt. Der ALFO 35 erzeugt die Sinuskurvenwellendaten
oder Niederfrequenzwellendaten, wie es in 7A bis 7C gezeigt
ist, beispielsweise entsprechend den Frequenzdaten LFOS, Wellenbestimmungsdaten
LFOWS und Influenzdaten (Amplitudendaten) LFOA. die von der SCPU 12 geliefert
werden. Der EG 36 erzeugt die Hüllkurvendaten, wie es in 8 gezeigt
ist, entsprechend den Einschwingratedaten AR, ersten Ausschwingratedaten
D1R, zweiten Ausschwingratedaten D2R und Freigaberatedaten RR, die
von der SCPU 12 geliefert werden. Die PCM-Wellendaten können die
Wellendaten enthalten, in denen eine Hüllkurvenwellenform nur für den Einschwingteil
erzeugt ist, einem Teil von der Startadresse SA bis zu der Schleifenstartadresse
LSA. Wenn ein solcher Wellendatenwert gelesen wird, wird der Maximaldatenwert
von dem EG 36 während
des Lesens des Einschwingteil ausgegeben (siehe die gestrichelte
Linie in 8).
-
Im
Vergleicher 60 werden der Eingabedatenwert aus dem Addierer 38 mit
den Schwellenwertdaten TH verglichen. Wenn der Eingabedatenwert
aus dem Addierer 38 kleiner als der TH in einem bearbeiteten
Kanal ist, wird der INH an die Speichersteuereinheit 21 ausgegeben,
da der digitale Niederfrequenzsignaldatenwert in dem bearbeiteten
Kanal für die
Erzeugung nicht erforderlich ist, wobei ein Speicherzugriff des
bearbeiteten Kanals blockiert wird, um den Speicherzyklus freizugeben.
In diesem Beispiel wird der Wert des TH beispielsweise auf den minimalen
Abklingwert der Hüllkurvendaten
gesetzt.
-
Es
ist möglich,
eine Multipliziererschaltung anstelle des Addierers 38 zu
verwenden.
-
4 ist
ein Blockschaltbild des DSP 24, der in den Tonsignalgenerator
LSI 11 eingebaut ist.
-
In
dem DSP 24 können
die von der PCM-Schaltung 23 eingegebenen digitalen Niederfrequenzsignaldaten
für die
16 Kanäle
gleichzeitig gehandhabt werden, und ebenfalls können die von außen eingegebenen
digitalen Niederfrequenzsignaldaten für die zwei Kanäle gleichzeitig
gehandhabt werden. Der DSP 24 verarbeitet die eingegebenen Daten
durch Verzögersn
oder Filtern, wenn der Datenwert der Tonsignaldatenwert ist, und
gibt so bearbeitete Daten zu der Ausgabemischschaltung 25 aus.
Der DSP 24 kann zudem die digitalen Niederfrequenzsignaldaten
als die Modulationsdaten, i.e., die Koeffizientendaten zum Erzeugen
der Klangeffekte, zu irgendwelchen Tonsignaldaten verarbeiten.
-
In
dieser Ausführungsform
hat die PMC-Schaltung 23 32 Kanäle, während der DSP 24 16
Kanäle
aufweist. Dieser Unterschied in der Anzahl der Kanäle kann
dadurch behoben werden, dass ein Teil der Ausgabe des DSP 24 direkt
an die Ausgabemischschaltung 25 ausgegeben wird.
-
Der
DSP 24 hat ein MIXS-Register 41 von 16 Wörtern als
ein Register zur Speicherung der eingegeben digitalen Niederfrequenzsignaldaten
von der PCM-Schaltung 23.
Der DSP 24 weist auch ein EXTS-Register 42 von
2 Wörtern
als ein Register zur Speicherung der eingegebenen digitalen Niederfrequenzsignaldaten
von einem externen Tongenerator 18 auf. Der DSP 24 weist
außerdem
noch ein MEMS-Register 43 von
32 Wörtern
als ein Register zur temporären
Speicherung des Datenwerts auf, welcher von einem Ringpuffer des
DRAM 13 gelesen wird, um diesen wiederum durch den DSP
zu verarbeiten. Diese Register MIXS 41, EXTS 42 und
MEMS 43 sind sowohl mit einem Register 45 und
einem Selektor 48 verbunden. Das Register 45 ist
eine Schaltung zur temporären
Speicherung des Koeffizientendatenwerts (Modulationsdatenwert),
um diesen in eine Multipliziererschaltung 49 synchron mit
der Taktsteuerung der zu modulierenden Tonsignaldaten einzugeben.
Der Selektor 48 ist eine Schaltung zum Auswählen der
Tonsignaldaten, die der Multipliziererschaltung 49 einzugeben
sind. Die Kombination der Eingabedaten zu dem Register 45 und
dem Selektor 48 gestattet, dass durch den Prozeß des DSP 24 die Tonsignaldaten
mit verschiedenen Klangeffekten erzeugt werden.
-
Der
DSP 24 verarbeitet wiederholt die 256 Schritte
des Programms, das in einem Mikroprogammspeicher 40 gespeichert
ist. Das Programm bestimmt irgendein gewünschtes Register aus den Registern
MEMS 43, EXTS 42 und MIXS 41, das die Daten
zu dem Register 45 und dem Selektor 48 ausgibt.
-
Ein
DRAM-Adressengenerator 44 erzeugt Adressendaten für den Zugriff
auf den Ringpuffer in dem DRAM 13 und gibt diese an die
Speichersteuereinheit 21 aus. Die Speichersteuereinheit 21 greift auf
den DRAM 13 über
dies Adressendaten zu, um in dem Ringpuffer zu verzögernde Daten
zu schreiben/lesen. Die Multipliziererschaltung 49 multipliziert, wie
im vorhergehenden beschrieben, die Tonsignaldaten mit den Koeffizientendaten,
um den Tonsignaldaten verschiedene Klangeffekte beizugeben. Der
zu moduliereden Tonsignaldatenwert wird aus den Daten der Register
MIXS 41, EXTS 42, MEMS 43 und einem TEMP-RAM 53 gewählt. Der
TEMP-RAM 53 ist ein temporäres RAM-Register, um Daten
temporär zu
speichern, die einmal von dem DSP 24 verarbeitet wurden,
was eine kurze Verzögerung
zur Folge hat. Der temporär
gespeicherte Datenwert wird zur Weiterverarbeitung in den Selektor 48 oder
einen anderen Selektor 54 durch eine Rückkoppelungsschaltung eingegeben.
Die Steuerung der Selektoren und irgendwelcher anderer Register
wird durch das Programm ausgeführt.
Der Koeffizientendatenwert, der in die Multipliziererschaltung 49 einzugeben
ist, wird durch einen Selektor 47 gewählt. Das Register 45 und
ein Koeffizientenregister 46, in welchem einige festgesetzte
Koeffizientendaten gespeichert sind, sind mit dem Selektor 47 verbunden,
und der festgesetzte Datenwert "000
... 1" (i.e., "1" von Dezimalzahlen) wird in den Selektor 47 eingegeben.
Der Selektor 47 wählt
einen Datenwert aus diesen Daten als den Koeffizientendatenwert,
der zu verwenden ist, aus und gibt diesen zu der Multipliziererschaltung 49 aus. Wenn
das Register 45 gewählt
ist, kann der von der PCM-Schaltung 23 eingegebene digitale
Niederfrequenzsignaldatenwert als der Modulationsdatenwert für die Klangeffekte
dem von dem Selektor 48 eingegebenen Tonsignaldatenwert
beigegeben werden. Wenn das Koeffizientenregister 46 anstelle
des Registers 45 gewählt
ist, wird die Modulation des Tonsignaldatenwerts durch den feststehenden
Koeffizientendatenwert, der in dem Koeffizientenregister 46 gespeichert
ist, ausgeführt.
Wenn der feststehende Datenwert "000
... 1" anstelle
dieser Register gewählt wird,
wird der eingegebene Tonsignaldatenwert zu der nächsten Schaltung (einem Addierer 50)
ausgegeben, wie er ist.
-
Der
Tonsignaldatenwert, der von der Multipliziererschaltung 49 ausgegeben
wird, wird in den Addierer 50 eingegeben. Der Addierer 50 addiert
die bestimmten Koeffzientendaten zur Beifügung zu den Tonsignaldaten,
wobei die addierten Daten von dem DSP 24 über eine
1-Taktverzögerungsschaltung 51 und
eine Schieberschaltung 52 ausgegeben werden. Der bestimmte
Koeffizientendatenwert zum Beifügen wird
von dem Selektor 54 aus der Ausgabe der 1-Taktverzögerungsschaltung 51,
der Ausgabe des TEMP-RAM 53 und den feststehenden Daten "ALLE 0" gewählt. Die
1-Taktverzögerungsschaltung 51 ist eine
Schaltung zur Verzögerung
der addierten Daten um einen Abtasttakt, und die Schieberschaltung 52 ist
zum Verschieben solcher verzögerten
Daten um eine Anzahl bestimmter Zeichen da, die extern gesetzt wird.
Der TEMP-RAM 53 verzögert
für einen Augenblick
die Ausgabedaten der Schieberschaltung 52 durch temporäres Speichern
der Daten. Was die Verzögerung
von Daten betrifft, so ist einer der Ringpuffer (von 10 ms bis 1
s) in dem DRAM 13 länger
als einer des TEMP-RAM.
-
In
dem DSP 24 können
verschiedene Klangeffekte den Tonsignaldaten durch die Verzögerung des
Ringpuffers, der 1-Bit-Verzögerungsschaltung 51 und
des TEMP-RAM 53,
durch den Multiplikationsvorgang der Multipliziererschaltung 49 und
den Additionsvorgang des Addierers 50 beigegeben werden. Zudem
ist es freigestellt, die Eingabedaten für die Multipliziererschaltung 49 als
die Tonsignaldaten aus den digitalen Niederfrequenzdaten, den digitalen
Signaldaten von einem externen Tonsignalgenerator 18 und
die verzögergerten
digitalen Signaldaten, die von dem Ringpuffer in dem DRAM 13 ausgegeben werden,
auszuwählen.
Die Koeffizientendaten zur Multiplikation aus den digitalen Niederfrequenzsignaldaten,
die digitalen Signaldaten von dem externen Tonsignalgenerator 18,
die verzögerten
digitalen Signaldaten, die von dem Ringpuffer in dem DRAM 13 ausgegeben
werden, und die feststehenden Koeffizientendaten aus dem Koeffizientenregister 46 können beliebig
ausgewählt
werden. Diese Konfiguration des DSP 24 ermöglicht,
dass die Klangeffekte viel breiter, tiefer und wählbarer sind.
-
10 ist
ein Flußdiagramm,
das einen Zugriffssteuerprozeß der
Speichersteuereinheit zeigt. Dieser Prozeß gehört zu der in 9 gezeigten
ersten Prioritätsordnung.
In Schritt n1 ist der Tonerzeugungskanal, auf den zugegriffen werden
soll, in Taste-AUS. Wenn er in Taste-AUS ist, wird es für die niederrangigen
Teilnehmer in der Tabelle möglich,
auf irgendeinen Speicher zuzugreifen. In Schritt n2 wird beurteilt,
ob der INH von der PCM-Schaltung 23 eingegeben worden ist
oder nicht. Bei INH = "JA", wird es für die niederrangigen
Teilnehmer in der Tabelle möglich,
auf irgendeinen Speicher zuzugreifen, sogar wenn der Kanal nicht
in Taste-AUS ist.
Auf den DRAM kann ein Zugriff erfolgen, um die PCM-Wellendaten zu
lesen, nur falls der Kanal in Taste-AUS ist oder kein INH eingegeben
ist (n3).
-
Wie
vorher beschrieben gibt bei dieser Ausführungsform die PCM-Schaltung 23 die
INH aus, wenn der Pegel der Hüllkurvendaten
oder der Niederfrequenzsignaldaten, um zur Modulation mit den digitalen
Niederfrequenzsignaldaten multipliziert zu werden, kleiner als der
bestimmte Schwellendatenwert TH ist, und wenn der SSCTL "1" wird, um dadurch die digitalen Niederfrequenzsignaldaten
festzusetzen, die die PCM-Schaltung 23 die
Speicherzugriffblockierungsdaten INH ausgibt, die Speichersteuereinheit 21 den
Zugriff auf den DRAM 13 in dem Tonerzeugungskanal im Ansprechen
auf den INH blockiert, um den Speicherzyklus freizugeben, in welchem
irgendein anderer niederrangiger Prioritätsteilnehmer, beispielsweise
die CPU 12 oder die MCPU 10, zugreifen kann.
-
11 zeigt
ein internes Bauschema einer anderen Art der PCM-Schaltung 23.
-
Die
PCM-Schaltung 23 weist den Phasengenerator 30,
den Adressenzeiger 31, die Interpolationsschaltung 32,
den Niederfrequenzwellengenerator zur Amplitudenmodulation (ALFO) 35,
den Hüllkurvengenerator
(EG) 36, die Multiplizierer schaltung 60 und die
Ausgabesteuereinheit 61 auf. Der Prozeß in der PMC-Schaltung 23 wird
durch Zeitstaffelung der zweiunddreißig Kanäle ausgeführt.
-
FNS-Daten,
Frequenzbestimmungsdaten in einer Oktav, die einem Tonhöhennamen
und einem Oktavdatenwert OCT entsprechen, werden von der SCPU 12 geliefert,
und der Datenwert wird in den Phasengenerator 30 gesetzt.
Der Phasengerenator 30 erzeugt Phasendaten auf der Grundlage
der FNS und der OCT für
jeden bestimmten Abtastzyklus. Der Phasendatenwert wird in den Adressenzeiger 31 eingegeben.
Der Startadressendatenwert SA, der Schleifen-Startadressendatenwert
LSA und der Schleifen-Endadressendatenwert LEA, die einen Satz von
PCM-Wellendaten bestimmen, werden in den Adressenzeiger 31 von
der SCPU 12 eingegeben. Der Adressenzeiger 31 bestimmt
einen Zuwachsbetrag einer Adressennummer entsprechend den Phasendaten,
die von dem Phasengenerator 30 eingegeben werden, und gibt
den Adressendatenwert aus, der einen Dezimalbruch enthält. Der
Dezimalbruchdatenwert FRA wird zu der Interpolationsschaltung 32 ausgegeben,
und zwei ganzzahlige Adressen MEA, zwischen denen der FRA liegt,
werden zu dem DRAM 13 über
die Speichersteuereinheit 21 ausgegeben.
-
Der
erste PCM-Wellendatenwert und der zweite PCM-Wellendatenwert, der
dem ersten PCM-Wellendatenwert nachfolgt, werden aus dem DRAM 13 entsprechend
den zwei eingegebenen ganzzahligen Adressen MEA gelesen. Der von
dem DRAM 13 gelesene PCM-Wellendatenwert wird in die Interpolationsschaltung 32 durch
die Speichersteuereinheit 21 eingegeben. Die Interpolationsschaltung 32 interpoliert
die zwei eingegebenen PCM-Wellendatenwerte entsprechend dem FRA,
der von dem Adressenzeiger 31 eingegeben worden ist, und
erzeugt die digitalen Niederfrequenzsignaldaten.
-
Die
Ausgabe der Interpolationsschaltung 32 wird in die Multipliziererschaltung 60 eingegeben, welcher
der Niederfrequenzsignaldatenwert, wie beispielsweise ein Rechteckwellendatenwert
und ein Sägezahnwellendatenwert
von dem ALFO 35 und dem EG 36 oder der in 8 gezeigte
EG-Datenwert zugeführt
wird. Die Multipliziererschaltung 60 bearbeitet eine Multiplikation
für ein
Wort, das eine Prozeßeinheit
in jedem Zeitfenster ist, um diese an die Ausgabesteuereinheit 38 auszugeben.
Der digitale Niederfrequenzsignaldatenwert, der von der Interpolationsschaltung 32 ausgegeben
wird, wird durch die Ausgabedaten des ALFO 35 und der EG 36 in
einer Hüllkurve
gesteuert, wobei er daher zu dem DSP 24 über die
Ausgabesteuereinheit 38 ausgegeben wird.
-
Der
DSP 24 bearbeitet so gesteuerte Daten durch einen Filtervorgang,
wobei diese zu dem D/A-Wandler 16 zur Ausgabe der Musiktonsignale ausgegeben
werden.
-
Die
PCM-Schaltung 23 ist mit einer Steuerleitung zur Ausgabe
von Daten CHNG von dem Adressenzeiger an den EG 36 versehen.
Der CHNG ist ein Datenwert, der erzeugt wird, wenn der Adressenzeiger 31 einen
Leseendpunkt der Einschwingphase in den PCM-Wellendaten ermittelt.
Wie nachfolgend beschrieben, empfängt der EG 36 die
CHNG, um die EG-Daten so zu steuern, dass der EG-Datenwert von der
Einschwingphase in die Folgephase geändert wird.
-
12 ist
ein Blockschaltbild des Phasengenerators 30 und des Adressenzeigers 31,
die in der PCM-Schaltung 23 angeordnet sind.
-
Der
Phasengenerator 30 ist mit einer Schieberschaltung 70 und
einem Akkumulator 71 ausgestattet. Die Schieberschaltung 70 erzeugt
Frequenzdaten durch ausreichendes Schieben der FNS-Daten für die OCT-Daten.
Der Frequenzdatenwert wird in den Akkumulator 71 eingegeben,
um Phasendaten zu erzeugen, i.e., relative Adressendaten (wenn die Startadress "0" ist), um die PCM-Wellendaten auszulesen.
-
Der
Adressenzeiger 31 weist folgendes auf: einem Subtrahierer 80 zur
Subtraktion der Schleifenendadresse LEA des Schleifendatenbereichs
(siehe 5) von den relativen Adressendaten, die von dem
Akkumulator 71 ausgegeben werden, einem Addierer 81 zur
Addition der Ausgabedaten, die nicht das Zeichen-Bit des Subtrahierers 80 sind,
zu den Schleifenstartadressendaten LSA, einem Selektor zum Auswählen der
durch den Addierer 81 addierten Daten oder der Ausgabe
des Akkumulators 71, einen Addierer 83 zur Addition
der Ausgabedaten des Selektors 82 zu dem Startadressendatenwert
SA, der ein absoluter Adressendatenwert ist, einen Addierer 84 und
einen Selektor 85, die mit der Interpolationsschaltung 32 zur
Berechnung der Dezimalbruchdaten FRA verbunden sind, und einen Vergleicher 86 zum
Vergleichen der relativen Adressendaten mit den LSA. Der SA wird
als die absolute Adresse vorgegeben, der LSA und der LEA werden
als die relative Adresse für
den SA vorgegeben.
-
Der
Prozess des Adressenzeigers wird bezugnehmend auf die Adressen in
dem in 5 gezeigten Stimmenwellendaten-Speicherbereich
beschrieben.
-
Der
Subtrahierer 80 subtrahiert den LEA von der relativen Adresse
des Akkumulators 71, so dass das Vorzeichen-Bit der Ausgabe
des Subtrahierers 80 zu Beginn des Auslesens der PCM-Wellendaten negativ
ist. Der Selektor 82 wählt
die Ausgabe des Akkumulators 71 aus, um diese an den Addierer 83 auszugeben,
wenn die Ausgabe des Subtrahierers 80 negativ ist. Zu Beginn
des Lesens der PCM-Wellendaten wird daher die Ausgabe des Akkumulators 71 an
den Addierer 83 ausgegeben, so wie sie ist, und dann wird
die Ausgabe des Akkumulators 71 zu der SA addiert, welches
die absolute Startadresse ist, um eine so addierte Adresse als aktuelle
Adresse des DRAM 13 auszugeben. Das Additionsergebnis des
Addierers 83 wird in die ganzzahligen Adressendaten MEA
und die Dezimalbruchadressendaten FRA geteilt. Der MEA wird durch
den Selektor 85 in dem ersten Zyklus in einem Fenster ausgegeben,
wie er ist und wird zu "1" durch den Addierer 84 in
einem späteren
Zyklus in dem gleichen Fenster addiert, um so addierte Daten über den
Selektor 85 auszugeben. Die zwei Sätze des MEA sind für die Speichersteuereinheit 21 in
einem Fenster so vorgesehen, dass die Speichersteuereinheit 21 dem
MEA entsprechende zwei Datensätze
an die Interpolationsschaltung 32 zur Interpolation wie
an den FRA ausgibt.
-
Wenn
das Vorzeichen-Bit der Ausgabe des Subtrahierers 80 zu
positiv geändert
wird, schalten die Plusdaten den Selektor 82, und der Akkumulator 71 lädt die Ausgabe
des. Addierers 81, da ein Vorzeichenanschluß des Subtrahierers 80 mit
dem Ladeanschluß des
Akkumulators 71 verbunden ist. Zu diesem Zeitpunkt ist
der Ausgabedatenwert, der nicht das Vorzeichen-Bit ist, nahezu gleich "0", so dass der LSA'-Datenwert, der gerinfügig größer als
der LSA ist, in den Akkumulator 71 geladen wird. Wenn der LSA' in den Akkumulator 71 geladen
ist, wird das Ausgabevorzeichen-Bit des Subtrahierers 80 wieder negativ.
Der Selektor 82 wählt
dann wieder die Ausgabe des Akkumulator 71 aus. Wenn daher
die relative Adresse der Akkumulatorausgabe den LEA übertrifft,
wählt der
Selektor 82 die Ausgabe des Addierers 81 aus,
um dann den LSA' erneut
auszugeben, und unmittelbar danach wählt er wieder die Ausgabe des
Akkumulators 71, wobei ein Zuwachswert von dem LSA an den
Addierer 83 ausgegeben wird. Daraus folgt, das ein wiederholtes
Auslesen, wie es durch einen Pfeil in 5 angezeigt
ist, durchgeführt wird.
-
Der
von dem Akkumulator 71 ausgegebene relative Adressendatenwert
wird mit dem LSA von dem Vergleicher 86 verglichen, und
wenn beide Adressendaten überein stimmen,
wird der CHNG an den EG 36 ausgegeben. Der CHNG-Ausgabezeitpunkt
ist ein Zeitpunkt, an dem die Ausgabe des Akkumulators 71 den
LSA von dem SA erreicht. In dem Schleifenprozeß wird, wenn die Adresse zu
dem LSA' von dem
LEA, dem relativen Adressendatenwert, zurückkehrt, die Ausgabe des Akkumulators 71 der
LSA', der sich gerinfügig vergrößert als
der LSA, wobei dann kein CHNG an dem Zeitpunkt des Erreichens erzeugt
wird. Wie nachfolgend beschrieben, wird die EG-Datenphase von der
Einschwingphase in die Folgephase geändert, wenn der CHNG erzeugt wird.
-
13 ist
ein Detail-Blockschaltbild des EG 36. Ein Selektor 90 wählt Ratedaten
aus "0", "D1R", "D2R" und "RR" aus und gibt diese
an einen Subtrahierer 92 gemäß einer Ausgabe einer Phasenänderungssteuerschaltung 91.
Jeder Ratedatenwert repräsentiert
eine Rateänderungsbreite
für jeden
Takt. Der Ratedatenwert, der von dem Selektor 90 ausgewählt wird,
wird zuerst als Subtraktionsdatenwert von "0" bei
dem Subtrahierer 92 und dann als Subtraktionsdatenwert
von einer 1-Taktverzögerungsschaltung
von dem nächsten
Taktzyklus verwendet. Die Ausgabe des Subtrahierers 92 ist
gleich der Ausgabe des EG, wobei sie der Phasenänderungssteuerschaltung 91 zugeführt wird,
um zu überwachen,
ob der EG-Datenwert einen Abklingpegel DL erreicht oder nicht. Der
EG-Datenwert wird auch der Verzögerungsschaltung 93 zugeführt.
-
Bei
dem vorher erwähnten
Aufbau klingt die Ausgabe des Subtrahierers 92, i.e., eine
Ausgabe des EG 36, schrittweise auf der Grundlage der von dem
Selektor 90 ausgewählten
Ratedaten ab, mit der Ausnahme, wenn die Rate "0" ist.
Der Ausgabepegel der Phasenänderungssteuerschaltung 91 wird
während
dessen mit dem Abklingpegel DL an dem Zeitpunkt verglichen, an dem
die erste Abklingphase zu der zweiten Abklingphase in der Steuerschaltung 91 wechselt,
um zu überwachen,
ob beide Pegel übereinstimmen
oder nicht. Wenn sie übereinstimmen, wird
der Selektor 90 so unterrichtet, dass die Ratedatenwert
D2R ausgewählt
wird. Der Abklingpegel DL wird im voraus gesetzt, dass kein Taste-EIN-Datenwert
KON oder dergleichen durch Ereignisse erzeugt wird. Die Taste-EIN-Daten
KON, die Taste-AUS-Daten KOFF und die CHNG von dem Adressenzeiger 31 werden
in die Phasenänderungssteuerschaltung 91 eingegeben.
Die Phasenänderungssteuerschaltung 91 instruiert
den Selektor 90 so, dass "0" ausgewählt wird,
wenn dieser den Taste-EIN-Datenwert KON empfängt, dann so, dass D1R ausgewählt wird, wenn
dieser den CHNG von dem Adressenzeiger 31 empfängt. Zudem
instruiert die Schaltung 91 den Selektor 90 so,
dass RR augewählt
wird, wenn dieser den Taste-AUS-Datenwert KOFF empfängt. Der
im vorhergehenden erwähnte
Steuerprozeß gestattet, das
die Einschwingphase der EG-Daten ausgegeben wird, wenn der KON zuerst
eingegeben wird, dann die erste Abklingphase D1 ausgegeben wird,
wenn der CHNG von dem Adressenzeiger 31 eingegeben wird,
weiter die zweite Abklingphase ausgegeben wird, wenn der EG-Datenpegel
den DL erreicht, und weiterhin noch die Freigabephase R ausgegeben wird,
wenn der KOFF eingegeben wird.
-
Bei
der vorher beschriebenen Steuerung, ist der Zeitpunkt, zu der CHNG
von dem Adressenzeiger 31 ausgegeben wird, derjenige, wenn
der Vergleichen 86 das Übereinstimmen
der relativen Adressendaten von dem Akkumulator 71 und
den LSA feststellt. Da der CHNG erzeugt wird, wenn die Leseadresse
der PCM-Wellendaten den LSA erreicht, wird daher die EG-Datenerzeugungsphase
zu der ersten Abklingphase D1 von der Einschwingphase A in dem EG 36 bewegt,
so dass das Lesen der PCM-wellendaten
und die Erzeugung der Einschwingphase der EG-Daten verriegelt werden.
Das heißt,
dass die Einschwingphasenlänge
L in 14 sich mit der Einschwingphasenlänge der
PCM-Wellendaten verriegelt, um dadurch zu ermöglichen, dass die Einschwingphasenlänge L entsprechend
der zu erzeugenden Musiktonhöhe
präzise
ausgedehnt und kontrahiert wird.
-
Wie
im vorhergehenden beschrieben ist, wird die Leseendadresse der Einschwingphase
in den Musiktonsignaldaten (den PCM-Wellendaten) bei dem Adressenzeiger 31 ermittelt,
der CHNG wird an den EG 36 ausgegeben und die EG-Datenphase wird
von der Einschwingphase in die Folgephase im Ansprechen auf den
CHNG bei dem EG 36 geändert. Als
Ergebnis wird der EG-Datenwert präzise verriegelt mit den Musiktonsignaldaten
in dem Einschwingteil, um den Musikton bei irgendeiner Tonhöhenänderung
rein zu erzeugen.