-
Die Erfindung betrifft ein elektronisches Musikinstrument, welches mit einer
Hüllkurvenerzeugungseinrichtung ausgestattet ist, wobei die
Hüllkurvenerzeugungseinrichtung aus einem Hüllkurvenspeicher zum Speichern von
Hüllkurvendaten und einem Adreßrechner zum Berechnen der Adreßdaten für den
Hüllkurvenspeicher im Zeitmultiplex gebildet ist.
-
Ein Instrument dieser Art ist bekannt aus der US-A-3,844,379, bei welcher ein
Musiktonwellenformspeicher eine wiederzugebende Wellenform analog speichert.
Die Musiktonwellenform wird aus diesem Wellenformspeicher mit einer
Lesegeschwindigkeit gelesen, die dem dazu selektierten Tontakt entspricht. Anschlag
und Nachklingen der Musiktonwellenformhüllkurve sind ebenfalls analog in einem
Hüllkurvenspeicher gespeichert.
-
Konventionell sind vielfältige Vorschläge betreffend digitale
Tonquellenschaltungen für elektronische Musikinstrumente häufig ausprobiert worden. Die
komplexen Wellen mit vielen Harmonischen wurden als Wellenformdaten mit einem
vorgegebenen Takt aus einem Nur-Lese-Speicher (nachfolgend als ROM
bezeichnet) oder von einem Lese/Schreib-Speicher mit wahlfreiem Zugriff (nachfolgend
als RAM bezeichnet) gelesen, um Tonwellen bereitzustellen. Danach wurde die
vorgegebene Hüllkurve durch digitale oder analoge Techniken zu der Tonwelle
hinzugefügt, um die Tonsignale zu erzeugen.
-
Es existieren einige im folgenden dargelegte Probleme. Ein erstes Problem
besteht bei einer Berechnung zum Erzeugen der Wellen. Zum Wechseln der
Klangfarbe wird bei dem Instrument die Form der komplexen Wellen verändert,
wenn die Klangfarbendaten Verhältnis jeder der Harmonischen gegeben sind, mit
dem meist für die elektronischen Musikinstrumente verwendeten Register, in der
Reihenfolge des Pegels der 8 Fuß (Grundschwingung), des Pegels der 4 Fuß
(zweite Harmonische) und des Pegels der 2%-Fuß (dritte Harmonische), wobei die
ihr in der Form entsprechende komplexe Welle aus den Klangfarbendaten zu
bilden ist. Insbesondere ist eine umgekehrte Fourier-Transformation erforderlich.
-
Obwohl gegenwärtig preiswerte Mikrocomputer verfügbar sind, erfordert die
umgekehrte Fourier-Transformation Zeiten von einigen hundert Millisekunden bis
etwa eine Sekunde. Zusätzlich ist die umgekehrte Fourier-Transformation
jedesmal erforderlich, wenn ein Spieler Register oder Klangtafeln verändert.
Wenn mehr Zeit für die Berechnung erforderlich ist, kann daher die Klangfarbe
nicht sofort wechseln oder für einige Zeit können keine Töne erzeugt werden.
Daher sind diese Lösungen nicht geeignet für die Verwirklichung der
musikalischen Vorgaben, welche häufige Klangfarbenumschaltungen erfordern.
-
Als ein zweites Problem bleibt die Klangfarbe vom Zeitpunkt der Erzeugung eines
Tones bis zu dem Zeitpunkt, an welchem der Ton verschwindet, unverändert.
Wenn die umgekehrte Fourier-Transformation der Klangfarbendaten und der
Wellendaten ausgeführt wird, wie vorgeschlagen, werden die Wellendaten in den
Speicher geschrieben und die Wellendaten werden mit einer vorgegebenen
Taktgeschwindigkeit wiederholt aus dem Speicher gelesen, mit dem Ergebnis,
daß die Wellen normalerweise konstant werden. Auch wenn eine vorgegebene
Hüllkurve zu der Welle hinzugefügt wird, bleibt die Klangfarbe unverändert. Um
die Klangfarbe jederzeit zu ändern, muß die gespeicherte Welle jederzeit neu
geschrieben werden. Da der Speicher selbst normalerweise gelesen wird, ist es
erforderlich, daß er zwischen den Lese-Zeitsteuerungen synchron mit dem
Lesezyklus zum Neuschreiben des Speicherinhaltes beschrieben wird. Die
Lesetaktgeschwindigkeit ist nicht immer konstant, da sie sich mit dem erzeugten
Schritt ändert und es ist sehr schwierig, die Wellen in der Hardware neu zu
schreiben. Wie vorstehend beschrieben, bedeutet eine Klangfarbenänderung
jedesmal eine umgekehrte Fourier-Transformation mit hoher Geschwindigkeit, da
die umgekehrte Fourier-Transformation jedesmal ausgeführt werden muß, um
aus den Klangfarbendaten die Wellenformdaten bereitzustellen. Auch aus dieser
Sicht ist erkennbar, daß eine sofortige Änderung der Klangfarbe extrem
schwierig ist.
-
Als ein drittes Problem ergibt sich ein Problem des Systemtaktes der gesamten
Hardware. Die digitale Schaltung ist so ausgebildet, daß sie zur einfacheren
Synchronisierung des gesamten Systems mit einem festen Takt arbeitet,
wodurch die Zeitsteuerung zwischen den Logikschaltungen definiert ist und die
Konstruktion der Hardware vereinfacht wird. Andererseits sind in der
Tonquellenschaltung des elektronischen Musikinstrumentes zwölf unterschiedliche Takte
erforderlich, um die Klangsignale jeder Note C, C#, D ... B durch Ändern der
Lesegeschwindigkeit zu erhalten. Um z.B. die Oktave in der Folge von C&sub1;, C&sub2;,
C&sub3; ... zu wechseln, muß der Takt für die C-Note 1/2, 1/4, 1/8... sein, oder die
Speicheradresse ist mit zwei Sprüngen, vier Sprüngen, acht Sprüngen, ... zu
lesen. Der Takt der C#-Note muß jedoch 21/12 mal so schnell wie der Takt der
C-Note sein. Ebenso muß der Takt der D-Note 22/12 mal so schnell wie der Takt
der C-Note sein. Der Takt der D #-Note muß 23/12 mal so schnell wie der Takt
der C-Note sein. Da diese 21/12, 22/12, 23/12, ... irrationale Zahlen sind, sind 12
unabhängige Taktgeneratoren zum Erzeugen dieser 12 Takte durch die Hardware
erforderlich. Das Problem ist, daß eine synchrone Relation nicht erreicht werden
kann und die Hardware nicht gemeinsam verwendet werden kann, da die zwölf
Taktgeschwindigkeiten vollständig unabhängig sind. Da dementsprechend
mehrere Hüllkurvenmultiplizierer und mehrere Digital/Analog-Wandler
(nachfolgend als D/A-Wandler bezeichnet) erforderlich sind, erhält die Hardware deutlich
größere Abmessungen und führt zu einer schwierigeren Systemkonstruktion.
-
Da bei dem elektronischen Musikinstrument, wie in der US-A-3,844,379
beschrieben, die Musiktonwelle ebenso wie die Anschlag- und Nachklingdaten als
analoge Signale in einem Wellenformspeicher und einem Hüllkurvenspeicher
gespeichert sind, sind die Ausgangsdaten dieser Speicher durch analoge
Multiplikation der Wellendaten und der Hüllkurvendaten zu verarbeiten. Dies verursacht
Signaldrifts und Rauschen, die mit einer analogen Verarbeitung einhergehende
Probleme sind.
-
Daher ist es eine Aufgabe der vorliegenden Erfindung, ein elektronisches
Musikinstrument anzugeben, welches die obigen Probleme vermeidet und welches für
eine LSI-Integration geeignet ist.
-
Erfindungsgemäß ist ein im Oberbegriff des Anspruches 1 beschriebenes
elektronisches Musikinstrument dadurch gekennzeichnet, daß der
Hüllkurvenspeicher ein digitaler Speicher ist, daß der Adreßrechner für den
Hüllkurvenspeicher einen Lese-/Schreib-Speicher mit einer Mehrfachadresse zum Speichern
von Parametern, welche von einer Steuerungseinrichtung über eine Anfangslade-
Schnittstelle abgegeben werden, und eine arithmetische Logikschaltung umfaßt,
die aus wenigstens einem Addierer zum Errechnen der Adreßdaten für den
digitalen Hüllkurven-Speicher besteht, um mehrere digitale Hüllkurvendaten von
dem digitalen Hüllkurven-Speicher im Zeitmultiplexverfahren zu erhalten.
-
Bevorzugte Ausführungsformen sind in den Unteransprüchen beschrieben.
-
Diese und andere Aufgaben, Merkmale, Aspekte und Vorteile der vorliegenden
Erfindung werden aus der folgenden detaillierten Beschreibung der vorliegenden
Erfindung in Verbindung mit den beigefügten Zeichnungen deutlicher erkennbar.
-
Dabei zeigen:
-
Fig. 1 ein Blockschaltbild, welches alle Komponenten eines
elektronischen Musikinstrumentes darstellt, welche in der vorliegenden
Erfindung verwendet werden;
-
Fig. 2 einen Graphen, der eine einzelne Sinuswelle eines Wellen-ROM 6
darstellt, auf den der Adreßrechner in Fig. 1 zugreift;
-
Fig. 3 einen Graphen, der einen von dem ROM 6 in Fig. 1 ausgegebenen
Satz von Sinuswellen darstellt;
-
Fig. 4 ein Blockschaltbild von Teilen des ROM-Adreßrechners in Fig. 1;
-
Fig. 5 einen Graphen, der einen aus den Registern in Fig. 4
ausgegebenen Satz von Wellen darstellt;
-
Fig. 6 einen Graphen, der eine von dem Wellen-ROM 6 in Fig. 1
ausgegebene Sinuskurve darstellt;
-
Fig. 7 einen Graphen zum Darstellen der Wellenleseoperation des Wellen-
ROM-Adreßrechners in Fig. 1;
-
Fig. 8 einen Graphen, der Sinuskurven von drei Phasentakten darstellt,
die von dem Wellen-ROM 6 in Fig. 1 ausgegeben werden;
-
Fig. 9 ein erläuterndes Diagramm, das die Konstruktion des Hüllkurven-
ROM 7 in Fig. 1 zeigt;
-
Fig. 10 ein erläuterndes Diagramm, das einen von dem Hüllkurven-ROM 7
in Fig. 1 ausgegebenen Satz von Adreßen zeigt;
-
Fig. 11 ein Blockschaltbild, das Teile des erfindungsgemäßen Hüllkurven-
ROM-Adreßrechners in Fig. 1 zeigt;
-
Fig. 12 einen Graphen, der die von dem Hüllkurven-ROM 7 in Fig. 1
ausgegebenen Wellen darstellt;
-
Fig. 13 ein Blockschaltbild eines elektronischen Musikinstrumentes in der
zweiten Ausführungsform der vorliegenden Erfindung;
-
Fig. 14 ein Blockschaltbild der Amplitudendatenspeichereinrichtung in Fig.
13;
-
Fig. 15 ein Blockschaltbild einer Modifikation des Wellen-ROM 6 in Fig.
13;
-
Fig. 16 einen Graphen, der einen von dem ROM 6 in Fig. 1 3
ausgegebenen Satz Sinuskurven darstellt; und
-
Fig. 17 ein Blockschaltbild eines elektronischen Musikinstrumentes in der
dritten Ausführungsform der vorliegenden Erfindung.
-
In Fig. 1 beinhaltet eine Klangselektionseinrichtung 1 Register,
Klangtafeischalter, etc. und ein Spieler kann die Register, Klangtafelschalter etc. betätigen, um
die Klänge zu selektieren. Tastaturen 2 bezeichnen eine einzelne Tastatur, eine
obere Tastatur, eine untere Tastatur, Fußpedale, etc., und der Spieler spielt eine
Melodie auf diesen Tastaturen. Ein Mikrocomputer 3 nimmt die Klangfarbendaten
und Tastendaten von der Klangselektionseinrichtung und den Tastaturen 2 auf,
gibt die erforderlichen Befehle an einen Adreßrechner 4 für ein Wellen-ROM 6
und an einen Adreßrechner 5 für ein Hüllkurven-ROM 7 in Übereinstimmung mit
den Klangfarbendaten und den Tastendaten. Der Adreßrechner 4 für das Wellen-
ROM 6 und der Adreßrechner 5 für das Hüllkurven-ROM 7 greift jeweils auf das
Wellen-ROM 6 und das Hüllkurven-ROM 7 zu. Die durch diesen Zugriff auf das
Wellen-ROM 6 und das Hüllkurven-ROM 7 erhaltenen digitalen Wellendaten und
digitalen Hüllkurvendaten werden durch einen Multiplizierer 8 digital multipliziert,
um hüllkurvenergänzte Tonsignaldaten abzugeben. Die Tonsignaldaten werden
durch einen D/A-Wandler aus den Digitalwerten in Analogwerte umgewandelt
und durchlaufen ein Taktsperrfilter 10 und einen Leistungsverstärker 11 zum
Ausgeben durch einen Lautsprecher 12.
-
Das Wellen-ROM 6 wird nachfolgend beschrieben. In Fig. 2 wird, wenn eine
Periode (x = 0 bis 2π Rad) der x-Achse einer Sinuswelle durch die folgende
Gleichung:
-
f(x) = A sin x (1)
-
dargestellt wird, gleichförmig durch n geteilt wird und x&sub0;, x&sub1;, x&sub2;, ... xi ... xn-1
(xn = x&sub0;) vorgesehen wird,
-
xi 2πi/n (i=0, 1, 2, ..., n-1) (2)
n
-
gebildet. Der abgetastete Wert f(xi) einer Sinuswelle ist, bezogen auf xi, aus der
Gleichung (1) folgend
-
f(xi) = Asin xi = Asin 2πi/n (3)
-
Der f(xi) ist quantisiert und in einem Digitalwert in das Wellen-ROM 6
geschrieben und ist so angeordnet, daß er durch den Takt fCK [Hz] sequentiell gelesen
wird. Inzwischen steigt i jeweils um 1 für jedes 1/fCK [sec] (angenommen, daß
xn=x&sub0; nach xn-1 gelesen wird und x&sub1;, x&sub2;, x&sub3; ... in Folge wiederholt werden),
um
-
i = t/1/fCK = fCK t (4)
-
zu bilden. Ebenso nimmt i, wenn sprungweises Lesen alle m ausgeführt wird,
jeweils um m pro 1/fCK [sec] zu, um die folgende Gleichung zu bilden
-
i = t/1/fCK m = m fCK t (5)
-
Wenn die Gleichung (5) in die Gleichung (3) eingesetzt wird, erhält man
-
f(xi) = Asin 2π .mf/n t = Asin 2πft (6)
-
Insbesondere ist die Frequenz f der Sinuswelle, die aus dem Wellen-ROM 6
gelesen wird, wie folgt
-
f = m/n fCK (7)
-
Es wird angenommen, daß die Welle aus dem ROM mit solchen Werten n, wie in
Tabelle (1) gezeigt, für jede der Noten vorgesehen ist und die Leseoperation mit
einer konstanten fCK ausgeführt wird, so daß das Tonsignal (Sinuswelle) jeder
Note der Noten C, C#, D, ... B mit einem Fehler von ± 1.19 Prozent oder
weniger in der praktischen Anwendung auftritt.
Tabelle 1
Divisor n für iede Note
Note
Divisor n
Prozentualer Fehler
-
Wenn fCK bei fCK = 14749,802 (Hz] konstant gemacht wird, wird die Sinuswelle
von etwa 8 Fuß von C&sub1; (ungefähr 65,4 Hz) als aus der Gleichung (7) erkennbar
angegeben, wobei n = 451, m =2 ist, und die Sinuswelle von etwa 69,3 Hz (8
Fuß von C#&sub1;) wird als aus der Gleichung (7) erkennbar angegeben, wobei
n=426, m=2 ist. Ebenso wird das Wellen-ROM, welches sich in n
unterscheidet, mit einer konstanten fCK gelesen, um die Tonsignale aller Noten
auszugeben.
-
Da 8 Fuß (ungefähr 65,4 Hz) von C&sub1; bei n=451 und m=2 abgegeben wird,
wird 8 Fuß von C&sub2; (etwa 130,8 Hz) bei n=451 und m=4 abgegeben und 8 Fuß
von C&sub3; (ungefähr 261,6 Hz) wird bei n=451 und m=8 abgegeben. Es wurde
festgestellt, daß die Oktav-Bearbeitung der gleichen Note durch die konkrete
Änderung des Wertes m ausgeführt werden kann.
-
Da die 8 Fuß von C&sub1; (ungefähr 65,4 Hz) bei n=451 und m=2 abgegeben wird,
wird die 4 Fuß von C&sub1;, d.h., die zweite Harmonische (ungefähr 130,8 Hz) bei
n=451 und m=4 abgegeben, die 2 2/3 Fuß von C&sub1;, d.h., die dritte
Harmonische (ungefhr 196,2 Hz) wird bei n=451 und m=6 abgegeben und die 2 Fuß
von C&sub1;, d.h., die vierte Harmonische (ungefähr 261,6 Hz) wird bei n=451 und
m=8 abgegeben. Dementsprechend wurde herausgefunden, daß die Tonsignale
der erzeugten Harmonischen durch die Auswahl des Wertes von m gesteuert
werden können. Ein Beispiel der Werte von m wird in Tabelle 2 beschrieben.
Tabelle 2
Ein Beisdiel der Werte von m
Note
Frequenz
-
Wie aus der Gleichung (7) erkennbar ist, wird der Wert von n oder m verändert,
auch wenn fCK konstant ist, um zu ermöglichen, daß die Tonfrequenz frei
gesteuert wird.
Wenn ungefähr 65,4 Hz (der Klang von C&sub1;), welche bei n=451 (Wellen-ROM
von C) und m =2 erhalten werden, zur Grundwelle gemacht werden, wird eine
Welle von ungefähr 686,7 Hz, deren Frequenz das 10,5-fache der
Grundfrequenz ist, d.h., eine nicht ganzzahlige Harmonische, bei n =451 und m = 21
erhalten. Außerdem ungefähr 196,0 Hz bei n=301 (Wellen-ROM von G) und
m =4,, d.h., geringfügig unter der dritten Harmonischen, 22/3 Fuß, welche um
etwa zwei % niedriger ist.
-
Das Wellen-ROM jedes Tons von C, C#, D, ... B
wird gebildet wie in Fig. 3
gezeigt. Es wird angenommen, daß der Wert n ist, wie in Tabelle 1 gezeigt, und
die Adresse des Wellen-ROM 6 der C-Note ist 0 bis 450, der C#-Note ist 451 bis
876, der D-Note ist 877 bis 1 278, ... der B-Note ist 3779 bis 4017. Die
gesamte Adresse beträgt 4018, welche insgesamt von 0 bis 4017 geht. Die
Wellendaten der Sinuswelle werden in Form eines digitalen Wertes in das Wellen-ROM
geschrieben. Wenn der optionale Adreßwert von 0 bis 4017 an das Wellen-ROM
abgegeben wird, werden die in dem Wellen-ROM gespeicherten Wellendaten der
Sinuswelle als Digitalwerte gelesen.
-
Ein Verfahren zum Lesen der Wellendaten aus dem Wellen-ROM 6 wird
nachfolgend konkret beschrieben in Verbindung mit Fig. 4, die eine
Schaltungsanordnung zum Erläutern des Betriebs des Wellen-ROM-Adreßrechners 4 zeigt.
-
Wie in Fig. 4 gezeigt, ist ein k-Register 21 zum Speichern des Adreßwertes des
Wellen-ROM 6 vorgesehen, ein m-Register 22 zum Speichern der Anzahl m der
Sprünge, ein E-Register 23 zum Speichern des End-Adreßwertes, ein N-
Register zum Speichern des negativen Wertes des Divisors n, ein Addierer 25,
ein Komparator 26, ein Addierer 27 und ein UND-Gatter 28.
-
Als Beispiel wird ein Fall, in dem eine Wellenform von 8 Fuß von C&sub2;# (ungefähr
69,2 Hz) als Beispiel gelesen wird, beschrieben. Wie in dem vorherigen Fall wird
angenommen, daß fCK = 14749,802 Hz ist. Zu diesem Zeitpunkt ist es
erforderlich, daß das Wellen-ROM (n = 426) von C# mit zwei Sprüngen (m=2) gelesen
wird. Da die Wellendaten von der Adresse 451 bis 876 verlaufen, wie in Fig. 3
gezeigt, ist 451 als die Anfangsadresse in dem k-Register 21 gespeichert und
876 ist als die Endadresse in dem E-Register 23 gespeichert. Da der Divisor
n=426 und der Sprung m=2 ist, ist das 426 als ein negativer Wert des
Divisors in dem N-Register 24 gespeichert und 2 ist als der Sprung in dem m-
Register 22 gespeichert. Da fCK = 14749,802 Hz ist, entsteht 1/fCK =67,8 µs.
Wie in Fig. 5 gezeigt, werden ein Lesetakt &sub1; und ein Schreibtakt &sub2; für vier
Register 21 bis 24, beide mit 67,8 µs und zwei Phasen, angenommen. Nach der
Anwendung des Lesetaktes wird ein Wert von 451 am Ausgangsanschluß
des k-Registers 21 erhalten und an den Adreßanschluß des Wellen-ROM 6
angelegt, um die Wellendaten von C# bereitzustellen. Die 451 von dem
Ausgangsanschluß des k-Registers 21 und die 2 von dem m-Register 22 werden
durch den Volladdierer 25 addiert und der Wert von 453 wird an den
A-Anschluß des Komparators 26 und an den Volladdierer 27 abgegeben. Die
Endadresse
876 aus dem E-Register 23 wird an den B-Anschluß des Komparators
26 angelegt, um den Wert des A-Anschlusses mit dem Wert des B-Anschlusses
zu vergleichen. In diesem Fall wird jedoch kein Ausgangssignal an dem A > B-
Anschluß bereitgestellt und der Wert ist 0, da 876 größer als 453 ist. Als ein
Ergebnis wird das Ausgangssignal des UND-Gatters 28 unabhängig von dem
426-Wert des N-Registers 24 Null. Der Volladdierer 27 addiert einen von dem
Volladdierer 25 kommenden Wert 453 und eine von dem UND-Gatter 28
kommende 0 (dies führt zu keiner Addition) zum Ausgeben eines Wertes von
453 an den Eingangsanschluß des k-Registers 21. Wenn der Schreibtakt
erreicht ist, wird der Wert von 453 von dem Volladdierer 27 in das k-Register
geschrieben. Als Ergebnis wird der Wert des k-Registers von 451 mit 453
überschrieben und der Wert des m-Registers wird von 451 mit 453
überschrieben, welcher durch die Addition des Wertes 2 des m-Registers 22 erhalten wird.
-
Nach der wiederholten Anwendung des Lesetaktes &sub1; auf vier Register 21, 22,
23, 24 wird der Wert 453 von dem Ausgangsanschluß des k-Registers 21
erhalten und zu dem Adreßanschluß des Wellen-ROM 6 addiert, um die
Wellendaten des C# bereitzustellen. Gleichzeitig wird durch den Volladdierer 25, den
Komparator 26, das UND-Gatter 28 und den Volladdierer 27 455, welches durch
die Addition von 453 vom Ausgangsanschluß des k-Registers 21 mit 2 von dem
m-Register 22 erhalten wird, zu dem Eingangsanschluß des k-Registers 21
hinzugefügt und wird geschrieben, wenn der Schreibtakt &sub2; eintrifft.
-
Auf diese Weise steigt der Wert des k-Registers 21 nacheinander durch zwei
Sprünge in der Folge von 451, 453, 455, 457, 459... Unter Beibehaltung der
sequentiellen Zunahme werden die Wellenformdaten von zwei Adreß-Sprüngen
sequentiell von dem Wellen-ROM 6 erhalten. Die Adresse des Wellen-ROM 6
reicht jedoch von 451 bis 876 Hinter diesem Bereich resultieren die
Wellenformdaten von C in denjenigen ihrer benachbarten D-Note. Um dies zu
verhindern, vergleicht der Komparator 26 den Wert des Volladdierers 25 mit der
Endadresse 876 des E-Registers 23. Wenn der Wert von dem Volladdierer 25
876 oder mehr beträgt, wird der Ausgangsanschluß A > B des Komparators 26
1, um den Ausgang des UND-Gatters 28 mit dem Wert 426 aus dem N-
Register zu versorgen. Der Volladdierer 27 addiert den Wert des Volladdierers 25
zu dem Wert von 426 und von dem UND-Gatter 28, d.h., er subtrahiert 426,
so daß die Endadresse 876 in keinem Fall überschritten wird. Der Wert des k-
Registers 21 steigt von 451 in der Folge von 453, 455, 457, 459, ... Wenn
875 erreicht ist, wird der Ausgang des Volladdierers 25 877. Durch den
Vergleich
dieses Wertes mit 876 durch den Komparator 26 führt der Volladdierer 27
die Operation von 877-426 aus, um 451 in das k-Register 21 zu schreiben.
Dementsprechend sind, da der Wert des k-Registers 21 normal in der
Reihenfolge von 451, 453, 455, 457, ... 875, 451, 453, ..., wiederholt wird, nur die
Werte von 451 bis 876 verfügbar. Nur die Wellendaten der C #-Note des Wellen-
ROM 6 werden wiederholt gelesen. Wenn m=4 ist, wird die Folge von 451,
455, 459, 463, 467, ... 875, 453, 457, 461 ... wiederholt.
-
Da der Wert des k-Registers 21 in jeder Periode von 67,8 µs der zwei
Phasentakte &sub1;, &sub2; aktualisiert wird, werden die von dem Wellen-ROM 6 erhaltenen
Wellendaten alle 67,8 µs erhalten, wie in Fig. 6 gezeigt, so daß eine abgetastete
Sinuswelle mit dem Takt von fCK = 14749,802 Hz erhalten wird.
-
Wenn 8 Fuß der anderen Note wie der D&sub2;-Note gelesen wird, wird n=402 und
m =4 eingestellt. Da die Wellendaten der D-Note von der Adresse 877 des
Wellen-ROM 6 bis 1 278 reichen, wie in Fig. 3 gezeigt, wird 877 in das k-
Register 21 geschrieben und 1278 wird in das E-Register 23 geschrieben. Nach
Eintragen von 402 in das N-Register 24 und 4 in das m-Register 22 werden
die Wellenformdaten durch die gleiche Operation alle 67,8 µs automatisch aus
dem Wellen-ROM 6 gelesen.
-
In der oben beschriebenen Weise können die Wellendaten aus dem Wellen-ROM
6 durch einen wie in Fig. 4 gezeigten Weilen-ROM-Adreßrechner gelesen
werden. Dabei kann nur eine Welle zur Zeit gelesen werden. Im Fall einer
solchen Registertonquelle wird angenommen, daß die Anzahl der Schritte des
Registers zu 9 gemacht wird, d.h. 16 Fuß, 8 Fuß, 5 1/3 Fuß, 4 Fuß, 2 2/3 Fuß,
2 Fuß, 1 3/5 Fuß, 1 1/3 Fuß und 1 Fuß, und daß die Anzahl der Kanäle für
maximale, simultane Ausgaben zu 8 gemacht wird, und daß zweiundsiebzig (9
Schritte x 8 Kanäle) Wellen-ROM-Adreßrechner erforderlich sind.
-
Da jedoch die Taktfrequenz gemäß dem erfindungsgemäßen Verfahren festgelegt
ist, ist die Schaltung zur gemeinsamen Verwendung geeignet, wenn die
Zeitsteuerung der Hardware festgelegt ist. Insbesondere kann ein
Zeitmultiplexbetrieb ausgeführt werden. Fig. 7 zeigt einen Weilen-ROM-Adreßrechner 4, welcher
(maximal) zweiundsiebzig unabhängige Wellenformen durch den
Zeitmultiplexbetrieb lesen kann. Die Zeitsteuerung zum Lesen einer Welle wird alle 67,8 µs
ausgeführt, wie in Fig. 6 gezeigt, und die 67,8 µs werden in 72 Zeitschlitze
eingeteilt. Ein Schlitz beträgt daher etwa 0,942 µs. Die vollständige,
unabhängige
Wellenform-Leseoperation wird für jeden der Schlitze ausgeführt. Die minimal
erforderlichen Daten zum Lesen einer Welle erfordern den Adreßwert k zum
Zugreifen auf das Wellen-ROM 6, die Anzahl m der Sprünge, die Endadresse E
und den negativen Teil n des Divisors n. In Fig. 7 sind vier Lese/Schreib-
Speicher mit wahlfreiem Zugriff (nachfolgend als RAM bezeichnet) 31, 32, 33
und 34 mit 72 Adressen vorgesehen, welche k, m, E und n für 72 Schlitze
unabhängig speichern. Da RAMs mit hoher Speicherkapazität bei geringen
Kosten verfügbar sind, tragen sie nicht viel zu den gesamten Hardware-Kosten
bei.
-
Die Anfangswerte für diese RAMs werden durch eine Anfangsladeschnittstelle
35 von dem Mikrocomputer 3 geschrieben. Ein Volladdierer 25, ein Komparator
26, ein Volladdierer 27, ein UND-Gatter 28 und ein Wellen-ROM 6 können die
gleichen wie diejenigen in Fig. 4 sein. Diese Schaltungen können zum Ausführen
der Zeitmultiplexberechnung für 72 Schlitze gemeinsam vorhanden sein, um die
Vereinfachung der Hardware zu unterstützen. Auf vier RAMs wird gemeinsam
durch einen Schlitzzähler 36 zugegriffen, welcher einen Takt '&sub0; zählt. Die Takte
'&sub1; und '&sub2; zum Lesen und Speichern in diesen RAMs arbeiten ebenfalls
gemeinsam für vier RAMs. Die Zeitsteuerung von drei Takten dieser '&sub0;, '&sub1; und
'&sub2; ist jeweils 0,942 µs, wie in Fig. 8 gezeigt, und ist ein Dreiphasentakt mit
verschiedenen Phasen.
-
Wie die zweiundsiebzig Adressen der RAMs 31, 32, 33, 34 zugeordnet werden,
ist vollständig optional. Die Zuordnung kann z.B. wie in Tabelle 3 ausgeführt
werden. Diese Adreßwerte entsprechen den Schlitzwerten des Zeitmultiplex.
Tabelle 3
RAM-Zuordnung
RAM-Adr.
Adress-Werte
-
Es werden die Register von 8 Fuß und 4 Fuß in ihren gezogenen Positionen und
die drei Tasten von C&sub3;, E&sub3; und G&sub3; in ihren niedergedrückten Positionen
angenommen. Es wird angenommen, daß der Mikrocomputer 3 diese Daten
einliest, C&sub3; CH1, E&sub3; CH2 und G&sub3; CH3 zuordnet. Die Schreiboperation wird
verwirklicht durch eine Initialisierungsschnittstelle 35, bezogen auf die vier
RAMs 31, 32, 33 und 34. Wie aus Tabelle 3 erkennbar ist, erhalten die 8 Fuß
von dem C&sub3; eine RAM-Adresse 1, die 4 Fuß von dem C&sub3; bekommen eine RAM-
Adresse 3, die 8 Fuß von dem E&sub3; erhalten eine RAM-Adresse 10, die 4 Fuß von
dem E&sub3; erhalten eine RAM-Adresse 12, die 8 Fuß von dem G&sub3; erhalten eine
RAM-Adresse 19 und die 4 Fuß von dem G&sub3; erhalten eine RAM-Adresse 21.
Somit wird, wie aus Tabelle 2 und Fig. 3 erkennbar ist, 0 in das kRAM der RAM-
Adresse 1 geschrieben, 8 wird in das mRAM geschrieben, 450 wird in das
ERAM geschrieben, 451 wird in das NRAM geschrieben, 0 wird in das kRAM
der RAM-Adresse 3 geschrieben, 16 wird in das mRAM geschrieben, 450 wird
in das ERAM geschrieben und 451 wird in das NRAM geschrieben. Die
Anfangswerte von der Tabelle 2 und Fig. 4 werden auch in das kRAM, mRAM,
ERAM und NRAM der RAM-Adressen 10, 12, 19 und 21 geschrieben.
-
Wenn ein Takt '&sub0; in Fig. 7 erreicht, wird der Adreßzähler 36 erneuert, um
gleichzeitig die Adressen der vier RAMs 31, 32, 33 und 34 zu aktualisieren. Es
wird angenommen, daß die RAM-Adressen sich von 0 zu 1 verändert haben, und
daß k, m, E, n der RAM-Adresse 1 aus den entsprechenden RAMs gelesen
werden, wenn der Lesetakt '&sub1; ausgegeben wurde. Der Wert 0 des kRAM wird
an das Wellen-ROM 6 abgegeben, um die Wellendaten der 8 Fuß von C&sub3;
bereitzustellen. Der Wert 8 wird in das kRAM geschrieben, wenn der Schreibtakt
'&sub2; durch die gleiche Operation abgegeben wird, wie die bereits in Fig. 4
beschriebene Operation. Wenn der Takt von '&sub0; abgegeben wurde, zählt der
Adreßzähler 36 aufwärts, um die RAM-Adresse von 1 auf 2 zu ändern. Der
gleiche Ablauf wird auch bei der RAM-Adreße 2 verwirklicht. Es ist eingestellt,
daß die RAM-Adresse so gebildet ist, daß sie einen Umlauf ausführt, um nach
der Anwendung von 72 Takten auf '&sub0; wieder zu ihrem Ursprungswert
zurückzukehren und die Adresse wieder die Adresse 1 wird. Der Wert von 8 wird von
dem kRAM auf die ROM-Adresse angewendet, wenn der '&sub1;-Takt abgegeben
wurde und gleichzeitig wird der Wert 16 bei dem '&sub2;-Takt in das kRAM
geschrieben. Wie insbesondere nur bei der RAM-Adresse 1 erkennbar ist,
wiederholt '&sub0; die gleiche Operation wie die in Fig. 4 alle 72 eingetretenen Takte.
Auch bei der anderen RAM-Adresse wie der RAM-Adresse 10, welcher die 8 Fuß
von E&sub3; zugeordnet sind, führt '&sub0; die gleiche Operation wie die in Fig. 4 alle 72
eingetroffenen Takte aus. Da der Takt von '&sub0; 0,942 µs beträgt, sind 72 Takte
67,8 µs und bleiben die gleichen wie in Fig. 4.
-
Nunmehr wird die Anwendung im Zeitmultiplexbetrieb ausgeführt, wobei der
Addierer 25, der Komparator 26, der Volladdierer 27, das UND-Gatter 28 und
das Wellen-ROM 6 unverändert bleiben, durch Ersetzen des RAM mit 72
Adressen anstelle der vier Register 21, 22, 23 und 24 in Fig. 4. Für den
Zeitmultiplexbetrieb von 72 Daten ist es normalerweise erforderlich, einen Multiplexer
(Multiplex-Selektionseinrichtung) zum Umschalten der zweiundsiebzig Signale
vorzusehen, jedoch ist es in Fig. 7 nicht erforderlich, den Multiplexer
vorzusehen. Die Zeitmultiplexoperation wird automatisch ausgeführt. Eine arithmetische
Logikschaltung des Addierers 25, der Komparator 26, der Volladdierer 27 und
das UND-Gatter 28 führen die Zeitmultiplexoperation alle 0,942 Ps entsprechend
der Reihenfolge der RAM-Adressen aus. Hinsichtlich einer bestimmten RAM-
Adresse folgt, daß eine Operation alle 67,8 µs ausgeführt wird. Auch beim
Lesen der Wellendaten von dem ROM 6 wird das Zeitmultiplexlesen alle 0,942
µs entsprechend der Reihenfolge der RAM-Adressen ausgeführt. Mit Blick auf
eine bestimmte RAM-Adresse folgt, daß vorgegebene Wellendaten nacheinander
alle 67,8 µs gelesen werden. Der Zeitmultiplexbetrieb der 72 Schlitze wird
während 67,8 µs ausgeführt und die 72 Sinuswellen werden maximal gelesen.
Eine Tonwelle wird in einem Schlitz gelesen. Zusätzlich ist das Lesen jedes
Schlitzes vollständig unabhängig. Insbesondere wird berücksichtigt, daß die
Systemanordnung in Fig. 7 äquivalent zu zweiundsiebzig unabhängigen
Sinuswellenoszillatoren ist.
-
Nachfolgend wird die Hüllkurvenerzeugung beschrieben. Die Hüllkurve wird in
synchroner Beziehung zu der Wellenerzeugung erzeugt. Die (maximal)
zweiundsiebzig Hüllkurvensignale werden in Form des Zeitmultiplexbetriebes
bereitgestellt. Es existieren einige Erzeugungsverfahren für Hüllkurvensignale und eines
von diesen wird nachfolgend erläutert, obwohl dieses Erzeugungsverfahren nicht
festgelegt ist.
-
Als erstes wird nachfolgend das Hüllkurven-ROM 7 beschrieben.
-
Fig. 9 ist ein Beispiel, in welchem das Hüllkurven-ROM 7 aus einem
256-Adressen-ROM von 00000000(2) bis 11111111(2) gebildet ist. Die Gesamtheit ist
gleichförmig in acht Teile aufgeteilt. Die quantisierten ansteigenden und
abfallenden exponentiellen Hüllkurven, welche sich in der Amplitude unterscheiden,
sind sequentiell digital in jede der acht Abteilungen geschrieben. Die Bedingung
der jeweiligen ansteigenden Hüllkurve und der abfallenden Hüllkurve ist in der
binär gesehenen Adresse des ROM erkennbar. Insbesondere können, wie in Fig.
10 gezeigt, 3 Bits von dem signifikantesten Bit, d.h., D&sub7; bis D&sub5;, acht Werte von
000 bis 111 aufweisen. Der Wert 000 weist die kleinste Amplitude und der Wert
111 die größte Amplitude auf. Wenn das Bit D&sub4; 0 ist, ist die ansteigende
Hüllkurve angezeigt. Wenn das Bit D&sub4; 1 ist, ist die abfallende Hüllkurve
angezeigt. Wenn D&sub3; bis D&sub0; 0000 zeigen, bedeutet dies den Anfang der ansteigenden
Hüllkurve oder der abfallenden Hüllkurve. Wenn D&sub3; bis D&sub0; 1111 zeigen,
bedeutet dies das Ende der ansteigenden Hüllkurve oder der abfallenden Hüllkurve.
-
Die konkrete Anordnung des Hüllkurven-ROM-Adreßrechners 5 ist in Fig. 11
gezeigt. Der Rechner 5 erzeugt (maximal) zweiundsiebzig unabhängige
Hüllkurvendaten durch den Zeitmultiplexbetrieb. Der Rechner ist so ausgebildet, daß
er in synchroner Beziehung mit dem Wellen-ROM-Adreßrechner 4 arbeitet. Die
zum Lesen einer Hüllkurve minimal erforderlichen Daten erfordern einen
Adreßwert J zum Zugreifen auf das Hüllkurven-ROM, einen
Anschlaggeschwindigkeitswert A zum Bestimmen der Anschlaggeschwindigkeit der Hüllkurve, einen
Nachklinggeschwindigkeitswert D zum Bestimmen der
Nachklinggeschwindigkeit, einen Anhalteadreßwert S zum Bestimmen des Anhaltepegels, einen
Auslösegeschwindigkeitswert R zum Bestimmen der Auslösegeschwindigkeit
und einen Zustandscode, der zeigt, in welchem von Anschlagen, Nachklingen,
Anhalten, Auslösen und Ausklingen die Hüllkurve positioniert ist. Sie sind für die
72 Schlitze, bezogen auf 6 RAMs 41, 42, 43, 44, 45 und 46, mit einer Adresse
gespeichert. Das Schreiben dieser Anfangswerte in das RAM wird von dem
Mikrocomputer 3 durch die Anfangsladeschnittstelle 35 (welche die gleiche wie
in Fig. 7 ist) ausgeführt. Der Schlitzzähler 36 wird gemeinsam mit dem in Fig. 7
verwendet. Die vier RAMs 21, 22, 23 und 24 in Fig. 7 erhalten vollständig
gleiche Adressen wie die sechs RAMs 41, 42, 43, 44, 45 und 46 in Fig. 11, so
daß der Wellen-ROM-Adreßrechner 4 und der Hüllkurven-ROM-Adreßrechner 5
so wirken, daß sie die synchrone Relation mit der gleichen Zeitsteuerung
beibehalten. In den Fig. sind Volladdierer allgemein jeweils mit 47,49 bezeichnet,
ein Komparator ist allgemein mit 48 bezeichnet und ein UND-Gatter ist allgemein
mit 50 bezeichnet.
-
Entsprechende Teiler 62, 63, 64, 65, 66, 67, 68 und 69 teilen die Impulse von
67,8 µs von 1/8 bis 1/2048, um Impulse von 539,2 µs bis 138,04 ms zu
erzeugen. Einer dieser Teilimpulse von diesen Tellern wird selektiv durch einen
Multiplexer 51 geschaltet. Register 71, 72, 73, 74 und 75 speichern
Vergleichsdaten zum selektiven Umschalten dieser Daten durch einen Multiplexer 52.
Register 81, 82, 83, 84 und 85 sind so ausgebildet, daß sie die Daten
vorübergehend zurückhalten, die durch einen Multiplexer 53 selektiv umzuschalten
sind. Die Volladdierer 47, 49, der Komparator 48, das UND-Gatter 50, die
Multiplexer 51, 52, 53 können für 72 Schlitze gemeinsam vorgesehen sein und
verwenden das Zeitmultiplex. Der Lesetakt '&sub1; und der Schreibtakt '&sub2; sind die
gleichen wie in Fig. 7. Deren Zeitsteuerung ist in Fig. 8 gezeigt.
-
Die Zuordnung jedes Schlitzes zu den sechs RAMs 42 bis 46 muß die gleiche
sein wie diejenige des Weilen-ROM-Adreßrechners in Figur 7. Insbesondere die
RAM-Adresse 0 muß die 16 Fuß von CH1 werden, die RAM-Adresse 1 muß die
8 Fuß von CH1 werden..... Die RAM-Adresse 72 muß 1 Fuß von CH8 werden.
-
Es wird angenommen, daß die Tasten von C&sub3;, E&sub3;, G&sub3; wie in dem vorstehend
beschriebenen Fall gedrückt werden, das Register der 8 Fuß in seiner vollständig
gezogenen Position ist und das Register der 4' in seiner geringfügig gezogenen
Position ist. Als Ergebnis wird angenommen, daß der Mikrocomputer 3 C&sub3; CH1
zuordnet, E&sub3; CH2 und G&sub3; CH3 zuordnet und der Mikrocomputer 3 die für die
sechs RAMs erforderlichen Daten durch die Anfangsladeschnittstelle 35 schreibt.
Die 8 Fuß Hüllkurvendaten für C&sub3; werden in die RAM-Adresse 1 geschrieben
und die 4 Fuß-Hüllkurvendaten für C&sub3; werden in die RAM-Adresse 3
geschrieben. Ebenso werden die 8 Fuß-Hüllkurvendaten für E&sub3; in die RAM-Adresse 10
geschrieben. Die 4 Fuß-Hüllkurvendaten für E&sub3; werden in die RAM-Adresse 12
geschrieben. Die 8 Fuß-Hüllkurvendaten für G&sub3; werden in die RAM-Adresse 19
geschrieben. Die 4 Fuß-Hüllkurvendaten für G&sub3; werden in die RAM-Adresse 21
geschrieben.
-
Da das 8 Fuß-Register vollständig gezogen ist, wird 11100000 (2) (Hüll kurve
maximaler Lautstärke) in die J-RAMs der RAM-Adressen 1, 10 und 19
geschrieben. Da ebenfalls das 4 Fuß-Register geringfügig gezogen ist, wird
00000000 (2) (Hüllkurve minimaler Lautstärke) in die J-RAMs der
RAM-Adressen 3, 12 und 21 geschrieben. Außerdem wird jeweils 0 in all die Zustandcode-
RAMs der RAM-Adressen 1, 3, 10, 12, 19 und 21 geschrieben. Die
Zustandscodes sind wie in Tabelle 4 gezeigt. Gleichzeitig werden die Anschlagdaten, die
Nachklingdaten und die Anhaltedaten jeweils in das A-RAM, das D-RAM, das S-
RAM und das R-RAM geschrieben.
Tabelle 4
Zustandscode
Bedingung
Anschlag
Nachklingen
Anhalten
Auslösen
Ausklingen
-
Ein Verfahren zum Erzeugen der ADSR-Hüllkurve wird nachfolgend beschrieben.
In dem Fall der RAM-Adresse 1 existiert die Anschlagbedingung, da der
Anfangswert 0 in das Zustandscode-RAM geschrieben ist. Der Multiplexer 53
selektiert den Wert des A-RAM der RAM-Adresse 1 durch das Anschlagregister
81. Wenn der Wert von 2 dort hineingeschrieben wird, wird er durch den
Multiplexer 53 an den Multiplexer 51 gegeben. Wie aus Figur 5 erkennbar ist,
wird der Impuls von 2,156 ms zu dem UND-Gatter 54 von dem 1/32-Teiler 68
geliefert. Da das Ausgangssignal des UND-Gatters 54 alle 2,1 56 ms 1 wird und
das Ausgangssignal anderenfalls 0 ist, addiert der Volladdierer 47 den Wert des
J-RAM der RAM-Adresse 1 jeweils mit 1 alle 2,156 ms zum Erhöhen auf
11100001 (2), 11100010(2), 11100011(2)...., 11101111(2) von 11100000
(2), um dadurch auf den ansteigenden Teil der Hüllkurve mit der maximalen
Amplitude in Figur 9 in dem Hüllkurven-ROM 7 zuzugreifen. In diesem Fall wird,
da die Anzahl der Adressen des ansteigenden Teils 1 6 ist, die Anstiegszeit
2,156 ms x 16 = 34,5 ms.
Tabelle 5
ARD-Daten
Frequenzteilerverhältnis
Frequenzteilerimpuls
-
Andererseits wird der Wert 0 von dem Zustandscode-ROM auch zu dem
Multiplexer 52 geliefert, um das Register 71 zu selektieren. Die fünf Bits von dem am
wenigsten signifikanten Bit der Adresse des Hüllkurven-ROM 7, d.h. die
Adreßdaten 01111(2) von D&sub4; bis D&sub0;, wie in Figur 10 gezeigt, werden in dem Register
zurückgehalten. Wie aus Figur 9 erkennbar ist, zeigt der Wert 5 Bits von am
wenigsten signifikanten Bit der letzten Adresse der ansteigenden Hüllkurve. Der
Wert der 01111(2) von dem Register 71 wird durch den Multiplexer 52 an den
B-Anschluß des Komparators 48 abgegeben. Die 5 Bits von dem am wenigsten
signifikanten Bit des Volladdieres 47 werden an den A-Anschluß abgegeben. Der
Komparator 48 prüft, ob die ansteigende Hüllkurve beendet ist oder nicht. Wenn
der Wert des A-Anschlusses den Wert des B-Anschlusses überschritten hat, wird
der Komparator A> B 1, so daß das Ausgangssignal des UND-Gatters 50 1 wird.
Somit addiert der Volladdierer 49 1 zu dem Wert des Zustandscode-RAM der
RAM-Adresse 1 und der Wert ändert sich von 0 auf 1. Wie aus Tabelle 4
erkennbar ist, bezeichnet 1 den Nachklingzustand. Der Multiplexer 53 selektiert
den Wert des D-RAM der RAM-Adresse 1 durch das Register 82. Wenn der Wert
5 ist, wird der Wert 5 zu dem Multiplexer 51 addiert. Wie aus Tabelle 5
erkennbar ist, selektiert der Multiplexer 51 den Frequenzteiler 65 mit 1/256, um alle
17,25 ms einen Impuls an das UND-Gatter 54 abzugeben. Somit nimmt der Wert
des J-RAM alle 17,25 ms um 1 zu und verändert sich in der Folge von
11110000(2) zu 11110001 (2), 11110010 (2), 11110011(2) Die
abfallende Hüllkurve des Hüllkurven-RAM in Figur 9 wird angesprochen.
Andererseits wird der Wert 1 von dem Zustandscode-RAM zu dem Multiplexer 52
geliefert und der Wert des S-RAM der RAM-Adresse 1 wird zu dem B-Anschluß
des Komparators 48 durch das Register 72 geliefert. Der Wert des S-RAM kann
Werte von 10000 (2) bis 11111 (2) in den fünf Bits von dem am wenigsten
signifikanten Bit der ROM-Adresse des Hüllkurven-ROM 7 aufweisen. Wie in
Figur 9 erkennbar ist, ist der Wert der Adreßwert der abfallenden Hüllkurve.
-
Wenn z.B. der Wert des S-RAM 10111 (2) ist, wird der Wert zu dem B-Anschluß
des Komparators 48 hinzugefügt. Der Wert der 5 Bits vom am wenigsten
signifikante Bit des Volladdieres 47 wird an den A-Anschluß abgegeben. Der
Wert des A-Anschlusses wird verglichen mit den 10111 (2) des B-Anschlusses.
Wenn A B überschreitet, wird 1 an dem A> B-Anschluß bereitgestellt und zu
dem UND-Gatter 50 geliefert. Der Volladdierer 49 erhöht den Wert des
Zustandscode-RAM um 1 und der Wert ändert sich von 1 auf 2. Wie aus Tabelle 4
erkennbar ist, bedeutet dies, daß die Bedingung vom Nachklingen zum Anhalten
verändert ist. Bei der Nachklingbedingung weist das J-RAM 8 Adressen von
11110000 (2) bis 11110111 (2) auf und somit wird die Zeit 17,25 ms x
8 -138 ms.
-
Während der Anhalte-Bedingung gibt der Wert 2 aus dem Zustandscode-RAM
dem Multiplexer 51 einen Wert von 9, welcher in dem Register 63 durch den
Multiplexer 53 zurückgehalten wird. Wie aus Tabelle 5 erkennbar ist, ist der
Frequenzteiler 61 mit einem Wert von 9 selektiert. Es werden jedoch keine
Impulse von dem Frequenzteiler 61 bereitgestellt und somit ist der Wert
normalerweise 0. Dementsprechend ist das Ausgangssignal des UND-Gatters 54 stets
0 und der Wert des J-RAM bleibt bei 11110111 (2). Da die ROM-Adresse
11110111 (2) des Hüllkurven-ROM 7 dauernd angesprochen bleibt, bleibt die
Hüllkurve auf einem konstanten Pegel, welcher sich nicht mit der Zeit ändert, um
eine sogenannten Anhaltebedingung zu verwirklichen. Während dieser
Anhaltebedingung selektiert der Multiplexer 52 das Register 73 mit einem Wert von
2 aus dem Zustandscode-RAM 42. In dem Register sind jedoch die 11111 (2),
welche ein Wert der 5 Bits von dem am wenigsten signifikanten Bit in dem
Hüllkurven-ROM 7 sind, zurückgehalten. Wie in Figur 9 erkennbar ist, zeigt der
Wert die letzte Adresse der abfallenden Hüllkurve. Obwohl der Wert zu dem B-
Anschluß des Komparators 48 addiert wird, bleibt der Wert des J-RAM 41
11110111 (2) und steigt nicht an. 1 tritt an dem A> B-Anschluß des
Komparators 48 nicht auf. Das Ausgangssignal des UND-Gatters 50 bleibt 0. Als
Ergebnis nimmt der Wert des Zustandscode-RAM 42 nicht zu und bleibt 2.
-
Da die RAM-Adresse 1 die 8 Fuß der C&sub3; zugeordnet hat, bleibt die
Anhaltebedingung solange bestehen, wie die Taste von C&sub3; in ihrem niedergedrückten Zustand
ist.
-
Wenn die Taste von C&sub3; freigegeben wird, liest der Mikrocomputer 3 die
Tastaturdaten ein, um den Wert von 3 in das Zustandscode-RAM 42 der RAM-
Adresse 1 und der RAM-Adresse 3 (da die 4 Fuß von C&sub3; auch bereits zu der
RAM-Adresse zugeordnet sind) durch die Anfangsladeschnittstelle 35
einzutragen. Wie aus Tabelle 4 erkennbar ist, wird die Einrichtung ausgelöst. Der Wert 3
wird auf dem Multiplexer 53 angewendet. Der Multiplexer 53 selektiert den Wert
des R-RAM 46 durch das Register 84, um ihn an den Multiplexer 51 abzugeben.
Wenn der Wert 8 in das R-RAM 46 geschrieben wird, wird der 1/2048
Frequenzteiler 63 selektiert, wie aus Tabelle 5 erkennbar ist, und der Impuls wird alle
138,0 ms in das UND-Gatter 54 eingespeist. Dementsprechend nimmt der Wert
des J-RAM 41 wiederum alle 1 38.0 ms durch den Volladdierer 47 zu und
verändert sich von 11110111 (2) zu 11111000 (2), 11111001 (2), 11111010
(2),...., um aufeinanderfolgend auf die abfallende Hüllkurve des Hüllkurven-ROM
7 zuzugreifen. Andererseits wird der Wert 3 von dem Zustandcode-RAM 42
auch zu dem Multiplexer 52 abgegeben, um das Register 74 zu selektieren. Die
11111 (2) der 5 Bits von dem am wenigsten signifikanten Bit der ROM-Adresse
des Hüllkurven-ROM 7 werden auch in dem Register gespeichert. Dies ist die
letzte Adresse der abfallenden Hüllkurve. Dieser Wert wird durch den Multiplexer
52 an den B-Anschluß des Komparators 58 abgegeben und ständig mit dem
Wert des A-Anschlusses von dem Volladdierer 47 verglichen. Wenn der Wert
von A den Wert von B überschreitet und der Wert des J-RAM 41 11111111 (2)
wird und zu der letzten abfallenden Adresse des Hüllkurven-ROM 7 gelangt, wird
der A> B-Anschluß des Komparators 48 1. Der Volladdierer 49 addiert 1 zu dem
Wert des Zustandscode-RAM 42 und der Wert ändert sich von 3 auf 4. Wie aus
Tabelle 4 erkennbar ist, bedeutet der Wert 4, daß die Hüllkurve beendet ist. Da
der Wert des J-RAM 41 8 Adressen von 11110111 (2) zu 11111111 (2) in der
Auslöseperiode aufweist, werden 138,0 ms x 8 = 1,104 s eingerichtet.
-
Der Wert von 4 von dem Zustandscode-RAM 42 wird an den Multiplexer 53
abgebeben und der Wert 9 wird von dem Register 85 selektiert. Somit wird der
Wert durch den Multiplexer 53 an den Multiplexer 51 abgebeben, um den
Frequenzteiler 61 zu selektieren, wie aus Tabelle 5 erkennbar ist. Wie vorstehend
beschrieben wird, da keine Impulse abgegeben werden und 0 normalerweise
erhalten bleibt, nur 0 durch den Multiplexer 51 an das UND-Gatter 54
abgegeben. Als Ergebnis bleibt der Wert des J-RAM 41 11111111 (2). Andererseits
wird der Wert 4 von dem Zustandscode-RAM 42 auch in dem Multiplexer 52
eingespeist. Als Ergebnis wird der Wert 11111 (2) der 5 Bits vom am wenigsten
signifikanten Bit des Hüllkurven-ROM 7 an den B-Anschluß des Komparators 48
durch den Multiplexer 52 von dem Register 75 abgegeben. Da der Wert des J-
ROM 41 unverändert bei 11111111 (2) bleibt, wird der 5 Bit Wert vom am
wenigsten signifikanten Bit des Volladdieres 47 11111 (2), so daß der A-
Anschluß des Komparators 49 nicht den Wert des B-Anschlusses überschreitet.
Dementsprechend bleibt, da der A> B-Anschluß des Komparators 49 ständig
wird und das Ausgangssignal des UND-Gatters 50 bleibt 0, das Zustandscode-
RAM 42 bleibt 4. Als Ergebnis wird 11111111 (2) dauerhaft in dem J-RAM
zurückgehalten und 4 bleibt in dem Zustandscode-RAM 42, solange nicht eine
neue Taste von dem Mikrocomputer 3 der RAM-Adresse 1 zugeordnet wird. Die
letzten Hüllkurvendaten der abfallenden Hüllkurve des Hüllkurven-ROM 7, d.h.,
ein Zustand, in welcher die Hüllkurve abgefallen ist (Zustand ohne Klang) bleibt
bestehen.
-
Die durch die obige Beschreibung erhaltene ADSR-Hüllkurve ist in Figur 12
gezeigt. Es ist aus der obigen Beschreibung leicht entnehmbar, daß die
Anschlagzeit, die Nachklingzeit, der Anhaltepegel und die Auslösezeit frei
veränderbar sind, wenn der von dem Mikrocomputer 3 in das A-RAM 43, das D-RAM 44,
das S-RAM 45 und das R-RAM 46 zu schreibende Anfangswert verändert wird.
Wie aus Tabelle 5 erkennbar ist, werden die Anschlagzeit, die Nachklingzeit und
die Auslösezeit kürzer, wenn die in das A-RAM 43, das D-RAM 44 und das R-
RAM 46 zu schreibenden Anfangswerte kleiner gemacht werden und werden
länger, wenn die Anfangswerte größer gemacht werden. Der Anhaltepegel wird
ebenfalls höher, wenn der in das S-RAM zu schreibende Anfangswert sich
10000 (2) annähert, wie in Figur 9 erkennbar ist. Wenn er sich 11111 (2)
annähert, wird der Haltepegel kleiner. Da die ADSR-Hüllkurve frei eingestellt
werden kann, wie vorstehend beschrieben, können die meisten Simulationen der
existierenden Musikinstrumente verwirklicht werden.
-
Obwohl der Fall, in dem nur die RAM-Adresse 1 in der Konstruktion in Figur 11
vorstehend beschrieben wurde, können die gleichen Feststellungen für alle 72
Adressen von der Adresse 0 bis 71 getroffen werden. Da es leicht aus der
Beschreibung zu Figur 7 erkennbar ist, daß die Zeit von 67,8 µs in 72 Schlitze
geteilt wird und die Zeitmultiplexoperation mit der Zeit eines Schlitzes von 0,942
µs ausgeführt wird, wird auf diese Beschreibung verzichtet.
-
In Figur 1 wird die ROM-Adresse für das Wellen-ROM 6 durch den
Zeitmultiplexbetrieb der 72 Schlitze berechnet und von dem Wellen-ROM-Adreßrechner 4
berechnet wird, so daß die Wellendaten in Form des Zeitmultiplex der 72
Schlitze von dem Welten-ROM 6 erhalten werden. Da die ROM-Adresse für das
Hüllkurven-ROM 7 in der Form des Zeitmultiplex der 72 Schlitze auch von dem
Hüllkurven-ROM-Adreßrechner 5 mit einer damit synchronisierten Zeitsteuerung
erhalten wird, werden die Hüllkurvendaten von dem Hüllkurven-ROM 7 in der
Form des Zeitmultiplex der 72 Schlitze erhalten. Da diese Wellendaten mit den
Hüllkurvendaten durch einen Multiplizierer 8 multipliziert werden, werden die
Wellendaten mit der diesen zugeordneten Hüllkurve in Form des Zeitmultiplex der
72 Schlitze erhalten und das Ausgangssignal wird ebenfalls als Tonsignale von
dem Lautsprecher 12 durch einen D/A-Wandler 9, ein Taktsperrfilter 10 und
einen Leistungsverstärker 11 bereitgestellt.
-
In der obigen Beschreibung sind ansteigende und abfallende Hüllkurvendaten der
unterschiedlichen Amplituden in dem Hüllkurven-ROM 7 gespeichert, wie in Figur
9 gezeigt. Eine Ausführungsform, bei welcher die Hüllkurvendaten der Amplitude
eines Typs angepaßt sind und die ROM-Größe kleiner gemacht ist, wird
nachfolgend beschrieben.
-
Figur 13 zeigt dieses gesamte System. Der Unterschied zu der Anordnung in
Figur 1 liegt in der Hinzufligung der Amplitudendatenspeichereinrichtung 13 und
des Multiplizierers 14. Da die Amplitudendaten durch Zeitmultiplex von der
Amplitudendatenspeichereinrichtung 1 3 erhalten werden, müssen nur die
Hüllkurvendaten einer konstanten Amplitude in dem Hüllkurven-ROM 7
gespeichert werden. Wie in Figur 14 gezeigt, muß das RAM 47 mit 72 Adressen, in
denen die Amplitudendaten W gespeichert werden, als aktuelle Konstruktion der
Amplitudendatenspeichereinrichtung vorgesehen werden. Der Schlitzzähler 36,
der Mikrocomputer 3 und die Anfangsladeschnittstelle 35 können die gleiche wie
die bereits in Figur 7 und Figur 11 gezeigten sein.
-
Wenn die Amplitudendaten durch die Anfangsladeschnittstelle 35 von dem
Mikrocomputer, bezogen auf das Wellendaten-RAM 47, in jede Adresse
geschrieben sind, spricht der Adreßzähler das RAM 47 bei jedem Zählen von
sequentiell an, um die Amplitudendaten in der Form des Zeitmultiplex an dem
Ausgang bereitzustellen.
-
Das Wellen-ROM 6 kann durch Hinzufügen einiger Hardware ebenfalls in den
Abmessungen kleiner gemacht werden.
-
Ein Beispiel der Anordnung des Wellen-ROM 6 wird in Figur 1 5 gezeigt. Wie in
Figur 16 gezeigt, sind in dem Wellen-ROM 6 die Wellendaten einer halben
Periode der Sinuswelle gespeichert. Ein Bit des Vorzeichen-ROM 48 ist dem K-
RAM 31 benachbart vorgesehen und der Wert von n/2 ist in dem ROM 34
gespeichert. Da in dem Wellen-ROM 6 eine halbe Welle in einer Weise, wie
vorstehend beschrieben, gespeichert ist, kann die ROM-Größe auf eine Hälfte
verringert werden. Die Größe des Wellen-ROM kann notwendigerweise kleiner
gemacht werden infolge der Hinzufügung einiger Hardware, auch bei einer
Viertelwelle.
-
Einzelheiten der Mehrkanalkonstruktion in Figur 1 sind in Figur 1 7 erkennbar. In
Figur 17 sind die Wandler 91, 92, 93, die Taktsperrfilter 101, 102, 103, die
Leistungsverstärker 111, 112, 113 und die Lautsprecher 121, 122, 123 in drei
Kanälen angeordnet. Die Kanaldaten von der Kanaldateneinrichtung 14
bestimmen, welcher Kanal Töne erzeugt. Der Demultiplexer 1 5 verteilt die
Tonsignaldaten, welche von dem Multiplizierer 8 erhalten werden und hat bereits die
Hüllkurve für einen vorgegebenen Kanal durch Kanaldaten erhalten.
Dementsprechend schreibt der Mikrocomputer 3 in die Kanaldateneinrichtung 14 einen
Kanal, der jedem der 72 Schlitze zuzuordnen ist.
-
Die Kanaldateneinrichtung 14 weist die gleiche Anordnung auf wie die
Amplitudendateneinrichtung in Figur 14.
-
Einige Vorteile dieser Ausführungsform werden nachfolgend dargelegt.
-
Bei dem Zeitmultiplex mit 72 Schlitzen kann den 72 Schlitzen alles zugeordnet
werden. In der Ausführungsform wird die Zuordnung ausgeführt, wie in Tabelle
3 gezeigt, unter Berücksichtigung der Verwendung als Tonquelle für die
Registeranwendung, die Zuordnung ist jedoch nicht beschränkt. Extrem ausgedrückt
können die 72 Schlitze bis zur zweiundsiebzigsten Harmonischen von der
Grundwelle bei der Verwendung als monotone Tonquelle zugeordnet werden. Da
außerdem die Anzahl der maximalen gleichzeitigen Ausgaben berücksichtigt
wird, können bei der Verwendung als beigefügter Akkord 18 Schlitze pro Ton
von der Grundwelle bis zur 18. Harmonischen zugeordnet werden. Auf diese
Weise ist eine Flexibilität, bezogen auf jede Tonquelle, möglich.
-
Zweitens können, da Sinuswellen als Wellendaten gelesen werden, reine und
sanfte Töne als flötenartige Wellen vorgesehen werden, welche früher durch
Filter aus rechteckigen Wellen oder sägezahnförmigen Wellen bereitgestellt
wurden.
-
Drittens erfordert das vorliegende System nicht ein Klangfarbenfilter für alles,
wie bei konventionellen Systemen, da die Klangfarbe durch Ändern der
Zusammensetzung der Sinuswelle angepaßt wird. Die Verwendung von
Klangfarbenfiltern verkompliziert nicht nur das System, sondern bewirkt auch
unerwünschte Ergebnisse wie S/N-Verringerung, Verzerrungsinduktion, etc. Im Fall
des vorliegenden Systems erlaubt die D/A Wandlung den direkten Anschluß an
den Leistungsverstärker ohne zusätzliche Bearbeitung.
-
Viertens ist das System, in welchem keine Wellenberechnung ausgeführt wird,
eines der erfindungsgemäßen Kennzeichen. Es wird angenommen, daß die
Harmonischen von der Grundwelle bis zur zweiundsiebzigsten den 72 Schlitzen
zugeordnet werden. Gemäß den konventionellen Verfahren wird bei der
Anwendung des Spektrums von der Grundwelle bis zur zweiundsiebzigsten
Harmonischen als die Klangfarbendaten die Sinuswellenamplitude jeder der 72
Harmonischen mit dem entsprechenden Spektralbetrag in Übereinstimmung mit dem
Spektrum multipliziert. Sie werden zusammengefügt, um komplexe Wellen
bereitzustellen, welche in einen Wellenspeicher geschrieben werden. Danach
wird das Wellenlesen zur Mulitplikation mit den Hüllkurvendaten ausgeführt und
eine sogenannten umgekehrte Fouriertransformation wird vorgesehen.
Andererseits werden gemäß dem vorliegenden System alle 72 Sinuswellen direkt mit der
gleichen Amplitude ohne die Wellenberechnung gelesen. Eine vorgegebene
Klangfarbe wird bereitgestellt als Multiplikationsergebnisse mit den 72
Hüllkurvendaten. Die bei der Wellenberechnung auftretenden Probleme sind wie
anfangs beschrieben. Bei dem erfindungsgemäßen System sind alle diese
Probleme gelöst.
-
Fünftens ist es ein Kennzeichen, daß die Klangfarbe sofort verändert werden
kann. Die 72 Schlitze können die Frequenz der Welle unabhängig steuern und die
Hüllkurve des ADSR unabhängig einstellen. Da die sofortige
Klangfarbenveränderung eine sofortige Spektrumsvariation bedeutet, wird angenommen, daß
die zweiundsiebzig Harmonischen von der Grundwelle den 72 Schlitzen
zugeordnet sind und daß die Anschlagzeit bei Harmonischen niedriger Ordnung
beschleunigt ist und die Anschlagzeit bei Harmonischen höherer Ordnung
ausreichend verlangsamt ist, so daß sanfte Töne, welche weniger Harmonische
aufweisen, am Beginn des Niederdrückens der Taste anfangen und Töne mit
mehr Harmonischen bereitgestellt werden, wenn Zeit verstreicht. Es wird
weiterhin angenommen, daß die längere Nachklingzeit mit Harmonischen
niedrigerer Ordnung und kürzere Nachklingzeit mit Harmonischen höherer
Ordnung und schärfere Klänge, welche erzeugt werden, wenn ein Objekt
angeschlagen wurde, am Beginn nach Niederdrücken der Taste ausgelöst
werden und die Harmonischen sofort nach dem scharfen Klang abnehmen, um
dadurch einen sanften Klang zurückzulassen. In diesem Moment können Klänge
wie Piano simuliert werden. Die ADSR jeder harmonischen Hüllkurve wird
verbessert, um frei von elektrischen Charakteristika wie kontinuierlich fester
Klangfarbe zu werden, welche häufig in konventionellen elektronischen
Musikinstrumenten gefunden wird.
Da sechstens die Takte '&sub0;, '&sub1; '&sub2; bei 0,942 µs konstant gemacht werden,
welche für keine Schaltung verändert werden und für jede Note ohne Änderung
festgelegt sind, ist die Systemanordnung äußerst einfach. Im Fall der
Ausführungsform erfordert nur die RAM-Adresse 72 unabhängige Wellen oder
Hüllkurven, obwohl die 72 Wellen oder Hüllkurven unabhängig gelesen werden.
Nicht nur der für die Berechnung erforderliche Volladdierer, Komparator, sondern
auch das Wellen-ROM, das Hüllkurven-ROM, der Multiplizierer, der D/A-Wandler,
etc sind nicht 72-fach vorgesehen. Wenn sie einzeln vorgesehen sind, kann die
Anwendung ausgeführt werden durch das Zeitmultiplex von 72 Schlitzteilen. Bei
dem Zeitmultiplex von 72 Schlitzen werden normalerweise 72 Daten
bereitgestellt und aufeinanderfolgend durch den Multiplexer umgeschaltet. Trotzdem
wird erfindungsgemäß das RAM mit 72 Adressen verwendet. Somit kann das
Zeitmultiplex frei verwirklicht werden durch die Rotation der Adressen, ohne die
Verwendung des Multiplexers. Dieser Punkt ist ein vorteilhafter Punkt in der
Systemanordnung der vorliegenden Erfindung.
-
Siebtens ist der Hauptsystemteil der vorliegenden Erfindung vollständig digital.
Digitale Schaltungen sind angesichts von Rauschgrenzen besser als
vergleichbare analoge Schaltungen. Insbesondere, da alle Schaltungen 1 und 0 mit der
gesamten Quellenspannung wiederholen, können alle Signale in Volt-Einheiten
gehandhabt werden. Andererseits erfordern analoge Schaltungen die
Handhabung der Signale im Millivolt- oder Mikrovolt-Einheiten. Somit ist eine besondere
Vorsicht bei der Gestaltung angesichts von S/N, Verzerrung oder
Masseverdrahtung erforderlich. Zusätzlich müssen bei analogen Schaltungen Probleme wie
Drift, Offset oder ähnliches normalerweise während der Gestaltung
berücksichtigt werden. Bei digitalen Schaltungen jedoch bleibt 1 streng 1 und 0 bleibt
streng 0, solange nicht unvermeidliche Dinge geschehen. Da 1 + 1 = 2 und
0x0=0 ist, ist 1 + 1=2,001 nicht korrekt und 0x0=0,001 ist nicht korrekt. Bei
digitalen Schaltungen sind Probleme wie Drift und Offset bei normaler
Gestaltung irrelevant.
-
Achtens werden durch Bauteilschwankungen ausgelöste Fluktuationen oder
Einstellerfordernisse beseitigt. Beispielsweise erfordert die Konstruktion des
gleichen Instruments wie in der oben beschriebenen Ausführungsform unter
Verwendung analoger Schaltungen 72 Sinuswellenoszillatoren, 72
Hüllkurvenerzeugungseinrichtungen und 72 analoge Multiplizierer. Hinsichtlich des
Oszillators erfährt die Oszillationsamplitude Schwankungen durch den Wert des
Transistors oder des verwendeten CR. Bei Bedarf kann die Einstellung
erforderlich sein. Die gleichen Dinge können auch hinsichtlich der Veränderungen der 72
Hüllkurvenerzeugungseinrichtungen und der analogen Multiplizierer festgestellt
werden. Andererseits werden bei dem erfindungsgemäßen Digitalsystem keine
Schwankungen zwischen den 72 Schlitzen verursacht, so lange der Betrieb
normal abläuft, auch in den Wellendaten und den Hüllkurvendaten.
Dementsprechend können konventionelle Einstelloperationen vermieden werden.
-
Neuntens ergeben sich Vorteile beim Montieren des elektronischen
Musikinstrumentes. Insbesondere sind Hauptteile der vorliegenden Erfindung in digitaler
Anordnung leichter in großem Maßstab zu integrieren und können unter
Verwendung von etwa 10.000 Transistoren, mit Ausnahme der Mikrocomputer,
verwirklicht werden. Verfügbare digitale LSI können in einem Baustein 64k Bit
Masken-ROM und 16k Bit statisches RAM beinhalten. Die Hauptteile des
elektronischen Musikinstrumentes, auch wenn der Mikrocomputer enthalten ist,
können auf einer gedruckten Schaltungsplatte angeordnet werden; dieses
resultiert in einem bemerkenswerten Fortschritt im Vergleich mit der
konventionellen
Konstruktion unter Verwendung von mehr als 10 oder vielfachen von 10
gedruckten Schaltungsplatten.
-
Zum besseren Verständnis der obigen Beschreibung werden bestimmte
Zahlwerte verwendet. Die vorliegende Erfindung ist jedoch nicht auf diese Zahlwerte
beschränkt. Das Wellen-ROM kann ein RAM ohne jede Beschränkung auf das ROM
sein.
-
Wie vorstehend beschrieben, verwirklicht die vorstehende Erfindung ein
Tonquellensystem für ein vorzügliches elektronisches Musikinstrument, welches einer
LSI-Anwendung zugänglich ist, da Wellendaten in der Form des Zeitmultiplex
bereitgestellt werden können, oder die Hüllkurvendaten können in der Form des
Zeitmultiplex in synchroner Beziehung dazu bereitgestellt werden und die
Wellendaten, welchen Hüllkurven hinzugefügt werden, können in Form des
Zeitmultiplex durch Multiplikation dieser Daten bereitgestellt werden.