DE3249738C2 - - Google Patents

Info

Publication number
DE3249738C2
DE3249738C2 DE19823249738 DE3249738A DE3249738C2 DE 3249738 C2 DE3249738 C2 DE 3249738C2 DE 19823249738 DE19823249738 DE 19823249738 DE 3249738 A DE3249738 A DE 3249738A DE 3249738 C2 DE3249738 C2 DE 3249738C2
Authority
DE
Germany
Prior art keywords
data
frequency
output
gate
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19823249738
Other languages
English (en)
Inventor
Masanori Oume Tokio/Tokyo Jp Ishibashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP56208816A external-priority patent/JPS58108587A/ja
Priority claimed from JP56208815A external-priority patent/JPS58108586A/ja
Priority claimed from JP57057359A external-priority patent/JPS58174999A/ja
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Application granted granted Critical
Publication of DE3249738C2 publication Critical patent/DE3249738C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/008Means for controlling the transition from one tone waveform to another

Landscapes

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

Description

Die Erfindung betrifft eine Tonsignal-Erzeugungsvorrichtung gemäß dem Oberbegriff des Anspruches 1. Eine derartige Vorrichtung ist aus der DE-AS 25 18 633 bekannt.
Falls eine Tonsignal-Erzeugungsvorrichtung in Form eines digitalen Schaltkreises verwendet wird, hat man einen einsatzbereiten Schaltkreis zur Bestimmung einer Notenfrequenz zur Hand.
Es sind verschiedene Untersuchungen durchgeführt worden, um in einer elektronischen Orgel etc. Musikton-Wellenformen digital zur Verfügung zu haben. Es sind drei verschiedene Methoden zur Darstellung von Musiktonwellen bekannt:
In einer ersten Art wird ein ROM durch die Ausgabe eines Adreßzählers adressiert, um das kumulative Addieren eines vorbestimmten Wertes zu erlauben. In diesem Fall wird die Höhe des vorbestimmten Wertes, der kumulativ aufsummiert worden ist, variiert, wenn ein erzeugter Ton durch Frequenzsteuerung mit einem Vibrato-Effekt etc. versehen wird. Bei einer derartigen Frequenzsteuerung verändern sich die Frequenzdaten, das heißt, die Additionsdaten aufgrund der Anwesenheit der Notenfrequenzen exponentiell, falls der Vibrato-Effekt über eine ganze Musiktonleiter mit gleicher Tiefe bereitgestellt werden soll. Entsprechende Datenwörter sind von Note zu Note unterschiedlich, so daß die Frequenzsteuerung sehr komplex wird.
Bei der zweiten Art wird der Zyklus, in dem die Daten aus dem ROM ausgelesen werden, zu einem ganzzahligen Vielfachen des Ausgabezyklusses eines Referenztaktgebers gemacht. Die Frequenzsteuerung wird dadurch erreicht, daß die Anzahl der Takte zum Auslesen eines Zyklusses der Wellenform gesteuert wird. Da jedoch die Frequenz des erzeugten Tones ein ganzzahliges Vielfaches des Ausgabezyklus des grundlegenden Taktgebers ist, würde es schwierig sein, die Frequenz über eine ganze Tonleiter einheitlich zu steuern, da beim Bereitstellen eines Vibrato-Effekts auch Halbtöne oder kleinere Töne auftreten. Folglich würde es schwierig sein, die Frequenzsteuerung durchzuführen.
Bei der dritten Art werden die Daten aus dem ROM durch variable Taktgeber ausgelesen und die Frequenzsteuerung wird durch analoge Steuerung der Frequenz der Auslesetaktgeber bewerkstelligt. Daher wird für einen solchen Zweck als Oszillator ein analoger Typ verwendet. Aufgrund der Verwendung des analogen Oszillators ergibt sich jedoch das Problem der Frequenzstabilität. Speziell in diesem Fall kann ein Frequenzerzeugungsbereich in einem Wellenform- Synthesizer nicht in einem Multiplex-Gatter angeordnet werden, und es ist nicht möglich, von einem einzigen Wellenform- Synthesizer einen polyphonen Ton zu erhalten, wodurch sich ein "Hardware-Problem" ergibt.
Aufgabe der vorliegenden Erfindung ist es daher, eine Tonsignal- Erzeugungsvorrichtung für ein elektronisches Musikinstrument gemäß dem Oberbegriff des Anspruches 1 zu schaffen, mit welcher mit geringem Speicherbedarf Klangeffekte variabel erzeugbar sind.
Die Lösung dieser Aufgabe erfolgt durch die kennzeichnenden Merkmale des Anspruches 1.
Ein Tonsignal-Erzeugungsvorrichtung für ein elektronisches Musikinstrument gemäß der vorliegenden Erfindung enthält eine Vorrichtung zum Speichern von Codedaten, die kennzeichnend für eine Mehrzahl von musikalischen Notenfrequenzen sind, eine Vorrichtung zum Auslesen der gegebenen Codedaten aus der Speichervorrichtung entsprechend einer auf der Tastatur angeschlagenen Taste, eine Arithmetikvorrichtung, die eine Vorrichtung zum Zuführen der vorbestimmten Steuerdaten aufweist und eine Vorrichtung zum kumulativen Addieren der vorbestimmten Steuerdaten zu oder zum kumulativen Subtrahieren von den als Anfangswert von der Steuervorrichtung zugeführten Codedaten und eine Steuervorrichtung, die eine Vorrichtung zum Wiederzuführen der Codedaten an die Arithmetikvorrichtung aufweist, wenn die Ausgabe der Arithmetikvorrichtung eine vorbestimmte Bedingung für die Bildung der Periode eines Tonsignals mit einer bestimmten Wellenform erfüllt.
Vorteilhafte Weiterbildungen ergeben sich aus den Unteransprüchen.
Weitere Vorteile, Einzelheiten und Merkmale ergeben sich aus der nachfolgenden Beschreibung mehrerer Ausführungsbeispiele der Erfindung anhand der Zeichnung. Es zeigt
Fig. 1 ein Blockdiagramm für ein Gesamtsystem gemäß einer Ausführungsform der Erfindung;
Fig. 2 ein Schaltkreisdiagramm zur Darstellung eines Wellenformgenerators in einer Anlage gemäß Fig. 1;
Fig. 3 eine Ansicht einer in einem ROM abgespeicherten Wellenform in einer Anlage gemäß Fig. 1;
Fig. 4 ein Zeitdiagramm zur Erläuterung der Wirkungsweise des Schaltkreises gemäß Fig. 2 zur Erzeugung einer Rechteckwelle;
Fig. 5 und 6 Zeitdiagramme zur Erläuterung der Wirkungsweise zur Erzeugung einer bezüglich ihrer Impulsbreite modulierten Welle bzw. einer Sägezahnwelle;
Fig. 7 ein Blockdiagramm einer Anlage zur Darstellung einer weiteren Ausführungsform der Erfindung;
Fig. 8 ein Blockdiagramm zur Darstellung eines Frequenz- Modulationsabschnittes gemäß Fig. 7;
Fig. 9 ein Schaltkreisdiagramm zur Darstellung eines Niederfrequenzoszillators gemäß Fig. 8;
Fig. 10 ein Wellenform-Diagramm zur Darstellung der Ausgangswellenform des Niederfrequenzoszillators gemäß Fig. 9;
Fig. 11 ein Blockdiagramm einer Anlage in einer weiteren Ausführungsform der Erfindung;
Fig. 12 ein Blockdiagramm zur Darstellung eines beispielhaften Durchschnittfaktor-Frequenzarithmetikabschnittes gemäß Fig. 11 und
Fig. 13 bis 18 Blockdiagramme zur Darstellung von unterschiedlichen Beispielen des Durchschnittfaktor-Frequenzarithmetikabschnittes.
Im folgenden wird ein Ausführungsbeispiel der Erfindung in Anwendung bei einem Musik-Synthesizer näher erläutert. Fig. 1 zeigt ein Blockdiagramm zur Darstellung eines die Erfindung aufweisenden Musik-Synthesizers. Die Anlage oder das System weist eine Tastatur 1 auf, welche eine Vielzahl von Tasten aufweist. Beim Drücken einer Taste wird ein Tastenbetätigungssignal erzeugt. Das System weist ferner einen Schalterbereich 2 auf, welcher Schalter für die Auswahl verschiedener Ton-Wellenformen (Grund-Wellenformen), wie beispielsweise Rechteckwellen, PWM-Wellen (bezüglich der Impulsbreite modulierte Wellen), nicht symmetrische Wellen und Sägezahnwellen, aufweist und ferner Schalter aufweist, mit welchen ein digitales Filter 6 und ein Hüllkurvengenerator 7 gesteuert werden können, welche weiter unten beschrieben werden. Die Ausgangssignale der Tastatur 1 und des Schalterbereiches 2 werden beide zu einer Zentraleinheit geleitet, welche im folgenden als CPU (zentrale Verarbeitungseinheit) 3 bezeichnet wird.
Die CPU 3 kann alle Funktionen des Musik-Synthesizers steuern, und besteht aus einem Mikroprozessor, der nicht im einzelnen beschrieben wird.
Eine Speichervorrichtung, welche im folgenden als ROM 4 bezeichnet wird und als Festwertspeicher ausgebildet ist, ist ein Speicher, in welchem Ton-Frequenzcodedaten abgespeichert sind. Adreßdaten für das Auslesen der Ton- Frequenzcodedaten entsprechend den betätigten Tasten auf der Tastatur 1 aus dem ROM 4 werden von der CPU 3 zu dem ROM 4 geleitet. Die ausgelesenen Noten-Frequenzcodedaten β werden zu einem Wellenformgenerator 5 geleitet.
Der Wellenformgenerator 5 ist ein Schaltkreis, welcher eine Tonwellenform durch digitale (Signal-)Verarbeitung der Noten-Frequenzcodedaten β und von Daten α, γ und K formt, welche von der CPU 3 angelegt werden. Die so erhaltenen Wellenformdaten werden zu einem digitalen Filter 6 geleitet. Das digitale Filter 6 entfernt einige der harmonischen Komponenten in den Wellenformdaten entsprechend einem Steuersignal von der CPU 3 und das Ausgangssignal des digitalen Filters 6 wird an einen Hüllkurvengenerator 7 angelegt. Der Hüllkurvengenerator 7 beaufschlagt das Ausgangssignal des digitalen Filters 6 entsprechend dem Steuersignal von der CPU 3 mit einer Hüllkurve, um ein Tonsignal zu erzeugen. Das so erzeugte Tonsignal wird an einen Digital/Analog-Wandlungsschaltkreis angelegt, welcher im folgenden als D/A-Wandler 8 bezeichnet wird. Der D/A-Wandler 8 ist ein Schaltkreis für die Umwandlung des eingehenden Tonsignales, welches ein Digitalsignal ist, in ein analoges Tonsignal. Das so erzeugte analoge Tonsignal wird über einen Verstärker 9 und einen Lautsprecher 10 geleitet, welche mit dem Ausgangsanschluß des D/A-Wandlers 8 verbunden sind, wodurch ein entsprechender Musikklang erzeugt wird. Als digitales Filter 6 kann ein digitales Filter verwendet werden, wie es in der DE-OS 31 16 042 beschrieben ist, und als Hüllkurvengenerator 7 kann ein Hüllkurvengenerator verwendet werden, wie er in der DE-OS 31 30 380 beschrieben ist.
In Fig. 2 ist ein spezifischer Schaltkreisaufbau des Wellenformgenerators 5 dargestellt. Ein Schieberegister 17 erzeugt Daten mit einer Wortlänge von 16 Bit, welche zu A-Eingangsanschlüssen A15 bis A0 eines Volladdierers 15 geleitet werden, um eine Zirkulation oder ringförmige Weiterbeförderung zuzulassen. Festeingestellte Daten α (α15 bis α0) mit einer Wortlänge von 16 Bit werden von der CPU 3 zu B-Eingangsanschlüssen B15 bis B0 des Volladdierers 15 geleitet. Ein Signal mit einem hohen logischen Pegel "H" wird an einen Anschluß Cin des Volladdierers 15 angelegt. Der Volladdierer 15 subtrahiert die Eingangsdaten α an den B-Eingangsanschlüssen von den Eingangsdaten an den A-Eingangsanschlüssen, um die Ergebnisdaten an seinen S-Ausgangsanschlüssen S15 bis S0 zu erzeugen. Die Ausgangsdaten werden zu den A-Eingangsanschlüssen A15 bis A0 eines Volladdierers 16 geleitet, welcher mit der Ausgangsseite des Volladdierers 15 verbunden ist. Zu den B-Eingangsanschlüssen B15 bis B0 des Volladdierers 16 werden über UND-Gatter 18-15 bis 18-0 Noten-Frequenzcodedaten β von einem Gatterschaltkreis G1 (im Falle der Ausbildung einer Rechteckwelle oder einer Sägezahnwelle) und Daten β± (β-K) und γ von einem Gatterschaltkreis G2 geleitet. Diese Daten werden in dem Volladdierer 16 voreingestellt. Ein Carry-Ausgangssignal von einem Anschluß für das letzte Ergebnis des Volladdierers 15 wird über einen Inverter 19 an einen Steuer-Eingangsanschluß eines jeden der UND-Gatter 18-15 bis 18-0 angelegt. Logiken und Logikschaltkreise werden hier als Gatter bezeichnet.
Die an den S-Ausgangsanschlüssen S15 bis S0 des Volladdierers 16 erzeugten Ergebnisdaten werden zu dem Schieberegister 17 geleitet, welches mit der Ausgangsseite des Volladdierers 16 verbunden ist. Wenn der Musik- Synthesizer polyphon oder vielstimmig für acht Töne ausgelegt ist, besteht das Register 17 aus acht Stufen des Schieberegisters mit einer Wortlänge von 16 Bit, welche kaskadenförmig verbunden sind. Der Schaltkreis gemäß Fig. 2 führt eine Zeitmultiplexfunktion unter Steuerung durch die CPU 3 durch.
Die 9-Bit niederwertigeren Daten aus den Ausgangsdaten des Schieberegisters 17 aus den Ausgangsklemmen S8 bis S0 werden zu Antivalenz- oder EXOR-Gattern 20-8 bis 20-0 geleitet, während die höherwertigen 6-bit-Daten von den Ausgangsanschlüssen S9 bis S14 über Inverter 21-1 bis 21-6 geleitet werden, um Eingangsanschlüsse der UND- Gatter 22-1 bis 22-6 zu steuern. Ferner wird das höchstwertige Datum oder MSB-Datum aus dem Ausgangsanschluß S15 über einen Inverter 21-7 zu dem anderen Eingangsanschluß des UND-Gatters 22-6 geleitet. Die UND-Gatter 22-1 bis 22-6 sind seriell verbunden, wie es in Fig. 2A dargestellt ist, d. h., das Ausgangssignal des UND- Gatters 22-6 ist mit dem anderen Eingangsanschluß des UND-Gatters 22-5 verbunden, und ähnlich sind die Ausgangsanschlüsse der UND-Gatter 22-5 bis 22-2 mit den anderen Eingangsanschlüssen der darauffolgenden UND-Gatter 22-4 bis 22-1 verbunden. Der Ausgangsanschluß des UND- Gatters 22-1 ist mit den EXOR-Gattern 20-8 bis 20-0 verbunden.
Die Ausgangsanschlüsse der EXOR-Gatter 20-8 bis 20-0 sind mit den A-Eingangsanschlüssen A7 bis A0 einer im folgenden als ROM 23 bezeichneten Speichervorrichtung verbunden und übertragen Adreßdaten. In dem ROM 23 sind Daten einer Viertelperiode einer Sinuswelle abgespeichert, wie es in Fig. 3 dargestellt ist. Diese Wellenformdaten werden für das Interpolieren eines Bereiches der Ausgangswellendaten verwendet, wie beispielsweise für eine Rechteckwelle, welche von dem Wellengenerator 5 an der Stelle erzeugt wird, wo eine plötzliche oder abrupte Veränderung des Amplitudenpegels auftritt. An den Ausgangsanschlüssen O₆ bis O₀ des ROM 23 auftretende Wellenformdaten mit einer Wortlänge von 7 Bit werden ausgelesen und zu ODER-Gattern 24-6 bis 24-0 geleitet.
Zu den ODER-Gattern 24-6 bis 24-0 wird das Ausgangssignal des UND-Gatters 22-2 über einen Inverter 25 und ein Übertragungsgatter 26 geleitet. Die Ausgangsanschlüsse der ODER-Gatter 24-6 bis 24-0 sind mit einem Eingangsanschluß der je entsprechenden EXOR-Gatter 27-6 bis 27-0 verbunden. Zu den anderen Eingangsanschlüssen der EXOR- Gatter 27-6 bis 27-0 wird das Ausgangssignal des UND- Gatters 22-1 über einen Inverter 28 und ein Übertragungsgatter 29 geleitet. Die Ausgangsanschlüsse der EXOR-Gatter 27-6 bis 27-0 werden zu A-Eingangsanschlüsse A6 bis A0 eines Volladdierers 30 geleitet, welcher einen Polaritätsinverter bildet. Zu einem A-Eingangsanschluß A7 des Volladdierers 30 wird das Ausgangssignal des UND-Gatters 22-1 über einen Inverter 28, ein Übertragungsgatter 29 und einen Inverter 31 geleitet. An einen Eingangsanschluß Cin des Volladdierers 30 wird das Ausgangssignal des UND- Gatters 22-1 über den Inverter 28 und das Übertragungsgatter 29 geleitet. Ebenso wird das Ausgangssignal eines Inverters 32 über ein Übertragungsgatter 33 zu dem Eingangsanschluß Cin geleitet. Daten, welche an den Ausgangsanschlüssen S7 bis S0 des Volladdierers 30 auftreten, werden über Übertragungsgatter 34-7 bis 34-0 zu dem digitalen Filter 6 geleitet.
Wenn ein Schalter für die Festlegung einer Rechteckwelle oder ein Schalter für die Festlegung einer PWM-Welle betätigt wird, werden die Übertragungsgatter 26 mit einem Steuersignal gesteuert, welches von der CPU 3 erzeugt wird und an den Steuer-Eingangsanschluß des Übertragungsgatters 26 angelegt wird, um ein Signal durchzulassen. Wenn ein Schalter für die Festlegung einer Sägezahnwelle betätigt wird, werden die Übertragungsgatter 29 und 35 mittels eines Steuersignales durchgeschaltet, welches von der CPU 3 erzeugt und zu den Steuer-Eingangsanschlüssen der Gatter geleitet wird. Das Übertragungsgatter 33 wird aufgrund eines Signales durchgeschaltet, welches über einen Inverter 36 angelegt wird. Die Übertragungsgatter 34-7 bis 34-0 werden aufgrund des Ausgangssignales des UND-Gatters 22-2 durchgeschaltet, welches zu ihren Steuer-Eingangsanschlüssen über den Inverter 25, das Übertragungsgatter 35 und den Inverter 37 geleitet wird.
Die Noten-Frequenzcodedaten β und die Daten K (die ein festeingestelltes Datum darstellen) werden zu einem Subtrahierschaltkreis 41 geleitet. Die sich ergebenden Daten β-K aus dem Subtrahierschaltkreis 41 werden zu einem Multiplizierschaltkreis 42 und zu einem Dividierschaltkreis 44 geleitet. Der Multiplizierschaltkreis 42 empfängt ferner die Daten γ (die einen Wertbereich von 0 γ 1 annehmen können und ein Tastverhältnis festlegen), und diese Ergebnisdaten (β-K) · γ werden zu einem Addier/ Subtrahier-Schaltkreis 43 geleitet. Der Addier/Subtrahier- Schaltkreis 43 empfängt auch die Noten-Frequenzcodedaten β, und der Ausgang des Inverters 32 wird zu einem Plus/ Minus-Steuereingangsanschluß des Addier/Subtrahier-Schaltkreises 43 geleitet. Die Ergebnisdaten β+(β-K) · γ werden zu dem Gatterschaltkreis G2 geleitet. Wenn ein Schalter für die Festlegung einer Rechteckwelle oder ein Schalter für die Festlegung einer Sägezahnwelle betätigt wird, wird der Gatterschaltkreis G1 durch ein Steuersignal, welches von der CPU 3 erzeugt wird, durchgeschaltet. Wenn ein Schalter für die Festlegung einer PWM-Welle betätigt wird, wird der Gatterschaltkreis G2 durch ein Steuersignal aus der CPU 3 durchgeschaltet.
Die Ausgangsdaten M aus dem Schieberegister 17 und die Daten K aus der CPU 3 werden zu einem Subtrahierschaltkreis 45 geleitet. Die Ergebnisdaten aus dem Subtrahierschaltkreis 45 werden zu dem Dividierschaltkreis 44 geleitet. Die Ergebnisdaten (M-K)/(β-K) des Dividierschaltkreises 44 werden über Übertragungsgatter 46-7 bis 46-0 geleitet, um als Sägezahn-Wellendaten zu dem digitalen Filter 6 geleitet zu werden. Die Übertragungsgatter 46-7 bis 46-0 werden dadurch durchgeschaltet, daß das Ausgangssignal des UND-Gatters 22-2 über den Inverter 25, das Übertragungsgatter 35 und Inverter 37 und 47 an die Steuer-Eingangsanschlüsse der Übertragungsgatter 46-7 bis 46-0 angelegt wird.
Der Inverter 32 weist ein Schieberegister 48 und ein EXOR-Gatter 49 auf, welches mit der Ausgangsseite des Schieberegisters 48 verbunden ist. Das Ausgangssignal an einem Ausgangsanschluß C1 des Volladdierers 15 wird über einen Inverter 50 zu dem anderen Eingangsanschluß des EXOR-Gatters 49 geleitet. Das Ausgangssignal des EXOR-Gatters 49 wird zu der Eingangsseite des Schieberegisters 48 zurückgeleitet, bzw. zurückgekoppelt. Wenn der Musik-Synthesizer - wie oben erwähnt - polyphon für acht Töne ausgelegt ist, besteht das Schieberegister 48 auch acht Stufen von Schieberegistern mit je 1 Bit, die in Kaskade verbunden sind. Wenn die Ergebnisdaten des Volladdierers 15 "512" erreichen, wird ein Signal mit dem logischen Pegel "H" (d. h. ein Übertragungssignal oder Carry-Signal) aus dem Ausgangsanschluß C1 des Volladdierers 15 erzeugt.
Die Funktion dieser Ausführungsform wird anhand von Fig. 4 bis 14 im folgenden beschrieben. Zunächst wird die Funktion in Verbindung mit dem Fall anhand des Zeitdiagramms von Fig. 4 beschrieben, in welchem der Wellenformgenerator 5 eine Rechteckwelle erzeugt. In diesem Falle wird der Rechteckwellen-Festlegungsschalter und andere erforderliche Schalter im Schalterbereich 2 eingeschaltet. Wenn der Rechteckwellen-Festlegungsschalter eingeschaltet ist, legt die CPU 3 ein Signal mit dem logischen Pegel "H", d. h., "1", oder ein Signal mit dem logischen Pegel "L", d. h., "0" an die Gatterschaltkreise G1 und G2 des Wellenformgenerators 5. Dadurch wird der Gatterschaltkreis G1 aktiviert, während der Gatterschaltkreis G2 gesperrt wird. Die CPU 3 legt auch ein Signal mit dem logischen Pegel "1" an das Übertragungsgatter 26 und ein Signal mit dem logischen Pegel "0" an die Übertragungsgatter 29 und 35. Dadurch wird das Übertragungsgatter 26 aktiviert, während die Übertragungsgatter 29 und 35 gesperrt werden. Wenn die Übertragungsgatter 29 und 35 gesperrt sind, werden das Übertragungsgatter 33 und die Übertragungsgatter 34-7 bis 34-0 aktiviert, während die Übertragungsgatter 46-7 bis 46-0 gesperrt werden.
Es sei nun angenommen, daß beispielsweise eine Taste auf der Tastatur 1 in diesem Zustand eingeschaltet wird. Wenn die Taste eingeschaltet wird, erzeugt die CPU 3 ein vorgegebenes Adreßdatum für das ROM 4, mit welchem Noten- Frequenzcodedaten β entsprechend der betätigten Taste aus dem ROM 4 ausgelesen werden können. Dadurch werden die Noten- Frequenzcodedaten β aus dem ROM 4 ausgelesen und zu dem Wellengenerator 5 angelegt. Die Noten-Frequenzcodedaten β werden über den Gatterschaltkreis G1, welcher sich in einem offenen Zustand befindet, zu den UND-Gattern 18-15 bis 18-0 angelegt. In diesem Augenblick wird das Ausgangssignal aus dem Ausgangsanschluß Cout des Volladdierers 15 zu "0", das bedeutet, das Ausgangssignal des Inverters 19 wird "1", so daß die UND-Gatter 18-15 bis 18-0 sich in einem offenen Zustand befinden. Somit werden die Noten- Frequenzcodedaten β über die UND-Gatter 18-15 bis 18-0 zu den B-Eingangsanschlüssen B15 bis B0 des Volladdierers 16 geleitet. Unterdessen sind alle 16-bit-Daten mit dem logischen Wert "0" zu diesem Zeitpunkt von dem S-Ausgangsanschluß S15 bis S0 des Volladdierers 15 zu den A-Eingangsanschlüssen A15 bis A0 des Volladdierers 16 geleitet worden. Somit werden die Daten mit demselben Wert wie die voreingestellten Noten-Frequenzcodedaten β, die oben bezeichnet sind, zu diesem Zeitpunkt als Ergebnisdaten von den S-Ausgangsanschlüssen S15 bis S0 des Volladdierers 16 erzeugt, um zu dem Schieberegister 17 geleitet zu werden. Wenn die Daten durch das Schieberegister 17 geschoben und an dem Ausgang erzeugt werden, werden sie zu den A-Eingangsanschlüssen A15 bis A0 des Volladdierers 15 zurückgeführt, während sie ferner auch über die EXOR-Gatter 20-8 bis 20-0 und die Inverter 21-7 bis 21-1 geleitet werden.
In dieser Ausführungsform weisen die Noten-Frequenzcodedaten β für die einzelnen Noten je Werte auf, die größer als "1024" sind. Mit anderen Worten, in den oberen 6 Bit bis zu dem höchsten Bit der 16-bit-Daten ist immer ein Datum mit dem logischen Wert "1" enthalten. Wenn somit die Noten- Frequenzcodedaten β mit dem Einschalten einer Taste, wie oben erwähnt, eingeschaltet werden und dieselben Daten daraufhin aus dem Schieberegister 17 erzeugt werden, ist das Ausgangssignal des UND-Gatters 22-2 immer auf einem logischen Pegel "0", wie es bei (e) in Fig. 4 dargestellt ist. Das Ausgangssignal des UND-Gatters 22-1 wird somit auf dem Pegel "0" geschaltet, während das Ausgangssignal des UND-Gatters 22-2 sich auf einem logischen Pegel "0" befindet, wie es bei (b) in Fig. 4 dargestellt ist. Ferner ist das Ausgangssignal des Inverters 50 zu diesem Zeitpunkt auf einem logischen Pegel "1", wie es bei (c) in Fig. 4 dargestellt ist, so daß das Ausgangssignal des Inverters 32 sich auf einem logischen Pegel "0" befindet, wie es bei (d) in Fig. 4 dargestellt ist. Somit wird ein Signal mit dem logischen Pegel "0" aus dem UND-Gatter 22-1 zu den EXOR-Gattern 20-8 bis 20-0 geleitet und die niederwertigen 9-bit-Daten des Ausgangssignales des Schieberegisters 17 werden direkt zu den A-Eingangsanschlüssen A8 bis A0 des ROMs 23 geleitet.
Ferner wird ein Signal mit dem logischen Pegel "0" aus dem UND-Gatter 22-2 über den Inverter 25 invertiert, und ein Signal mit dem logischen Pegel "1" wird von dem Inverter 25 zu den ODER-Gattern 24-6 bis 24-0 geleitet. Ein Signal mit dem logischen Pegel "1" wird somit von jedem der ODER-Gatter 24-6 bis 24-0 erzeugt, um an einen Eingangsanschluß jedes der EXOR-Gatter 27-6 bis 27-0 angelegt zu werden. Ein Signal mit dem logischen Pegel "0" wird somit als Ausgangssignal des Inverters 32 zu dem anderen Eingangsanschluß jedes der EXOR-Gatter 27-6 bis 27-0 angelegt. Die EXOR-Gatter 27-6 bis 27-0 erzeugen somit alle Signale mit dem logischen Pegel "1". Das Ausgangssignal des Inverters 31 befindet sich ebenso auf einem logischen Pegel "1".
Somit werden Daten, welche sich alle auf dem logischen Pegel "1" befinden, zu den A-Eingangsanschlüssen A7 bis A0 des Volladdierers 30 geleitet. Das Ausgangssignal des Inverters 32, d. h., ein Signal mit dem logischen Pegel "0", wird ferner zu dem Carry-Eingangsanschluß Cin des Volladdierers 30 geleitet. Die Ergebnisdaten aus den S-Ausgangsanschlüssen S7 bis S0 des Volladdierers 30 werden somit zu diesem Zeitpunkt als Daten mit einer Wortlänge von 8 Bit, welche sich alle auf dem logischen Pegel "1" befinden, erzeugt. Diese Daten werden über die Übertragungsgatter 34-7 bis 34-0 zu dem digitalen Filter 6 geleitet, wobei die Übertragungsgatter sich zu diesem Zeitpunkt in einem durchgeschalteten oder geöffneten Zustand befinden. Die Rechteckwelle, welche an das digitale Filter 6 angelegt wird, weist eine Wellenform auf, wie sie bei (a) in Fig. 4 dargestellt ist. Das digitale Filter 6 entfernt die harmonischen Komponenten, welche unter Steuerung durch die CPU 3 festgelegt werden. Der Hüllkurvengenerator 7 umgibt das Ausgangssignal des digitalen Filters 6 mit einer Hüllkurve, wodurch das Tonsignal der Note entsprechend der betätigten Taste erzeugt wird, um Klang zu erzeugen.
Wenn Daten, welche den gleichen Wert wie die vorangestellten Noten-Frequenzcodedaten β aufweisen, zu den A-Eingangsanschlüssen A15 bis A0 des Volladdierers 15 zurückgeführt werden, treten feste Daten α, welche von der CPU 3 erzeugt sind, als 16-bit-Daten an den B-Eingangsanschlüssen B15 bis B0 des Volladdierers 15 auf. Da ferner der Carry-Eingangsanschluß Cin sich immer auf dem logischen Pegel "H" befindet, führt der Volladdierer 15 zu diesem Zeitpunkt eine erste Subtraktion von β-α aus und erzeugt die Ergebnisdaten an den S-Ausgangsanschlüssen und legt sie an die A-Eingangsanschlüsse des Volladdierers 16 an. Zu diesem Zeitpunkt der Ausführung der Subtraktion ändert sich das Ausgangssignal des Carry-Ausgangsanschlusses Cout des Volladdierers 15 zu "1", so daß das Ausgangssignal des Inverters 19 zu "0" wird und die UND-Gatter 18-15 bis 18-0 schließen bzw. sperren. Somit wird der Eingang der Noten-Frequenzcodedaten β zu den B-Eingangsanschlüssen des Volladdierers 16 gesperrt. Die Ergebnisdaten aus dem Volladdierer 15 sind somit gleich wie die Ergebnisdaten, die bei der ersten Subtraktion in dem Volladdierer 15 ermittelt wurden.
Diese Daten werden zu dem Schieberegister 17 geleitet. Die Ergebnisdaten der ersten Subtraktion, die aus dem Schieberegister 17 erzeugt worden sind, werden zu den EXOR-Gattern 20-8 bis 20-0 und Invertern 21-7 bis 21-1 geleitet, während sie umlaufend zu dem Volladdierer 15 geleitet werden. Die Daten, welche an den A- Eingangsanschlüssen und dem Carry-Eingangsanschluß Cin des Volladdierers 30 nach dem Ende der ersten Berechnung auftreten, sind gleich wie zuvor, so daß alle 8-bit-Daten sich auf dem logischen Pegel "1" befinden und zu dem digitalen Filter 6 geleitet werden. In dem Volladdierer 15, den UND-Gattern 18-15 bis 18-0, dem Volladdierer 16 und dem Schieberegister 17 wird dieselbe kumulative Subtraktion, wie bei der ersten Subtraktion oben beschrieben, aufeinanderfolgend wiederholt, bis die Ergebnisdaten, d. h., das Ausgangssignal des Schieberegisters 17, "1024" erreicht (vgl. (f) in Fig. 4). Während dieser Zeit verbleibt das Datum an dem A-Eingangsanschluß und dem Carry-Eingangsanschluß Cin des Volladdierers 30 gleich, so daß die Daten mit der Wortlänge von 8 Bit, welche alle "1" sind, kontinuierlich zu dem digitalen Filter 6 geleitet werden. Wenn das Ausgangssignal oder die Ausgangsdaten des Schieberegisters 17 bei der nächsten Subtraktion kleiner als "1024" wird, bedeutet dies, daß die höherwertigen 6-bit-Daten in dem Ausgangssignal des Schieberegisters 17 alle zu "0" werden. Somit wird zu diesem Zeitpunkt der Ausgang des UND- Gatters 22-2 zu "1" invertiert, wie es bei (e) in Fig. 4 dargestellt ist. Somit wird das Ausgangssignal des Inverters 25 zu dem ODER-Gatter 24-6 bis 24-0 geleitet und wird zu "0".
Während der kumulativen Subtraktion bleibt von dem Augenblick an, wenn das Ausgangssignal des Schieberegisters 17 auf "1024" ist, bis zu dem Augenblick, wenn das Ausgangssignal "512" ist, das 10er-bit-Datum mit der Wertigkeit 256 in dem Ausgangssignal des Schieberegisters 17 auf dem logischen Pegel "1". Während dieser Zeit wird das Ausgangssignal des UND-Gatters 22-1 zu den EXOR-Gattern 20-8 bis 20-0 geleitet und verbleibt auf dem logischen Pegel "0". Das bedeutet, daß während der Zeit von dem Augenblick, wenn das Ausgangssignal "1024" ist, bis zu dem Augenblick, wenn das Ausgangssignal "512" ist, die niederwertigeren 9-bit-Daten in dem Ausgangssignal des Schieberegisters 17 kontinuierlich zu den A-Eingangsanschlüssen des ROM 23 geleitet werden. Ferner bleibt während dieser Zeit der Ausgangsanschluß des Inverters 32 auf dem logischen Pegel "0".
In einem Augenblick, wenn das Ausgangssignal des Schieberegisters 17 kleiner als "1024" ist, beispielsweise "1023", werden die niederwertigen 9-bit-Daten in dem Ausgangssignal des Schieberegisters 17 zu den A-Eingangsanschlüssen des ROM 23 geleitet und befinden sich alle auf dem logischen Pegel "1". Das ROM 23 ist hinsichtlich der Adressierung durch diese 9-bit-Daten festgelegt, welche sich alle auf dem logischen Pegel "1" befinden, so daß 7-bit-Daten, welche sich alle auf dem logischen Pegel "1" befinden, ausgelesen werden, wie es in Fig. 3 dargestellt ist. Die 7-bit-Daten mit dem logischen Pegel "1" werden über die ODER-Gatter 24-6 bis 24-0 zu den EXOR- Gattern 27-6 bis 27-0 geleitet. Zu diesem Zeitpunkt sind die Eingangsdaten für die EXOR-Gatter 27-6 bis 27-0 und den Carry-Eingangsanschluß Cin des Volladdierers 30 noch auf dem logischen Pegel "0", wie weiter oben erwähnt. Somit werden 8-bit-Daten, welche sich alle auf dem logischen Pegel "1" befinden, zu den A-Eingangsanschlüssen des Volladdierers 30 geleitet, und die Ergebnisdaten des Volladdierers 30 werden als 8-bit-Daten, welche sich alle auf dem logischen Pegel "1" befinden, erzeugt, welche zu dem digitalen Filter 6 geleitet werden.
Wenn das Ausgangssignal des Schieberegisters 17 ferner von "1023" um α bei der nächsten kumulativen Subtraktion reduziert wird, wird die Adresse für das ROM 23 durch Adreßdaten festgelegt, welche um α kleiner als die vorherigen 9-bit-Daten sind, welche sich alle auf dem logischen Pegel "1" befinden (d. h., Daten mit dem Wert "511"). Somit werden Daten, die um einen vorgegebenen Wert kleiner als die oben erwähnten 7-bit-Daten, welche sich alle auf dem logischen Pegel "1" befinden, d. h., Daten mit einem Amplitudenwert, welche etwas kleiner als die Daten bei der vorherigen Operation sind, von dem ROM 23 ausgelesen, wie aus Fig. 3 ersichtlich ist. Diese Amplitudenwertdaten werden zu dem digitalen Filter 6 geleitet, ohne über den Volladdierer 30 invertiert zu werden.
In dieser Weise wird das Ausgangssignal des Schieberegisters 17 nach und nach um Einheiten von α bei der kumulativen Subtraktion reduziert oder vermindert. Das ROM 23 wird somit hinsichtlich seiner Adresse durch Adreßdaten angesteuert, welche nacheinander um α reduziert werden, bis "512" erreicht ist. Jedesmal, wenn die Adreßdaten reduziert werden, werden die Amplitudendaten mit einem Wert ausgelesen, welcher geringer als die vorherigen Daten ist. Während dieser Zeit ist der Datenausgang zu den A-Eingangsanschlüssen und dem Carry-Eingangsanschluß Cin des Volladdierers 30 gleich, wie oben erwähnt, und nach und nach verminderte Amplitudenwertdaten werden zu dem digitalen Filter 6 geleitet. Wenn das Ausgangssignal des Schieberegisters 17 "512" ist, wird das ROM 23 durch 9-bit-Adreßdaten angesteuert, welche alle den Wert "0" aufweisen.
Wenn die Ergebnisdaten bei der kumulativen Subtraktion in dem Volladdierer 15 von "512" zu "511" geändert werden, wird ein "1"-Signal von dem Ausgangsanschluß C1 des Volladdierers 15 erzeugt. Im Ergebnis wird ein Einzelimpulssignal von dem Inverter 50 erzeugt, wie es bei (c) in Fig. 4 dargestellt ist. Somit wird das Ausgangssignal des Inverters 32 zu den EXOR-Gattern 27-6 bis 27-0, dem Inverter 31 und dem Carry-Eingangsanschluß Cin des Volladdierers 30 geleitet und zu "1" invertiert, wie es bei (d) in Fig. 4 dargestellt ist.
Wenn somit die Daten mit einem Wert von "511" oder kleiner von dem Schieberegister 17 erzeugt werden, wie es bei (f) in Fig. 4 dargestellt ist, werden die höherwertigen 7-bit-Daten am Ausgang alle Daten mit dem logischen Wert "0". Dadurch wird das Ausgangssignal des UND-Gatters 23-1, welches zu den EXOR-Gattern 20-8 bis 20-0 geleitet wird, zu logisch "1". Unterdessen werden die 9-bit-Daten, welche sich alle auf dem logischen Pegel "1" befinden, wiederum zu den anderen Eingangsanschlüssen der EXOR-Gatter 20-8 bis 20-0 geleitet. Somit ist das Ausgangssignal, welches zu den unvollständigen A-Eingangsanschlüssen des ROMs 23 geleitet wird, ein Ausgangssignal mit 9-bit-Daten, welche alle den logischen Wert "0" aufweisen. Es wird deutlich werden, daß während die Ergebnisdaten der kumulativen Subtraktion nach und nach von "511" zu "0" mit Intervallen von α reduziert werden, das ROM 23 nach und nach durch Adreßdaten adressiert wird, welche von "0" für alle Bits bis "1" für alle Bits ansteigen.
Die sich ergebenden ausgelesenen Amplitudenwertdaten werden somit nach und nach, wie es in Fig. 3 dargestellt ist, erhöht. Die Amplitudenwertdaten werden über die EXOR- Gatter 27-6 bis 27-0 zu den A-Eingangsanschlüssen A6 bis A0 des Volladdierers 30 geleitet. Unterdessen wird ein Signal mit dem logischen Wert "0" zu dem A-Eingangsanschluß A7 geleitet, und ein Ausgangssignal mit dem logischen Wert "1" wird zu dem Carry-Eingangsanschluß Cin geleitet. Somit sind die von dem Volladdierer 30 erzeugten Daten gleich zu denjenigen, die durch Invertierung der Amplitudenwertdaten erhalten werden, welche aus dem ROM 23 ausgelesen sind. Diese Daten werden zu dem digitalen Filter 6 geleitet.
Während das Ausgangssignal des Schieberegisters 17 sich von "1024" auf "0" verändert, wie es bei (f) in Fig. 4 dargestellt ist, wird die Amplitude der Rechteckwelle bei (a) in Fig. 4 durch die aus dem ROM 23 ausgelesenen Daten interpoliert, welche der Viertelperiode einer Sinuswelle entsprechen.
Wenn das Ergebnis der kumulativen Subtraktion kleiner als "0" wird, wird ein "0"-Signal von dem Carry-Ausgangsanschluß Cout des Volladdierers 15 bei der nächsten Subtraktion erzeugt. Als Ergebnis werden die UND-Gatter 18-15 bis 18-0 für einen Augenblick geöffnet bzw. durchgeschaltet, und lassen die Noten-Frequenzcodedaten β zu den B-Eingangsanschlüssen B15 bis B0 des Volladdierers 16 durch. Wenn die zu den A-Eingangsanschlüssen des Volladdierers 16 geleiteten Daten und die Noten-Frequenzcodedaten β zusammenaddiert werden und die Ergebnisdaten von dem Schieberegister 17 erzeugt werden, werden die Ausgangsdaten der UND-Gatter 22-1 bis 22-2 auf den logischen Pegel "0" invertiert, wie es bei (b) und (e) in Fig. 4 dargestellt ist, und werden zu "0" von diesem Augenblick an, da die Noten-Frequenzcodedaten β größer als "1024" sind.
Nachdem die Noten-Frequenzcodedaten β erneut eingestellt sind, wird eine kumulative Subtraktion mit einer Schrittweite von α nacheinander ausgeführt, und der Ausgang des Schieberegisters 17 wird nach und nach von β auf "1024" mit einer Schrittweite von α vermindert. Während dieser Zeitdauer werden die 7-bit-Daten, welche sich alle auf dem logischen Pegel "0" befinden, zu den A-Eingangsdaten A7 bis A0 des Volladdierers 30 geleitet. Während dieser Zeit wird ein Signal mit dem logischen Wert "1" zu dem Carry-Eingangsanschluß Cin geleitet, so daß die 7-bit- Daten, welche sich alle auf dem logischen Wert "0" befinden, zu dem digitalen Filter 6 geleitet werden.
Nachdem das Ergebnis der kumulativen Subtraktion kleiner als "1024" wird, und während es bis zu "512" reduziert wird, das bedeutet, während das Ergebnis zwischen "512" und "1023" liegt, ist das Ausgangssignal des UND-Gatters 22-2 "1". Somit ist während dieser Zeit das Ausgangssignal des Volladdierers 30 gleich demjenigen, welches durch Invertierung der Amplitudenwertdaten aus dem ROM 23 durch Adressierung des ROMs 23 mit Adreßdaten erreicht wird, welche nach und nach von den Maximal-Adreßdaten (d. h., 9-bit-Daten, die alle logisch "1" sind) zu den Minimal- Adreßdaten (d. h., 9-bit-Daten, die alle logisch "0" sind) reduziert werden.
Wenn das Ergebnis der kumulativen Subtraktion "512" erreicht, wird ein "1"-Signal von dem Ausgangsanschluß C1 des Volladdierers 15 erzeugt. Im Ergebnis wird das Ausgangssignal des Inverters 32 auf "0" invertiert, wie es bei (d) in Fig. 4 dargestellt ist. Wenn das Ergebnis der kumulativen Subtraktion zu "511" wird, wird das Ausgangssignal des UND-Gatters 22-1 zu "1" invertiert. Somit wird etwas, was den Amplitudenwertdaten gleich ist, welche aus dem ROM 23 durch Adressierung des ROM 23 mit Adreßdaten ausgelesen werden, wobei die Adreßdaten von der Minimaladresse zu der Maximaladresse geändert werden, als Ausgangssignal des Volladdierers zu dem digitalen Filter 6 geleitet, während das Ergebnis der kumulativen Subtraktion sich von "511" zu "0" ändert.
Während das Ausgangssignal des Schieberegisters 17 zwischen "1024" und "0" ist, wird die Amplitude der Rechteckwelle bei (a) in Fig. 4 durch die Wellenformdaten aus dem ROM 23 interpoliert. Wenn das Ergebnis der kumulativen Subtraktion kleiner als "0" wird, wird bei der nächsten kumulativen Subtraktion ein "0"-Signal von dem Carry-Ausgangsanschluß Cout des Volladdierers 15 erzeugt. Somit werden die Noten-Frequenzcodedaten β erneut in den Volladdierer 16 geladen, und die Verarbeitungg der nächsten Rechteckwelle für die nächste Zyklusperiode wird begonnen.
Auf obige Weise wird die Verarbeitung für die Ausbildung der Rechteckwelle für eine Periode vervollständigt. Unter Bezeichnung der Periode, während welcher das Ausgangssignal des Schieberegisters 17, wie in Fig. 4 dargestellt ist, von "0" zu erneut "0" wechselt (d. h., die Periode von dem Augenblick der Einstellung der Noten- Frequenzcodedaten β für einen Operationszyklus bis zu dem Augenblick der Einstellung der Daten für den nächsten Operationszyklus), durch T′ und unter Bezeichnung der Abtastperiode durch Ts kann die Periode T′ eines Verarbeitungszyklus wie folgt ausgedrückt werden:
Unter Bezeichnung der Abtastfrequenz durch fs kann die Frequenz f₀ der in obiger Weise erzeugten Rechteckwelle wie folgt ausgedrückt werden:
Im folgenden wird die Funktion in Verbindung mit dem Fall beschrieben, bei welchem der Wellenformgenerator 5 eine PWM-Welle erzeugt. In diesem anhand von Fig. 5 erläuterten Fall wird eine PWM-Wellen-Festlegungsschalter in dem Schalterbereich 2 eingeschaltet. Dadurch wird der Gatterschaltkreis G1 geschlossen oder gesperrt und der Gatterschaltkreis G2 geöffnet oder durchgeschaltet. Ferner werden die Übertragungsgatter 26, 33 und 34-7 bis 34-0 aktiviert, und die Übertragungsgatter 29, 35 und 46-7 bis 46-0 gesperrt. In diesem Zustand wird die PWM-Wellenverarbeitung gestartet, wenn eine Taste auf der Tastatur 2 eingeschaltet wird.
Die Funktion wird von dem Augenblick an beschrieben, wenn das Ausgangssignal des Schieberegisters 17, wie bei (f) in Fig. 5 dargestellt ist, "0" beträgt ("0" an dem linken Rand der Figur). In diesem Augenblick wird das Ausgangssignal des Inverters 32 zu "1", wie es bei (d) in Fig. 5 dargestellt ist. Somit wird ein Addierbefehl zu dem Addier/Subtrahier-Schaltkreis 43 geleitet, und ein "1"-Signal wird zu den EXOR-Gattern 27-6 bis 27-0, den Inverter 31 und dem Carry-Eingangsanschluß Cin des Volladdierers 30 geleitet. Mit Carry-Eingangsanschluß wird hier der für die Übernahme eines Bits ausgelegte Eingangsanschluß bezeichnet.
Unterdessen legt der Subtrahierschaltkreis 41 die Ergebnisdaten (β-K) an den Multiplizierschaltkreis 42 an, und der Multiplizierschaltkreis 42 legt die Ergebnisdaten, (β-K) · γ an den Addier/Subtrahier-Schaltkreis 43 an. Der Addier/Subtrahier-Schaltkreis 43 legt die Ergebnisdaten β+(β-K) · γ an den Gatterschaltkreis G2 an. Die Daten K sind hier beispielsweise "1024" und die Daten γ, die das Tastverhältnis bestimmen, befinden sich im Bereich von 0 γ 1.
Wenn eine Taste somit, wie oben erwähnt, eingeschaltet wird, werden die Daten β+(β-K) · γ in den Volladdierer 16 bei dem Start des Verfahrens in der vorher beschriebenen Weise in Verbindung mit dem Verfahren für das Ausbilden der Rechteckwelle eingestellt. Nunmehr wird eine kumulative Subtraktion des Datums (eine Konstante) von dem Datum 3+(β-K) · γ ausgeführt. Während die Ergebnisdaten, d. h., die Ausgangsdaten des Schieberegisters 17, zu "1024" durch Subtraktion um je α reduziert werden, befinden sich die Ausgangsanschlüsse des UND-Gatters 22-1, Inverter 50, Inverter 32 bzw. UND-Gatter 22-2 auf den Werten "0", "1", "1" bzw. "0", wie es bei (b), (c), (d) und (e) in Fig. 5 je dargestellt ist. Somit wird die während dieser Zeitdauer aus dem ROM 23 ausgelesene Wellenform in einen unwirksamen Zustand gebracht und die von dem Volladdierer 30 erzeugten und zu dem digitalen Filter 6 geleiteten Daten sind 8-bit-Daten, welche alle den Wert "0" aufweisen.
Wenn die Ergebnisdaten der kumulativen Subtraktion kleiner als "1024" werden, wird das Ausgangssignal des UND- Gatters 22-2 zu "1" invertiert. Während nun die Daten von "1024" zu "512" geändert werden, werden Daten, welche durch Invertierung der Amplitudenwertdaten ermittelt werden, welche aus dem ROM 23 unter Adressierung desselben mit Adreßdaten, welche sich fortlaufend von der Maximaladresse zu der Minimaladresse ändern, ausgelesen werden, von dem Volladdierer 30 erzeugt und zu dem digitalen Filter 6 geleitet.
Wenn die Ergebnisdaten zu "512" werden, wird der Ausgangsanschluß des Inverters 32 zu "0" invertiert, wie es bei (d) in Fig. 5 dargestellt ist. Im Ergebnis wird ein Subtraktionsbefehl zu dem Addier/Subtrahier-Schaltkreis 43 geleitet, so daß ein Signal mit dem logischen Wert "0" zu den EXOR-Gattern 27-6 bis 27-0, dem Inverter 31 und dem Carry-Eingangsanschluß Cin des Volladdierers 30 geleitet wird. Wenn die Ergebnisdaten zu "511" werden, wird das Ausgangssignal des UND-Gatters 22-1 zu "1" invertiert, wie es bei (b) in Fig. 5 dargestellt ist. Während somit die Ergebnisdaten sich von "511" zu "0" ändern, produziert der Ausgang des Volladdierers 30 Amplitudenwertdaten, welche aus dem ROM 23 unter Adressierung des ROMs 23 mittels Adreßdaten ausgelesen werden, welche sich nach und nach von der Minimaladresse zu der Maximaladresse ändern.
Nachdem die Ergebnisdaten zu "0" geworden sind, wie es bei (f) in Fig. 5 dargestellt ist, wird bei der darauffolgenden Subtraktion das Datum β-(β-K) · γ in den Volladdierer 16 eingegeben. Wenn die Ergebnisdaten kleiner als "0" werden, wird das Ausgangssignal der UND-Gatter 22-1 und 22-2 zu "0" invertiert, wie es bei (b) und (e) in Fig. 5 dargestellt ist. Wenn die Daten β-(β-K) · γ in den Volladdierer 16 eingegeben sind, wird die kumulative Subtraktion um α an einem Zeitpunkt gestartet. Während die Ergebnisdaten zu "1024" reduziert werden, verbleibt das Ausgangssignal des Volladdierers 30 auf 8-bit- Daten, welche alle den logischen Wert "1" aufweisen. Wenn Ergebnisdaten kleiner als "1024" werden, wie es bei (f) in Fig. 5 dargestellt ist, wird das Ausgangssignal des UND-Gatters 22-2 zu "1" invertiert, wie es bei (e) in Fig. 5 dargestellt ist. Während somit die Ergebnisdaten nach und nach zu "512" reduziert werden, erzeugt der Volladdierer 30 dieselben Daten wie die aus dem ROM 23 ausgelesenen Adreßdaten, wobei die Adreßfestlegung des ROMs 23 durch Adreßdaten erfolgt, die von den Maximaladressen zu den Minimaladressen geändert werden. Hierbei werden die Daten zu dem digitalen Filter 6 ausgegeben.
Während die Ergebnisdaten von "512" zu "0" reduziert werden, werden die Ausgangssignale des UND-Gatters 22-1 und des Inverters 32 alle zu "1". Während dieser Zeitdauer erzeugt der Volladdierer 30 Daten, die durch Invertierung der Amplitudendaten ermittelt wurden, welche von der Minimaladresse bis zu der Maximaladresse des ROMs 23 ausgelesen wurden, welches in dieser Reihenfolge angesteuert bzw. festgelegt wurde. Diese Daten werden dann zu dem digitalen Filter 6 geleitet.
In obiger Weise wird die Verarbeitung zur Ausbildung der PWM-Welle für eine Periode vervollständigt, und die Reihenfolge der Ereignisse, wie oben beschrieben, wird wiederholt. Die Frequenz f₀ ist hierbei gleich wie im Falle der Rechteckwelle und wird durch die Gleichung (2) angegeben.
Im folgenden wird die Funktion in Verbindung mit dem Fall anhand von Fig. 8 beschrieben, bei welchem der Wellenformgenerator 5 eine Sägezahnwelle erzeugt. In diesem Fall wird ein Sägezahn-Festlegungsschalter auf dem Schalterbereich 2 eingeschaltet. Dadurch wird der Gatterschaltkreis G1 geöffnet und der Gatterschaltkreis G2 geschlossen. Ebenfalls werden die Übertragungsgatter 29 und 35 geöffnet und die Übertragungsgatter 26 und 33 geschlossen. In diesem Zustand wird das Verfahren für die Ausbildung der Sägezahnwelle gestartet, wenn eine Taste auf der Tastatur 1 eingeschaltet wird.
Im folgenden wird die Funktion von einem Augenblick an beschrieben, wenn das Ausgangssignal des Schieberegisters 17, wie es bei (d) in Fig. 6 dargestellt ist, "0" beträgt ("0" am linken Rand der Figur). Zu diesem Zeitpunkt werden die Noten-Frequenzcodedaten β in den Volladdierer 16 eingegeben. Die Noten-Frequenzcodedaten β werden dann von dem Schieberegister 16 erzeugt. Da die Codedaten β größer als "1024" sind, werden die Ausgangssignale der UND- Gatter 22-1 und 22-2 zu "0" invertiert, wie es bei (b) und (c) in Fig. 6 dargestellt ist. Mit der Inversion des UND- Gatters 22-2 zu "0" erzeugt der Inverter 37 ein Ausgangssignal mit dem logischen Wert "0", und der Inverter 47 erzeugt ein Ausgangssignal mit dem logischen Wert "1". Somit werden die Übertragungsgatter 34-7 bis 34-0 geschlossen, während die Übertragungsgatter 46-7 bis 46-0 geöffnet werden. Ferner wird die kumulative Subtraktion der Noten-Frequenzcodedaten β (d. h., konstante Daten) von den Noten-Frequenzcodedaten β in den Volladdierern 15 und 16, Schieberegistern 17 und UND-Gattern 18-15 bis 18-0 gestartet. Bis die Ergebnisdaten der kumulativen Subtraktion nach und nach auf "1024" reduziert worden sind, wird das Ausgangssignal des UND-Gatters 22-2 nicht geändert. Während dieser Zeit wird das Ausgangssignal des Subtrahierschaltkreises 45 über Übertragungsgatter 46-7 bis 46-0 geleitet, welche geöffnet sind. Die Ausgangsdaten M-K des Subtrahierschaltkreises 45 werden zu dem Eingangsanschluß A des Dividierschaltkreises 44 geleitet, während die Ausgangsdaten (β-K) zu dem B-Eingangsanschluß des Divisionsschaltkreises 44 geleitet werden. Der Divisionsschaltkreis 44 erzeugt somit die Ausgangsdaten H′, die sich wie folgt ergeben
wobei M das Ausgangssignal des Schieberegisters 17, K eine Konstante ("1024" in diesem Falle) und H der maximale Amplitudenwert ("256" in der vorliegenden Ausführungsform) ist. Die Gleichung (3) reduziert sich somit auf
Aus Gleichung (4) ist ersichtlich, daß, wenn das Ausgangssignal M des Schieberegisters 17, d. h., die Ergebnisdaten der kumulativen Subtraktion, zu "1024" wird, die zu dem digitalen Filter 6 geleiteten Daten "0" sind. Wenn die Ergebnisdaten kleiner als "1024" werden, wird das Ausgangssignal des UND-Gatters 22-2 zu "1" invertiert, wie es bei (c) in Fig. 6 dargestellt ist. Somit werden die Übertragungsgatter 34-7 bis 34-0 geöffnet, während die Übertragungsgatter 46-7 bis 46-0 geschlossen werden. Bis die Ergebnisdaten der kumulativen Subtraktion nach und nach auf "512" reduziert worden sind, verbleibt das Ausgangssignal des UND-Gatters 22-1 auf "0". Während dieser Zeit wird der "1"-Ausgangsdatenwert des Inverters 28 zu den EXOR-Gattern 27-6 bis 27-0, dem Inverter 31 und dem Carry-Eingangsanschluß Cin des Volladdierers 30 geleitet. Während die Ergebnisdaten von "1023" zu "512" vermindert werden, erzeugt der Volladdierer 30 Daten, welche durch Invertierung der Amplitudendaten ermittelt werden, welche von der Maximaladresse bis zur Minimaladresse des ROMs 23 ausgelesen sind, welche in dieser Reihenfolge bezeichnet worden sind. Diese Daten werden zu dem digitalen Filter 6 und die Übertragungsgatter 34-7 bis 34-0 geleitet.
Wenn die Ergebnisdaten kleiner als "512" werden, wird das Ausgangssignal des UND-Gatters 22-1 zu "1" invertiert, wie es bei (b) in Fig. 6 dargestellt ist. Somit wird folgend auf das Auftreten dieses "1"-Signales, welches zu den EXOR-Gattern 20-8 bis 20-0 geleitet wird, das ROM 23 hinsichtlich seiner Adresse mit Adreßdaten angesteuert, welche sich von der Minimaladresse zu der Maximaladresse ändern, während der Ausgangsdatenwert "0" des Inverters 28 zu den EXOR-Gattern 27-6 bis 27-0, dem Inverter 31 und dem Carry-Eingangsanschluß Cin des Volladdierers 30 geleitet wird. Somit wird, während die Ergebnisdaten sich von "511" auf "0" ändern, der aus dem ROM 23 ausgelesene Amplitudendatenwert direkt zu dem digitalen Filter 6 geleitet. Dann werden die Noten-Frequenzcodedaten β erneut in den Volladdierer 16 eingegeben.
Auf diese Art wird das Verfahren zur Ausbildung der Sägezahnwelle für eine Periode vervollständigt. Die Frequenz f₀ ergibt sich hier zu
Aus Gleichung (5) ist ersichtlich, daß in dem Falle der Sägezahnwelle, anders als in den Fällen der Rechteckwelle und der PWM-Welle, es erforderlich ist, die Noten-Frequenzcodedaten β zu verdoppeln.
Die Beschreibung bis hierin betraf den Fall, bei welchem lediglich eine Taste auf der Tastatur 1 in die Funktion des Ausbildens der Rechteckwelle, der bezüglich der Impulsbreite modulierten Welle und der Sägezahnwelle überführt wurde. Da jedoch die vorliegende Ausführungsform des Musiksynthesizers eine polyphone Musik mit acht Tönen erlaubt, können, auch wenn eine Mehrzahl von Tasten (bis zu neun Tasten) zugleich betätigt werden, die Schaltkreise in Fig. 1 und 2 jedoch im Zeitmultiplexverfahren für acht Kanäle arbeiten, und so Grundwellen für die einzelnen Töne zugleich erzeugen, wobei die Einzelheiten dieser Schaltung jedoch hier nicht näher erläutert werden.
In dem in Fig. 1 beschriebenen Ausführungsbeispiel weisen die Daten α, welche durch die CPU 3 erzeugt sind, ein festes Datum auf. Wenn Daten, die periodisch verändert werden können, als Datum α verwendet werden, ist es möglich, Vibrato mit der gleichen Tiefe und der gleichen Geschwindigkeit für alle Musiknoten zu erzeugen. Ferner ist es möglich, eine Frequenzsteuerung über eine Variation des Datums α zu erhalten.
In Fig. 7 ist eine weitere Ausführungsform dargestellt, in welcher das Datum α variabel ist. Steuersignale D1 bis D3 werden von der CPU 3 erzeugt und zu einem Frequenz- Modulationsbereich 4a geleitet. Der Frequenz-Modulationsabschnitt 4a legt hinsichtlich der Frequenz modulierte Daten α an den Wellengenerator 5 an. Fig. 8 zeigt den Frequenz-Modulationsabschnitt 4a im einzelnen. Diese Ausführungsform von Fig. 7 ist gleich derjenigen bei dem vorherigen Ausführungsbeispiel von Fig. 1, außer, daß der Frequenz-Modulationsabschnitt 4a vorgesehen ist.
Der Frequenz-Modulationsabschnitt 4a weist einen Niederfrequenzoszillator (LFO) 4a-1, einem Abstimm-Steuerabschnitt 4a-2 und ein Schieberegister 4a-3 auf. Die Steuerdaten D-1 und D-2 werden an dem LFO 4a-1 bzw. dem Abstimmsteuerabschnitt 4a-2 angelegt. Der im folgenden als LFO 4a-1 bezeichnete Niederfrequenzoszillator erzeugt ein niederfrequentes Signal für je eine Dreieck-, Sägezahn- oder Rechteckwelle unter Steuerung durch die eingegebenen Steuerdaten D-1, wobei das erzeugte niederfrequente Signal an das Schieberegister 4a-3 angelegt wird. Der LFO 4a-1 wird im folgenden im einzelnen anhand der Fig. 9 und 10 beschrieben.
Der Abstimm-Steuerabschnitt 4a-2 bewirkt eine Steuerung der Abstimmung entsprechend den eingegebenen Steuerdaten D-2. Seine Ausgangsdaten werden zu dem Schieberegister 4a-3 geleitet. Das Schieberegister 4a-3 legt Daten, welche es von dem LFO 4a-1 und dem Abstimm-Steuerabschnitt 4a-2 als die oben erwähnten Daten α empfangen hat, an die B-Eingangsanschlüsse des Volladdierers 15 an (vgl. Fig. 2), wenn Vibrato erzeugt wird oder wenn das Abstimmen ausgeführt wird. Zu einem anderen Zeitpunkt als wenn Vibrato erzeugt wird oder das Abstimmen ausgeführt wird, werden Daten D-3 von der CPU 3 an das Schieberegister 4a-3 angelegt. Das Schieberegister 4a-3 legt die Daten D-3 als die Daten α an die B-Eingangsanschlüsse des Volladdierers 15 an. In einem Fall, in welchem der Musiksynthesizer ein Musiksynthesizer für vielstimmige Wiedergabe von acht Tönen ist, besteht das Schieberegister 4a-3 aus kaskadenförmig verbundenen Schieberegistern mit einer Wortbreite von 16 Bit.
Der LFO 4a-1 wird anhand der Fig. 9 und 10 im Detail beschrieben. Was Fig. 9 angeht, ist ein Binärzähler 60 vorgesehen, welcher aktiviert wird, um einen Takt CLK zu zählen, wenn und nur wenn ein Steuerdatum von der CPU 3 an den Eingangsanschluß ENABLE des Zählers angelegt wird (d. h., wenn Vibrato erzeugt wird). Zähldaten, die von den Bit-Ausgangsanschlüssen 1, 2, 4, 8, 16, 32 und 64 des Binärzählers 60 erzeugt werden, werden zu entsprechenden UND-Gattern 61-0 bis 61-6 in einer UND-Gattergruppe 61 geleitet. Das Durchschalten der UND-Gattergruppe 61 wird durch ein Steuersignal gesteuert, welches von einem Inverter 62 angelegt wird, welches eine Ausbildungsanweisung für eine Rechteckwelle invertiert. Die Ausgänge der UND-Gatter in der UND-Gattergruppe 61 sind je über Inverter 63 mit entsprechenden UND-Gattern in einer UND-Gattergruppe 64 verbunden. Ferner werden diese Ausgangssignale direkt zu den entsprechenden UND-Gattern in einer UND- Gattergruppe 65 geleitet.
Das Ausgangssignal aus dem höchstwertigen Ausgangsanschluß 128 des Binärzählers 60 (MSB) wird ebenfalls zu einem UND-Gatter 66 und auch zu einem UND-Gatter 66 und auch zu einem Übertragungsgatter 67-6 in einer Übertragungsgattergruppe 67 geleitet. Das UND- Gatter 66 wird durch das Ausgangssignal eines ODER-Gatters 68 durchgeschaltet, an welches die Ausbildungsanweisung für eine Rechteckwelle, wie oben erwähnt, und eine Ausbildungsanweisung für eine Dreieckwelle angelegt werden. Das Ausgangssignal des UND-Gatters 66 wird als Gatter- Steuersignal für die UND-Gattergruppe 64 verwendet. Ein Signal aus einem Inverter 69, welches das Ausgangssignal des UND-Gatters 66 invertiert, wird als Durchschalt- Steuersignal für eine UND-Gattergruppe 65 verwendet. Die Ausgangssignale der UND-Gattergruppen 64 und 65 werden über eine ODER-Gattergruppe 70 zu einer Übertragungsgattergruppe 67 geleitet. Die Übertragungsgattergruppe 67 wird direkt durch eine Sägezahn-Ausbildungsanweisung durchgeschaltet, während die Übertragungsgattergruppe 71 durch ein Signal von einem Inverter 72 durchgeschaltet wird, welcher die Ausbildungsanweisung für die Sägezahnwelle oder das Steuersignal für die Sägezahnwelle invertiert. Die Ausgangssignale der Übertragungsgattergruppen 67 oder 71 (welche 7-bit-Daten darstellen) dienen als Daten für die Erzeugung des Amplitudenpegels einer Dreieckswelle, einer Sägezahnwelle und einer Rechteckwelle, wie es je bei (b), (c) und (d) in Fig. 10 dargestellt ist; d. h., niederfrequente Signale mit einer dreieckigen, sägezahnförmigen oder rechteckigen Form werden entsprechend diesen Daten erzeugt. Ein Vibratoeffekt kann durch diese niederfrequenten Signale erzeugt werden. Die von dem LFO 4a-1 in dem Frequenz-Modulationsabschnitt 4a erzeugten Daten werden als niederwertige Bit-Daten des Datums α erzeugt. Die Daten α werden hier mit einer niedrigen Frequenz entsprechend der Betätigung des LFO 4a-1 variabel, welche später beschrieben wird. Im einzelnen zählt der Binärzähler 60 in Fig. 9 das Taktsignal CLK, wobei das Steuersignal von der CPU 3 zu dem Eingangsanschluß ENABLE geleitet wird. Die Zähldaten ändern sich von "0" bis "256" in einer Periode.
Wenn die Ausbildungsanweisung für die Dreieckswelle (d. h., bei "1") infolge der Betätigung eines entsprechenden Schalters in dem Schalterbereich 2 vorliegt, befindet sich der Ausgang des ODER-Gatters 68 auf dem logischen Pegel "1", und das UND-Gatter 66 ist in einem aktivierten Zustand. Wenn eine Sägezahnwellen-Ausbildungsanweisung und eine Ausbildungsanweisung oder ein Ausbildungssignal für eine Rechteckwelle beide "0" sind, liegt der Ausgangsanschluß des Inverters 62 auf dem logischen Pegel "1". Somit ist die UND-Gattergruppe 61 in einem aktivierten Zustand, die Transfer-Gattergruppe oder die Übertragungsgattergruppe 67 in einem deaktivierten Zustand und die Übertragungsgattergruppe 71 in einem aktivierten Zustand.
Während der Zeitdauer, während welcher der Bit-Ausgangsanschluß 128 des Binärzählers 60 sich auf einem logischen Pegel "0" befindet, d. h., in der ersten Hälfte einer Periode (während welcher sich die Zählerdaten von "0" zu "128" ändern), liegt somit der Ausgang des UND-Gatters 66 auf dem logischen Pegel "0". Während dieser Periode ist die UND-Gattergruppe 64 in einem deaktivierten Zustand, während die UND-Gattergruppe 25 in einem aktivierten Zustand ist. Somit werden für die erste Hälfte einer Periode die Zählerdaten von den Bit-Ausgangsanschlüssen 64 bis 1 des Binärzählers 60 (welches 7-bit-Daten sind) über die UND-Gattergruppen 61 und 65, die ODER-Gattergruppen 70 und die Übertragungsgattergruppe 71 geleitet. Die Ausgangsdaten sind somit gleich wie die Zählerstandsdaten des Binärzählers 60 und werden um je "1" erhöht.
Für den darauffolgenden Zeitabschnitt, während welches der Bit-Ausgangsanschluß 128 des Binärzählers auf "1" liegt, d. h., für die zweite Hälfte einer Periode (während welcher Hälfte sich die Zählerstandsdaten von "128" auf "256" ändern, erzeugt das UND-Gatter 66 ein Ausgangssignal mit dem Wert "1". Somit ist für die zweite Hälfte einer Periode die UND-Gattergruppe 64 in einem aktivierten Zustand, während die UND-Gattergruppe 65 in einem deaktivierten Zustand ist. Während dieses Zeitabschnittes werden Daten aus allen Bit-Ausgangsanschlüssen 64 bis 1 des Binärzählers 60 über die UND-Gattergruppe 61, die Invertergruppe 63, die UND-Gattergruppe 64, die ODER-Gattergruppe 70 und die Schalt-Gattergruppe 71 geleitet. Die Ausgangsdaten werden so je um 1 vermindert oder dekrementiert.
In obiger Weise wird ein niederfrequentes Dreieckssignal, wie es bei (b) in Fig. 10 dargestellt ist, erzeugt, welches für einen Vibratoeffekt erzeugt wird.
Wenn nur die Ausbildungsanweisung für die Sägezahnwelle vorliegt, ist nur die Übertragungsgattergruppe 67 in einem aktivierten Zustand, während die Übertragungsgattergruppe 71 sich in einem deaktivierten Zustand befindet. Ferner ist die UND-Gattergruppe 61 in einem aktivierten Zustand und das UND-Gatter 66 ist gesperrt. Somit ist die UND-Gattergruppe 64 in einem deaktivierten Zustand, und die UND-Gattergruppe 65 ist in einem aktivierten Zustand.
Für die erste Hälfte einer ganzen Periode (d. h., während der Zählerstandswert sich von "0" zu "128" ändert), werden Zählerstandsdaten von den Bit-Ausgangsanschlüssen des Binärzählers 60 über die UND-Gattergruppe 61 und die Übertragungsgattergruppe 67 geleitet. Die Ausgangsdaten erhöhen sich somit je um 1 von "0" bis "128" mit einer Hälfte des Anstiegs der Dreieckswelle.
Für die zweite Hälfte einer Periode (d. h., während die Zählerstandsdaten sich von "128" auf "256" ändern), ist das Ausgangssignal des MSB-Ausgangsanschlusses 128 des Binärzählers 60 auf dem logischen Pegel "1". Die Ausgangsdaten erhöhen sich somit je um 1 von "128" auf "256" mit der gleichen Steigung wie vorher von "0" auf "128".
In der obigen Weise wird ein Dreiecksignal mit einer tiefen Frequenz erzeugt, wie es bei (c) in Fig. 10 dargestellt ist.
Wenn nur die Ausbildungsanweisung für die Rechteckwelle anliegt, wird die UND-Gattergruppe 61 mittels eines "0"-Ausgangssignals des Inverters 62 deaktiviert gehalten, und ferner auch das UND-Gatter 66 aktiviert gehalten. Somit wird für die erste Hälfte einer ganzen Periode (während welcher die Zählerstandsdaten sich von "0" auf "128" ändern), der Bit-Ausgangsanschluß 128 zu "0", und das Ausgangssignal des UND-Gatters 66 wird auch zu "0". Somit wird die UND-Gattergruppe 64 gesperrt gehalten und die UND-Gattergruppe 65 wird aktiviert gehalten. Da die UND-Gattergruppe 61 gesperrt gehalten wird, werden die Ausgangssignale der UND-Gatter in der UND-Gattergruppe 65 alle zu "0", und die Ausgangssignale der UND-Gatter in der UND-Gattergruppe 64 werden alle zu "0". Somit sind für die erste Hälfte einer ganzen Periode die ausgegebenen Daten alle "0"-Daten.
Für die zweite Hälfte einer ganzen Periode (während welcher die Zählerstandsdaten sich von "128" auf "256" ändern), ist das Ausgangssignal des Bit-Ausgangsanschlusses 128 "1", so daß das Ausgangssignal des UND-Gatters 66 auch "1" ist. Somit wird die UND-Gattergruppe 64 aktiviert gehalten, und die UND-Gattergruppe 65 wird gesperrt gehalten. Dadurch wird wiederum das Ausgangssignal der UND-Gattergruppe 61, welches sich aus Daten zusammensetzt, die alle den logischen Wert "0" aufweisen, über die Invertergruppe 63 in Daten invertiert, welche alle den logischen Wert "1" aufweisen, welche über die UND- Gattergruppe 64, die ODER-Gattergruppe 70 und die Schaltgattergruppe 71 geleitet werden. Daraus ergibt sich, daß für die zweite Hälfte einer ganzen Periode die ausgegebenen Daten auf "127" gehalten werden (alles "1"). Somit kann ein niederfrequentes Signal in Form einer Rechteckwelle erhalten werden, wie es bei (d) in Fig. 10 dargestellt ist.
Da der LFO 4a-1 in der obigen Weise arbeitet, wenn der Wert der Daten α sich mit niedrigen Frequenzen ändert, ändert sich die Frequenz f₀ der Rechteckwelle entsprechend der Änderung der Daten α, wie es sich aus Gleichung (2) offensichtlich ergibt. Somit ist es möglich, einen Vibratoeffekt für den erzeugten Ton zu schaffen.
Die Funktion der Abstimmung hinsichtlich eines Tones, welcher auf der Rechteckwelle beruht, wird im folgenden beschrieben. In diesem Falle werden Daten, welche von dem Abstimm-Steuerabschnitt 4a-1 in dem Frequenz-Modulationsabschnitt 4a erzeugt werden, als niederwertige Bit-Daten der Daten α des B-Eingangsanschlusses des Volladdierers 15 geleitet. Der Abstimm-Steuerabschnitt 4a-2 addiert einen konstanten Wert zu dem richtigen Wert der Daten oder subtrahiert den konstanten Wert von diesem. Mathematisch gesehen ergibt sich
f₀ = a (Hz) (6)
und
wobei f₀ die Frequenz ist, bei welcher die Abstimmung erfolgt und f₀′ die Frequenz ist, wenn die Abstimmung um n(cent) getätigt ist.
Aus Gleichung (2) können die Gleichungen (6) und (7) als
und
umgeschrieben werden.
Aus den Gleichungen (6) bis (9) ergibt sich der Wert n zu
Es wird deutlich, daß durch Betätigung eines vorgegebenen Schalters die Frequenz f₀ des produzierten Tones um einen Cent entsprechend der Gleichung (10) verändert werden kann, also daß die Abstimmung ohne weiteres ermöglicht wird.
In Fig. 11 ist ein Blockdiagramm dargestellt, welches eine andere Ausführungsform der Erfindung zeigt, die Vibrato erzeugen kann. Hierbei werden Frequenz-Modulations- Codedaten α′ und Noten-Frequenzcodedaten 3′, welche aus der CPU 3 erzeugt werden, zu einem Durchschnittsfaktor- Frequenzarithmetikbereich 4b geleitet. Der Durchschnittsfaktor- Frequenzarithmetikbereich 4b ist ein Schaltkreis, der immer die Frequenzcodedaten β und α entsprechend dem Durchschnittsfaktor an den Wellengenerator 5 anlegt, unabhängig von der Frequenzmodulation.
Im folgenden werden verschiedene Beispiele des Aufbaus des Durchschnittsfaktor-Frequenzarithmetikbereiches 4b anhand der Fig. 12 bis 18 beschrieben. Fig. 12 stellt ein erstes Beispiel des Frequenzarithmetikbereiches 4b dar. Hierbei bestehen Noten-Frequenzcodedaten β′ und Frequenzmodulations-Codedaten α′ beide aus N Bits. Von den N-bit-Daten bezeichnen die unteren n Bits eine Tonhöhe, die tiefer als ein Halbton ist, die oberen vier Bits bezeichnen die Note; und die verbleibenden oberen N-n-4 Bits bezeichnen die Oktave. Die 4-bit-Daten, welche die Note bezeichnen, werden als Dezimalcode ausgedrückt, und die anderen Daten sind als Binärcode ausgedrückt.
Die (N-n-4)-bit-Daten, welche die Noten-Frequenzcodedaten β′ und die Frequenzmodulations-Codedaten α′ darstellen, werden beide zu einem binären Addierer/Subtrahierer 81 geleitet. Die 4-bit-Daten, welche die Note bezeichnen, werden beide zu einem duodezimalen Addierer/ Subtrahierer 82 geleitet, und die niederwertigen n-bit- Daten, welche die Tonhöhe bezeichnen, die niedriger als ein Halbton ist, werden zu einem binären Addierer/Subtrahierer 83 geleitet. Der binäre Addierer/Subtrahierer 81, der duodezimale Addierer/Subtrahierer 82 und der binäre Addierer/Subtrahierer 83 führen eine Addition oder eine Subtraktion ihrer Eingangsdaten entsprechend einem Addier/Subtrahier-Befehl (-) aus, welcher von der CPU 3 angelegt ist. Der Carry-Ausgang oder der Übertragungsausgang des binären Addierer/Subtrahierers 83 wird von einem Anschluß C0 desselben erzeugt und an einen Anschluß Cin des duodezimalen Addierer/Subtrahierer 82 geleitet. Der Carry-Ausgang des duodezimalen Addierer/Subtrahierers 82 wird an einem Anschluß C0 desselben erzeugt und zu einem Anschluß Cin in dem binären Addierer/Subtrahierer 81 geleitet. Die Ergebnisdaten des binären Addierer/Subtrahierers 81 und des duodezimalen Addierer/Subtrahierers 82 werden als Adreßdaten zu einem ROM 84 geleitet. Die Ergebnisdaten des binären Addierer/Subtrahierers 83 werden als Adreßdaten zu einem ROM 85 geleitet. In dem ROM 84 werden Noten-Frequenzcodedaten β entsprechend dem Durchschnittsfaktor gespeichert, und in dem ROM 85 werden Frequenzmodulations-Codedaten α für einen Halbton (für 100 Cent) entsprechend dem Durchschnittsfaktor als Exponentialfunktionsdaten abgespeichert. Die Noten-Frequenzcodedaten β und die Frequenzmodulations-Codedaten α werden aus den ROMs 84 und 85 ausgelesen und werden beide zu dem Wellengenerator 5 geleitet.
In Fig. 13 ist ein Beispiel dargestellt, in welchem die Notenfestlegungsdaten mit einer Wortlänge von 4 Bit, die in dem Beispiel von Fig. 12 als Duodezimalcode ausgedrückt sind, als Binärdaten ausgedrückt sind. In diesem Falle werden die Noten-Frequenzcodedaten β′, die Frequenzmodulations- Codedaten α′ und die Additions/Subtraktions- Anweisung (-) an einen einzelnen binären Addierer/Subtrahierer 86 angelegt. Die oberen (N-n)-bit-Daten von den Ergebnisdaten der Durchschnittsfaktor-Frequenzverarbeitung, die in dem binären Addierer/Subtrahierer 86 ausgeführt wird, werden als Adreßdaten an ein ROM 87 angelegt, während die unteren n-bit-Daten auch als Adreßdaten an ein ROM 88 angelegt werden. Das ROM 87 weist die gleiche Funktion wie das ROM 84 auf, und das ROM 88 weist die gleiche Funktion wie das ROM 85 auf. Die Noten-Frequenzcodedaten β werden von dem ROM 84 ausgelesen, und die Frequenzmodulations-Codedaten α werden aus dem ROM 88 ausgelesen.
In Fig. 14 ist ein Beispiel dargestellt, in welchem das ROM 88 in dem Beispiel von Fig. 13 durch einen binären Addierer/Subtrahierer 89 ersetzt wurde. Hier sind beide Noten-Frequenzcodedaten β′ und Frequenzmodulations- Codedaten α′ als Binärcode ausgedrückt, welcher zu dem binären Addierer/Subtrahierer 86 geleitet wird, welcher die gleiche Funktion wie der binäre Addierer/Subtrahierer 86 in Fig. 13 aufweist. Die oberen (N-n)-bit- Daten der Ergebnisdaten des binären Addierer/Subtrahierers 86 werden zu dem ROM 87 geleitet, welches die gleiche Funktion wie das ROM 87 an dem Beispiel von Fig. 13 für das Auslesen der Noten-Frequenzcodedaten β aufweist. Die niederwertigen n-bit-Daten Y werden zu dem binären Addierer/Subtrahierer 89 geleitet. Zu dem binären Addierer/ Subtrahierer 89 werden auch Daten X geleitet, die einen Wert gleich den Frequenzmodulations-Codedaten α in dem Fall aufweisen, wo Frequenzmodulation auftritt. Die Ergebnisdaten X±Y des binären Addierer/Subtrahierers 89 werden als Frequenzmodulations-Codedaten α erzeugt.
Der Wert der Daten X, der aus der CPU 3 erzeugt wurde, wird somit ausgewählt, um die folgende Bedingung zu erfüllen:
In dem Falle, daß N beispielsweise gleich 8 ist, so daß der binäre Addierer/Subtrahierer 89 als Addierer arbeitet, wenn die Daten Y (die Werte zwischen "0" und "63" annehmen können) "63" betragen, so ergibt sich aus Gleichung (11):
Somit wird ein Wert von "1509" als der Wert der Daten X von der CPU 3 erzeugt.
In diesem Beispiel ändern sich Signale, die kleiner als der Halbton sind, linear; dieses ergibt jedoch in der Praxis keine Probleme.
In Fig. 15 ist ein Beispiel dargestellt, in welchem der binäre Addierer/Subtrahierer 89 in dem Beispiel von Fig. 14 durch einen Decoder 90 ersetzt wurde. Hierbei wurde der Hardwareaufbau weiter vereinfacht. Der binäre Addierer/Subtrahierer 86 weist die gleiche Funktion wie der binäre Addierer/Subtrahierer 86 in dem Beispiel von Fig. 22 auf, und das ROM 87 weist die gleiche Funktion wie das ROM 87 in dem Beispiel von Fig. 14 auf. Von den Ergebnisdaten aus dem binären Addierer/Subtrahierer 86 werden die niederwertigen n-bit-Daten zu dem Decoder 90 geleitet, während die Ausgangsdaten Y des Decoders 90 und die Daten X als Frequenzmodulations-Codedaten vorgesehen sind.
Von den Daten X sind die niederwertigen n-bit-Daten allesamt "0". Somit ergibt sich die Gleichung:
Die Daten Y ergeben sich somit:
Als Beispiel sei der Fall betrachtet, bei welchem n = 6 ist, so daß die niederwertigen 6-bit-Daten sich alle auf dem logischen Wert "0" befinden, während X ist:
X = 1111000000 (= "960")
In diesem Falle ergibt sich Y aus Gleichung (13) zu "56". Der Decoder 90 kann so aufgebaut werden, daß sein Ausgangssignal (d. h., das Datum Y) einen Wert von "0" bis "56" entsprechend den niederwertigen 6-bit-Daten des Ausgangssignales des binären Addierer/Subtrahierers 86 annimmt. Dieses Decoder-Ausgangssignal wird zu den niederwertigen 6 Bit der Daten X addiert, um die Frequenzmodulations- Codedaten α zu erzeugen. Auf diese Art kann die Tonhöhe von 0 bis 100 Cent verändert werden, d. h., bis zu dem maximalen Halbton, wenn die Daten Y von "0" bis "56" verändert werden.
Als weiteres Beispiel ergibt sich für Y, wenn X lautet:
X = 1101000000 (= "832"),
0 Y 48.
In Fig. 16 ist ein Beispiel dargestellt, bei welchem die Frequenzmodulations-Codedaten α′ das Produkt eines Vibrato-Wellenformsignales und eines Vibratotiefen-Festlegungssignales ist. Hier wird das Vibratowellenformsignal von einem - nicht dargestellten - Generator zur Erzeugung einer genau bestimmten Wellenform unter Steuerung der CPU 3 erzeugt, während das Vibrato-Tiefenfestlegungssignal durch Betätigung eines vorgegebenen Schalters in dem Schalterbereich 2 erzeugt wird. Das Vibrato- Wellenformsignal und das Vibratotiefen-Festlegungssignal werden miteinander in einem Multiplizierer 21 multipliziert. Von den Ergebnisdaten aus dem Multiplizierer 91 werden die unteren Bitseitendaten entsprechend einem Halbton durch einen Gatterschaltkreis G zu einer Durchschnittsfaktor- Frequenzarithmetikeinheit 92 geleitet, welche durch ein von der CPU 3 erzeugtes Steuersignal a durchgeschaltet wird. Die Daten der oberen Bitseite der Ergebnisdaten werden direkt, zusammen zu den Frequenzmodulations- Codedaten α′, zu der Durchschnittsfaktor- Frequenzarithmetikeinheit 92 geleitet. Die Notenfrequenz- Codedaten β′ werden ferner zu der Durchschnittsfaktor- Frequenzarithmetikeinheit 92 geleitet. Die Durchschnittsfaktor- Frequenzarithmetikeinheit 92 kann der in Fig. 13 dargestellte Schaltkreis sein.
In dem Falle, wenn der Gatterschaltkreis G mit einem an ihn angelegten "0"-Signal, wie dem Steuersignal a, gesperrt wird, sind die Daten der unteren Bitseite entsprechend dem Halbton in den Frequenzmodulations-Codedaten α′ alle "0". Mit diesen Frequenzmodulations- Codedaten α′, welche zu der Durchschnittsfaktor-Frequenzarithmetikeinheit 92 geleitet werden, "an" eine Vibratowellenform, die halbtonweise variiert, entsprechend den Notenfrequenzcodedaten β′ und den Frequenzmodulationscodedaten α′ erhalten werden, welche von der Durchschnittsfaktor- Frequenzarithmetikeinheit 92 erzeugt werden.
In Fig. 17 ist ein Beispiel dargestellt, das Portamento- Spiel nur während der einstimmigen oder monophonen Spielweise erlaubt. Hierbei wird ein NEW KEY CODE, welcher erzeugt wird, wenn eine neue Taste eingeschaltet wird, als Code für eine neue betätigte Taste zu einem Anschluß T eines Komparators 93 geleitet. Zu diesem Zeitpunkt ist ein Code entsprechend der vorher eingeschalteten Taste von einem Flip-Flop 96 zu einem Anschluß S des Komparators 93 zurückgeleitet worden. Der Komparator 93 vergleicht die Größen der Codes an den Anschlüssen T und S. Wenn der Code an dem Anschluß T kleiner als der Code an dem Anschluß S ist, d. h., wenn die Tonhöhe des Tones der neuen Taste kleiner als die der vorherigen Taste ist, wird ein "1"-Signal von einem Anschluß S<T erzeugt, welcher zu dem Steueranschluß (-) des binären Addierer/Subtrahierers 95 zu leiten ist und dort eine Subtraktion des binären Addierer/Subtrahierers 95 bewirkt. Wenn der Code an dem Anschluß T größer als der Code an dem Anschluß S ist, d. h., wenn die Tonhöhe des Tones der vorher betätigten Taste höher als die der neuen Taste ist, wird ein "0"- Signal von einem Anschluß S<T erzeugt, welches zu dem Steueranschluß (-) des binären Addierer/Subtrahierers 95 geleitet wird und dort eine Addition des binären Addierer/ Subtrahierers 95 bewirkt. Wenn die Codes an den Anschlüssen T und S nicht übereinstimmen, erzeugt der Komparator 93 ferner ein "1"-Signal an dem Anschluß S≠T, um das UND-Gatter 94 zu aktivieren. Wenn die beiden Codes übereinstimmen, erzeugt der Komparator 93 ein "0"-Signal, um das UND-Gatter 94 zu sperren. Ein Signal EXECUTE (Ausführung) wird periodisch an das UND-Gatter 94 angelegt. Während das UND-Gatter 94 aktiviert ist, wird dieses Signal als ein "+1"-Signal oder als ein "-1"-Signal an den binären Addierer/Subtrahierer 95 angelegt. Die einem Halbton entsprechenden niederwertigen n-bit-Daten von den N-bit-Daten, die in dem Flip-Flop 96 zwischengespeichert sind, werden über den Gatterschaltkreis G an den binären Addierer/Subtrahierer 95 angelegt. Die höherwertigeren (N-n)-bit-Daten der n-bit-Daten werden direkt zu dem binären Addierer/Subtrahierer 96 zurückgeleitet bzw. rückgekoppelt. Der binäre Addierer/Subtrahierer 95 führt eine "+1"- oder eine "-1"-Inkrementierung der Daten aus dem Flip-Flop 96 jedesmal dann aus, wenn das Signal EXECUTE angelegt wird. Die Ergebnisdaten werden zu dem Flip-Flop 96 geleitet. Die oberen (N-n)-bit-Daten von den N-bit-Daten, die von dem Flip-Flop 96 erzeugt werden, werden zu einem ROM 97 geleitet, wodurch die Noten-Frequenzcodedaten β aus dem ROM 97 ausgelesen werden. Die niederwertigen n-bit-Daten der N-bit-Daten werden zu einem ROM 98 geleitet, wodurch die Frequenzmodulations- Codedaten aus dem ROM 98 ausgelesen werden. Der Gatterschaltkreis G wird durch das Steuersignal a durchgeschaltet.
Wie es dargestellt ist, führt der Addierer/Subtrahierer 95 mit dem Aufbau gemäß Fig. 17 eine Subtraktion aus, wenn die Tonhöhe des Tones entsprechend einer neuerlich betätigten Taste geringer als die entsprechend der vorher betätigten Taste ist, während der binäre Addierer/ Subtrahierer 95 eine Addition ausführt, wenn die Tonhöhe der neuen Taste höher ist als die der vorherigen Taste. Somit kann der Portamento-Effekt erzeugt werden. Wenn das Steuersignal a als "0"-Signal erzeugt wird, kann ein Portamento-Effekt erreicht werden, der für jeden Halbton variiert.
In Fig. 18 ist ein Beispiel dargestellt, in welchem ein Gleiteffekt erzeugt werden kann. Wenn eine neue Taste eingeschaltet wird, wird hier der entsprechende NEW KEY CODE direkt an einen Anschluß T eines Komparators 99 und auch an einen binären Addierer/Subtrahierer 100 über einen Gatterschaltkreis G1 angelegt. Zur gleichen Zeit werden Gleit-Weiten-Daten (glide width data) an den binären Addierer/ Subtrahierer 100 über einen Gatterschaltkreis G2 angelegt. Ferner wird ein Signal auf/ab über ein Transfergatter 104 an einen Steueranschluß (-) des binären Addierers/ Subtrahierers 100 angelegt. Der binäre Addierer/Subtrahierer 100 führt zu dieser Zeit eine Gleit-Weiten- Subtraktion hinsichtlich des Codes NEW KEY CODE aus, wenn das Signal auf/ab ein "auf"-Befehl ist (d. h., wenn ein "1"- Signal), während der Addierer/Subtrahierer 100 eine Gleit-Weiten-Addition hinsichtlich des Codes NEW KEY CODE ausführt, wenn das Signal auf/ab ein "ab"-Befehl ist (d. h., ein "0"-Signal). Die Ergebnisdaten werden zu einem Flip-Flop 96 geleitet. Nachdem die Taste eingeschaltet worden ist, werden die in dem Flip-Flop 96 abgespeicherten Ergebnisdaten direkt zu einem Anschluß S des Komparators 99 und auch zu einem binären Addierer/ Subtrahierer 100 über einen Gatterschaltkreis G3 geleitet. Ferner werden von den Ergebnisdaten die oberen (N-n)-bit-Daten zu einem ROM 97 geleitet, wodurch die Tonfrequenz-Codedaten β aus dem ROM 97 ausgelesen werden. Die niederwertigen n-bit-Daten der N-bit-Daten werden zu einem ROM 98 geleitet, wodurch die Frequenzmodulations- Codedaten α aus dem ROM 98 ausgelesen werden. Ein Ergebnissignal, welches aus dem Komparator 99 als Ergebnis des Vergleiches der Eingangsdaten an den Anschlüssen S und T des Komparators 99 erhalten wurde, wird ferner von einem S<T-Terminal des Komparators 99 über ein Übertragungsgatter 105 zu dem Steueranschluß (-) des binären Addierers/Subtrahierers 100 geleitet. Ein Signal EXECUTE wird ferner über ein UND-Gatter 102 und ein Übertragungsgatter 103 zu dem binären Addierer/Subtrahierer 100 geleitet. Nachdem die Taste eingeschaltet wurde, führt somit der binäre Addierer/Subtrahierer 100 eine Addition oder eine Subtraktion hinsichtlich der Ergebnisdaten aus dem Flip-Flop 69 jedesmal dann aus, wenn das Signal EXECUTE angelegt wird. Wenn der Komparator 99 die Übereinstimmung oder Koinzidenz der Eingangsdaten an den Anschlüssen S und T erfaßt, wird die Addition oder Subtraktion des binären Addierers/Subtrahierers 100 abgebrochen, um die Erzeugung des Gleiteffektes bzw. Glissandos zu stoppen.
Wenn die zwei Eingangsdaten an den Anschlüssen S und T des Komparators 99 nicht übereinstimmen, erzeugt der Komparator 99 ein "1"-Signal an seinem S≠T-Anschluß. Wenn die beiden Eingangsdaten übereinstimmen, erzeugt der Komparator 99 ein "0"-Signal an dem gleichen Anschluß. Die "1"- oder "0"-Signale werden zu dem UND-Gatter 102 geleitet. Wenn eine Taste gedrückt ist, wird ferner ein Einzelimpulssignal NEW KEY ON an die Gatterschaltkreise G1 und G2 und das Übertragungsgatter 104 angelegt, um diese Gatterschaltkreise und das Übertragungsgatter zu aktivieren. Das Signal NEW KEY ON wird ferner an einen Inverter 102 angelegt, dessen Ausgangssignal zu dem Gatterschaltkreis G3 und den Übertragungsgattern 103 und 105 geleitet wird, um diese Gatterschaltkreise und Übertragungsgatter zu aktivieren. Das Signal auf/ab und die Gleit-Breiten-Daten werden erzeugt, wenn die entsprechenden Schalter in dem Schalterbereich 2 betätigt werden.
Im folgenden wird die Funktionsweise beschrieben, die stattfindet, wenn Vibrato für einen erzeugten Ton über Frequenzmodulation vorgesehen ist. In diesem Falle führt der Durchschnittsfaktor-Frequenzarithmetikabschnitt 4b, der einen verschiedenartigen Aufbau haben kann, wie es bei Fig. 12 bis 18 dargestellt ist, einen Arbeitsablauf aus, der von dem Fall verschieden ist, bei welchem keine Frequenzmodulation durchgeführt wird, und der Frequenzarithmetikabschnitt 4b erzeugt Noten-Frequenzcodedaten β und Daten, welche nicht konstant sind, sondern sich in der ganzen Zeitperiode ändern, d. h., die Frequenzmodulations- Codedaten α, und legt sie an den Wellengenerator 5 an.
In dem Falle von Fig. 12 werden die Notenfrequenz-Codedaten β′, die Frequenzmodulations-Codedaten α′, die beide von der CPU 3 als N-bit-Daten erzeugt werden, und die unteren n-bit-Daten zu dem binären Addierer/Subtrahierer 83 geleitet, die oberen 4-bit-Daten werden als duodezimale Codedaten zu dem duodezimalen Addierer/Subtrahierer 82 geleitet, und die oberen (N-n-4)-bit-Daten werden zu dem binären Addierer/Subtrahierer 81 geleitet. In den Addierern/ Subtrahierern 81 bis 83 wird entweder eine Addition oder eine Subtraktion in Abhängigkeit davon ausgeführt, ob ein Additions- oder Subtraktionsbefehl von der CPU 3 anliegt. In diesem Falle wird das Ausgangssignal am Carry- Ausgang von dem binären Addierer/Subtrahierer 82 an den Anschluß Cin des binären Addierers/Subtrahierers 82 angelegt, und das Carry-Ausgangssignal des binären Addierers/ Subtrahierers 82 wird an den Anschluß Cin des binären Addierers/Subtrahierers 91 angelegt. Die Ergebnisdaten aus dem binären Addierer/Subtrahierer 81 und 82 werden an das ROM 84 angelegt, wodurch die Noten-Frequenzcodedaten β aus dem ROM 84 entsprechend den Noten der betätigten Taste angelegt werden. Unterdessen sind die Ergebnisdaten des binären Addierers/Subtrahierers 83 zu dem ROM 85 geleitet worden, wodurch die Frequenzmodulations- Codedaten α für die Variation der Frequenz des erzeugten Tones bis herauf zu dem Halbton entsprechend dem Durchschnittsfaktor aus dem ROM 85 ausgelesen werden. Aus den Gleichungen (2), (5) wird ersichtlich, daß mit Änderungen der Frequenzmodulations-Codedaten α die Frequenz f₀ des erzeugten Tones verändert wird, wodurch eine Frequenzmodulation erzielbar ist, welche Vibrato od. dgl. erzeugen kann.
Im Falle von Fig. 13 werden daher die Noten-Frequenz- Codedaten β′ und die Frequenzmodulations-Codedaten α′ als Binärdaten ausgedrückt, und der binäre Addierer/Subtrahierer 86 addiert oder subtrahiert die zwei Codedaten β′ und α′. Von den Ergebnisdaten werden die oberen (N-n)-bit-Daten zu dem ROM 87 geleitet, und die unteren n-bit-Daten werden zu dem ROM 88 geleitet. Somit werden die Noten-Frequenz-Codedaten β entsprechend der Note aus dem ROM 87 ausgelesen, und die sich ändernden Frequenzmodulations- Codedaten α werden aus dem ROM 88 ausgelesen.
In dem Falle von Fig. 14 addiert oder subtrahiert der binäre Addierer/Subtrahierer 86 die Noten-Frequenzcodedaten β′ und die Frequenzmodulations-Codedaten α′. Die oberen (N-n)-bit-Daten aus dem Ergebnis werden an das ROM 87 angelegt, während die tieferen n-bit-Daten Y an den binären Addierer/Subtrahierer 89 angelegt werden. Somit werden die Noten-Frequenzcodedaten β aus dem ROM 87 entsprechend der Note ausgelesen. Unterdessen werden Daten X, die den gleichen Wert wie die Frequenzmodulations- Codedaten α aufweisen, wenn eine Frequenzmodulation nicht vorgesehen ist (ein konstanter Wert), von der CPU 3 erzeugt und an den binären Addierer/Subtrahierer 89 angelegt. Die Daten X werden entsprechend Gleichung (11) berechnet. Die Frequenzmodulations-Codedaten α, die auf den Ergebnisdaten X+Y oder X-Y des binären Addierers/Subtrahierers 89 beruhen, werden somit erhalten.
In dem Falle von Fig. 15 empfängt der binäre Addierer/ Subtrahierer 86, wie der binäre Addierer/Subtrahierer 86 in dem Falle von Fig. 14, die Tonfrequenz-Codedaten β′, die Frequenzmodulations-Codedaten α′ und das Addier- oder Subtrahier-Kommando. Die oberen (N-n)-bit- Daten der Ergebnisdaten werden an das ROM 87 angelegt, und die unteren n-bit-Daten werden an den Decoder 90 angelegt. Somit werden die Noten-Frequenzcodedaten 3 entsprechend der Note aus dem ROM 87 ausgelesen. Unterdessen erzeugt der Decoder 90 die Daten Y, die entsprechend der Gleichung (13) unter Berücksichtigung dessen berechnet wurden, daß die Daten X einen Wert haben, wenn die unteren n-bit-Daten alle "0" sind.
Die Daten, die so durch Addition der Daten Y zu den niederwertigen Bitseitendaten der X-Daten ermittelt wurden, werden als Frequenzmodulations-Codedaten α erzeugt. Somit wird Frequenzmodulation entsprechend den Frequenzmodulations- Codedaten α bewirkt, die sich entsprechend den Daten Y ändern.
In dem Falle von Fig. 16 wird die Vibratotiefe durch Betätigung eines ent 10508 00070 552 001000280000000200012000285911039700040 0002003249738 00004 10389sprechenden Schalters in dem Schalterbereich 2 festgelegt. Wenn kein Vibrato um einen halben Ton vorgesehen ist, wird ein betreffender Schalter entsprechend betätigt, um ein "1"-Signal als das Signal a für die Aktivierung des Gatterschaltkreises G zu erzeugen. Nachdem die Taste eingeschaltet worden ist, werden die Noten-Frequenzcodedaten β′ für diese Taste erzeugt und zu dem Mittelwert-Frequenzarithmetikabschnitt 92 geleitet. In dem Multiplizierer 91, wird das Vibrato-Wellenformsignal und das Vibratotiefen-Festlegungssignal multipliziert. Von den Ergebnisdaten werden die oberen Bitseitendaten direkt zu der Durchschnittsfaktor-Frequenzarithmetikeinheit 92 geleitet, während die Daten der unteren Bitseite entsprechend dem Halbton als Frequenzmodulationscodedaten α′ über den Gatterschaltkreis G an die Durchschnittsfaktor-Frequenzarithmetikeinheit 92 angelegt werden. Die Durchschnittsfaktor-Frequenzarithmetikeinheit 92 erzeugt somit die Durchschnittsfaktor- Frequenzberechnung entsprechend der Funktion des Schaltkreises in Fig. 13 und erzeugt die Noten-Frequenz-Codedaten β und die Frequenzmodulations-Codedaten α. Das Vibrato ändert sich somit mit der gleichen Tiefe, wird ein geeigneter Schalter entsprechend betätigt, um ein "0"-Signal als das Signal a zu erzeugen, um den Gatterschaltkreis G zu deaktivieren. Somit werden die Daten der unteren Bitseite von den Ergebnisdaten, welche von dem Multiplizierer 91 erzeugt wurden, entsprechend dem Halbton als Daten, welche jeweils alle den Pegel "0" aufweisen, zu der Durchschnittsfaktor-Frequenzarithmetikeinheit 92 geleitet. Die Frequenzmodulations-Codedaten α, die von der Durchschnittsfaktor-Frequenzarithmetikeinheit 92 erzeugt wurden, ändern sich so hinsichtlich ihres Wertes, so daß sie Vibrato mit einer Schwankungsbreite von einem Halbton erzeugen.
Der Schaltkreis im Falle von Fig. 17 wird betrieben, wenn ein Portamentoeffekt beim monophonen Abspielen erreicht werden soll. Wenn eine neue Taste eingeschaltet wurde, nachdem die alte Taste abgeschaltet worden ist, wird der entsprechende Code NEW KEY CODE vorgesehen und zu einem Anschluß T des Komparators 92 geleitet. Zu dieser Zeit tritt der Code entsprechend der vorher betätigten Taste an dem Anschluß S des Komparators 93 auf. Der Komparator 93 vergleicht somit die Größen der beiden Codes. Wenn die Tonhöhe des Tones der vorherigen Taste tiefer als die der neuen Taste ist, schafft der Komparator 93 ein "1"- Signal von seinen Anschlüssen S<T. Dieses "1"-Signal wird als Subtraktionskommando zu dem Steueranschluß (-) des binären Addierers/Subtrahierers 95 geleitet. Auch erzeugt der Komparator 93 ein "1"-Signal aus dem Anschluß S≠T, um das UND-Gatter 94 zu aktivieren. Somit wird jedesmal, wenn ein Signal EXECUTE über das UND-Gatter 94 zu dem binären Addierer/Subtrahierer 95 geleitet wird, der binäre Addierer/Subtrahierer 95 eine Inkrementierung "-1" ausführen, um den Code der vorherigen Taste um "1" zu dekrementieren.
Es sein angenommen, daß das Signal "1" ist. Somit werden die oberen (N-n)-bit-Daten der Ergebnisdaten bei der oben erwähnten Subtraktion zu dem ROM 97 geleitet, während die unteren n-bit-Daten zu dem ROM 98 geleitet werden, wodurch die Noten-Frequenzcodedaten β und die Frequenzmodulationscodedaten α ausgelesen werden. In diesem Falle ändert sich der Frequenzmodulationscode nach und nach zu niedrigen Frequenzen entsprechend dem Durchschnittsfaktor. Wenn das oben erwähnte Signal a "0" ist, ändern sich die Frequenzmodulations-Codedaten α um den Betrag eines Halbtones zu niedrigeren Frequenzen. Wenn der Komparator 93 die Übereinstimmung der beiden Codes an den Anschlüssen S und T erfaßt, erzeugt der Komparator 93 ein "0"-Signal an seinem Anschluß S≠T, um das UND-Gatter 94 zu sperren und bricht somit die Subtraktionsfunktion des binären Addierers/Subtrahierers 95 ab. Durch den oben beschriebenen Arbeitsablauf wird die Portamentofunktion von der hohen zu der niedrigen Tonseite vervollständigt.
Wenn die Tonhöhe der neuen Taste höher als die Tonhöhe der vorherigen Taste ist, erzeugt der Komparator 93 ein "0"-Signal an seinem Anschluß S<T, und "0" wird als Addier- Befehl zu dem binären Addierer/Subtrahierer 95 geleitet. Der binäre Addierer/Subtrahierer 95 arbeitet durch "+1"-Inkrementierung, bis die beiden Daten an den Anschlüssen S und T übereinstimmen. Dementsprechend werden die Noten-Frequenzcodedaten β entsprechend der Note der betätigten Taste aus dem ROM 97 erzeugt, und der Frequenzmodulationscode α wird aus dem ROM 98 erzeugt und ändert sich zunehmend zu höheren Frequenzen entsprechend dem Durchschnittsfaktor. Wenn ein "0"-Signal als das Signal erzeugt wird, ändern sich die Frequenzmodulations-Codedaten α halbtonweise zu zunehmenden Frequenzen. Die Änderungsgeschwindigkeit der Noten ist über den gesamten Bereich fest.
Im Falle von Fig. 18 wird, um einen "Aufwärts"- oder "Auf"- Gleiteffekt zu erreichen, der betreffende Schalter in dem Schalterbereich 2 entsprechend betätigt. Auch wird die Gleit-Breite durch den entsprechenden Schalter spezifiziert. Wenn eine Taste in diesem Zustand eingeschaltet wird, wird ein Einzelimpulssignal NEW KEY ON (d. h., ein "1"-Signal) erzeugt, um die Gatterschaltkreise G1 und G2 und das Übertragungsgatter 104 zu aktivieren. Somit arbeitet der binäre Addierer/Subtrahierer 100 als ein Subtrahierer, wenn ein Einzelimpulssignal NEW KEY ON erzeugt wird. Mit der - wie oben beschrieben - eingeschalteten Taste wird der Code NEW KEY CODE durch den Gatterschaltkreis G1 zu dem binären Addierer/Subtrahierer 100 geleitet. Die Gleit-Breitendaten werden auch zu dem binären Addierer/ Subtrahierer 100 über den Gatterschaltkreis G2 geleitet. Der binäre Addierer/Subtrahierer 100 subtrahiert die Gleit-Breitendaten von dem Code NEW KEY CODE als Ergebnisdaten werden zu dem Flip-Flop 96 geleitet.
Mit dem Auftreten des Einzelimpulssignales NEW KEY ON wird der Ausgang des Inverters 101 auf "1" invertiert, um die Übertragungsgatter 103 und 105 und den Gatterschaltkreis G3 zu aktivieren. Somit werden die Ergebnisdaten zu dem Anschluß S des Komparators 99 geleitet, und auch zu dem binären Addierer/Subtrahierer über den Gatterschaltkreis G3. Darauf folgend vergleicht der Komparator 99 die Daten an den Anschlüssen S und T und erzeugt ein "0"-Signal an seinem S<T-Anschluß. Das "0"-Signal wird als ein Additionsbefehl über das Übertragungsgatter 105 zu dem Steueranschluß (-) des binären Addierer/Subtrahierers 100 geleitet. Der Komparator 99 erzeugt auch ein "1"-Signal an seinem Anschluß S<T, um das UND-Gatter 102 zu aktivieren. Das Signal EXECUTE wird durch das UND-Gatter 102 geleitet, um über das Übertragungsgatter 103 zu dem binären Addierer/Subtrahierer 100 geleitet zu werden. Der binäre Addierer/Subtrahierer 100 führt eine Inkrementierung um "+1" hinsichtlich der oben erwähnten Ergebnisdaten jedesmal dann aus, wenn das Signal EXECUTE angelegt wird. Die oberen (N-n)-bit-Daten der Ergebnisdaten werden an das ROM 97 angelegt, während die unteren n-bit-Daten an das ROM 98 angelegt werden. Somit werden die Noten- Frequenzcodedaten β aus dem ROM 97 ausgelesen. Auch werden die Frequenzmodulations-Codedaten α, welche sich zu dem höheren Frequenzen hin entsprechend dem Durchschnittsfaktor ändern, aus dem ROM 98 ausgelesen. Somit kann der "Auf"-Gleit-Effekt erreicht werden. Wenn der Komparator 99 die Koinzidenz der Daten an den Anschlüssen S und T erfaßt, erzeugt er ein "0"-Signal an dem Anschluß S≠T, um das UND-Gatter 102 zu sperren. Somit wird die Wirkungsweise des Aufwärtsgleiteffektes abgebrochen.
Um den "Abwärts"-Gleiteffekt zu erreichen, wird der betreffende Schalter entsprechend betätigt. Wenn eine Taste in diesem Zustand eingeschaltet wird, führt der binäre Addierer/Subtrahierer 100 in Antwort auf das Einzelimpulssignal NEW KEY ON eine Gleit-Breiten-Addition entsprechend dem Code NEW KEY CODE aus. Die Ergebnisdaten werden an das Flip-Flop 96 angelegt. Darauf folgend führt der binäre Addierer/Subtrahierer 100 eine Inkrementierung um "-1" der Ergebnisdaten aus, um dieselben um "1" jedesmal dann zu dekrementieren, wenn das Signal EXECUTE angelegt wird. Somit werden die Noten-Frequenzcodedaten β aus dem ROM 97 ausgelesen, während die Frequenzmodulations- Codedaten α, die sich zu den tieferen Frequenzen entsprechend dem Durchschnittsfaktor ändern, aus dem ROM 98 ausgelesen werden. Auf diese Weise kann der "Abwärts"- Gleiteffekt erreicht werden. Die Änderungsgeschwindigkeit der Noten ist über den ganzen Frequenzbereich 1 eingestellt.
Mit der obigen Ausführungsform gemäß Fig. 11 wird die Notenfrequenz durch Verarbeitung in dem digitalen Schaltkreis festgelegt, und es ist möglich, eine einheitliche Frequenzmodulation über die Plusseite und die Minusseite über eine einfache Verarbeitung zu erreichen. Da der Portamento- Effekt und der Gleiteffekt ohne weiteres erzeugt werden können, kann nebenbei bemerkt eine einheitliche Frequenzmodulation über die Plus- und Minusseiten entsprechend dem Durchschnittsfaktor erreicht werden. Somit ist es möglich, einen sehr natürlichen Vibratoeffekt zu erhalten, wie auch einen natürlichen Portamento- und Gleit- bzw. Glissandoeffekt. Ferner ist die Verarbeitung so einfach, daß das Hardwareaufbau einfach gehalten sein kann, was zur Verminderung der räumlichen Abmessungen des elektronischen Musikinstrumentes beiträgt.

Claims (6)

1. Tonsignal-Erzeugungsvorrichtung für ein elektronisches Musikinstrument, mit:
einer Vorrichtung zur Ausgabe von Frequenzdaten entsprechend einer auf einer Tastatur betätigten Taste;
einer Arithmetikvorrichtung, mit welcher ein Ausgangssignal entsprechend der von der Frequenzdatenausgabevorrichtung ausgegebenen Frequenzdaten erhaltbar ist, dadurch gekennzeichnet, daß
die Frequenzdaten-Ausgabevorrichtung eine Vorrichtung (4b) zum Konvertieren der Frequenzdaten in ein erstes Frequenzdatum (β) entsprechend einer Frequenz eines Halbtons oder mehr und ein zweites Frequenzdatum (α) entsprechend einer Frequenz eines Halbtons oder weniger aufweist, wobei die Tonsignal-Erzeugungsvorrichtung weiterhin umfaßt:
eine Vorrichtung (15, 17) zum wiederholten kumulativen Subtrahieren/ Addieren des zweiten Frequenzdatums (α) von/zu einem Anfangswert, der von dem ersten Frequenzdatum (β) bestimmt ist; und
eine Steuervorrichtung (19) zur Zufuhr des ersten Frequenzdatums (β) nochmals zu der wiederholt arbeitenden Subtrahier/Addiervorrichtung (15, 17), wenn der Ausgang der Vorrichtung (15, 17) einen vorherbestimmten Wert erreicht, wodurch eine Tonperiode erzeugt wird, welche vom Anfangszeitpunkt des Betriebs der Vorrichtung (15, 17) zu dem Zeitpunkt reicht, zu dem der Ausgang der Vorrichtung (15, 17) den vorherbestimmten Wert erreicht hat.
2. Tonsignal-Erzeugungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die ersten und zweiten Frequenzdaten (β, α) eine Tonreihe mit temperierter Stimmung festlegen.
3. Tonsignal-Erzeugungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Vorrichtung (4b) zum Konvertieren der Frequenzdaten einen Addierer (81, 82, 83; 86) aufweist, mit dem aus Frequenz-Modulations-Codedaten (α′) und Noten-Frequenz- Codedaten (β′) die ersten und zweiten Frequenz- Codedaten (β, α) erzeugbar sind.
4. Tonsignal-Erzeugungsvorrichtung nach Anspruch 1 oder 3, dadurch gekennzeichnet, daß mit der Vorrichtung (4b) zum Konvertieren der Frequenzdaten durch Abänderung der ersten Frequenz-Codedaten (β) ein Portamento- Effekt erzeugbar ist.
5. Tonsignal-Erzeugungsvorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Vorrichtung (4b) zum Konvertieren der Frequenzdaten eine Einrichtung (93, 94, 95) aufweist, mit welcher die ersten und zweiten Frequenz-Codedaten (β, α) für die aktuelle Note nach und nach zu den ersten und zweiten Frequenz-Codedaten (β, α) für eine neue Note änderbar sind.
6. Tonsignal-Erzeugungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß durch die Vorrichtung (4b) zum Konvertieren der Frequenzdaten die Frequenz-Codedaten so variiert werden, daß ein Glissando-Effekt erzeugbar ist.
DE19823249738 1981-12-22 1982-12-22 Expired - Fee Related DE3249738C2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP56208816A JPS58108587A (ja) 1981-12-22 1981-12-22 電子楽器の周波数制御装置
JP56208815A JPS58108586A (ja) 1981-12-22 1981-12-22 電子楽器の周波数制御装置
JP57057359A JPS58174999A (ja) 1982-04-08 1982-04-08 電子楽器

Publications (1)

Publication Number Publication Date
DE3249738C2 true DE3249738C2 (de) 1991-05-23

Family

ID=27296230

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823249738 Expired - Fee Related DE3249738C2 (de) 1981-12-22 1982-12-22

Country Status (2)

Country Link
DE (1) DE3249738C2 (de)
GB (1) GB2161310B (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2247368B (en) * 1990-08-25 1994-08-24 Roke Manor Research Phase modulation signal generator

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3794748A (en) * 1971-12-06 1974-02-26 North American Rockwell Apparatus and method for frequency modulation for sampled amplitude signal generating system
DE2518633B2 (de) * 1974-04-29 1980-02-28 Nippon Gakki Seizo K.K., Hamamatsu, Shizuoka (Japan) Elektronisches Tastenmusikinstrument
EP0053892A1 (de) * 1980-11-28 1982-06-16 Casio Computer Company Limited Steuerungsvorrichtung für die Hüllkurve in einem elektronischen Musikinstrument

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3794748A (en) * 1971-12-06 1974-02-26 North American Rockwell Apparatus and method for frequency modulation for sampled amplitude signal generating system
DE2518633B2 (de) * 1974-04-29 1980-02-28 Nippon Gakki Seizo K.K., Hamamatsu, Shizuoka (Japan) Elektronisches Tastenmusikinstrument
EP0053892A1 (de) * 1980-11-28 1982-06-16 Casio Computer Company Limited Steuerungsvorrichtung für die Hüllkurve in einem elektronischen Musikinstrument

Also Published As

Publication number Publication date
GB8501057D0 (en) 1985-02-20
GB2161310A (en) 1986-01-08
GB2161310B (en) 1986-07-02

Similar Documents

Publication Publication Date Title
DE3587423T2 (de) Tonerzeugende Vorrichtung für ein elektronisches Musikinstrument.
DE2518633C3 (de) Elektronisches Tastenmusikinstrument
DE3177313T2 (de) Elektronisches Musikinstrument
DE2362050C3 (de) Elektronisches Musikinstrument
DE2431161C2 (de) Tonerzeugungseinrichtung für ein elektronisches Musikinstrument
DE3650389T2 (de) Tonsignalerzeugungsvorrichtung.
DE2945901C2 (de) Elektronisches Musikinstrument
DE3936693C2 (de) Vorrichtung zum Erzeugen digitaler Audiosignale
DE3688600T2 (de) Musikinstrument mit digitalem Filter mit programmierten variablen Koeffizienten.
DE2629697A1 (de) Elektronisches musikinstrument
DE3887809T2 (de) Elektronisches Musikinstrument.
DE2635424A1 (de) Polyphones musikinstrument (polyphoner tongenerator)
DE2152861A1 (de) Elektronisches Tasten-Musikinstrument
DE2920298A1 (de) Binaere interpolatorschaltung fuer ein elektronisches musikinstrument
DE3003385A1 (de) Elektronisches musikinstrument
DE3023559C2 (de) Elektronisches Musikinstrument
DE2706045A1 (de) Elektronisches musikinstrument
DE2828919C2 (de) Schaltungsanordnung für ein polyphones elektronisches Musikinstrument
DE69130339T2 (de) Vorrichtung zur Erzeugung einer Ton-Wellenform
DE2500720C3 (de) Elektronisches Musikinstrument
DE3247599C2 (de) Tonsignal-Erzeugungsvorrichtung für elektronische Musikinstrumente
EP0036074B1 (de) Syntheseschaltung für periodische Signale, insbesondere als Teil eines Musikinstruments
DE2853209C2 (de) Digitaltechnik verwendendes elektronisches Musikinstrument
DE3506614C2 (de)
DE2513127C2 (de) Verfahren zum künstlichen Erzeugen eines musikalischen Klangs

Legal Events

Date Code Title Description
Q172 Divided out of (supplement):

Ref country code: DE

Ref document number: 3247599

8110 Request for examination paragraph 44
8181 Inventor (new situation)

Free format text: ISHIBASHI, MASANORI, OUME, TOKIO/TOKYO, JP

8128 New person/name/address of the agent

Representative=s name: KUHNEN, R., DIPL.-ING. WACKER, P., DIPL.-ING. DIPL

AC Divided out of

Ref country code: DE

Ref document number: 3247599

Format of ref document f/p: P

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee