(19)
(11) EP 0 237 798 A2

(12) EUROPÄISCHE PATENTANMELDUNG

(43) Veröffentlichungstag:
23.09.1987  Patentblatt  1987/39

(21) Anmeldenummer: 87102070.7

(22) Anmeldetag:  13.02.1987
(51) Internationale Patentklassifikation (IPC)4G10H 7/00
(84) Benannte Vertragsstaaten:
AT BE CH DE FR GB IT LI NL SE

(30) Priorität: 14.02.1986 DE 3604686

(71) Anmelder: Gallitzendörfer, Rainer
D-81827 München (DE)

(72) Erfinder:
  • Gallitzendörfer, Rainer
    D-81827 München (DE)

(74) Vertreter: von Bülow, Tam, Dr. et al
Patentanwalt Mailänder Strasse 13
81545 München
81545 München (DE)


(56) Entgegenhaltungen: : 
   
       


    (54) Elektronisches Musikinstrument


    (57) Das elektronische Musikinstrument enthält einen Speicher (14), der in mehreren einzeln adressierbaren Speicher­bereichen Abtastwerte von Wellenformen enthält. Ein Interpolator (15) kann in Echtzeit während des Auslesens oder beim Einspeichern Zwischenwerte zwischen benach­barten Basis-Klangdaten ermitteln. Das Auslesen der einzelnen Klangdaten erfolgt in Abhängigkeit von Klang­parametern. In Abhängigkeit von diesen Klangparametern wird die Reihenfolge der einzelnen auszulesenden Klang­daten bestimmt (Fig. 1).




    Beschreibung


    [0001] Die Erfindung bezieht sich auf ein elektronisches Musik­instrument gemäß dem Oberbegriff des Patentanspruches 1. Ein solches Musikinstrument ist aus der DE-PS 29 26 548 bekannt. Dort ist ein Wellenform-Generator zur Klang­formung in einem elektronischen Musikinstrument be­schrieben, 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 Integrier­geschwindigkeit 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 pro­grammierte 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 Anleh­nung an eine Schallplatte nur von einer "Tonkonserve".

    [0003] Aufgabe der Erfindung ist es, des elektronische Musik­instrument 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. Vorteil­hafte 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 Speicher­adressen frei wählbaren Klangparametern zuzuordnen. Die Klangparameter wie z. B. Anschlagstärke, Zeitdauer des Drückens einer Taste, Stellung eines Reglers etc. be­stimmen also die jeweils auszulesende Speicheradresse bzw. die Reihenfolge der auszulesenden Speicheradressen.

    [0006] Damit erhält man eine ungeheuere Vielzahl von Klangmög­lichkeiten, angefangen von allen möglichen Naturinstru­menten 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 Kunst­klä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ührungs­beispielen im Zusammenhang mit der Zeichnung ausführ­licher erläutert. Es zeigt:

    Fig. 1 Ein Blockschaltbild eines ersten Ausführungs­beispieles des Musikinstrumentes nach der Er­findung;

    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 Speicher­organisation 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 Erfin­dung verwendet wird; und

    Fig. 6 ein detailierteres Blockschaltbild des ersten Ausführungsbeispieles (Fig. 1).



    [0010] Zunächst seien einige öfters verwendete Begriffe klar­gestellt.

    [0011] Klang: Hier wird der zeitliche Verlauf (ggf. auch der Spektralverlauf) von Amplituden von Schall­wellen 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 inter­polierte 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 Laut­stärke nicht nur die Amplituden der Schallwellen sondern auch deren zeit­lichen 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 Frequenzverschie­bung sondern auch den Klang als solchen, da bei den meisten Natur­instrumenten in Abhängigkeit von der Tonhöhe unterschiedliche Oberwellen, Resonanzen etc. auftreten.



    [0017] Es sei jetzt auf Fig. 1 Bezug genommen. Das Musikinstru­ment besitzt eine Zentraleinheit (CPU) 1, einen Nur-­Lese-Speicher (ROM) 2, einen Speicher mit wahlfreiem Zugriff (RAM) 3, wobei diese drei Baugruppen im wesent­lichen 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 Bild­schirmschnittstelle (Interface) 4 ein Bildschirm 5 angeschlossen, über eine weitere Schnittstelle (Inter­face) 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 Bau­stein, der eine Fourier-Transformation seiner Eingangs­signale 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 Treiber­schaltung 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 vor­geschaltetem 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 be­schrieben. Unter Steuerung über das Tastenfeld 7, das auch einen sog. Joystick, eine "Maus" oder einen Lichtgriffel enthalten kann, erzeugt der Benutzer in einem Eingabe­schritt 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 Zeit­verlaufes 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-Klang­daten erzeugt, die in weiteren Speicherbereichen - in Fig. 4 die Speicherbereiche $1000, $2000, $3000 ... bezeichnet sind - eingespeichert werden.

    [0020] Falls die Basis-Wellenformen im Spektralbereich einge­geben 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 Inter­polationen 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 ein­gegebenen 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 min­destens 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 Speicher­bereiche 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 bezeich­neten Klangdaten ausgelesen werden sollen. Gibt man beispielsweise eine ansteigende Gerade ein, so werden die hintereinander abgespeicherten Klangdaten mit aufsteigender Adressnummer unmittelbar aufeinander­folgend ausgelesen. Man erhält dann bei einem Auslese­zyklus 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 dazwischen­liegenden 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 hinter­einander. Gibt man eine Dreieckskurve ein, so werden aufeinanderfolgend Klangdaten mit aufsteigender Adress­nummer 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 Laut­stä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 be­stimmte 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 "Para­meterfunktion" 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 beispiels­weise 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 Zusammen­hang 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 Anschlag­stä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 ins­besondere dann sinnvoll ist, wenn man noch mehr Klang­parameter einführen will, beispielsweise ein Tremolo, ein Echo oder einen Nachhall, eine Anhebung der Ampli­tuden 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 Ton­hö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. Hin­sichtlich des Parameters 2 der Fig. 5 liegen die Felder 00, 04, 08 und 0C nebeneinander. Es würde also bei­spielsweise genügen, in die Felder 00 und 0C Basis-Klang­daten 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 nebenein­ander 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 neben­einander 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 Klang­charakter eines Klanges bei gedanklich zunächst festge­haltenen 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 Klang­daten 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 Stel­lung 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 aufgenom­men werden, wobei die Parameter 1, 2 und 4 in entsprechen­der 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 nach­einander Schaltkontakte betätigt werden, wobei die Zeit zwischen dem aufeinanderfolgenden Betätigen der Schalt­kontakte 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 zugeord­net. 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" be­stimmt, wird vorzugsweise im RAM 3 gespeichert. Es ist auch möglich, sie im Wellenform-Speicher 14 zu spei­chern, 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 bein­halten, ausgelesen und zwischengespeichert werden können.

    [0036] Die einzelnen gespeicherten Klangdaten und Klangpara­meter sind für die Eingabe und die Ausgabe hierarchisch geordnet. Die höchste Hierarchiestufe haben die Klang­parameter, 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 Spei­cheradresse 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 Klang­daten-Satzes. Bei der Eingabe mittels Bildschirm ent­spricht 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 voll­kommen 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 Direkt­aufnahmen (Digitalisierung des Schalldruckverlau­fes) 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 ge­speicherten Klangdaten und der gespeicherten Klangparameter. Je nach Ansprüchen an die Origi­naltreue der wiedergegebenen Klänge läßt sich daher der Aufwand für Speicherplätze reduzieren und damit die Zugriffsgeschwindigkeit bei manchen Speicher­arten erhöhen. Trotz der ernormen angebotenen Vielfalt bleibt die Bedienung des Gerätes über­sichtlich.

    [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 Bus­treibern 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 Anmel­ders beschrieben ist. Der Interpolator 15 ist über Bus­treiber 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 Treiber­ausgang 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 ver­bunden. 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 ange­steuert. 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-Transfor­mator 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 Mikor­computer 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-Aus­gang "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 zeit­synchron 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 Register­ausgänge aktiviert.

    [0047] Die CPU 1 (Fig. 1) hat über die Treiber 35 und 10 direk­ten 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 Klang­daten enthält. Hierbei werden für die Klangdaten nur noch die Basis-Klangdaten gespeichert, während die Interpolation oder Extrapolation während der Klang­wiedergabe und damit quasi in "Echtzeit" durchgeführt wird. Das RAM 14 der Fig. 2 enthält somit keine inter­polierten oder extrapolierten Werte mehr. Die Inter­polation oder Extrapolation wird bei diesem Ausfüh­rungsbeispiel durch Signalprozessoren 31 und 32 durch­gefü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 verar­beitet Klangdaten, deren Spektraleigenschaften sich mit der Tonhöhe ändern. Der andere Signalprozessor 32 verarbei­tet 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 verarbeite­ten 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 Unter­schiede. 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 entsprechen­den Geschwindigkeit ausgelesen. Gleichzeitig wird ein Kurvenzug aus dem zweiten Teil mit von der Tonhöhe un­abhä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 ande­ren Port laufen während der Wiedergabe dann die Klang­daten 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äm­lich 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 Instru­mententonbereich. Für beide Wellenzüge wird dann von den Signalprozessoren eine Fourier-Transformation mit an­schließender Betragsbildung durchgeführt. Danach folgt ein Vergleich der beiden Spektrenbetragswerte. Hierzu wird beispielsweise die minimale Spektraldistanz ermit­telt, d. h. der kleinste zu beachtende Abstand zwischen zwei Spektrallinien entsprechend dem Auflösungsvermögen. Dann werden die beiden Betragswerte der Spektren von­einander 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 Spektral­komponenten 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 ste­hend);

    Teil 2 enthält alle nicht-harmonischen Spektralkomponen­ten 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 be­nötigten Klangdaten (nämlich die Basisklangdaten) bereitgehalten während die für die Tonerzeugung zusätz­lich benötigten Klangdaten während des Spielens mittels Interpolation erzeugt werden.

    [0056] Weiterhin ergeben sich mit dem zweiten Ausführungs­beispiel zusätzlich Effektmöglichkeiten durch unabhän­gige Wahl der Auslesegeschwindigkeit von Teil 1 und Teil 2 des RAM 14. Die Einzelklangfarbe und das Gesamtklang­bild können in Abhängigkeit von der Tonhöhe verändert werden. Durch die graphische Eingabe bleiben trotzdem die Effektmöglichkeiten überschaubar.


    Ansprüche

    1. Elektronisches Musikinstrument mit einem Speicher (14), der in mehreren einzeln adressierbaren Speicherplätzen Abtastwerte von Wellenformen bzw. Spektralverläufe enthält, mit einer Speicherein­gabe- 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 gekenn­zeichnet, 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 gekenn­zeichnet, daß die Adressen der im Speicher (14) gespeicherten Klangdaten eine n-dimensionale Matrix bilden, wobei jede der n-Matrixdimensionen umkehr­bar eindeutig einem einzelnen Klangparameter zuge­ordnet 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) eingeb­bar sind, insbesondere auch in Form graphisch abge­bildeter 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 Klang­daten entsprechend den Interpolationsschritten zwischen den Adressen der zur Interpolation verwen­deten 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 Speicheraus­leseeinheit (1, 2, 3, 11) in Echtzeit die Inter­polationswerte 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 ent­hä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-Einrich­tung (1, 2, 3, 11) bei voreingestellten Klang­parametern über ein Mikrophon (24) und einen Analog/Digital-Wandler (22) in den Speicher (14) eingeschrieben werden.
     




    Zeichnung