[0001] Die Erfindung bezieht sich auf ein elektronisches Musikinstrument gemäß dem Oberbegriff
des Patentanspruches 1. Ein solches Musikinstrument ist aus der DE-PS 29 26 548 bekannt.
Dort ist ein Wellenform-Generator zur Klangformung in einem elektronischen Musikinstrument
beschrieben, der ein dynamisches Überblenden von einem gespeicherten Klang zu einem
anderen gespeicherten Klang ermöglicht. Weitere elektronische Musikinstrumente sind
in dem in der DE-PS 29 26 548 gewürdigten Stand der Technik beschrieben, nämlich der
DE-AS 22 37 594, DE-OS 28 30 483, DE-OS 28 30 482 und US-PS 38 59 884.
[0002] Die US-PS 4 164 020 beschreibt einen programmierbaren Klangsynthesizer, der in einem
Speicher eine Vielzahl von Klangdaten hält. Das Auslesen des Speichers erfolgt durch
einen Adressgenerator, dessen Wiederholfrequenz durch einen Integrierer gesteuert
wird. Die Integriergeschwindigkeit ist ihrerseits durch eine "Tonzahl" bestimmt.
Bei der Eingabe von Klangdaten können mehrere Klangparameter, wie Frequenz, Wellenform,
Einhüllende, Anschlagstärke, Ausklingen usw. eingegeben werden. Diese Klangparameter
sind allerdings dort unveränderbarer Bestandteil der gespeicherten Klangdaten. Das
Auslesen der Klangdaten erfolgt dann zyklisch in der numerischen Reihenfolge der Adressen
der eingegebenen Klangdaten. Damit können kurz zusammengefaßt nur vorher fest programmierte
Tonfolgen mit frei programmierbarem, beim Abspielen jedoch nicht mehr änderbaren Klangcharakter
eingegeben werden, so daß man im engeren Sinne nicht von einem Musikinstrument sprechen
kann, sondern in Anlehnung an eine Schallplatte nur von einer "Tonkonserve".
[0003] Aufgabe der Erfindung ist es, des elektronische Musikinstrument der eingangs genannten
Art dahingehend zu verbessern, daß es absolut frei programmierbar ist und damit beliebige
Klänge, die auch während des Spielens des Instrumentes verändert werden können, produziert.
[0004] Diese Aufgabe wird durch die im kennzeichnenden Teil des Patentanspruches 1 angegebenen
Merkmale gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind
den Unteransprüchen zu entnehmen.
[0005] Der Grundgedanke der Erfindung liegt also darin, gewisse Basis-Klangdaten zu speichern
und dabei die Speicheradressen frei wählbaren Klangparametern zuzuordnen. Die Klangparameter
wie z. B. Anschlagstärke, Zeitdauer des Drückens einer Taste, Stellung eines Reglers
etc. bestimmen also die jeweils auszulesende Speicheradresse bzw. die Reihenfolge
der auszulesenden Speicheradressen.
[0006] Damit erhält man eine ungeheuere Vielzahl von Klangmöglichkeiten, angefangen von
allen möglichen Naturinstrumenten bis hin zu "synthetischen" Klängen.
[0007] Die Eingabe der Basis-Klangdaten kann "synthetisch" erfolgen, d. h. über ein Tastenfeld
unter Zuhilfenahme eines Bildschirmes, womit sich auch beliebige Kunstklänge erzeugen
lassen; sie kann aber auch über ein Mikrophon erfolgen, so daß das Musikinstrument
nach der Erfindung die Brücke zwischen den reinen Synthesizern und den reinen Sampling-Geräten
schlägt.
[0008] Nach einer Variante der Erfindung ist es auch möglich, ein Musikinstrument mit mehreren
Stimmen zu schaffen.
[0009] Im folgenden wird die Erfindung anhand von Ausführungsbeispielen im Zusammenhang
mit der Zeichnung ausführlicher erläutert. Es zeigt:
Fig. 1 Ein Blockschaltbild eines ersten Ausführungsbeispieles des Musikinstrumentes
nach der Erfindung;
Fig. 2 ein ähnliches Blockschaltbild eines zweiten Ausführungsbeispieles der Erfindung;
Fig. 3 ein Diagramm einer Wellenform zur Erläuterung der Arbeitsweise der Erfindung;
Fig. 4 ein Diagramm zur Erläuterung der Speicherorganisation eines Speicherbereiches
des bei der Erfindung verwendeten Wellenform- oder Klangdatenspeichers;
Fig. 5 eine Prinzipskizze zur Erläuterung der Speicherorganisation des gesamten Wellenform-
oder Klangdatenspeichers, der bei der Erfindung verwendet wird; und
Fig. 6 ein detailierteres Blockschaltbild des ersten Ausführungsbeispieles (Fig. 1).
[0010] Zunächst seien einige öfters verwendete Begriffe klargestellt.
[0011] Klang: Hier wird der zeitliche Verlauf (ggf. auch der Spektralverlauf) von Amplituden
von Schallwellen verstanden.
Basis-Wellenform:
[0012] Zeitlicher Verlauf eines elektrischen Signales, das einem Klang entspricht, wobei
hier nur z. B. per Mikrophon) aufgenommene oder (per Tastenfeld und Bildschirm) synthetisch
erzeugte zeitliche Verläufe der Amplituden eines Klanges verstanden werden.
Wellenform:
[0013] Gesamtheit der Basis-Wellenformen und von aus mindestens zwei Basis-Wellenformen
interpolierte oder extrapolierte zeitliche Verläufe der Amplituden von Klängen.
Basis-Klangdaten:
[0014] Digitalisierte Basis-Wellenformen (z. B. 256 Worte à 8 Bit für eine Basis-Wellenform)
Es werden also aus einer Basis-Wellenform mehrere Abtastwerte genommen und digitalisiert.
Klangdaten:
[0015] Digitalisierte Wellenform.
Klangparameter:
[0016] Einflußgrößen, die einen Klang verändern, wie z. B.
a) "Zeit": Der Parameter "Zeit" bestimmt, in welcher zeitlichen Aufeinanderfolge die
verschiedenen Klangdaten hintereinander ausgelesen werden;
b) "Anschlagstärke": Die meisten Klänge von Naturinstrumenten ändern mit ihrer Lautstärke
nicht nur die Amplituden der Schallwellen sondern auch deren zeitlichen Verlauf,
beispielsweise durch Änderung des Oberwellengehaltes, durch Änderung der Amplitudenanteile
von nicht-harmonischen Wellen, oder durch Resonanzerscheinungen etc.
c) "Tonhöhe": Der Parameter "Tonhöhe" ändert ebenfalls nicht nur den Frequenzverlauf
eines Klanges im Sinne einer reinen Frequenzverschiebung sondern auch den Klang als
solchen, da bei den meisten Naturinstrumenten in Abhängigkeit von der Tonhöhe unterschiedliche
Oberwellen, Resonanzen etc. auftreten.
[0017] Es sei jetzt auf Fig. 1 Bezug genommen. Das Musikinstrument besitzt eine Zentraleinheit
(CPU) 1, einen Nur-Lese-Speicher (ROM) 2, einen Speicher mit wahlfreiem Zugriff (RAM)
3, wobei diese drei Baugruppen im wesentlichen die Ablaufsteuerung übernehmen. Diese
Bauteile sind über Leitungen 25 und 26 miteinander und mit weiteren Bauteilen verbunden,
wobei eine Leitung 25 den Systemdatenbus und die andere Leitung 26 den Adressbus darstellt.
An diese beiden Leitungen ist über eine Bildschirmschnittstelle (Interface) 4 ein
Bildschirm 5 angeschlossen, über eine weitere Schnittstelle (Interface) 6 ein Tastenfeld
(Keyboard) 7 und über eine weitere Schnittstelle 8 eine Klaviatur 9.
[0018] Beide Leitungen 25 und 26 sind weiterhin an Eingänge eines Zählers 11 angeschlossen,
der Impulse von einem Taktgenerator 12 erhält. Der Ausgang des Zählers 11 ist über
einen Adressbustreiber 13 mit einem Wellenform-Speicher 14 verbunden. Der Speicher
14 ist ebenfalls ein Speicher mit wahlfreiem Zugriff (RAM). Weiterhin ist an beide
Leitungen 25 und 26 ein Interpolator 15 und ein Fourier-Transformator 16 angeschlossen.
Bei letzterem handelt es sich um einen im Handel erhältlichen Baustein, der eine
Fourier-Transformation seiner Eingangssignale durchführt. Die Bausteine 15 und 16
sind mit ihren Ausgängen ebenfalls an den Wellenform-Speicher 14 angeschlossen und
zwar über Leitungen 27 und 28, wobei die Leitung 27 den Wellenformspeicher-Datenbus
und die Leitung 28 den Wellenformspeicher-Adressbus bildet. Zwischen die Leitungen
27 und 25 ist noch eine Treiberschaltung 10 eingeschaltet. An die Leitung 27 ist
eine Reihenschaltung aus einem Daten-Latch 17, einem Digital/Analog-Wandler 18, der
ausgangsseitig auch einen Tiefpaß enthält, einem Verstärker 19 und einem Lautsprecher
oder Kopfhörer 20 angeschlossen. Weiterhin ist an die Leitung 27 eine Reihenschaltung
aus einem Mikrophon 24, einem Vorverstärker 23, einem Analog/Digital-Wandler 22 mit
vorgeschaltetem Antialiasing-Tiefpass und einem Treiber 21 angeschlossen.
[0019] Unter Bezugnahme auf Fig. 1 wird zunächst die Aufnahme bzw. Einspeicherung von Klängen
oder Wellenformen beschrieben. Unter Steuerung über das Tastenfeld 7, das auch einen
sog. Joystick, eine "Maus" oder einen Lichtgriffel enthalten kann, erzeugt der Benutzer
in einem Eingabeschritt auf dem Bildschirm beliebige Wellenformen, die hier "Basis-Wellenformen"
sind. Ein Beispiel einer solchen Wellenform ist in Fig. 3 gezeigt. Die Y-Achse ist
bei diesem ersten Eingabeschritt die Amplitude des Klanges, während die X-Achse wahlweise
die Zeit oder die Frequenz ist. Es kann also entweder der Zeitverlauf eines Signales
oder der Spektralverlauf angegeben werden. Nach einer ggf. noch durch zuführenden
Analog/Digital-Wandlung wird im Falle der Eingabe des Zeitverlaufes diese erste
Wellenform in dem Wellenform-Speicher 14 abgespeichert und zwar in einem ersten Speicherbereich
ab der Adresse $0000 gemäß Fig. 4. In entsprechender Weise werden dann weitere Basis-Klangdaten
erzeugt, die in weiteren Speicherbereichen - in Fig. 4 die Speicherbereiche $1000,
$2000, $3000 ... bezeichnet sind - eingespeichert werden.
[0020] Falls die Basis-Wellenformen im Spektralbereich eingegeben werden (X-Achse der Fig.
3 bezeichnet also die Frequenz), so erfolgt die Einspeicherung nicht direkt sondern
über den Fourier-Transformator 16, der die im Spektralbereich eingegebenen Daten zunächst
in den Zeitbereich transformiert.
[0021] Alle einzelnen eingegebenen Basis-Klangdaten haben dabei eine konstante Wortlänge
im Wellenform-Speicher 14, beispielsweise 256 Worte à 8 Bit pro Wellenform.
[0022] Zwischen den Speicherbereichen für die einzelnen Basis-Klangdaten sind dann noch
freie Zwischenräume, in Fig. 4 beispielsweise zwischen den Adressen $0100 und $1000
usw. Unter Steuerung durch die CPU 1 werden diese Zwischenräume dann mit aus mindestens
zwei benachbarten Basis-Klangdaten interpolierten oder extrapolierten Werten von Klangdaten
aufgefüllt. Hierzu wird der Interpolator 15 verwendet, der zwischen den jeweils benachbarten
Basis-Klangdaten Interpolationswerte errechnet. Hierbei kann eine lineare Interpolation
verwendet werden. Es können aber auch andere Interpolationen durchgeführt werden,
beispielsweise gemäß einer e-Funktion, die den in der Natur vorkommenden Änderungen
von Klängen besser entspricht.
[0023] Im Ergebnis erhält man mit dieser Interpolation oder Extrapolation fließende bzw.
dynamische Übergänge von einer eingegebenen Basis-Wellenform zur nächsten eingegebenen
Basis-Wellenform. Damit wird ein "dynamisches" Überblenden von einem Klang zu einem
anderen Klang möglich.
[0024] Anstelle der Wellenform-Eingabe über das Tastenfeld 7 und den Bildschirm 5 ist es
auch möglich, Klänge über das Mikrophon 24 aufzunehmen, die dann über den Analog/Digital-Wandler
22 digitalisiert werden (sog. Sampling) und dann in entsprechender Weise im Wellenformspeicher
14 abgespeichert werden. Nach dem Abtasttheorem benötigt man pro Periode der höchsten
vorkommenden Frequenz mindestens zwei Abtastwerte. Je nach Qualität des bei der Wiedergabe
verwendeten Tiefpaßfilters wird man jedoch auch mehr Abtastwerte nehmen. Auch zwischen
zwei solchen benachbarten Klängen bzw. Basis-Klangdaten kann dann in gleicher Weise
interpoliert werden.
[0025] In einem anderen Eingabeschritt wird über das Tastenfeld 7 und den Bildschirm 5 eine
weiterer "Kurve" erzeugt, die den Klangparameter "Zeit" darstellt und die im Ergebnis
festlegt, in welcher Ablauffolge die einzelnen Speicherbereiche ausgelesen werden.
Auch hier sind generell alle Kurvenformen möglich. Die eine Achse (z.B. Y-Achse) bezeichnet
dabei im Prinzip die Speicheradresse von auszulesenden Klangdaten, während die andere
Achse (X-Achse) den Zeitpunkt festlegt, zu dem die bezeichneten Klangdaten ausgelesen
werden sollen. Gibt man beispielsweise eine ansteigende Gerade ein, so werden die
hintereinander abgespeicherten Klangdaten mit aufsteigender Adressnummer unmittelbar
aufeinanderfolgend ausgelesen. Man erhält dann bei einem Auslesezyklus ein sich
kontinuierlich, d.h. dynamisch änderndes Klangbild zwischen mindestens zwei eingegebenen
Basis-Klangdaten. Natürlich kann ein Auslesezyklus sich auch über mehr als zwei Basis-Klangdaten
und die dazwischenliegenden Interpolationswerte oder die außerhalb des Bereiches
zwischen zwei benachbarten Basis- Klangdaten liegenden Extrapolationswerte erstrecken.
Gibt man dagegen beispielsweise eine horizontale Linie ein, so wird nur ein Klangdatum
(mit beispielsweise 256 Worten bzw. "Abtastwerten") ausgelesen, jedoch mehrfach hintereinander.
Gibt man eine Dreieckskurve ein, so werden aufeinanderfolgend Klangdaten mit aufsteigender
Adressnummer und anschließend mit absteigender Adressnummer ausgegeben. Ist dagegen
die Kurve sehr steil, so werden - je nach Steilheit - einzelne Adressen beim Auslesen
übersprungen. Natürlich können auch nicht- lineare Funktionen als Kurve für das Auslesen
eingegeben werden.
[0026] In einem anderen Eingabeschritt, der in der zeitlichen Reihenfolge normalerweise
der erste Eingabeschritt ist, wird mindestens ein weiterer Klangparameter festgelegt.
Parameter können - wie oben erwähnt- die Anschlagstärke der Taste der Klaviatur sein,
die Tonhöhe eines Tones oder eine sonstige Stellung eines Reglers. Der Wahl dieser
Parameter liegt die Kenntnis zugrunde, daß sich bei vielen Natur-Musikinstrumenten
mit ändernder Lautstärke nicht nur die Amplitude des erzeugten Klanges ändert sondern
auch der Klangcharakter. Gleiches gilt auch entsprechend für die Tonhöhe, bei der
sich bei vielen Instrumenten nicht nur die Frequenz der erzeugten Töne ändert sondern
ebenfalls der Klangcharakter. Dies ist beispielsweise dadurch zu erklären, daß der
Körper vieler Instrumente gewisse Eigenresonanzen hat oder auch bei verschiedenen
Tonhöhen und/oder Lautstärken bestimmte nicht-harmonische Schwingungen erzeugt.
[0027] Auch diese Klangparameter können über das Tastenfeld 7 in Zusammenwirken mit dem
Bildschirm 5 eingegeben werden, wobei auch hier nicht-lineare Funktionen eingegeben
werden können, wie beispielsweise eine Funktion zweiter Ordnung, eine logarithmische
Funktion oder eine E-Funktion usw. Die Y-Achse kann dabei die "Parameterfunktion"
abbilden, während die X-Achse den Parameter selbst abbildet. Wie aus der nachfolgenden
Beschreibung noch deutlicher wird, bestimmt die "Parameterfunktion" die Adresse der
auszulesenden Klangdaten. Beim zweiten Ausführungsbeispiel bestimmt sie auch diejenigen
Klangdaten, zwischen denen interpoliert werden soll und die Interpolationsschrittweite.
[0028] Der genannte Wellenform-Speicher 14 ist - wie in Fig. 5 gezeigt - wie folgt organisiert.
Jedes der einzelnen, links oben in Fig. 5 gezeigten Felder (hier mit den Adressen
00 bis 0F) enthält eine Basis-Wellenform als Basis-Klangdatum entsprechend Fig. 3,
also beispielsweise je 256 Worte. Je eine Spalte mit den Feldern 00, 01, 02, 03 bzw.
04, 05, 06, 07 bzw. 08, 09, 0A, 0B bzw. 010, 0D, 0E, 0F enthält dann einen "Wellenform-Satz"
entsprechend der in Zusammenhang mit Fig. 4 erläuterten Abspeicherung. Ein "Wellenform-Satz"
bezeichnet dabei eine Vielzahl von zusammengehörigen Wellenformen, die bei einem normalen
Auslesezyklus vollständig ausgelesen werden. Wie oben erläutert gibt es jedoch auch
Formen des Auslesens, bei denen nicht alle Klangdaten eines Wellenform-Satzes ausgelesen
werden. In diesem Zusammenhang bezeichnet dann der Parameter 1 in weiterem Sinne
die "Zeit", zu der die einzelnen Felder ausgelesen werden. Über die Verstellung des
Parameters 2 wird dann die jeweilige Spalte eingestellt, also beispielsweise die Spalte
mit den Feldern 04, 05, 06 und 07. Mit dem Parameter 3 wird in einen weiteren "Block"
gesprungen, der die 16 Felder 10 bis 1F; 20 bis 2F usw. enthält. Dieser Parameter
3 kann beispielsweise die Anschlagstärke der einzelnen Taste der Klaviatur bezeichnen.
Über den Parameter 4 wird beispielsweise die Stellung eines Handreglers bestimmt.
Mit diesem Handregler können beispielsweise verschiedene Instrumente (z. B. Geige,
Klavier, Flöte etc.) gewählt werden oder sonstige Klangeffekte eingestellt werden.
[0029] Im Prinzip verwirklicht die in Fig. 5 dargestellte Speicherorganisation ein vierdimensionales
Datenfeld. Allgemein kann mit dieser Speicher-Organisation auch ein n-dimensionales
Datenfeld geschaffen werden, was insbesondere dann sinnvoll ist, wenn man noch mehr
Klangparameter einführen will, beispielsweise ein Tremolo, ein Echo oder einen Nachhall,
eine Anhebung der Amplituden bestimmter Frequenzbereiche usw.
[0030] Zur Verdeutlichung sei bei dem Ausführungsbeispiel der Fig. 5 angenommen, die Aufnahme
der Klänge erfolge über das Mikrophon, wobei ein Klavier aufgenommen wird. Für den
Parameter "Tonhöhe" werden mehrere (im Beispiel vier) Tonhöhenbereiche festgelegt.
Es wird dann mit einer ersten Anschlagstärke eine Taste im ersten Tonhöhenbereich
gedrückt, die dabei entstehenden Schall wellen abgetastet und digitalisiert und unter
der Speicheradresse 00 abgespeichert. Sodann wird dieselbe Taste mit einer anderen
Anschlagstärke gedrückt und der digitalisierte Klang unter der Speicheradresse 40
gespeichert. Gleiches geschieht dann mit weiteren Anschlagstärken für die Speicheradressen
80 and C0.
[0031] Sodann wird im zweiten Tonhöhenbereich eine Taste mit den (vier) verschiedenen Anschlagstärken
gedrückt, wobei die dabei aufgenommen Basis-Klangdaten unter den Adressen 04, 44,
84 und C4 abgespeichert werden. Damit ist dann die erste Zeile der Matrix der Fig.
5 mit den Feldern 00, 04, 08, 0C, 40 ... 4C, 80 ... 8C, C0 ... CC abgespeichert. Nach
einer anderen Variante der Erfindung müssen nicht alle Klangdaten in den hinsichtlich
der verschiedenen Parameter nebeneinander liegenden Feldern auch Basis-Klangdaten
sein. Vielmehr können auch hier Zwischenwerte durch Interpolation ermittelt werden.
Hinsichtlich des Parameters 2 der Fig. 5 liegen die Felder 00, 04, 08 und 0C nebeneinander.
Es würde also beispielsweise genügen, in die Felder 00 und 0C Basis-Klangdaten einzuspeichern,
während die Klangdaten für die dazwischen liegenden Felder 04 und 08 durch Interpolation
ermittelt werden können. Hinsichtlich des Parameters 3 der Fig. 5 liegen die Felder
00, 10, 20 und 30 nebeneinander und hinsichtlich des Parameters 4, beispielsweise
die Felder 00, 40, 80 und C0. Auch hier kann im Prinzip zwischen diesen "benachbarten"
Feldern interpoliert werden. Hier sei noch betont, daß der Speicher 14 in der Praxis
natürlich mehr Felder hat als die in Fig. 5 gezeigten 256 Felder.
[0032] Während der Aufnahme von Naturklängen bestimmen die Parameter Nr. 2, 3 und 4 die
Anfangsadresse einer Reihe von hinsichtlich des verbleibenden Parameters 1 nebeneinander
liegenden Feldern. Wie weiter unten beschrieben wird, ist der Parameter Nr. 1 die
"Zeit". Er bestimmt also den sich mit der Zeit dynamisch verändernden Klangcharakter
eines Klanges bei gedanklich zunächst festgehaltenen Parametern 2, 3 und 4. Während
der Aufnahme eines vollständigen, sich dynamisch entwickelnden Klanges werden dann
nacheinander die Felder 00, 01, 02, 03 oder 08, 09, 0A, 0B usw. mit entsprechenden
Klangdaten gefüllt.
[0033] Nach obigen Schritten sind dann die vier größeren Blöcke mit den Anfangsadressen
00, 40, 80 und CD belegt, wobei der Parameter 3 bzw. der Regler in seiner ersten Stellung
stand. Der gleiche Vorgang kann dann mit anderen Reglerstellungen wiederholt werden,
wobei es im Belieben des Benutzers steht, welche Funktion er dem Parameter 3 bzw.
dem Regler zuweist. Beispielsweise kann in der zweiten Reglerstellung ein anderes
Instrument aufgenommen werden, wobei die Parameter 1, 2 und 4 in entsprechender
Weise variiert werden. Es können in gleicher Weise künstliche Klänge mittels Tastenfeld
7 und Bildschirm 5 erzeugt und abgespeichert werden.
[0034] Das Auslesen des Wellenform-Speichers erfolgt dann über die Klaviatur. Diese meldet
(beispielsweise durch sehr schnelles, zyklisches Abfragen des Schaltzustandes von
den einzelnen Tasten zugeordneten Schaltern), welche Taste gedrückt ist und mit welcher
Anschlagstärke dies erfolgte. Dies kann beispielsweise dadurch gemessen werden, daß
beim Drücken der Taste sequentiell nacheinander Schaltkontakte betätigt werden, wobei
die Zeit zwischen dem aufeinanderfolgenden Betätigen der Schaltkontakte gemessen
wird und als Maß für die Anschlag stärke dient. Die Parameter Nr. 2 und Nr. 4 (gemäß
Fig. 5) sind damit festgelegt. Die beiden anderen Parameter können über das Tastenfeld
7 oder an der Klaviatur 9 angebrachte Schalter, Hebel etc. vorgewählt werden. Mit
der Festlegung der Parameter ist dann auch eindeutig festgelegt, welche im Wellenform-Speicher
14 gespeicherten Klangdaten ausgelesen werden sollen. Es kann sich um ein einzelnes
Klangdatum oder mehrere Klangdaten (Wellenformsatz) handeln. Die Tonhöhe bzw. Frequenz
wird über die Auslesegeschwindigkeit bestimmt, also durch die Taktfrequenz, mit der
die im Speicher gespeicherten Daten ausgelesen werden. Jeder Taste ist eine eigene
Auslesefrequenz bzw. Taktfrequenz zugeordnet. Zur Einstellung dieser Taktfrequenz
kann der Zähler 11 als Frequenzteiler verwendet werden, der je nach an der Klaviatur
9 gedrückten Taste die vom Taktgenerator 12 erzeugte (konstante) Taktfrequenz herabsetzt
und mit dieser Taktfrequenz den Treiber 10 für das Auslesen der Klangdaten aus dem
Wellenform-Speicher 14 ansteuert. Die aus dem Wellenform-Speicher 14 ausgelesenen
Klangdaten gelangen über das Daten-Latch 17, das als Pufferspeicher dient, zu dem
Digital/Analog-Wandler 18, wo sie in analoge Signale umgesetzt werden und durch einen
im Digital/Analog-Wandler 18 eingebauten Tiefpaß gefiltert bzw. geglättet werden.
Von dort gelangen sie über den Verstärker 19 zu dem Lautsprecher 20.
[0035] Die oben beschriebene "Kurve", die das Auslesen steuert und - abstrakter gesprochen
- den Parameter "Zeit" bestimmt, wird vorzugsweise im RAM 3 gespeichert. Es ist auch
möglich, sie im Wellenform-Speicher 14 zu speichern, wobei dann jedoch zusätzliche,
in Fig. 5 nicht gezeigte Speicherbereiche vorgesehen sein müssen und durch zusätzliche
Maßnahmen entweder sichergestellt werden muß, daß mehrere Speicherbereiche gleichzeitig
ausgelesen werden können oder die für den Parameter "Zeit" vorgesehenen Speicherbereiche,
die ja letztlich Adressen für das Auslesen der Wellenformkurven beinhalten, ausgelesen
und zwischengespeichert werden können.
[0036] Die einzelnen gespeicherten Klangdaten und Klangparameter sind für die Eingabe und
die Ausgabe hierarchisch geordnet. Die höchste Hierarchiestufe haben die Klangparameter,
beispielsweise für Anschlagstärke, Tonhöhe oder Reglerstellung. Durch sie wird ein
Parameter bestimmten Adressen von Klangdaten zugeordnet. Bei der Eingabe mittels Tastenfeld
und Bildschirm kann dabei die X-Achse den jeweiligen Parameter und die Y-Achse die
zugehörigen Adressen von Klangdaten repräsentieren.
[0037] In der zweiten Hierarchiestufe ist die "Kurve" für das Auslesen der Klangdaten. Diese
"Kurve" legt auch bei der Eingabe der Basis-Klangdaten fest, unter welcher Speicheradresse
die einzelnen Basis-Klangdaten gespeichert werden und damit auch, wie groß die Zwischenräume
zwischen zwei Basis-Klangdaten sind sowie schließlich die Länge eines Wellenform-
Satzes bzw. eines Klangdaten-Satzes. Bei der Eingabe mittels Bildschirm entspricht
dabei die X-Achse der Zeit und die Y-Achse der Adresse der einzelnen Klangdaten. Eine
solche Kurve kann beispielsweise eine Länge von 256 Worten haben, was dann 256 Speicheradressen
entspricht.
[0038] In der dritten (untersten) Hierarchiestufe sind dann die Klangdaten gespeichert.
[0039] Schließlich sei noch erwähnt, daß die Interpolation oder Extrapolation nicht nur
zwischen den Basis- Klangdaten durchgeführt werden kann. Vielmehr ist es auch möglich,
bezüglich der Klangparameter zu interpolieren oder zu extrapolieren. Insbesondere
bei dem Klangparameter "Anschlagstärke" wird man die Interpolation gemäß einer Exponentialfunktion
durchführen.
[0040] Es ist ersichtlich, daß die einzelnen Parameter vollkommen unabhängig voneinander
sein können, wodurch sich eine enorme Variationsbreite von Klängen realisieren läßt.
[0041] Mit dem bisher beschriebenen Musikinstrument erreicht man folgende Vorteile:
- Komplexe, differenzierte Klangerzeugung unter Berücksichtigung beliebiger Parameter;
- Parameterzuordnung und Klangerzeugung sind an keinen festen Algorithmus gebunden,
daher sind auch komplexe Naturklänge erzeugbar;
- die einzelnen Wellenformen können beliebige Direktaufnahmen (Digitalisierung des
Schalldruckverlaufes) von Naturinstrumenten sein. Damit bildet die Erfindung eine
Brücke zwischen dem reinen Sampling-Instrumenten und den reinen Spektralsynthese-Instrumenten;
- das beschriebene Interpolieren und Extrapolieren ermöglicht eine variable Datenreduktion
der gespeicherten Klangdaten und der gespeicherten Klangparameter. Je nach Ansprüchen
an die Originaltreue der wiedergegebenen Klänge läßt sich daher der Aufwand für Speicherplätze
reduzieren und damit die Zugriffsgeschwindigkeit bei manchen Speicherarten erhöhen.
Trotz der ernormen angebotenen Vielfalt bleibt die Bedienung des Gerätes übersichtlich.
[0042] Fig. 6 zeigt ein detailierteres Blockschaltbild des Ausführungsbeispieles der Erfindung
nach Fig. 1. Gleiche Bezugszeichen wie in Fig. 1 bezeichnen gleiche Teile. Das Ausführungsbeispiel
der Fig. 6 unterschiedet sich von Fig. 1 lediglich durch die Hinzufügung von Bustreibern
und Registern sowie durch Angabe konkreter, im Handel erhältlicher Bauelemente zur
Realisierung der Erfindung.
[0043] Der Interpolator 15 stellt ein Computer-Subsystem mit eigenständigem Mikrocomputer
mit CPU, ROM and RAM dar, das beispielsweise in dem US-Patent 4,348,929 des Anmelders
beschrieben ist. Der Interpolator 15 ist über Bustreiber 31 und 32 mit dem System-Bus
25, 26 verbunden. Der Bustreiber 31 arbeitet uni-direktional und ist für die Adressen
verantwortlich, während der Bustreiber 32 bi-direktional arbeitet und für die Datenübermittlung
sorgt. Die Treiber werden von der CPU 1 über D-Register 36, 37 gesteuert. Ihr Eingang
"G" schaltet den Treiberausgang in seinen niederohmigen Zustand, der Eingang "DIR"
steuert die Richtung der Datenübertragung; er ist mit der Steuerleitung "R/W" (Read/Write)
der CPU 1 verbunden. Auch die Steuerung erfolgt in Verbindung mit den D-Registern.
Die CPU 1 (Fig. 1) überträgt ein 8-Bit-Datenwort zu dem D-Register. Entsprechend dem
Zustand (Set oder Reset) der Bits (D0...7, die die Flipflops Q0...7 steuern) werden
die entsprechenden Steuersignale aktiviert.
[0044] Ein Adressdecoder 38 initiiert einen Zugriff auf den Interpolator 15. Das Signal
auf der Steuerleitung R/W legt die Datenrichtung fest. Da der Datentreiber nur kurzfristig
während eines CPU-Bus-Zykluses aktiviert sein darf, ist seine "G"-Leitung vom Adressdecoder
angesteuert. Die Daten- und Adressleitungen vom Interpolator 15 sind ferner über
zweite Treiber 33 und 34 mit dem lokalen RAM-Bus 27, 28 verbunden. Auch hier erfolgt
die Steuerung wieder über D-Register des Typs 74 LS 374 (D-Register 37).
[0045] In entsprechender Weise ist auch der Fourier-Transformator 16 über Bustreiber 41
und 42 mit dem System-Bus 25, 26 verbunden und über Bustreiber 39 und 40 mit dem RAM
14. Der Fourier-Transformator stellt ebenfalls ein Computer-Subsystem in Form eines
eigenständigen Mikorcomputer dar. Verwendbar ist beispielsweise hierfür eine Platine
des Typs MOS FFT der Firma MEDAV, D-8520 Buckenhof.
[0046] Der programmierbare Zähler 11 hat nur Adressausgängen A0...23. Er wird über den Bus
26 (Eingänge D0...7) von der CPU 1 programmiert, wobei seine internen Register über
A0...5 adressiert werden. Der Frequenzteiler-Ausgang "Prescaler Output" bewirt bei
der Tonwiedergabe ein zur Tonhöhe synchrones Ausgeben der Wellenformen vom RAM 14
an das D-Register 17. Beim Aufnehmen über die Teile 22 bis 24 (Fig. 1) werden die
Daten zeitsynchron vom D-Register 21 übernommen. Steuereingang ist in beiden Fällen
CLK-Eingang. Ist das Signal am Eingang OC auf niedrigem Pegel, so werden die Registerausgänge
aktiviert.
[0047] Die CPU 1 (Fig. 1) hat über die Treiber 35 und 10 direkten Zugang auf das RAM 14.
[0048] Das Ausführungsbeispiel der Fig. 2 ist in der Struktur des Blockschaltbildes ähnlich
dem der Fig. 1. Es sind jedoch folgende Unterschiede vorhanden:
Der Wellenformspeicher 14 ist hier ein Dual-Port-RAM, das sowohl die Klangparameter
als auch einzelne Klangdaten enthält. Hierbei werden für die Klangdaten nur noch
die Basis-Klangdaten gespeichert, während die Interpolation oder Extrapolation während
der Klangwiedergabe und damit quasi in "Echtzeit" durchgeführt wird. Das RAM 14 der
Fig. 2 enthält somit keine interpolierten oder extrapolierten Werte mehr. Die Interpolation
oder Extrapolation wird bei diesem Ausführungsbeispiel durch Signalprozessoren 31
und 32 durchgeführt, die über Leitungen 29 und 30 mit dem RAM 14 verbunden sind und
die auch an die Leitungen 25 und 26 angeschlossen sind. Der eine Signalprozessor 31
verarbeitet Klangdaten, deren Spektraleigenschaften sich mit der Tonhöhe ändern.
Der andere Signalprozessor 32 verarbeitet alle diejenigen Klangdaten, die sich nicht
mit der Tonhöhe ändern (z. B. Anblasgeräusche, Resonanzen usw.). Beide Signalprozessoren
31 und 32 enthalten jeweils einen Digital/Analog-Wandler, der die digital verarbeiteten
Signale in analoge Signale umsetzt. Die analogen Ausgänge der Signalprozessoren 31
und 32 werden einem Analogaddierer 33 zugeführt, der ausgangsseitig ein Tiefpaßfilter
enthält. Von dort gelangen sie über den Leistungsverstärker 19 zum Lautsprecher 20.
[0049] Als weitere Unterschiede des Ausführungsbeispieles der Fig. 2 sind noch zu erwähnen,
daß der Zähler 11 im Beispiel der Fig. 2 ein programmierbarer Aufwärts-/Abwärtszähler
ist und daß die Treiber 10 und 21 jeweils Tristate-Treiber sind. Die übrigen Bauteile
der Fig. 2 entsprechen denen der Fig. 1. Wirkungsmäßig ergeben sich beim Ausführungsbeispiel
der Fig. 2 folgende Unterschiede. Die in Fig. 5 gezeigte Matrixstruktur des RAM 14
ist zweifach ausgeführt. Der eine Teil beinhaltet die Wellenformen, die die sich mit
der Tonhöhe ändernden Spektralkomponenten repräsentieren. Der andere Teil beinhaltet
die Kurvenzüge der Spektralkomponenten, die von der Tonhöhe unabhängig sind.
[0050] Beim Tonerzeugungsprozeß wird ein Kurvenzug aus dem ersten Teil mit der der jeweiligen
Tonhöhe entsprechenden Geschwindigkeit ausgelesen. Gleichzeitig wird ein Kurvenzug
aus dem zweiten Teil mit von der Tonhöhe unabhängiger oder zumindest anderer als
der Geschwindigkeit von Teil 1 ausgelesen, wobei dann beide Signale addiert werden.
Ein Grund dafür, daß das RAM 14 hier als Dual-Port-RAM ausgelegt ist, liegt also
darin, daß das Auslesen aus den beiden Speicherteilen gleichzeitig erfolgt. Der Hauptgrund
für die Wahl des Dual-Port-RAM liegt allerdings darin, daß die CPU 1 mit den Speichern
2 und 3 Zugriff zu dem einen Port und die Signalprozessoren 31 und 32 Zugriff zu dem
anderen Port haben. Über den einen Port können Parameterwerte und Statusinformationen
des Tastenfeldes 7 und der Klaviatur 9 ein- und ausgegeben werden, wobei während der
Klangeingabe (z.B. Aufnahme) über diesen Port auch Klangdaten laufen. Über den anderen
Port laufen während der Wiedergabe dann die Klangdaten zu den Signalprozessoren 31
und 32.
[0051] Bei der Klangeingabe werden diese beiden Signalanteile getrennt eingegeben. Bei "synthetischen"
Spektren, die mit dem Tastenfeld 7 in Zusammenwirken mit dem Bildschirm 5 erzeugt
werden, werden zwei Eingabesätze erzeugt, nämlich ein Wellenformsatz für tonhöhenabhängige
Spektren und einer für tonhöhenunabhängige Spektren.
[0052] Bei der Aufnahme über das Mikrophon 24, allgemein auch als "Sampling" bezeichnet,
werden die vom Instrument erzeugten Schallwellen abgetastet und digitalisiert, wobei
hier mindestens zwei Aufnahmen gemacht werden müssen, nämlich eine im tiefen und eine
im hohen Instrumententonbereich. Für beide Wellenzüge wird dann von den Signalprozessoren
eine Fourier-Transformation mit anschließender Betragsbildung durchgeführt. Danach
folgt ein Vergleich der beiden Spektrenbetragswerte. Hierzu wird beispielsweise die
minimale Spektraldistanz ermittelt, d. h. der kleinste zu beachtende Abstand zwischen
zwei Spektrallinien entsprechend dem Auflösungsvermögen. Dann werden die beiden Betragswerte
der Spektren voneinander subtrahiert. Die tonabhängige Differenz wird dem ersten
Speicherteil zugeordnet; der Rest dem zweiten Speicherteil. Nach einer Fourier-Rücktransformation
der beispielsweise als gleichphasig angenommenen Spektralkomponenten liegen dann
zwei Wellenform-Sätze vor.
[0053] Für spezielle Effekte können alternativ die Teile 1 und 2 des Speichers auch folgendermaßen
unterteilt werden:
Teil 1 enthält alle harmonischen Spektralkomponenten (zum Grundton im ganzzahligen
Frequenzverhältnis stehend);
Teil 2 enthält alle nicht-harmonischen Spektralkomponenten wie z. B. Anblas-, Streich-
oder andere Geräusche, Spektralanteile, die durch Saiten-Torsionsschwingungen hervorgerufen
werden etc.
[0054] Für beide Möglichkeiten gilt:
Da bei der Wiedergabe die Auslesegeschwindigkeit von Teil 1 nicht proportional zu
Teil 2 ist, vielmehr die Auslesegeschwindigkeit für Teil 2 sich sogar ändern kann,
kann das Klangbild des Instrumentes verfremdet werden. Die Auslesegeschwindigkeit
von Teil 2 kann graphisch eingegeben werden, ähnlich wie bei dem ersten Ausführungsbeispiel.
Die Zuordnung auf dem Bildschirm ist dann beispielsweise: X-Achse = Tonhöhe; Y-Achse
= Auslesegeschwindigkeit.
[0055] Mit diesem zweiten Ausführungsbeispiel erhält man eine stärkere Datenreduktion, da
keine Interpolationswerte mehr im Speicher abgespeichert werden müssen. Im Speicher
14 wird nämlich nur ein Teil der zur Tonerzeugung benötigten Klangdaten (nämlich
die Basisklangdaten) bereitgehalten während die für die Tonerzeugung zusätzlich benötigten
Klangdaten während des Spielens mittels Interpolation erzeugt werden.
[0056] Weiterhin ergeben sich mit dem zweiten Ausführungsbeispiel zusätzlich Effektmöglichkeiten
durch unabhängige Wahl der Auslesegeschwindigkeit von Teil 1 und Teil 2 des RAM 14.
Die Einzelklangfarbe und das Gesamtklangbild können in Abhängigkeit von der Tonhöhe
verändert werden. Durch die graphische Eingabe bleiben trotzdem die Effektmöglichkeiten
überschaubar.
1. Elektronisches Musikinstrument mit einem Speicher (14), der in mehreren einzeln
adressierbaren Speicherplätzen Abtastwerte von Wellenformen bzw. Spektralverläufe
enthält, mit einer Speichereingabe- und -auslese-Einrichtung (1, 2, 3, 11) und mit
einem Interpolator (15), der zwischen in verschiedenen Speicherplätzen gespeicherten
Basis-Klangdaten Interpolationswerte ermittelt, dadurch gekennzeichnet, daß die Speicherauslese-Einrichtung
(1, 2, 3, 11) in Abhängigkeit von gespeicherten Klangparametern bestimmt, in welcher
Reihenfolge die einzelnen Speicherplätze bzw. die in ihnen gespeicherten Klangdaten
ausgelesen werden.
2. Musikinstrument nach Anspruch 1, dadurch gekennzeichnet, daß die Adressen der
im Speicher (14) gespeicherten Klangdaten umkehrbar eindeutig den Klangparametern
zugeordnet sind, ggf. auch nach einer nicht-linearen Funktion.
3. Musikinstrument nach Anspruch 2, dadurch gekennzeichnet, daß die Adressen der
im Speicher (14) gespeicherten Klangdaten eine n-dimensionale Matrix bilden, wobei
jede der n-Matrixdimensionen umkehrbar eindeutig einem einzelnen Klangparameter zugeordnet
sind, ggf. auch nach einer nicht-linearen Funktion.
4. Musikinstrument nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die
Basis-Klangdaten und die Klangparameter mittels eines Tastenfeldes (7) in Verbindung
mit einem Bildschirm (5) eingebbar sind, insbesondere auch in Form graphisch abgebildeter
Kurven.
5. Musikinstrument nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß einzelne
Speicherplätze des Speichers (14) Klangdaten enthalten, die durch den Interpolator
(15) aus mindestens zwei Basis-Klangdaten ermittelte, interpolierte Klangdaten sind,
wobei die Adressen der interpolierten Klangdaten entsprechend den Interpolationsschritten
zwischen den Adressen der zur Interpolation verwendeten Basis-Klangdaten liegen.
6. Musikinstrument nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß der
Speicher (14) nur die Basis-Klangdaten enthält und daß der Inter polator (15), gesteuert
durch die Speicherausleseeinheit (1, 2, 3, 11) in Echtzeit die Interpolationswerte
zwischen zwei benachbarten Basis-Klangdaten ermittelt.
7. Musikinstrument nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß der
Speicher (14) zwei Teilbereiche aufweist, wobei der eine Teil die von der Frequenz
der zu erzeugenden Töne unabhängigen Klangdaten enthält, während der andere Teil die
von der Frequenz abhängigen Klangdaten der Töne enthält, wobei der Speicher (14)
dabei ein Dual-Port-RAM ist und wobei die aus den beiden Teilbereichen des Speichers
ausgelesenen Klangdaten getrennt in Signalprozessoren (31, 32) verarbeitet werden
und wobei schließlich die digital/ analog-gewandelten Ausgangssignale der Signalprozessoren
(31, 32) in einem Analog-Addierer (33) addiert werden.
8. Musikinstrument nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die
Basis-Klangdaten unter Steuerung durch die Speichereingabe-Einrichtung (1, 2, 3,
11) bei voreingestellten Klangparametern über ein Mikrophon (24) und einen Analog/Digital-Wandler
(22) in den Speicher (14) eingeschrieben werden.