DE2513127A1 - Verfahren zum kuenstlichen erzeugen eines musikalischen klangs - Google Patents

Verfahren zum kuenstlichen erzeugen eines musikalischen klangs

Info

Publication number
DE2513127A1
DE2513127A1 DE19752513127 DE2513127A DE2513127A1 DE 2513127 A1 DE2513127 A1 DE 2513127A1 DE 19752513127 DE19752513127 DE 19752513127 DE 2513127 A DE2513127 A DE 2513127A DE 2513127 A1 DE2513127 A1 DE 2513127A1
Authority
DE
Germany
Prior art keywords
frequency
modulation
instruction
memory
envelope
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.)
Granted
Application number
DE19752513127
Other languages
English (en)
Other versions
DE2513127C2 (de
Inventor
John Maxleod Chowning
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.)
Leland Stanford Junior University
Original Assignee
Leland Stanford Junior University
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
Application filed by Leland Stanford Junior University filed Critical Leland Stanford Junior University
Publication of DE2513127A1 publication Critical patent/DE2513127A1/de
Application granted granted Critical
Publication of DE2513127C2 publication Critical patent/DE2513127C2/de
Expired 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/06Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour

Landscapes

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

Description

Prt-ntmvalt
!_, ,_„ r- ' ^P^AFN 2;ϊ 3,75
:::.:.:■ ν.τ.α 36
Ncüc-v;^; ion
T. 75 035 Fl.
The Board of Trustees of Leland Stanford
Junior University,
Stanford University, Stanford, Kalif. USA
Verfahren zum künstlichen Erzeugen eines
musikalischen Klangs
Für diese Anmeldung wird die Priorität aus der entsprechenden U.S. Anmeldung Ser. No. 454 790 vom 26. März 1974 in Anspruch genommen.
Die Erfindung betrifft ein Verfahren zum künstlichen Erzeugen eines musikalischen Klangs aus einer Vielzahl von Komponentenfrequenzen unter Verwendung von Frequenzmodulation zur Erzielung der zeitlichen Entwicklung der spektralen Komponenten eines musikalischen Klangs.
Zum künstlichen Erzeugen musikalischer Klänge, der sogenannten elektronischen Musik, sind bereits mehrere Ausführ ungsformen von FrequenzSynthesegeneratoren, sogenannten Synthesizern oder Synthesatoren bekannt. Die künstliche Erzeugung oder Synthese natürlich wirkender Klänge ist bis jetzt jedoch noch nicht ganz gelungen. Bei einem typischen, analog arbeitenden FrequenzSynthesegenerator
wird ein spannungsgeregelter Oszillator durch eine Wellenform gewünschter Formgebung und Frequenz angetrieben, wonach das Signal gefiltert wird und ein Dämpfungsglied durchläuft, wobei es eine bestimmte Hüllkurve erhält, damit ein gewünschter musikalischer oder sonstiger Klang simuliert
509841/0290
wird. Bei einem derartigen analogen Synthesator von subtraktiver Ausführung erfolgt natürlich keine zeitliche Entwicklung der verschiedenen Spektralkomponenten oder Teilfrequenzen des am Ausgang erscheinenden Klanges.
Für nach Digitaltechniken arbeitende Synthesatoren wurde gefunden, daß zur Erzeugung eines natürlichen Klangs einzelne Teilfrequenzen erzeugt und miteinander kombiniert werden müssen. Eine bekannte Ausführungsform einer elektronischen Orgel arbeitet nach diesem Prinzip, wonach die verschiedenen Teilfrequenzen miteinander addiert werden und dann eine gemeinsame Hüllkurvenfunktion erhalten wird. Die Kombinationen der Frequenzen beruhen dabei natürlich auf den Prinzipien der Fourieranalyse.
Eine weitere digitale Synthesetechnik wurde von Jean-Claude Risset und Max V. Mathews in einem Aufsatz mit dem Titel "Analysis of Musical Instrument Tones " ("Analyse musikalischer Instrumententöne"), in Physics Today, Bd. 22, Nr. 2, Seiten 23 - 30, 1969, vorgeschlagen. In dieser Arbeit wurde nachgewiesen, daß der Charakter der zeitlichen Entwicklung der spektralen Komponenten eines Klangs für die Bestimmung der Klangfarbe ausschlaggebend ist. Mit anderen Worten, Risset schlägt vor, daß zum Simulieren eines natürlichen Klangs die Amplitude jeder Harmonischen individuell als Funktion der Zwic gesteuert werden sollte. Risset schlägt weiterhin vor, wenigstens zum Erzeugen von Trompetentönen, daß die Einschwinghüllkurve, d.h. der Anfangshüllkurvenverlauf für den Trompetenklang einen bestimmten, kennzeichnenden Verlauf aufweist, indem während des Anschwellens und während des Abklingens des Klangs sich die Energie der verschiedenen Frequenzkomponenten in komplizierter Weise entwickelt.
Zur praktischen Anwendung der Theorie von Risset unter Verwendung bekannter Techniken ist ein sehr komplexer
B098A1 /0290
Digitalrechner erforderlich, der jede einzelne Frequenzkomponente individuell simuliert. Aus diesen Gründen ist zur Zeitein Realzeit-Musiksynthesator vom Digitaltyp nicht zu annehmbaren Kosten herstellbar.
Die Bandbreitenänderung mit dem Modulationsindex ist veranschaulicht in einem Aufsatz von Murlan S. Corrington mit dem Titel "Variation of Bandwidth With Modulation Index in Frequency Modulation" ("Veränderung der Bandbreite mit Modulationsindex in Frequenzmodulation"), in Selected Papers on Frequency Modulation, herausgegeben von Klapper, Dover Publications, 1970. Dieser Aufsatz stellt jedoch lediglich eine theoretische Untersuchung von Frequenzmodulation dar.
Aufgabe der Erfindung ist nunmehr die Schaffung eines verbesserten Verfahrens zum künstlichen Erzeugen eines musikalischen Klangs, der aus einer Vielzahl von Komponentenfrequenzen besteht, wobei sich die Amplitude jeder Frequenz individuell als Funktion der Zeit entsprechend den Klangfarbeneigenschaften des künstlich herzustellenden musikalischen Klangs verändert.
Das zur Lösung der gestellten Aufgabe vorgeschlagene Verfahren ist erfindungsgemäß gekennzeichnet durch Ausbildung einer zeitlich veränderlichen Amplitudenhüllkurve mit einem zeitlich veränderlichen Anschwellabschnitt, einem praktisch gleichbleibenden oder Stetigkeitsabschnitt und einem zeitlich veränderlichen Abklingsabschnitt, Erzeugung eines zur Vorgabe einer im Tonfrequenzbereich liegenden Trägerfrequenz dienenden Signals ω , Erzeugung von zur Vorgabe erster und zweiter, im Tonfrequenzbereich liegender Modulationsfrequenzen dienender Signale ω und U) , wobei
m1 ra2
das Verhältnis U) / U) gleich einer irrationalen Zahl ist,
c m2
Erzeugung von zur Vorgabe zeitlich veränderlicher Modulationsindices dienender Signale I1 (t) und In (t), wobei U)
ι λ c
Β098Λ1/0290
mit to und W frequenzmoduliert und eine frequenzmodulierte Welle erzeugt wird, die der Formel e = A
sxn
entspricht, in welcher e die Momentanamplitude der frequenzmodulierten Welle, A die Spitzenamplitude der Welle und Ujdpt + I1 (t) sin ω t + I2 (t) sin ω t] das Frequenzspektrum der Welle ist, welches sich als Funktion der Modulationsindices I1Ct) und I2(t) ändert und eine Darstellung des Klanges ist.
Der Modulationsindex I(t) wird als vorbestimmte Funktion ausgewählt und steuert die Bandbreite der Welle und deren zeitliche Entwicklung.
Das erfindungsgemäße Verfahren wird im nachfolgenden anhand der Zeichnungen näher erläutert.
Fig. 1 ist ein zur Erläuterung des erf inching sgemäßen Verfahrens dienendes dynamisches Frequenzmodulationsspektrum ,
Fig. 2 ist eine zur Ausführung des Verfahrens dienende Schaltung in Musik V - Notierung,
Fig. 3 und 4 sind zur Erläuterung der Erfindung dienende dynamische FrequenzmodulationsSpektren und
Fig. 5-18 sind Blockschaltbilder eines digitalen Frequenzmodulationssynthesators.
Vermittels des erfindungsgemäßen Verfahrens wird eine Frequenzmodulationstechnik zur Erzeugung komplexer Spektren vorgeschlagen, die eine verhältnismäßig einfache zeitliche Spektralentwicklung aufweisen. Anders ausgedrückt, durch die erfindungsgemäß vorgeschlagene Frequenzmodulations-
5098A1 /02 90
technik lassen sich die einzelnen Frequenzen oder Teilfrequenzen eines Gesamtklangs oder natürlichen musikalischen Klangs gezielt steuern.
Dazu werden im Tonfrequenzbereich liegende Träger- und Modulationsfrequenzen ausgelegt, wobei die Trägerfrequenz tO mit der Modulations frequenz CO entsprechend der Gleichung
e = Asin
frequenzmoduliert wird, in welcher e die Momentanamplitude der frequenzmodulierten Welle, A die Spitzenamplitude und I(t) der Modulationsindex ist. Der Modulationsindex wird seinerseits als eine vorbestimmte Funktion ausgewählt und steuert die Bandbreite der Welle und deren zeitliche Entwicklung .
Diese Vorgänge sind in Fig. 1 für das künstliche Erzeugen eines blechinstrumentenartigen Tons oder Klangs veranschaulicht. Die dynamischen Spektren eines typischen Blechinstrumententons sind als Funktion von Frequenz, Zeit und Amplitude über Anschwell-, Stetigkeits- und Abklingbereich dargestellt, wobei jeder Bereich einem bestimmten Betriebszustand entspricht. Die Kurve 10 stellt die Amplitudenfunktion dar, ist eine kennzeichnende Hüllkurvenfunktion für den Gesamtton oder musikalischen Klang und verändert den Faktor A in Gleichung (1). Die Kurve 11 stellt die Indexfunktion dar und zeigt die Veränderung von I(t) ausgehend von einem Anfangsnullpunkt ID1 zu dem abschließenden Stetigkeitszustandspunkt ID2. Die spektralen Entwicklungskurven in Fig. 1 beruhen auf einander gleichen Träger- und Modulationsfrequenzen, die im Relativverhältnis 1,0 zueinander stehen, was in Fig. 1 dadurch dargestellt ist, daß ID- gleich ist null und ID2 gleich ist fünf. Die Gesamthüllkurve oder Amplitudenfunktion 10 verändert im wesentlichen die Spitzenamplitude A von Gleichung (1). Somit
509841/0290
nimmt die Intensität oder Lautstärke des Tons wie durch Kurve 10 angedeutet von einem Wert null bis zu einem Höchstwert im Stetigkeitszustand zu und fällt anschließend nahezu linear ab.
Risset zeigte in seiner Analyse von Trompetentönen eine fundamentale Eigenschaft dieser Klangfarbengruppe auf, indem die im Spektrum enthaltene Energiemenge über ein zunehmendes Band angenähert proportional zur Lautstärkenzunahme verteilt ist. Das ist in Fig. 1 dargestellt, in welcher zunächst nur der Träger und die Harmonischen niedrigerer Ordnung wie z.B. zweiter und dritter Ordnung eine nennenswerte Amplitude aufweisen und dann während des sich anschließenden (mit SS bezeichneten) Stetigkeitszustands die Intensität der Harmonischen höherer Ordnung zunimmt. Andere kennzeichnende Merkmale eines Blechinstrumententons sind, daß die Frequenzen im Spektrum eine harmonische Reihe bilden, sowohl ungeradzahlige als auch geradzahlige Harmonische manchmal vorhanden sind und, wie durch Risset angegeben, jedoch in Fig. 1 nicht im einzelnen dargestellt, die Anstiegszeit der Amplituden- oder Hüllkurvenfunktion für einen typischen Einsatz (Anschwellen) sehr schnell ist, und es zu einem."überschießen" des Stetigkeitszustandes kommen kann. Ein Vergleich der Kurven 10 und 11 zeigt außerdem, daß sich der Modulationsindex direkt proportional zur Amplitude einer modulierten Trägerwelle verändert.
Der in Fig. 1 dargestellte Blechinstrumentenklang wird vorzugsweise vermittels eines speziell ausgebildeten Rechners oder Digitalfrequenzmodulationsynthesators erzeugt, wie weiter unten beschrieben ist. Wenn jedoch lediglich die Wirksamkeit der erfindungsgemäß vorgeschlagenen Maßnahmen demonstriert werden soll, kann ein typischer Minirechner verwendet werden, der mit einem in Musik V geschrieben FORTRAN IV - Programm programmiert ist. Musik V
stellt ein bekanntes Programm dar, das in einem Buch von
509841/02 90
—. "7 —
Max V. Mathews mit dem Titel "The Technology of Computer Music" ("Die Technologie der Rechnermusik") , The MIT Press, Boston, 1969 beschrieben ist. Die Schwierigkeit bei Verwendung des Musik V - Programms besteht darin, daß es sich dabei nicht um ein Realzeit-On-Line-System handelt.
Bei dem Musik V - Klangsyntheseprograinm handelt es sich um ein Programm, das Schallwellenmuster einer Klangwelle erzeugt, die dann wie berechnet in einem Speicher gespeichert werden. Nach Digital-Analog-Umsetzung und Filterung kann der Klang dann vermittels eines Tonfrequenzsystems wieder erzeugt werden. Das Programm ist so ausgelegt, daß die Berechnung der Proben durch Programmblöcke erfolgt, welche als Exnhextsgeneratoren, abgekürzt U.G. bezeichnet sind. Ein typischer Einheitsgenerator besteht aus einem Oszillator mit zwei Eingängen, einem Ausgang und einer gespeicherten Wellenformfunktion. Der erste Eingang gibt die Amplitude am Ausgang vor, der zweite Eingang gibt die Frequenz des Ausgangs vor, und die Funktion bestimmt die Form des Ausgangs. Der Wert eines Eingangs läßt sich entweder durch den Benutzer vorgeben oder kann aus dem Ausgang eines weiteren Einheitsgenerators bestehen, wobei sich Mehrfachpegeloperationen an Wellenformen ausführen lassen. Eine Vielzahl miteinander verbundener Einheitsgeneratoren wird als Instrument bezeichnet, dem Daten über eine Gruppe von Parametern P^ bis Pg zugeführt werden.
Figur 2 zeigt ein Instrument für einen Frequenzmodulationskreis, mit dem sich dynamische Spektren entsprechend der Erfindung erzeugen lassen. Ein Einheitsgenerator U.G. 4 erzeugt eine der Kurve 10 von Fig. 1 ähnliche Amplitudenhüllkurve, während ein Einheitsgenerator U.G. 5 eine der Kurve 11 von Fig. 1 ähnliche Modulatxonsxndexhüllkurve erzeugt. Die Parameter für die Instrumente haben folgende Funktionen:
B098A1/0290
P1 = Beginnzeit des Instruments P2 = Instrumentenzahl
P3 = Dauer der "Note"
P. = Amplitude der Ausgangswelle Pj = Trägerfrequenz
P6 = Modulationsfrequenz
P7 = Initial- oder Anf angsmodulat ions index ID..
PQ = Endmodulationsindex ID0
Die Prameterwerte für Blechinstrumententone beispielsweise nach Fig. 1 sind dann wie folgt:
P3 = 0,6
P4 = 1000 (Amplitudenmaßstabsänderung) P5 = 440 Hz
Pc = 440 Hz (Verhältnis c/m =1/1)
= 0
"7
P8 = 5.
Ein Stanäardmusik V - Programm ist für viele Anwendungen geeignet f jedoch wird in Abhängigkeit von dem jeweils erzeugten musikalischen Klang die Momentanfrequenz des modulierten Trägers manchmal negativ, d.h. in anderen Worten die Endwellenform weist einen mit der Zeit abnehmenden Phasenwinkel auf. Dieser Zustand tritt dann auf, wenn entweder das Verhältnis des Trägers zur Modulationsfrequenz sehr klein oder der Modulationsindex sehr groß ist. Daher muß der Einheitsgenerator U.G. 3 in Fig. 2 in der Lage sein, eine Welle zu erzeugen, die sich aus dem Sinus eines Winkels ergibt, der zeitlich sowohl abnimmt als auch zunimmt. Die Kodeänderung zum Oszillator bei Musik V unter Berücksichtigung eines abnehmenden Winkels ist
für 290 IF(SUM - XNFUN) 288, 287, 287
287 SUm=SUM-XNFUN
ersetzen durch 290 IF(SUM.GW.XNFUN) GO TO 287
IF(SUM.LT.0.0) GO TO 289
5098 4 1/0290
-s-
und für GO TO 293
292 J6=L1+J3-1
ersetzen durch GO TO 293
287 SuM=SUM-XNFUN
GO TO 288
289 SUM=SUM+XNFUN
GO TO 288
292 J6=L1+J3-1
In den Fig. 3 und 4 sind jeweils ein glockenartiger Klang bzw. ein klarinettenartiger Klang dargestellt. Entsprechend Fig. 3 wird die glockenartige Klangfarbe aus der Familie der Schlaginstrumententöne ausgehend von folgenden beiden Voraussetzungen erzeugt:
1) Die spektralen Komponenten liegen üblicherweise nicht in der harmonischen Reihe und
2) die Entwicklung des Spektrums verläuft von einer komplexen zu einer einfachen Form.
Die Amplituden- oder Hüllkurvenfunktion des dargestellten glockenartigen Klangs klingt exponentiell ab, wobei die Abklingzeit beispielsweise 15 Sekunden beträgt. Die Indexfunktion ist direkt proportional der Amplitudenhüllkurve. Im Hinblick auf Musik V können zur Erzeugung eines glockenartigen Klangs folgende Parameter verwendet werden:
P^ = 15 Sekunden
P4 = 1000
P5 = 200 Hz
Pc = 280 Hz
P7 = 0
P8 = 10.
Ausschlaggebender ist jedoch, daß Träger- und Modulationsfrequenz miteinander durch eine irrationale Zahl oder ein nicht ganzzahliges Verhältnis miteinander verknüpft sind. Wie in Fig. 3 dargestellt, werden dabei unharmonische Spektren erzeugt, bei denen die Komponenten nicht in einfachen Zahlenverhältnissen zueinander stehen. Diese irrationalen Zahlen sollten jedoch ausreichend klein sein, um die Dichte
50984 1 /0290
der Partialtöne zur Erzeugung beispielsweise des glockenartigen Klangs von Fig. 3 beizubehalten.
Das irrationale Verhältnis von U) / tu = 1 / V~2~ erzeugt
cm 3
beispielsweise eine nichtperiodische Wellenform und kann bei zeitlicher Steuerung der Bandbreite durch die Indexfuiiktion Glockentöne oder andere Schlagxnstrumententöne entsprechend Fig. 3 erzeugen.
Die gleiche Technik kann ebenfalls zur Erzeugung sekundärer Merkmale quasiperiodischer Töne wie z.B. des "Kratzens" beim Einsatz eines Violintons ausgenutzt werden. Das soll im nachfolgenden als "Knirschfunktion" (grit function) bezeichnet werden. In diesem Falle ist jedoch diese Index- oder Knirschfunktion nur nicht-null während des Anschwellintervalls von beispielsweise 0,025 Sekunden, und anschließend besteht das Spektrum lediglich aus rationalen Verhältnissen von 4> / 6J . Dazu werden zwei Modulationsoszillatoren und ein Trägeroszillator benötigt, wobei die erste Modulationsfrequenz entsprechend OJ / U) = 1/1, und die zweite Modu lationsfrequenz entsprechend 1 / λίΤ = U) / U) mit dem Träger
o in
verknüpft ist, In diesem Falle erfolgt die Frequenzmodulation erfindungsgemäß entsprechend folgender Gleichung:
e - Asin Kfc + Vt} 8^m1* + I2(t) / in welcher I1 (t) und U) äquivalent sind zu I(t) und Ui
Von Gleichung {Υ) , U) eine zusätzliche Modulationsfrequenz
m2
ist und U) / U) gleich ist einer irrationalen Zahl. Somit
hat der erste Index I.(t) eine Hüllkurvenform, welche ähnlich ist der Ämplitudenhüllkurve des in Fig. 2 dargestellten Blechxnstrumentenklangs, wobei jedoch die Knirschfunktion zusätzlich addiert wird, die vorbestimmte Funktion des zweiten Index I0 (t) darstellt und eine Zeitdauer von weniger als 200 Millisekunden aufweist. Somit sind für einen Violinenklang mit Knirschfunktion der Träger und die
50 9 8 Λ 1 /0290
erste Modulationsfrequenz durch eine Funktion 1/1 = 0} /U) miteinander verknüpft. Die erste Indexfunktion ist dann umgekehrt proportional zur ansteigenden Amplitudenhüllkurve.
Wie aus Vorstehendem ersichtlich, gibt das Verhältnis von Träger- und Modulationsfrequenzen die Lage der Komponenten im Spektrum vor. Der Modulationsindex selbst gibt die Anzahl der Komponenten vor, welche eine nennenswerte Amplitude aufweisen. Hinsichtlich einfacher Frequenzverhältnisse N1ZN2 lassen sich folgende Verallgemeinerungen treffen:
1) Der Träger ist stets die N1 te Harmonische in der Reihe.
2) Wenn N„ = 1 ist, enthält das Spektrum sämtliche Harmonischen und die Grundwelle ist auf der Modulationsfrequenz, d.h. 1/1, 2/1.
3) Wenn N2 eine gerade Zahl ist, enthält das Spektrum nur ungeradzahlige Harmonische, z.B. 1/2, 1/4, 3/2, 3/4, 5/2.
4) Wenn N2= 3 ist, fehlt jede dritte Harmonische in der Reihe, z.B. 1/3, 2/3, 4/3, 5/3.
In Fig. 4 ist ein Klang mit klarinettenartiger Klangfarbe dargestellt, wobei die Indexfunktionskurve umgekehrt proportional ist zur Vorderkante der Amplitudenfunktion. Außerdem ist CO /Cu =1/2. Damit werden nach der vorstehend angegebenen Regel 3) nur ungeradzahlige Harmonische erzeugt, was bekanntlich eine Eigenschaft des Klarinettentons ist.
Die Knirschfunktion I2(t) hat eine sehr kurze Zeitdauer im Vergleich zur Periode der Trägerfrequenz Cd .
Die spezielle Tonfülle, welche sich vermittels des erfindungsgemäß vorgeschlagenen Verfahrens erzeugen läßt, beruht darauf, daß Verhältnisse von Träger- und Modulationsfrequenz und Indexwerte vorgegeben werden, die zur Erzeugung von Seitenbandkomponenten führen, welche in das negative Frequenzgebiet des Spektrums fallen. Diese negativen
509841 /0290
Komponenten spiegeln sich um 0 Hz herum und "vermischen sich" mit den Komponenten im positiven Gebiet. Die sich aus dieser Mischung ergebende Vielseitigkeit von Frequenzbeziehungen ist außerordentlich groß und umfaßt sowohl harmonische als auch unharmonische Spektren.
Ein einfaches, jedoch sehr nützliches Beispiel reflektierter Seitenfrequenzen tritt auf, wenn das Verhältnis von Träger- zu Modulationsfrequenz gleich eins ist. Für die Werte
U) = 100 Hz
c
U)m = 100 Hz
1=4
stellt die Komponente bei 0 Hz eine Konstante in der Welle dar. Die übrigen Unterseiten-Frequenzen werden mit einer Vorzeichenänderung {Phaseninversionj in das positive Frequenzgebiet reflektiert und addieren sich algebraisch zu den dort bereits vorhandenen Komponenten. So addiert sich beispielsweise die zweite Unterseiten-Frequenz zum Träger mit gleichen Vorzeichen, wodurch die Energie bei 100 Hz gesteigert wird, während die dritte UnterSeiten-Frequenz sich zur ersten Oberseiten-Frequenz mit ungleichen Vorzeichen addiert, so daß die Energie bei 200 Hz abnimmt.
Ein Formantenspitzenwert läßt sich vermittels der erfindungsgemäß vorgeschlagenen Frequenzmodulationstechnik entsprechend folgender Formel
e = Äsin ( Uc1t +ω t + I(t) sin U) t) (3)
erzeugen, in welcher 0) + tu zwei Trägerfrequenzen sind,
C1 C2
die in einem Verhältnis zu U) stehen. Derartige Verhältniswerte betragen typischerweise" U /Q) = 7/1 und
C2 m CO / 0) = 1/1, und das Verhältnis 7/1 bringt den Forman-
V^ A Hl
tenspitzenwert auf die siebente Harmonische.
509841/0290
Wie aus den vorstehenden Ausführungen ersichtlich, stellt das erfindungsgemäße Verfahren eine einfache Technik zur Klangfarbenentwicklung der verschiedenen Frequenzen oder Teilfrequenzen eines komplexen musikalischen Klangs dar. Diese Klangfarbenentwicklung erfolgt insbesondere im Einschwingbereich des Klangs und stellt oft die "Unterschrift" des Klangs dar. Anders ausgedrückt, hierbei handelt es sich um die vom Zuhörer empfundene Lebendigkeit des Klangs. Im Gegensatz dazu erweckt das Spektrum mit festgelegten Proportionen der meisten künstlich erzeugten Klänge beim Hörer das Empfinden, daß es sich um einen elektronisch erzeugten Klang handelt, der eine unlebendige Qualität aufweist. Die erfindungsgemäß vorgeschlagene Frequenzmodulationssynthesetechnik ist weit einfacher als additive oder subtraktive Synthesetechniken, mit denen sich ähnliche Spektren erzeugen lassen. Es wird angenommen, daß sich vermittels der erfindungsgemäß vorgeschlagenen Frequenzmodulationstechnik natürliche Klänge kosteneffektiver nachahmen lassen im Vergleich zum Einsatz eines sehr komplexen Rechners, mit dem die Amplituden der einzelnen Teilfrequenzen sehr genau gesteuert werden. Obwohl die Steuerung beim erfindungsgemäßen Verfahren scheinbar dadurch beschränkt ist, daß eine genaue Amplitudensteuerung jeder Teilfrequenz nicht in ganzer Breite wie gewünscht erfolgen kann, erweist sich das nicht als eine Beschränkung im Hinblick auf den subjektiven musikalischen Höreindruck.
Vermittels des erfindungsgemäß vorgeschlagenen Verfahrens lassen sich "musikalische Klänge" erzeugen, die bisher nicht von einem Menschen gehört worden sind. Daher soll der hier verwendete Ausdruck "musikalischer Klang" in diesem Zusammenhang nicht auf die bekannten musikalischen Klänge beschränkt sein.
Die erfindungsgemäß vorgeschlagene Frequenzmodulationstechnik unterscheidet sich völlig von der Addition eines
5098Λ1 /0290
typischen Vibratos oder periodischen Veränderung einer Frequenz um einen Mittelwert, welche dem musikalischen Klang überlagert wird. Für Vibrato beträgt die Modulationsfrequenz nur wenige Hertz, so daß es für das Ohr nicht schwierig ist, die Momentanfrequenz des Trägers zu verfolgen. Wenn jedoch Träger- und Modulationsfrequenz entweder gleich oder von angenähert gleicher Größenordnung sind, kann das Ohr die momentane Frequenzänderung nicht länger als Wobbeifrequenz verfolgen, sondern empfindet ein komplexes Spektrum.
Mit dem Musik V - Programm lassen sich musikalische Klänge entsprechend den erfindungsgemäß vorgeschlagenen Frequenzmodulationstechniken erzielen; bei Realzeit-Operation sollte jedoch ein digital arbeitender Frequenzmodulationsynthesator verwendet werden.
In Fig. 5 ist ein mikroprogrammiertes Gerät dargestellt, das ein digitales Ausgangssignal in Leitung 22 abgibt, welches vermittels eines Digital-Analog-Wandlers 22 in ein analoges Ausgangssignal umgesetzt wird, das seinerseits im Lautsprecher 23 den gewünschten musikalischen Klang erzeugt. Das Gerätweist als Eingänge eine 3-bit Binärzahl, welche das Instrument oder eine Auswahl unterschiedlicher Klangfarben oder eine Tonqualität darstellt, eine 7-bit Binärzahl, welche die gewünschte Frequenz der musikalischen Note darstellt, und ein Tasten- oder Schlüsselbit auf, welches die Erzeugung des musikalischen Klangs einleitet, auf. Der Synthesator erzeugt dann in seiner Ausgangsleitung 21 16-bit Binärzahlen, welche die Wellenform in Intervallen von 50 Mikrosekunden darstellen. Wenn das Gerät beispielsweise als Klangerzeugerteil einer Orgel verwendet wird, muß lediglich die Zahl der niedergedrückten Taste als Frequenzinformation und natürlich die tatsächliche Betätigung der Taste mitgeteilt werden. Sämtliche, in Fig. 5 dargestellte Blöcke sind in Einzelheiten in den weiteren Zeich-
50984 1/0290
nungsfiguren dargestellt und lassen sich aus handelsüblichen Bauteilen erstellen. Jeder Block in den Fig. 6-18 trägt eine Standardzahl, deren Bedeutung aus den nachfolgenden Quellen ersichtlich ist: TTL Data Book, Number CC-411, Texas Instruments, Inc. (Texas Instruments Components Group, Market Communications Dept., P.O. Box 5012, M.S. 84 Dallas, Texas 75222) und INTEL Data Catalog, October 1973 (Intel Corporation, 3065 Bowers Avenue, Santa Clara, Kalif. 95051).
In Fig. 5 sind wohl Informationsquellen als auch Senken (sinks) dargestellt. Alle Daten werden über die Datensammelleitung 24 übertragen. Die Informationsquellen bestehen aus einem Zwischenspeicher (Scratch Pad Memory) 26, einem Hüllkurvenspeicher 27, einem Initialisierungs- oder Einleitungsspeicher 28 und einer Binärkonstante 29. Die Senken bestehen aus einem Multiplikator 31, einer Summierschaltung 32 und der Ausgangshalteschaltung (latch) für das Register 33. Die anderen, nicht unmittelbar mit der Datensammelleitung 24 verbundenen Senken sind der Sinusspeicher 34, bei dem es sich um einen Nur-Lese-Speicher (ROM) handelt, und außerdem ein Zwischenspeicher (Scratch Pad Memory) 26, der ebenfalls Daten aufnehmen kann. Die Informationseingabe in den Zwischenspeicher 26 erfolgt über einen Vierwegselektor 36 und einen Frequenzspeicher 37. Der durch einen 8-bit Binärzähler 39 angetriebene Hüllenkurvenzählspeicher 38 liefert in der weiter unten beschriebenen Weise eine segmentierte Hüllenkurve.
Das tatsächliche Programm für den Digitalsynthesator wird durch einen Instruktionsspeicher 41 und die diesem zugeordnete Halteschaltung (latch) 42 geliefert. Die Einzelheiten des Instruktionsspeichers 41 sind aus Fig. 6 ersichtlich. Der Instruktionsspeicher 41 besteht aus vier 74186 Nur-Lese-Speichern, die jeweils 64 8-bit Wörter aufnehmen können. Vermittels der Kombination von zwei solcher Speicher wird
509841/0290
ein 16-bit Instruktionswort erzeugt, das mit IO bis 115 bezeichnet ist. Das Speicherpaar 41a dient für das 64-Wort laufende Programm, während das Speicherpaar 41b für das Anlaufprogramm dient. Das Anlaufprogramm wird durch ein wahres Signal am aktiven Eingang eingeleitet oder initiiert. Nachdem dieses 64-Wort-Programm einmal durchgelaufen ist, läuft das laufende Programm periodisch durch. Jeder Takt oder Durchlauf beträgt 50 Mikrosekunden, während der das laufende Programm alle 64 Wörter durchläuft und dann wieder am Anfang beginnt. Diese 50 Mikrosekunden entsprechen gleichfalls der Prüf- oder Samplezeit. Während jeder Prüfzeit wird dem Digital-Analog-Wandler 22 (Fig. 5) eine neue Probe (sample) zugeführt. Die Speicherpaare 41a, 41b werden durch den Programmzähler addressiert, der aus den Blöcken 43 und 44 besteht und die Ausgänge PCO bis PC5 aufweist. Diese Signale addressieren die Instruktionsspeicher an den angegebenen Eingängen, rücken die Instruktion vor und wickeln sich dann um 53 herum zurück zu null. Die Halteschaltungen 42 speichern bei jedem Takt den Ausgang der Nur-Less-Speicher 41, d.h. die 16 bits des Instruktionsworts IO bis 115. Die Ausgänge der Halteschaltungen führen folgende Funktionen aus: Die MAO, MAi, ΜΆ2, Ma3 -Ausgänge dienen als Speicheradresse für den Zwischenspeicher 26 (Fig. 5). WSO, WS1 steuert den Vierwegselektor 36, der vorgibt, welche Information in den Zwischenspeicher 26 eingeschrieben wird. Der Zwischenspeicher 26 läßt sich ganz allgemein ausgehend von vier verschiedenen Quellen einschreiben, nämlich dem Multiplikator 31, der Summierschaltung 32, dem Sinusspeicher 34 und dem Frequenzspeicher 37. Dieses Einschreiben erfolgt im Einleitungs- oder Initialisierungszeitpunkt, wie anhand Fig. 11 näher erläutert ist.
In Fig. 6 bilden die Ausgänge LSO, LS1 und LS2 eine 3-bit Binärzahl, welche sich zu einem der acht Wählstellen der Halteschaltung dekodiert, die dazu dienen, dem System Information zuzuführen. Eine seiner Funktionen besteht darin,
509841/0290
anzugeben, welche Datensenke die in der Sammelleitung befindlichen Daten halten soll. REO, RE1 und RE2 bilden eine 3-bit Binärzahl, welche eine Datenquelle anwählt, die auf die Sammelleitung geschaltet wird. LOB dient dazu, die acht bits niedriger Ordnung des Zwischenspeichers auf die Sammelleitung zu schalten. LOB wird zur Sinuswelleninterpolation verwendet, wobei der 16-bit Winkel, dessen Sinus bestimmt und verwendet wird, in acht bits höherer Ordnung und acht bits niedriger Ordnung unterteilt wird. Da der Sinusspeicher 34 selbst nur die acht bits hoher Ordnung aufnimmt, erfolgt die Interpolation an den acht bits niedriger Ordnung, und das LOB-Signal wendet im wesentlichen die bits hoher Ordnung ab und bringt diese auf null, wenn es auf die Sammelleitung gelangt. ISEL und SSEL wählen die interessierende Hüllkurvenfunktion aus. Diese werden schließlich dem Hüllkurvenspeicher 27 von Fig. 5 zugeführt und können entweder eine Amplitudenfunktion oder eine Modulationsindexfunktion oder die zweite Modulationsindexfunktion anwählen. Das WE-Signal in diesem Instruktionswort von den Halteschaltungen 42 ist Einschreiben-Ansteuern (write enable) und gibt das Einschreiben in den Zwischenspeicher 26 frei. WSO und WS1 schließlich bilden die Zwischenspeicher-Schreibdaten und wählen einen der vier Eingänge des Zwischenspeichers an, nämlich Multiplikator, Summierschaltung, Sinustabelle und Frequenz speicher.
Die weiteren, in Fig. 6 dargestellten Torschaltungen bestehen aus einem UND-Gatter 40, einem ODER-Gatter 46 und einem D-Flip-Flop 47. Diese Gatter dienen dazu, den Einleitungsoder Initialisierungsvorgang nach Anlauf zu beenden. Während des Anlaufs befindet sich das System im Zustand INIT (=Initialisierung oder Einleitung). Dieser Zustand wird beendet durch ein Signal Init ausgef. (=Initialisierung oder Einleitung ausgeführt), welches an einem Eingang des ODER-Gatters 46 liegt, was bedeutet, daß der Programmzähler über-
509841 /0290
gelaufen und das Initialisierungs- oder Einleitungsprograinm vervollständigt ist. Wenn in Operation beispielsweise die Amplitude der Ausgangssinusoide auf den letzten oder neuesten Stand gebracht werden soll, wird der laufende Wert der Sinusoidamplitude im Zwischenspeicher gespeichert, d.h. im Zwischenspeicher 26, und dann wird aus dem Hüllkurvenspeicher 27 das entsprechende Inkrement für diesen Wert ausgelesen. So wird während eines Instruktionstakts der Zwischenspeicher durch die Halteschaltungen der Summierschaltung 32 auf die Datensammelleitung geschaltet, wobei die Summierschaltung in der laufenden Amplitudenposition gehalten oder verriegelt wird. Im nächsten Instruktionstakt wird der Hüllkurvenspeicher 27 auf die Datensammelleitung geschaltet und die andere Halteschaltung der Summierschaltung aktiviert. Einige Mikrosekunden später erscheint die Summe am Ausgang der Summierschaltung AOO bis A015.
Figur 7 stellt die Steuerlogik für die Halteinstruktionsausgänge von Fig. 6 dar. Im einzelnen sind die Halteanwählbits LSO, LS1, LS2 mit einem Dekoder 48 gekoppelt, der bei Ansteuerung ein Signal in einer von acht unterschiedlichen Leitungen erzeugt. Diese Signale schließen ein die Multiplikatorhaltesignala MPL1, MPL2 und die Summierhaltesignale AL1 und äL2. Weiterhin kommen hinzu Sinustabellenhaltesignal ST und ein Signal EL, das als Steuersignal dient, um den Hüllkurvenspeicher periodisch auf das nächste Segment weiterzuschalten r was für 63 Instruktionen jeweils einmal erfolgt. Dieser Vorgang ist damit zu erklären, daß nicht genügend bits im Instrukfcionswort vorhanden sind. Der letzte Ausgang "Lastausgangpuffer" (Load output buffer) bewirkt, daß die ausgangsseitige Halteschaltung 33 (Fig. 5) Wörter von der Datensammelleitung speichert.
Die Kontroll- oder Prüfbits REO t RE1 und RE2 zum Dekoder 49 geben wor, welche von vier Datenquellen auf die Datensammelleitung geschaltet wird. Der Ausgang SP schaltet den
509841 /0290
Zwischenspeicher auf die Sammelleitung; IM schaltet den Initialisierungsspeicher 28 auf die Sammelleitung. Der Speicher enthält Daten wie z.B. den Faktor, mit welchem die Grundfrequenz multipliziert wird, um entweder die Modulationsfrequenz oder die Trägerfrequenz zu erzeugen. Wie aus den vorstehenden Beispielen ersichtlich, handelt es sich dabei allgemein um einen kleinen, ganzzahligen Faktor von 1, 2, 3. Dieser Vorgang erfolgt natürlich im Initialisierungs- oder EinleitungsZeitpunkt. Die Konstante C1 beträgt 3/4 und stellt den Unterschied zwischen einem Sinus- und Kosinuswinkel dar, so daß ein Kosinuswinkel während der Sinustabelleninterpolation als Sinuswinkel verarbeitet werden kann. C2 wird nicht benutzt. ENV (für envelope=Hüllkurve) schaltet den Hüllkurvenspeicher 27 auf die Sammelleitung, welche natürlich das zum laufenden Wert entweder des Modulationsindex oder der Amplitudenhüllkurve für den nächsten Schritt zu addierende Inkrement enthält.
Der Speicher 48 wird durch einen Sammelleitungsansteuereingang angesteuert, der durch das Gatter 51 erzeugt wird, das drei Eingänge, nämlich I Last, CLR 2 und Halte(schaltung) aufweist. Der Dekoder 49 wird durch Signal I Last angesteuert. Sowohl I Last als auch Halte werden durch vier gekoppelte Flip-Flops 52 erzeugt, die in Reihenfolge gezündet werden, d.h. daß in jedem Zeitpunkt jeweils nur ein Flip-Flop wahr ist. Die Fip-Flops 52 zählen den Haupttaktgeber (MRCLK), und jedes Mal dann, wenn der Haupttaktgeber wahr wird, wird das gespeicherte bit zum nächsten Flip-Flop vorgerückt. Das erste Flip-Flop führt in den Programmzähler zusätzlich den Ausgang PCINC ein, wobei der Programm-Zähler seinerseits die Erzeugung von Daten von den Nur-Lese-Instruktionsspeichern 41 bewirkt. Beim nächsten Taktimpuls wird I Last erzeugt, wodurch das Instruktionswort gehalten und die Datenquelle auf die Datensammelleitung geschaltet wird. Der nächste Taktimpuls ist Warten. Beim letzten Taktimpuls wird Halte (latch) wahr und bewirkt, daß die jeweils
509841/0290
in der Datensammelleitung vorhandenen Daten in eine der Datensenken eingeriegelt werden. Damit wird ein Instruktionstakt vervollständigt, wobei zu diesem Zeitpunkt das erste Flip-Flop bewirkt/ daß der Programmzähler einen weiteren Schritt weitergerückt wird. So wird in Operation im allgemeinen bei I Last das Instruktionswort erzeugt, wobei Steuersignale sich im ganzen System fortpflanzen, die Daten auf die Sammelleitung geschaltet und dann von dieser abgeriegelt werden, um die jeweils gewünschte Funktion wie z.B. Addition oder Multiplikation auszuführen.
Die letzten beiden, in Fig. 7 dargestellten Funktionen bestehen aus der Erzeugung des Haupttakts, der durch einen Kristall-Taktgeber 53 erzeugt wird, dessen Taktgeschwindigkeit so bemessen ist, daß ein Instruktionswort in etwa 800 Nanosekunden ausgeführt wird, so daß sich eine Kapazität von 64 Instruktionswörtern in 50 Mikrosekunden ergibt. Die ODER- und UND-Gatter liefern einen Löschimpuls, so daß bei Anlegen von Spannung an das Gerät sämtliche Register rückgestellt werden.
Die Hauptzustände des Geräts sind vom System her betrachtet Leerlauf, INIT (Initialisierung), Lauf und Abklingen. Im Leerlaufszustand wird keine Note gespielt und keine Taste niedergedrückt. Beim Niederdrücken einer Taste geht das Gerät in einen INIT-Zustand (Initialisierungs- oder Einleitungszustand) und läßt das 64-Wort Initialisierungsprogramm im Instruktionsspeicher ablaufen. Bei Beendigung dieses Programms geht das Gerät selbsttätig in den Laufzustand und verbleibt in diesem so lange, bis die Taste losgelassen wird. Bei Loslassen der Taste geht das Gerät in den Abklingzustand. Die Dauer, während der das Gerät im Abklingzustand verbleibt, ist vorgegeben durch die Abklinghüllkurve im Hüllkurvenspeicher. Sobald die Abklinghüllkurve beendet ist, geht das Gerät zurück in den Leerlaufzustand. Der Hüllkurvensteuerung sind außerdem einige Unterzustände zugeordnet.
5 09841/0290
So ist beispielsweise der Laufzustand in zwei Unterzustände unterteilt, welche als Anschwell- und Stetigkeitszustand bezeichnet sind. Der Abklinghauptzustand wird in der Hüllkurvensteuerung als ein Niedergangszustand bezeichnet. Diese unterschiedliche Bezeichnungsweise dient zur Vermeidung eines Taktgeberproblems, was sich daraus ergibt, daß das Gerät bei sehr kurzem Tastenanschlag sich noch im Anschwellunterzustand befindet, jedoch die Taste losgelassen ist und die Hüllkurvensteuerung das System bis zur Beendigung im Anschwellzustand hält und dann in den Abklingzustand übergeht. Auf diese Weise wird das Anschwellen eines sehr kurzen Tastenanschlags in keinem Falle unterbunden.
Die vorstehenden Erläuterungen sind anhand des Zustandsdiagramms in Fig. 8 veranschaulicht. Zustandsänderungen erfolgen beim UND des vorhergehenden Zustands, der Zustandsänderungsbedingung und dem Taktgeber. Um beispielsweise aus dem Leerlaufzustand herauszukommen, muß das UND (Gatter 56) von Leerlauf vorhanden, die Taste niedergedrückt worden sein und Haupttaktgeber (MRCLK), Gatter 57 in den INIT-Zustand (Initialisierungs- oder Einleitungszustand) gehen. Zum Herausführen aus dem INIT-Zustand muß das Signal INIT ausgef. auftreten und das Gatter 58 aktivieren, d.h. aufsteuern. INIT ausgef. (Fig. 6 ) wird wahr, wenn der Programmzähler 44 ankommt bei 63, d.h. das Initialisierungsprogramm beendet ist. Zum Herauskommen aus dem Laufzustand muß dieser zunächst vorhanden sein und die Taste angehoben werden, d.h. "Nicht"-Taste wird wahr, und der Haupttaktgeber schließt das Gatter 59 zwecks Übergang in den Abklingzustand. Die Rückkehr in den Leerlaufzustand erfolgt aus dem Niedergangs-Unterzustand, sobald das Signal Hüllkurve ausgef. (=ausgeführt) erscheint, Abklingen wahr ist und Haupttaktgeber. Wenn sich das Gerät im Abklingzustand befindet und die Hüllkurve den ganzen Weg in den Niedergangszustand zurückgelegt hat und ausgeführt ist, was durch Hüllkurve ausgef. (=ausgeführt) angezeigt wird, erscheint wiederum Leerlauf.
50 98Λ 1 /0290
Figur 9 zeigt die einzelnen Blöcke des Hüllkurvenspeichers 27 und des Hüllkurvenzählspexchers 38 von Fig. 5. Bei diesen Speichern handelt es sich sämtlich um INTEL (Warenzeichen) Modell 1302 - Nur-Lese-Speicher (siehe Intel Datenkatalog) . Der Hüllkurvenspeicher besteht aus zwei dieser Komponenten 1302, die 256 unterschiedliche 16-bit Wörter liefern. Diese 16-bit Wörter werden bei Ausgabe aus dem Speicher mit ENV 0, ENV 1, ... ENV 15 bezeichnet. Dabei handelt es sich um die Inkremente zur laufenden Position, d.h. der Anschwellamplitude oder dem Modulationsindex oder dem zweiten Modulationsindex. Die Hüllkurvenwörter stellen den Betrag dar, der bei jedem Prüftakt zu diesen Amplituden addiert wird, d.h. in einer Schleife des Instruktionsspeichers (50 Mikrosekunden). Der Hüllkurvenzählspexcher 38 gibt die Anzahl von Prüftakten an, bei denen das vorstehende Inkrement wahr ist. Der Ablauf stellt eine stückweise lineare Näherung dar, wobei der Zählspeicher die Anzahl von Proben für jedes Stück des stückweisen Linearsegments vorgibt. Die Zahl ENV 0 bis ENV 15 steht in Beziehung zum Neigungswinkel des stückweisen Linearsegments. Der Zählspeicher erzeugt eine 8-bit Zählung CNT 0 bis CNT 7.
Sämtliche vorstehend beschriebenen Vorgänge werden durch verschiedene Eingänge adressiert. Es gibt eine Instrumentenzahl, die eine 3-bit Zahl INS 0, INS 1 und INS 2 ist, wobei unterschiedliche Anschwell- und Abklinghüllkurven für unterschiedliche Instrumente ausgewählt werden. Mit der Segmentenzahl SEG 0, SEG 1 läßt sich ein Anschwellen an jedem beliebigen Instrument mit bis zu vier Segmenten, und das Abklingen mit bis zu vier Segmenten künstlich erzeugen. Außerdem durchgeschaltet wird das Signal "Anschwellen", welches für das Anschwellen einen unterschiedlichen Satz stückweiser LinearSegmente als für das Abklingen auswählt. Das Signal INIT wird mit Anschwellen oderverknüpft, um zu gewährleisten, daß die Daten bereit stehen, sobald der INIT-Zustand beendet und das Anschwellen begonnen ist. Die anderen beiden
509841 /0290
bits in der 8-bit Adresse sind SSEL und ISEL vom Instruktionswort und wählen die gewünschte Hüllkurve an, bei welcher es sich um die Anschwellhüllkurve, die Hüllkurve für den ersten Modulationsindex oder für den zweiten Modulationsindex handeln kann.
Sämtliche anderen Gatter in Fig. 9 schalten die Hüllkurven auf die Sammelleitung. Dabei handelt es sich um Dreizustandspuffer (tristate buffers), die drei Zustände, nämlich wahr, falsch und nicht angesteuert aufweisen. Die Aufschaltung von Daten auf die Sammelleitung erfolgt mit dem ODER von zwei Signalen, ENV von den Einschreib-Ansteuer-bits des Instruktionsworts, d.h. Dekoder 49 (Fig. 7) und CNTEN oder Zählen-Ansteuern. Zählen-Ansteuern ist wahr, wenn sich das Gerät im Anschwellzustand und nicht im Abklingzustand befindet, d.h. Zählen-Ansteuern gibt vor, daß sich die Amplituden verändern. Ansonsten befindet sich das Gerät im Stetigkeitszustand, wobei sich die Amplituden nicht ändern, so daß demzufolge Nullen auf die Sammelleitung geschaltet werden. Das Aufschalten von Nullen auf die Sammelleitung ist in Fig. dargestellt. Das Aufschalten der Hüllkurveninkremente auf die Sammelleitung ist aus Fig. 9 ersichtlich.
Figur 10 stellt die Hüllkurvensteuerung dar und enthält zwei Zählergruppen. Die erste Zählergruppe 61 besteht aus drei Zählern, welche die Zählung vom Hüllkurvenzählspeicher aufnehmen, bei welchen es sich um eine 8-bit Zählung 0-7 handelt, und welche die Anzahl von EL-Signalen zählen. Das EL-Signal ist ein dekodiertes Halte-Anwählsignal, wobei in jedem Prüftakt jeweils ein derartiges Signal vorkommt, d.h. eine Instruktion aus den 63 Instruktionen schaltet das EL-Bit ein. Die Zähler 61 zählen somit im wesentlichen Proben. Die aus dem Hüllkurvenzählspeicher herauskommende Zahl ist der Negativwert oder der Zweier-Komplementärwert der zu zählenden Probenzahl bis das Segment vervollständigt ist.
5098 U1/0290
Die Zähler 61 werden durch CNTEN, Zählen-Ansteuern angesteuert und zählen nur im Einschwing- oder Niedergangszustand, welche physikalisch das Anschwellen oder bzw. das Abklingen des Signals darstellen. Beim Überlauf der Zähler 61 wird CNTOV wahr, Zählerüberlauf, und gestattet, daß der andere Zähler 62 in Fig. 10 zählt. Der Zähler 62 zählt, welches des vier Segmente der stückweisen Linearnäherung verarbeitet wird. So wird im Initialisierungszeitpunkt der Zähler 62 gelöscht, und sein Ausgang ist Seg 0 und Seg 1, und dieser geht unmittelbar in die Adresse des Hüllkurvenspeichers und des Hüllkurvenzähispeichers ein» Im Betrieb wird eine Probenzahl gezählt, und dann wird CNTOV wahr und zählt zum nächsten Segment. Eine neue Zählung wird eingeladen, und die Anzahl von Proben in diesem Segment wird gezählt. Wenn vier Segmente durchgezählt worden sind, wird das Signal Hüllkurve ausgef. (=ausgeführt) wahr. Dadurch wird im Anscbwellzustand ein Übergang zum Stetigkeitszustand, und im Niedergangszustand eine Rückkehr zum Leerlaufzustand verursacht.
Außerdem gibt es noch einige weitere andere Eingangssignale, so z.B. Last ansteuern LDENB, Dieses Signal gestattet das Laden des Probenzählers 61 durch den Hüllkurvenzählspeicher 27 und wird erzeugt durch das ODER (Gatter 63) von Laden und CNTOV, wenn der Zähler überläuft, CNTOV wahr geworden ist und eine neue Zählung zur Aufnahme zur Verfügung steht. Beim Übergang in den Anschwellzustand ist die Zählung jedoch nicht übergelaufen, so daß ein Anlaufmittel erforderlich ist. Wenn Anlauf zum ersten Mal wahr wird, wird Last eingestellt.
Zählen-Ansteuern CNTEN wird durch das ODER von Anschwellen und Niedergang (Gatter 64) erzeugt. Dieses ist im wesentlichen wahr während der Anschwell- und Abklingabschnitte der Wellenform, ist jedoch nicht identisch zum Abklinghauptzustand. Insbesondere bilden vier Flip-Flops 66 ein soge-
5 098Λ1/0 290
nanntes Vierflop (four-flop). Das Anschwellen wird erzeugt durch Übergang in den Laufhauptzustand, dann wird Anschwellen wahr und bringt ebenfalls Last wahr. Last bleibt jedoch nur für einen Takt wahr, wohingegen Anschwellen so lange wahr bleibt, bis Hüllkurve ausgef. (=ausgeführt) erscheint, d.h. bis sämtliche vier Segmente durchgezählt worden sind. Danach bleibt Stetigkeitszustand so lange, bis der Abklinghauptzustand folgt, d.h. bis die Taste losgelassen wird. Anschließend geht das Gerät in den Niedergangszustand. R-Last wird erzeugt wie Last, d.h. bleibt vorübergehend an, wohingegen Niedergang so lange anbleibt, bis Hüllkurve ausgef. (=ausgeführt) wahr wird. Wenn die Taste nur ganz kurz angeschlagen wird, ändert sich der Hauptzustand zu Abklingen, wobei jedoch das Gerät so lange im Anschwellzustand verbleibt, bis Hüllkurve ausgef. wahr wird. Dann geht das Gerät für gerade einen kurzen Augenblick in den Stetigkeitszustand und schaltet dann in den Niedergangszustand um.
Figur 11 zeigt in Einzelheiten die Blöcke des Frequenzspeichers 37 und des Initialisierungs- oder Einleitungsspeichers 28 von Fig. 5. Der Frequenzspeicher ist unmittelbar mit dem Vierwegselektor 36 für den Zwischenspeicher gekoppelt, und der Initialisierungsspeicher 28 läßt sich auf die Sammelleitung durchschalten. Da der Initialisierungsspeicher nur acht bits aufweist, werden nur die acht bits höherer Ordnung auf die Sammelleitung geschaltet, während die acht bits niedriger Ordnung entsprechend der Darstellung in Fig. 12 als Nullen durchgeschaltet werden.
Entsprechend Fig. 11 besteht der Eingang zum Frequenzspeicher aus einer 7-bit Zahl FREQ 0 bis FREQ 6. Dabei handelt es sich um die Zahl einer Taste, welche mit A von 27,5 Hz beginnen. Jede Zahl gibt einen halben Schritt von diesem tiefen A an, d.h. 128 Frequenzzahlen können einen Bereich von 7 Oktaven oberhalb des tiefen A vorgeben. Diese Zahlen
5098Λ1 /0290
werden über den Frequenzspeicher in eine tatsächliche Frequenzzahl umgesetzt. Die Frequenzzahl ist somit der zur laufenden Stelle der Sinustabelle addierte Betrag, um die nächste Position in der Sinustabelle zu erhalten. Anders ausgedrückt, es handelt sich dabei um den Winkelzuwachs, dessen Sinus genommen wird. Die Speicherausgänge FTO bis FT15 sind mit dem Vierwegselektor 36 (Fig. 5) gekoppelt, der durch WSO und WS1 im Instruktionswort angewählt werden kann, welches das Schreiben-Anwählen-Signal in den Zwischenspeicher darstellt.
Der Initialisierungsspeicher wird durch die drei bits der Instruktion adressiert und außerdem durch einen Vier-bit Zähler, d.h. bis zu 16 Initialisierungskonstanten können zugeführt werden. Jedes Mal dann, wenn das Programm eine neue Initialisierungskonstante mit den IM-Signalen (welche von REO bis RE2 dekodiert sind) abfragt, zählt das Lesen-Ansteuern-Signal, das auf die Sammelleitung geschaltet wird, den Zähler 67 und geht somit zu einer neuen Initialisierungskonstante. Das Programm muß im wesentlichen wissen, um welche Konstanten es sich handelt und in welcher Reihenfolge diese eingespeichert sind.
Die Art der im Initialisierungsspeicher eingespeicherten Konstanten ist wie folgt: Zwecks Erzielung der höchsten Vielseitigkeit sind die Frequenz des Trägersinusoids und des Modulationssinusoids nicht notwendigerweise die gleiche Frequenz wie die Grundfrequenz. Der unterschied besteht darin, daß sie im allgemeinen kleine integrale Vielfache der Grundfrequenz darstellen. Diese integralen Vielfachen 0, 1, 2 oder 3 oder dgl. werden im Initialisierungsspeicher gespeichert, um später ausgelesen zu werden. Weiterhin sind im Initialisierungsspeicher die Beginnamplituden gespeichert. So beginnen manche Amplitudenhüllkurven mit einer nicht gleich null betragenden Zahl wie z.B. die Glocke, welche laut einsetzt und dann abklingt. Für die meisten
509841 /0290
Instrumente betragen diese Zahlen jedoch 0. Die Zahlen werden in einer bestimmten Reihenfolge gespeichert, d.h. Multiplikator für die zweite Modulationsfrequenz, Multiplikator für die erste Modulationsfrequenz und Multiplikator für die Trägerfrequenz. Ausgegeben aus dem Initialisierungsspeicher und durchgeschaltet zur Datensammelleitung (IMO bis IM7) sind die Anfangspositionen für den Winkel, dessen Sinus genommen wird, der in den meisten Fällen gleich 0 ist. Die nächsten drei, aus dem Initialisierungsspeicher herausgegriffenen Zahlen sind der erste Modulationsindex I1, der zweite Modulationsindex I- und die Signalamplitude A. I1, I2 und A sind Stellen im Zwischenspeicher. Im nachfolgenden ist eine Liste der Zwischenspeicherstellen mit den symbolischen Bezeichnungen angegeben.
Zwischenspeicherstellen:
10 11 12 13
14 ti
15 t2
fr1 gibt die Frequenz des zweiten Modulationsindex, pos1 den Winkel des zweiten Modulationssinusoids, fr2 und pos2 die Frequenz der ersten Modulationswellenform und den laufenden Winkel der ersten Modulationswellenform und fr3 und pos3 die Trägerfrequenz und deren Position an. A,
5 0 S 8 U 1 / 0 2 9 0
pos1 ; Fm2
fr1 ; Fm2*8
fr108
pos2 ; Fm1
fr2 ; Fm1*8
fr208
pos3 ; Fc
fr3 ; Index 2/8
I2 ; Index 1 / 8
I1 ; Amplitudenhüllkurve
A ; Zeit
ti2
und I„ sind die Amplitudenhüllkurve bzw. Index 1 und Index 2. Im Zwischenspeicher befinden sich drei zur vorübergehenden Speicherung dienende Zwischenergebnisspeicher, die mit ti, t2 und ti2bezeichnet sind. Zwei andere Zahlen fr108 und fr208 sind die Modulationsfrequenzen mal 8. Dabei handelt es sich um eine verschobene Konstante, die deswegen benutzt wird, weil in der Praxis die Indices wegen eines Festpunktsystems zwecks Maßstabsänderung (scaling) durch 8 geteilt sind.
Weiterhin zeigt Fig. 11 die Dreizustandspuffer, welche den Initialisierungsspeicher auf die Sammelleitung durchschalten.
In Fig. 12 ist der Zwischenspeicher (scratch pad memory) 26 (Fig. 5) dargestellt. Dieser Zwischenspeicher besteht aus dem eigentlichen Speicher, der sich aus vier Lese-Schreib-Speichern aus jeweils vier 16-bit Speichern zuscimmensetzt. Die Daten in den Zwischenspeicher stammen von dem Vierwegselektor 36, welcher durch WSO und WS1 angewählt wird, die entsprechend Fig. 6 aus dem Instrukticnswort kommen. Damit wird eingegeben entweder der Ausgang des Multiplikators MPO bis MPI5 ,die Suminierschaltung AOO bis AO15, die Sinustabelle STO bis ST15 und der Frequenzspeicher FTO bis FT15, wobei die Selektorschaltung ein Zwischensignal 011 bis 0115 erzeugt, das direkt an die Zwischenspeicherdateneingänge angelegt wird. Der Zwischenspeicher liest stets, wird jedoch auch angesteuert zu Schreiben durch WE, das ein bit im Instruktionswort ist, d.h. Schreiben-Ansteuern, WE, und seine Taktgabe I Last.
Das Signal Schreiben-Ansteuern des Zwischenspeichers ist wahr, wenn WE, das Schreiben-Ansteuer-bit des Instruktionsworts wahr ist. Es wird I Last getaktet oder nicht, d.h. der abfallende Rand der Instruktionslast. Dadurch wird das Einschreiben-Ansteuern wahr, und sobald das Haltetaktsignal
5 0 9 8 k 1 / 0 2 9 C
ercheint, wird das Schreiben-Ansteuern abgeschaltet, indem die Daten zu diesem Zeitpunkt eingeschrieben sein dürften.
Die in Fig. 13 dargestellte Schaltung führt drei unterschiedliche Vorgänge in bezug auf die Datensammelleitung aus. Sie kann den Zwischenspeicherausgang, der MemO bis Mem15 ist, auf die Datensammelleitung und Nullen auf diese durchschalten. Das ist natürlich wichtig für die Hüllkurvensteuerung während des Stetigkeitszustands, wenn sich die Amplituden- und Modulationsindices nicht verändern. Außerdem können Nullen auf die bits hoher Ordnung der Sammelleitung geschaltet werden, wenn das LOB, d.h. das Bitsignal niedriger Ordnung im Instruktionswort wahr ist. Das erfolgt zum Zwecke der Sinustabelleninterpolation. Als drittes wird schließlich eine Konstante 3/4 durchgeschaltet, d.h. die höheren bits bei 3/4 einer Drehung auf die Sammelleitung. Dieser Vorgang wird durch Signal C1 gesteuert, das eines der Lesen-Ansteuern-Signale darstellt, d.h. REO bis RE2 gehen in einen Demultiplexer, der eines der Signale C1 erzeugt. Dabei handelt es sich um eine Konstante, die zur Erzielung eines Kosinus zum Sinuswinkel addiert wird und im wesentlichen 3/2 pi beträgt.
Auf der linken Seite der Sammelleitung befinden sich zur Operationssteuerung dienende Gatter 68. Bei einer Stetigkeitszustandsbedingung ist beispielsweise erwünscht, 0 auf die bits 8-15 niedriger Ordnung der Sammelleitung zu schalten, vorausgesetzt, daß der Initialisierungsspeicher, das IM-Signal ausgelesen und die Konstante C1 von der Hüllkurve vorhanden ist. Das ODER dieser Bedingungen erzeugt ein Signal ENBGND 8-15, Ansteuern-Masse auf 8 bis 15, wodurch wiederum die drei Zustandshalteschaltungen gesteuert werden, welche Masse auf die bits niedriger Ordnung der Sammelleitung durchschalten. Die bits hoher Ordnung schalten die bits 0 bis 5 und bits 6-7 etwas unterschiedlich. Sämt-
509841/0290
liehe bits werden unter der Bedingung auf Masse durchgeschaltet, daß der Stetigkeitszustand für die Hüllkurve vorhanden ist. Der einzige Grund, aus dem die bits 0-5 unterschiedlich durchgeschaltet werden gegenüber den bits 6-7 besteht darin, daß die Konstante C1 nur die ersten sechs bits belegt, und die übrigen Nullen sind. Wenn C1 wahr ist, werden die Nullen auf bits 6-15 der Sammelleitung durchgeschaltet, und Masse wird angesteuert, d.h. Nullen werden auf 6-7 getrennt angesteuert, und die Bedingung, unter welcher die Nullen auf 6-7 durchgeschaltet werden, besteht darin, daß LOB wahr ist, d.h. bits niedriger Ordnung durchgeschaltet werden. Nullen werden in die bits hoher Ordnung der Datensammelleitung vom Instruktionswort durchgeschaltet, wenn ENV und nicht Zählen-Ansteuern, CNTEN wahr ist, d.h. wenn eine Hüllkurvenanfrage vorhanden ist. Sie befinden sich im Stetigkeitszustand oder es ergibt sich eine Instruktionsspeicher- oder Initialisierungsspeicheranfrage, oder wenn die Konstante auf die Sammelleitung geschaltet wird. Nullen werden auch auf die bits 0-5 der Sammelleitung geschaltet, wenn LOB wahr ist, d.h. nur bits niedriger Ordnung und wenn Hüllkurvensteuerung und Stetigkeitszustand wahr sind.
In Fig. 14 ist die Summierschaltung 32 dargestellt, welche aus drei Teilen besteht, nämlich einem 16-bit Addierer und zwei Eingangs-Halteschaltungsn 71 und 72. Die Eingangs-Halteschaltungen werden abgetastet oder halten Daten von der Sammelleitung, 16 bits auf den AL1 und AL2-Signalen. AL1 hält 71 und AL2 hält 72. Der Ausgang dieser Halteschaltungen liegt unmittelbar an dem 16-bit Addierer 70. Der Ausgang des Addierers ist mit AO 0 bis AO 15 bezeichnet und besteht aus einer 16-bit Zahl. Der Ausgang des Addierers ist mit zwei unterschiedlichen Stellen verbunden, nämlich der Sinustabellen-Eingangshalteschaltung und dem Zwischenspeicher-Schreibselektor. Wenn der Winkel eines Sinusoids auf den neuesten oder letzten Stand gebracht wird,
509841/0290
wird das Winkelinkrement (d.h. der Winkelzuwachsbetrag) zu diesem addiert, und gleichzeitig können diese Daten zur Sinustabelle übergehen. Somit kann nicht nur der auf den letzten Stand gebrachte Winkel zurück in den Zwischenspeicher eingespeichert werden, sondern auch die Sinustabellenschleife kann gleichzeitig zum Anlauf gebracht werden.
In den Fig. 15 und 16 ist die Steuerung des 16-bit Multiplikators 31 von Fig. 5 dargestellt. Der 16-bit Multiplikator 31 weist zwei Halteschaltungen, eine dritte Halteschaltung für das Partialprodukt, einen 16-bit Addierer und ein 16-bit Gatter auf, welches den Multiplikanden in den 16-bit Addierer durchschaltet und ihn bei Verschiebung zum Teilprodukt addiert, und außerdem etwas Steuerlogik auf. Die Steuerlogik besteht im wesentlichen aus der Multiplikatorhalteschaltung, die aus einem Schieberegister 73 und einem Zähler 74 besteht, welche 15 Mal zählen und dann anhalten. Die Arbeitsweise ist wie folgt: Bei Signal MPL2 wird der Multiplikand in eine der Multiplikatorhalteschaltungen eingeriegelt, d.h. in dieser gehalten. Bei Signal MPL1 wird der Multiplikator in ein 16-bit Schieberegister eingeriegelt, wobei MPL1 außerdem die Multiplikatorsteuerschaltung rückstellt. Der Abfall von MPL1 schaltet MP Last wahr, wodurch beim nächsten Abfall des Schritts MP der Zähler geladen wird. Die Ladung des Zählers mit +1 erfolgt in 15 und nicht 16 Schritten. MP-Schritt wird durch MP GO und den Haupttaktgeber Flip-Flop 76 erzeugt. Aus Synchronisationsgründen wird jedoch der Ausgang zurück zum Eingang durchgeschaltet. Die Arbeitsweise ist wie folgt: Das Signal MPL1 (welches das Durchschalten der Multiplikatoreingangshalteschaltung steuert) fällt, wodurch MP Last wahr durchgeschaltet und das Last-Ansteuern des Zählers in den Wahr-Zustand versetzt wird. Beim nächsten Haupttakt wird dann der Zähler mit einem +1 geladen, und MP GO wird wahr gemacht, wodurch MP Last falsch wird. Sobald MP GO wahr ist, führt jeder MP-Schritt zum periodischen Betrieb des
509841/02 90
Multiplikators. Beim Multiplikator selbst sind der Reihenausgang der 16-bit Eingangshalteschaltung 77 und des Schieberegisters 73 mit MC-Ansteuern (Multiplikanden-Ansteuern) bezeichnet und werden in eine Gruppe von Gattern 78 (Fig. 16) eingekoppelt, welche den Multiplikator in die Addierer 79 durchschalten und das Partialprodukt zum Multiplikator addieren. Bei jedem Schritt schaltet das Signal MC-Ansteuern oder Multiplikand-Ansteuern den Multiplikanden in die Addierer oder nicht. Auf diese Weise werden alle 15 bits des Multiplikators schrittweise durchgeschaltet. Das Partialprodukt wird durch die Halteschaltung 81 in ein 16-bit Register am Ausgang eingeriegelt. Das ist im Blockschaltbild nicht dargestellt, befindet sich jedoch innerhalb des 16-bit Multiplikatorblocks. Ein Ausgang ist gesteuert durch den MP-Schritt. Der Ausgang der Halteschaltung 84, die Signale PM 0 bis MP 15, ist das Partialprodukt, welches nach dem letzten Multiplikatorschritt das Produkt wird. Die Rechtsverschiebung des Partialprodukts erfolgt in Fig. 16 in einfacher Weise durch Ordnen der Bits bei ihrem Rücklauf in den Addierer, indem die Bits um eins nach rechts verschoben werden. Im ersten Addierer 79 ist das Vorzeichenbit zweimal MPO als die ersten zwei bits. Das bedeutet eine arithmetische Zweikomplementenverschiebung nach rechts,wobei die Kopie des Vorzeichenbits in die freien Stellen kopiert wird, indem das bit niedriger Ordnung in jedem Takt weggelassen wird, da ein Multiplizieren zu einem Resultat von 31 bits führt und lediglich 16 bits erforderlich sind. Der Multiplikator wird durch den Überlauf des Zählers 74 angehalten, wodurch MP-Löschen erzeugt wird, welches MP 60 abschaltet und den Multiplikator anhält. Das Produkt steht am Multiplikatorausgang (Halteschaltung 81) als Signale MPO bis MP 15 zur Verfügung. Diese Multiplikatorausgangssignale bleiben natürlich wahr bis die nächste Multiplikation beginnt. Die Gesamtmultiplikation benötigt 15 Taktschritte. Ein Taktschritt erstreckt sich über etwa 200
509841/0290
Nanosekunden, so daß das ganze Multiplizieren 3 Mikrosekunden oder etwa 5 Instruktionstakte benötigt. Im fünften Instruktionstakt nach Initiieren der Multiplikation kann der Ausgang verwendet werden.
Das Gerät führt gleichzeitig andere Vorgänge aus, indem es leicht pipelineförmig ausgelegt ist, so daß der Multiplikator geladen werden kann und während des Rechnens andere Dinge wie die Amplitude oder den Modulationsindex auf-den neuesten-Stand-bringen ausgeführt werden kann.
Figur 17 zeigt das Ausgangsregister, welches durch das Signal "Last-Aus-Puffer" durchgeschaltet wird, das durch die Halteauswählbits LSO bis LS1 vom Instruktionswort erzeugt wird. Dadurch werden 16 bits von der Sammelleitung abgenommen und verriegelt. Das Programm berechnet fortlaufend, wie die Ausgangswellenform aussehen sollte und schaltet im letzten Schritt die Wellenform auf die Datensammelleitung und tastet "Last-Aus-Puffer" ab, wodurch das Ausgangswort zum Digital-Analog-Wandler 22 (Fig. 5) übertragen wird.
Fig. 18 ist eine Sinustabelle, die aus einem 256 - 16-bit-Wort-Nur-Lese-Speicher besteht. Der Ausgang des Nur-Lese-Speichers ist mit STO bis ST15 bezeichnet und zurückgeführt zum Eingangsselektor für den Zwischenspeicher. Die Adresse für die Sinustabelle kommt aus dem Addierausgang AOO bis A07, d.h. es werden nur die acht bits hoher Ordnung berücksichtigt und auf das Signal ST gehalten, das wiederum von den Halteauswählbits des Instruktionsworts LSO bis LS2 erzeugt wird. Wenn das Signal ST auftritt, wird der Addiererausgang gehalten und erzeugt innere Signale SAO bis SA7, d.h. die Sinusadresse oder den Sinuswinkel. Mit diesen Speichern kann es bis zu einer Mikrosekunde dauern, bis die Daten zur Verfügung stehen, so daß eine Mikrosekunde oder angenähert zwei Instruktionstakte später der Sinus zur Verwendung zur Verfügung steht.
S09841/0290
Das laufende Programm für das vorstehend beschriebene Gerät ist im nachfolgenden dargestellt.
INSTRUKTIONSSPEICHERSTELLEN
Laufendes Programm ISEL, MA, WS, LS, RE, LOB, SSEL, WE
INSTRUCTION ilL'MORY locations ., RUNNING program
0 AO posl ·« ALl
1 frl ·*■ AL2
2 MO ■· posl, AO ·♦ ST
3 ST 12 * AlI
4 ■» ti ·» outbuf
5 ■» ti ■♦ Ml2
6 r AO 12 * MlI'
7 envOß) + AL2
10 - 12
11 AO pos2 ·♦ ALl
12 MO fr2 « AL2
13 ·· pus2, AO ·♦ ST
14 ·♦ ti <· Ml2 ' ■
15 frlo8 ■* HLl
16 ST pos2 ·♦ ALl
17 - Cl ^ AL2
20 ·♦ ti, AO ·♦ ST
21 MO Il - ALl
22 ' ST env(lß) - AL2
23 - ti2
M AO ■· t2 ■» ML2
?5 pos2( t ob > ·· MLl
26 - U
>7 AO A ·· ALl
10 env(ll) -♦ AL2
ίΐ ■♦ A
!2 MO ti - AL2
t3 AO nop
»4 -♦ ti -· AlI
• 5 η ti ■» ML2
6 U - MLl
I se I, m, WS, LS, RC, LOB, SSEL, WE
10123456789,112345
"iP#™y3,l,a,0,0 3000Π00011Π0100Ο >"!»1»Γγ4,1,0,0,0 0030100100001000 B,0,lr5,0,0,D,l 0000001101000001
0,10,0,3,1,0,0,0
Z,14,0,7,1,0,0,1
0,14,2,2,1,3,0,1
0,10,0,1,1,0,0,0
3,2,0*4,5,3,0,0
1,10,I10,0,3,0,1
1#3,Zr?,1,3,0,55
i,3 ',II 5,' a! 0! oji
1,14,0,2,1,0,0,1
1,2,PyI,!, ίϊ, £1,0
1#3,P»3,1,£J,0,0
1,14^,2,5,0,0,0,1
1,11,0,3.1,0,0,0
1,13,0,0,0,0,1,1
1,15,2,2,1,0,1.1
1,3,0,1,1,1,1,0
1,11,1,0,0,0,1,1
1,12,0,3,1.0,1,0
1ι3ι3τ4,3,ί1,1,0
3.12,1,0.3,0,8,0
0,14,0,4,1,0,0,0
0,14,0,3,1,3,0,1
3,14,1,2,1,0,0,1
0,11,0,1,1,0,0,0
Π100ί503011θ01030
3110O00111r?01001
0110013010001301
• 0100000001001000
iI0E10D03l001Ü10C?0 11R0001000000001
1001100011001000
1110003210001001
1001100011001000 1000O001U0011000
1100100011B01000 100000D1001010K0
1101100000000011
1110113010001011 I0ßll0000l001110 1100101000'300011
llßlf!0301100101'0
10Z0000100101010 0101301000302000 0110^00100001000
011ΖΓΙ00311301001 0110001010001001 0100100001001000
509841/0290
Portsetzung Laufendes Programm:
37 MO nop - ALI * ALl P 14,0 ,2 ,1 3, 10,0 C
40 nop ■ AL2 AL2 1Pi 5,2!, 1, 1, rf, σ 0
41 nop - AL2 ML 2 0
42 nop ; ■♦ ALl MLl 3' ß
43 nip 9 im
AO ■♦ ST
EL n. f.
44" ·♦ ti ■< -» ALI Zt ,a 01100030100010
45 AL2 .. 3, 13,0 ,3 ,1 .0 ,0,ίΐ 00101000010010
46 MO AO - ST \ 14,0 ,4 ,1 ,a 10,1 0
47 AO 13,1 ,4 ,1 ti. ,3,1 0
50 |Ob> - ML2 •j 6, ?r 3, ·- #
10
0» 0 0
51 AO MLl {'. 13,1 ,5 ,3 10,1 0
52 > ml? - Al2 0, 13,0 .3 ,1 «a, ,0,0 01211000110010
53 fr2o8 + MLl - ALl 3,-?» 4, 3. .3 ß, 3 f511000iJ103!3010
54 st nop 01 14,2 .5 ,3 10,0 31011011003010
55 nop ,1 ϊ]011.ί!'ί52!01ΐΊ0ΐΊι
56 nop C? I 13,0 ,2 ,1 ,3 ,0,0 >' M 4 «h Χ' t/ * " <■ * iV K< Ä W
31011011010030
57 ST nop ?, 15,2 ,1 ,1 3, ,0,1 010110001100101
60 tl2 0, 6,0r 4, 1, tf» 3,β 00300031000110!
61 -» ti η 3, 1, 0, 0,0 011001310100001
62 AO ·♦ tl2 <»■ 6,Ir Z, 0, 0»1 0
63 pos3 01 010110901000111
64 ·♦ ti 2, 0, .0 311011300120101
65 HO tl2 Pi 15,0 .3 ll ,3 ι0,1 30113001303310!
66 Cl - n, 15,0 ,4 .1 ,J 10,0 Ρ01030301Π012!
67 AO - ti, 3# 14,1 ,2 ll i3 ι0,1 00113010003000)
70 nop • a 12,0 ,1 ,1 0,1 ι0,Ü 0
71 tl2( ?. 0,?r! 6i J,Π 0
72 * t2 ·♦ ?.t 011010Ζ0110010!
73 pos3 0, 011010010000101
74 frg 0110(5010103010!
75 ·* pos3 Pi 01iUß00t50ln010(
76 nop Ti, 00f!0flß01l08200i
77 nop Cl
%2 +
ti -
·♦ ti *
A ·♦
·♦
nop
509841/0290
Im vorstehenden laufenden Programm steht in der linken Spalte die tatsächliche Programmzählerzahl in Oktalform. Die zweite Spalte gibt in KurzSchreibung an, wohin die Daten abfließen. Im allgemeinen sind die Addiererhalteschaltungen AL1 und AL2, die Multiplikatorhalteschaltungen ML1 und ML2, die Sinustaballenhalteschaltungen ST, und der Hüllkurvenspeicher ist ENY. Für den Zustand der bits ISEL und SSEL sind diese ENV (00, 01, 10, 11) und reflektieren die vier möglichen Zustände. Zum Zurückschreiben in den Zwischenspeicher steht entweder AO für Addiererausgang, MO für Multiplikatorausgang, ST für Siriustabelle oder FT für Frequenztabelie. Das trifft selbstverständlich nur auf Initialisierung zu.
Das Programm läuft in folgender Weise ab. Die erste Instruktion zeigt pos1 übergehend zn AL1. Die nächste Instruktion zeigt fr1 übergehend su AL2„ Das bedeutet, daß der laufende Winkel der zweiten Modulationsfrequenz in die Addiererhalteschaltung, und die zweite Modulationsfrequenz selbst, welche tatsächlich das Winkelinkrement darstellt, in die zweite Addiererhalteschaltung eingeriegelt wird. Im nächsten Takt wird der Addiererausgang wiederuM in den Winkel eingespeichert, d.h. } daß der Winkel auf den neuesten Stand gebracht wird und der Äddisrerausga^g ebenfalls zur Sinustabelle geht. Instruktion 3 zeigt den zweiten Modulationsindex, welcher zur ersten Addiererhalteschaltung geht, Dieser Vorgang erfolgt pipelinienförmig, und Instruktion 4 stammt eigentlich aus dem vorhergehenden Takt. Während dieser Zeit hat der Multiplikator die Endmaßsfcabsänderung des _Ausgangssignals ausgeführt. In Instruktion 4 wird der Multiplikator-ausgang durch den Zwischenspeicher in einer Zwischenspeicherzelle ti durchgeschaltet und gelangt smra Ausgangspuffer. Es steht genügend Zeit zur Verfügung, um den Ausgang einer der arithmetischen Einheiten in den Zwischenspeicher durchzuschalten, aus dem Zwischenspeicher auf die Batsnsammelleitung umzuschalten und in der Halteschaltung wie z.B, dem Ausgangs-
B09841/C29Q
puffer zu verriegeln. Diese Zeit ist vom vorhergehenden Takt übrig und zeigt einen Teil des Pipelinebetriebs entsprechend der Erfindung, indem Multiplikation während der ganzen Zeit erfolgt. Instruktion 3, bei welcher der Modulationsindex in die Addiererhalteschaltung 1 durchgeschaltet wird, ist gepaart mit Instruktion 7, um den richtigen Teil des Hüllkurvenspeichers in die zweite Addiererhalteschaltung durchzuschalten, damit der zweite Modulationsindex auf den neuesten Stand gebracht und der Addiererausgang auf Instruktion 10 zurück in I» eingespeichert wird. In der Zwischenzeit erfolgen zwei andere Vorgänge. Die Sinustabelle bei Instruktion 2 begann mit dem Nachsehen des Sinusoids des zweiten Modulationsindex, und auf Instruktion 5 ist dieser Sinus nunmehr gültig, da genügend Zeit zur Verfügung stand, in welcher die Sinustabelle das 16-bit Sinuswort nachsehen konnte. Der Sinustabellenausgang wird daher zum Durchlauf durch den Zwischenspeicher in einer Zwischenspeicherzelle gebracht und in eine der Multiplikatorhalteschaltungen eingegeben. Bei Instruktion 6 wird der zweite Modulationsindex in die erste Multiplikatorhalteschaltung eingegeben, wodurch die Multiplikation beginnt. Dabei erfolgt natürlich eine Maßstabsänderung des zweiten Modulationssinusoids durch den zweiten Modulationsindex. Nun läuft der Multiplikator, und Instruktionen 7 bis 10 laufen durch und vervollständigen den Vorgang, durch welchen der zweite Modulationsindex auf den letzten Stand gebracht wird.
Die Instruktionen 11, 12 und 13 bringen den Winkel für die erste Modulationswellenform auf den letzten Stand und senden diesen Winkel zur Sinustabelle. In Instruktion 14 wird der Inhalt des Multiplikators, der zweite Modulationssinusoid mal dem zweiten Modulationsindex, durch den Zwischenspeicher über ti ausgegeben und gelangt wieder zum Multiplikator. Auf Instruktion 15 wird die zweite Modulationsfrequenz wiederum in den Multiplikator durchgeschaltet, weil in
B09841/0290
Phasenmodulation (das künstliche Operationserzeugnis) der zweite Modulationssinusoid nicht nur mit der zweiten Indexfnnktion, sondern auch mit der zweiten Modulationsfrequenz selbst multipliziert werden muß. Dadurch wird die vorgenannte Multiplikation ausgelöst, und wenn die Multiplikation beendet ist, ist die zweite Modulationsfunktion vervollständigt .
Auf Instruktionen 16 und 17 wird der Winkel der ersten Modulationsfunktion aufgenommen, zusammen mit der Konstante, welche einen Winkel umsetzt, so daß der Kosinus des Winkels in die Addiererhalteschaltung eingespeichert wird. Auf Instruktion 13 wird der Sinus des den ersten Modulationssinusoid darstellenden Winkels nachgesehen. Diese Sinustabelle wird gelesen und stand bereits einige Zeit lang zur Verfügung. Auf Instruktion 20 wird der Ausgang der Sinustabelle in der vorübergehenden Zelle oder Zwischenspeicherstelle ti gespeichert, und der Ausgang der Halteschaltung wird durchgeschaltet, bei dem es sich um den Kosinus des Winkels der ersten Modulationsfunktion in dar Sinustabelle handelt. Diese Sinustabelle wird in Instruktion 24 benutzt, jedoch werden in der Zwischenzeit bei den Instruktionen 21 und 22 der erste Modulationsindex und das Hüllkurvenspeicherwort zum Addierer übertragen. Das Hüllkurvenspeicherwort gibt den Betrag an, um welchen der Modulationsindex vermehrt werden muß, indem der erste Modulationsindex auf den neuesten Stand gebracht wird. Im Stetigkeitszustand ist der Ausgang dieses Hüllkurvenspeichers null. Diese Vorgänge werden intern gesteuert. Der Ausgang geht zur Addiererhalteschaltung und wird weiter unten bei Instruktion 26 benutzt, bei welcher der Ausgang der Addiererhalteschaltung abgegriffen und zurück in den ersten Modulationsindex eingespeichert wird.
Während dieser Zeit hat der Multiplikator die Instruktion
/0290
ausgeführt, wobei die zweite Modulationsfunktion im Zwischenspeicher in einer Zwischenspeicherzelle ti2 gespeichert worden ist. Diese Funktion wird erst wesentlich später bei Instruktion 52 benutzt. Bei Instruktion 24 steht der Kosinus am Ausgang der Sinustabelle zur Verfügung und wird durch eine Zwischenspeicherzelle in den Zwischenspeicher t2 durchgeschaltet. Der Sinus des die erste Modulationsfunktion darstellenden Winkels ist ti. Der Kosinus wird durch t2 zur Multiplikatorhalteschaltung durchgeschaltet, und die bits niedriger Ordnung des Winkels werden in Instruktion 25 in den Multiplikator durchgeschaltet. Dabei handelt es sich um die Interpolation, indem der Sinus der hohen Ordnung des Winkels zusammen mit dem Sinus der bits niedriger Ordnung mal dem Kosinus der bits hoher Ordnung des Winkels genommen wird. Der Kosinus ist natürlich die Ableitung, und die bits niedriger Ordnung sind das Δ/Θ zum Durchschalten durch das Inkrement. Dieses fällt aus der Kosinussumme der Winkelformel heraus, indem Sinus von bits hoher Ordnung plus bits niedriger Ordnung angenähert 1 ergeben, zuzüglich Kosinus von bits hoher Ordnung, Sinus von bits niedriger Ordnung. Der Sinus von bits niedriger Ordnung ist natürlich angenähert gleich den bits niedriger Ordnung, welche in den Multiplikator durchgeschaltet werden. In der Instruktion erfolgt die Sinustabelleninterpolation für die erste Modulationswellenform. Keine Interpolation erfolgt an der zweiten Modulationswellenform. Das ist darauf zurückzuführen, daß diese als Knirschfunktion verwendet und zur Erzeugung von Disharmonie verwendet wird, so daß es nicht darauf ankommt, wenn diese nicht interpoliert ist, da sie für unharmonische Teilfrequenzen verwendet wird.
Der Multiplikator läuft nunmehr. In Instruktion 26 wird der Ausgang der Halteschaltung, welcher nunmehr den auf den neuesten Stand gebrachten ersten Modulationsindex nachstellt, abgegriffen und zurück in den Zwischenspeicher eingespeichert. Die Instruktionen 27 und 30 schalten die Amplitude durch.
5 0 9 8 Λ 1/0290
Dabei handelt es sich um die Gesamtamplitude der Wellenformen und um die letzte Multiplikation an der Wellenform, bevor diese zum Ausgangspuffer übertragen wird. Amplituden- und Hüllkurvenspeicher werden durchgeschaltet, wodurch das Inkrement in den Addierer vorgegeben wird, und in Instruktion 31 wird der Addiererausgang zurück in A, d.h. die Amplitude, durchgeschaltet. Die Speicherstelle ti enthält bereits den Sinus des die erste Modulationsfunktion darstellenden Winkels. In Instruktionen 32 und 34 wird die Interpolation dadurch vervollständigt, daß der Ausgang des Multiplikators, welcher aus bits niedriger Ordnung mal Kosinus besteht, abgegriffen und zu dem Inhalt von ti, welches der Sinus ist, addiert wird. In Instruktion 35 wird der Addiererausgang abgegriffen und in den Multiplikator zurück eingeführt. In Instruktion 36 beginnt die Multiplikation mit der ersten Indexfunktion. Der Multiplikator berechnet I1, den Modulationsindex, mal Sinuswert sin W t, d.h. den Sinusoid, welcher die erste Modulationsfunktion darstellt. In diesem Zeitpunkt ist kein anderer Vorgang auszuführen, so daß fünf nops (Null-Operationen) bis zur Beendigung der Arbeitsweise des Multiplikators zur Verfügung stehen. In Instruktion 44 wird der Multiplikatorausgang durch die Zwischenspeicherstelle ti zurück zum Multiplikator durchgeschaltet, und in Instruktion 45 wird die zweite Modulationsfrequenz, welche durch Multiplikation mit 8 in ihrem Maßstab verändert worden ist, aus dem Zwischenspeicher zurück zum Multiplikator durchgeschaltet. Das Multiplizieren beginnt und beendet die erste Modulationsfunktion. Die erste Modulationsfunktion ist die Modulationsfrequenz mal dem Index mal dem Sinusoid. Die Maßstabsänderung durch den Faktor 8 dient zur Kompensation des Festpunktgeräts. Der interessierende Modulationsindex I1 wird durch 8 geteilt. Er ist somit genau um den Faktor 8 kleiner, wobei dieser Faktor 8 durch Multiplikation der Modulationsfrequenz mal 8 zurückerhalten wird.
503841/02 9 0
Auf diese Weise lassen sich alle Maßstabsänderung ausführen. Nachfolgende nops dienen in den Instruktionen 46 bis 51 zur Taktvorgabe für den Multiplikator. Für die Instruktionen 52 und 53 sei daran erinnert, daß sich in ti2 die vollständige zweite Modulationsfunktion befindet. Diese wird zum Erzeugen des Winkelinkrements zur ersten Modulationsfunktion addiert und zu dem Trägerwinkel addiert, so daß der Winkel für das modulierte Sinusoid erhalten wird. In den Instruktionen 52 und 53, für welche die vollständige zweite Modulationswellenform und der Multiplikatorausgang, welcher die vervollständigte erste Modulationswellenform bildet, zur Verfügung stehen, werden beide in den Addierer durchgeschaltet. Der Addiererausgang wird in Instruktion 54 wieder zurückgeführt in ti2 und überschreibt die erste Modulationswellenform. Somit ist ti2 nunmehr die Summme der Modulationswellenform. In Instruktion 55 wird pos3, d.h. der den Trägersinusoid darstellende Winkel in den Addierer durchgeschaltet.
Somit wird der durch die beiden modulierenden Wellenformen dargestellte Winkel addiert. Dieser Addiererausgang wird in ti2 gespeichert und überschreibt die bereits in diesem befindlichen Daten. Außerdem beginnt die Sinustabelle mit ihrer Operation an dem Trägersinusoid. Der Grund für die Speicherung in tx2 besteht darin, daß eine Interpolation ebenfalls an dem Trägersinusoid ausgeführt werden kann. In Instruktionen 56 und 60 werden ti2, d.h. der Gesamtsinusoidwinkel und die Konstante 3 %/2 in den Addierer durchgeschaltet. In diesem Zusammenhang sei daran erinnert, daß sich in der Sinustabelle ein Betrag befindet, der in Instruktion 56 angefangen wurde. In Instruktion 61 wird der Sinustabellenausgang und der zu diesem Zeitpunkt in ti2 befindliche Winkel in ti eingegeben, d.h. dem Sinus des Ausgangssinusoids des modulierten Sinusoids. Der Addiererausgang wird durchgeschaltet in die Sinustabelle, wodurch das Nach-
509841 /0290
sehen des Kosinus beginnt. In Instruktion 62 steht zur Taktgabe kein nop zur Verfügung.
In Instruktion 63 werden die bits niedriger Ordnung von ti2, welche den Gesamtwinkel darstellen, in den Multiplikator durchgeschaltet. In Instruktion 64 wird die Sinustabelle, welche den Kosinus des Winkels darstellt, durch die vorübergehend benutzte Zwischenspeicherstelle t2 in den Multiplikator herausgebracht. Damit beginnt das Multiplizieren der bits niedriger Ordnung des Winkels mit dem Kosinus der bits hoher Ordnung des Winkels, wodurch die Interpolation erfolgt. Weiter unten bei den Instruktionen 72 und 73 werden diese zueinander addiert. Das Multiplizieren beginnt für die Endinterpolation. Der Winkel für die Trägerwelle ist jedoch noch nicht auf den letzten Stand gebracht worden, so daß dieses in den Instruktionen 65, 66 und 67 erfolgt. pos3 und fr3 werden in die Addierhalteschaltung durchgeschaltet, um den das Trägersinusoid darstellenden Winkel auf den letzten Stand zu bringen, und dieser wird zurück in den Zwischenspeicher eingespeichert. In den Instruktionen 70 und 71 stehen zwei nops zur Taktgabe zur Verfügung. In Instruktion 72 ist der Multiplikator fertig. Der maßstäblich veränderte Kosinus kommt in Instruktion 72 aus dem Multiplikator, während in Instruktion 73 der im Zwischenspeicher ti gespeicherte Sinus herauskommt. In Instruktion 74 wird die Summe derselben erzeugt, welche den gesamten interpolierten Sinusoid darstellt. Dieser wird durch die Zwischenspeicherstelle ti in den Multiplikator durchgeschaltet, und in Instruktion 75 wird die Gesamtamplitude in den Multiplikator durchgeschaltet. Damit beginnt die Multiplikation und die Schlußmaßstabsveränderung. Die Multiplikation wird jedoch nicht bis zum nächsten Takt ausgeführt, und auf Instruktion 4 des nächsten Takts wird der Multiplikatorausgang durch den Zwischenspeicher und in den Ausgangspuffer durchgeschaltet. Damit wird die künstliche Erzeugung oder Synthese der Wellenform beendet. In Instruktion 56 wird ein Signal EL durch-
509841/0290
gegeben, durch welches das Hüllkurvensystem seinen Takt durchläuft. Dadurch zählt der Hüllkurvenprobenzähler zur nächsten Probe und tastet falls erforderlich das nächste Zeilensegment des Hüllkurvenspexchers ab. Damit ist das laufende Programm in der Wellenformsynthese ausgeführt.
- Patentansprüche: 509841/0290

Claims (3)

  1. Patentansprüche :
    .) Verfahren zum künstlichen Erzeugen eines musikalischen Klangs aus einer Vielzahl von Komponentenfrequenzen, gekennzeichnet durch Ausbildung einer zeitlich veränderlichen Amplitudenhüllkurve mit einem zeitlich veränderlichen Anschwellabschnitt, einem praktisch gleichbleibenden oder Stetigkeitsabschnitt und einem zeitlich veränderlichen Abklingabschnitt, Erzeugung eines zur Vorgabe einer im Tonfrequenzbereich liegenden Trägerfrequenz dienenden Signals U) , Erzeugung von zur Vorgabe erster und zweiter, im Tonfrequenzbereich liegender Modulationsfrequenzen dienender Signale U)
    m1 und U) , wobei das Verhältnis U) / U) gleich einer
    m2 2
    irrationalen Zahl ist, Erzeugung von zur Vorgabe zeitlich veränderlicher Modulationsindic.es dienender Signale I- (t)
    und I0 (t) , wobei U) mit &J und b) frequenzmoduliert δ c m1 m2
    und eine frequenzmodulierte Welle erzeugt wird, die der Formel
    e = Asin [ Wct + 1I (t) sin 0Hi^ + Z2{t) ^ entspricht, in welcher e die Momentanamplitude der frequenzmodulierten Welle, Ä die Spitzenamplitude der Welle und [ω t + I1(t) sin ω t + I„(t) sin ω ti das Fre-
    quenzspektrum der Welle ist, welches sich als Funktion der Modulationsindices I1Ct) und I9Ct) ändert und eine Darstellung des Klanges ist,
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß I-(t) als Funktion des Anschwellabschnitts der Amplitudenhüllkurve verändert wird.
  3. 3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß I-(t) im Vergleich zur Periode von U) über eine sehr kurze Zeitspanne vorgegeben wird.
    509841/02 9 0
DE19752513127 1974-03-26 1975-03-25 Verfahren zum künstlichen Erzeugen eines musikalischen Klangs Expired DE2513127C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US45479074A 1974-03-26 1974-03-26

Publications (2)

Publication Number Publication Date
DE2513127A1 true DE2513127A1 (de) 1975-10-09
DE2513127C2 DE2513127C2 (de) 1983-11-10

Family

ID=23806097

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752513127 Expired DE2513127C2 (de) 1974-03-26 1975-03-25 Verfahren zum künstlichen Erzeugen eines musikalischen Klangs

Country Status (5)

Country Link
JP (1) JPS5433525B2 (de)
DE (1) DE2513127C2 (de)
FR (1) FR2274986A1 (de)
GB (1) GB1505712A (de)
NL (1) NL187597C (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454047A2 (de) * 1990-04-23 1991-10-30 Casio Computer Company Limited Tonerzeugungsvorrichtung

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS525516A (en) * 1975-07-03 1977-01-17 Nippon Gakki Seizo Kk Electronic musical instrument
JPS525515A (en) * 1975-07-03 1977-01-17 Nippon Gakki Seizo Kk Electronic musical instrument
US4079650A (en) * 1976-01-26 1978-03-21 Deutsch Research Laboratories, Ltd. ADSR envelope generator
JPS5535302A (en) * 1978-09-01 1980-03-12 Nippon Musical Instruments Mfg Electronic musical instrument
JPS61123886A (ja) * 1985-07-25 1986-06-11 ヤマハ株式会社 楽音形成方法
JPS6193495A (ja) * 1985-10-19 1986-05-12 ヤマハ株式会社 電子楽器
JPS6239433Y2 (de) * 1986-11-17 1987-10-07
JP2643761B2 (ja) * 1993-03-11 1997-08-20 ヤマハ株式会社 周波数変調楽音合成原理による波形加工装置
WO2002025628A1 (es) * 2000-09-25 2002-03-28 Onda Edit S.L. Sistema de sintesis por armonicos y formantes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2417308B2 (de) * 1973-04-11 1980-11-20 Nippon Gakki Seizo K.K., Hamamatsu, Shizuoka (Japan) Elektronisches Musikinstrument

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3288907A (en) * 1962-05-07 1966-11-29 Hammond Organ Co Electronic musical instrument with delayed vibrato
JPS5327794B2 (de) * 1972-07-26 1978-08-10
JPS5312372A (en) * 1976-07-20 1978-02-03 Ishikawajima Harima Heavy Ind Method of and apparatus for measuring cable tension

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2417308B2 (de) * 1973-04-11 1980-11-20 Nippon Gakki Seizo K.K., Hamamatsu, Shizuoka (Japan) Elektronisches Musikinstrument

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454047A2 (de) * 1990-04-23 1991-10-30 Casio Computer Company Limited Tonerzeugungsvorrichtung
EP0454047A3 (en) * 1990-04-23 1993-12-15 Casio Computer Co Ltd Tone generation apparatus
US5340938A (en) * 1990-04-23 1994-08-23 Casio Computer Co., Ltd. Tone generation apparatus with selective assignment of one of tone generation processing modes to tone generation channels

Also Published As

Publication number Publication date
GB1505712A (en) 1978-03-30
FR2274986B1 (de) 1979-03-09
NL187597C (nl) 1991-11-18
NL7503560A (nl) 1975-09-30
JPS5433525B2 (de) 1979-10-22
JPS50126406A (de) 1975-10-04
NL187597B (nl) 1991-06-17
DE2513127C2 (de) 1983-11-10
FR2274986A1 (fr) 1976-01-09

Similar Documents

Publication Publication Date Title
DE2404431C3 (de) Elektronisches Musikinstrument
DE2500839C3 (de) Elektronisches Musikinstrument mit Sinustabellenspeicher
DE2926090C2 (de) Tonerzeugungsverfahren
DE2350143A1 (de) Elektronisches musikinstrument
DE2431161C2 (de) Tonerzeugungseinrichtung für ein elektronisches Musikinstrument
DE3936693A1 (de) Vorrichtung zum erzeugen digitaler audiosignale
DE2524497A1 (de) Phasenvocoder-sprachsynthesesystem
DE2711511C2 (de) Polyphones elektronisches Musikinstrument
DE2364336B2 (de) Elektronisches Musikinstrument
DE2513127A1 (de) Verfahren zum kuenstlichen erzeugen eines musikalischen klangs
DE2500720C3 (de) Elektronisches Musikinstrument
DE3023581A1 (de) Verfahren zur digitalen huellkurvensteuerung eines polyphonen musiksyntheseinstruments und schaltungsanordnung zur durchfuehrung des verfahrens
DE2909866A1 (de) Elektronisches musikinstrument mit instrumentenart-auswahl
EP0036074A1 (de) Syntheseschaltung für periodische Signale, insbesondere als Teil eines Musikinstruments
DE3226619A1 (de) Modulationseffektvorrichtung
DE3037276C2 (de) Tonsynthesizer
DE3004720A1 (de) Elektronisches musikinstrument
DE2714264A1 (de) Elektronisches musikinstrument
DE3151127A1 (de) Elektronische einrichtung mit tonerzeugungsfunktion
DE2826570C2 (de)
DE2808283A1 (de) Digitales elektronisches musikinstrument
DE3239171C2 (de) Integrierte Schaltung für ein elektronisches Gerät zur Datenverarbeitung mit einer Tongeneratoreinrichtung
DE3226600A1 (de) Mit einem nachhalltonerzeugungsapparat ausgestattetes elektronisches musikinstrument
DE2808286A1 (de) Nummerisches elektronisches musikinstrument
DE3345656A1 (de) Elektronisches musikinstrument

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G10H 1/14

8126 Change of the secondary classification

Free format text: G10H 7/00 G10H 1/057

D2 Grant after examination
8364 No opposition during term of opposition