Electronic musical instrument

Abstract: The instrument contains a memory (14) which contains samples of wave shapes in several individually addressable memory areas. An interpolator (15) can determine intermediate values between adjacent basic sound data in real time during the reading out or during the storing. The individual sound data are read out as a function of sound parameters. The order of the individual sound data to be read out is determined as a function of these sound parameters (Figure 1). <IMAGE>

Description: Elektronisches Musikinstrument Die Erfindung bezieht sich auf ein elektronisches Musikinstrument gemäss 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. 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 zusammengefasst nur vorher fest programmierte Tonfolgen mit frei programmierbarem, beim Abspielen jedoch nicht mehr änderbaren Klangcharakter eingegeben werden, so dass man im engeren Sinne nicht von einem Musikinstrument sprechen kann, sondern in Anlehnung an eine Schallplatte nur von einer "Tonkonserve". Aufgabe der Erfindung ist es, des elektronische Musikinstrument der eingangs genannten Art dahingehend zu verbessern, dass es absolut frei programmierbar ist und damit beliebige Klänge, die auch während des Spielens des Instrumentes verändert werden können, produziert. 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. 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. Damit erhält man eine ungeheuere Vielzahl von Klangmöglichkeiten, angefangen von allen möglichen Naturinstrumenten bis hin zu "synthetischen" Klängen. 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 dass das Musikinstrument nach der Erfindung die Brücke zwischen den reinen Synthesizern und den reinen Sampling-Geräten schlägt. Nach einer Variante der Erfindung ist es auch möglich, ein Musikinstrument mit mehreren Stimmen zu schaffen. 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). Zunächst seien einige öfters verwendete Begriffe klargestellt. Klang: Hier wird der zeitliche Verlauf (ggf. auch der Spektralverlauf) von Amplituden von Schallwellen verstanden. Basis-Wellenform: 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: Gesamtheit der Basis-Wellenformen und von aus mindestens zwei Basis-Wellenformen interpolierte oder extrapolierte zeitliche Verläufe der Amplituden von Klängen. Basis-Klangdaten: 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: Digitalisierte Wellenform. Klangparameter: Einflussgrössen, 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. 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. 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 Tiefpass 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. 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 DOLLAR 0000 gemäss Fig. 4. In entsprechender Weise werden dann weitere Basis-Klangdaten erzeugt, die in weiteren Speicherbereichen - in Fig. 4 die Speicherbereiche DOLLAR 1000, DOLLAR 2000, DOLLAR 3000 ... bezeichnet sind - eingespeichert werden. 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. Alle einzelnen eingegebenen Basis-Klangdaten haben dabei eine konstante Wortlänge im Wellenform-Speicher 14, beispielsweise 256 Worte à 8 Bit pro Wellenform. Zwischen den Speicherbereichen für die einzelnen Basis-Klangdaten sind dann noch freie Zwischenräume, in Fig. 4 beispielsweise zwischen den Adressen DOLLAR 0100 und DOLLAR 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äss einer e-Funktion, die den in der Natur vorkommenden Änderungen von Klängen besser entspricht. Im Ergebnis erhält man mit dieser Interpolation oder Extrapolation fliessende 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. 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 Tiefpassfilters wird man jedoch auch mehr Abtastwerte nehmen. Auch zwischen zwei solchen benachbarten Klängen bzw. Basis-Klangdaten kann dann in gleicher Weise interpoliert werden. 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 ausserhalb 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 anschliessend 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. 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, dass 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, dass der Körper vieler Instrumente gewisse Eigenresonanzen hat oder auch bei verschiedenen Tonhöhen und/oder Lautstärken bestimmte nicht-harmonische Schwingungen erzeugt. 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. 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. 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. 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. 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, dass der Speicher 14 in der Praxis natürlich mehr Felder hat als die in Fig. 5 gezeigten 256 Felder. 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. Nach obigen Schritten sind dann die vier grösseren 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. 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, dass 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 Mass für die Anschlag stärke dient. Die Parameter Nr. 2 und Nr. 4 (gemäss 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 Tiefpass gefiltert bzw. geglättet werden. Von dort gelangen sie über den Verstärker 19 zu dem Lautsprecher 20. 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 Massnahmen entweder sichergestellt werden muss, dass 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. 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. 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 gross die Zwischenräume zwischen zwei Basis-Klangdaten sind sowie schliesslich 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. In der dritten (untersten) Hierarchiestufe sind dann die Klangdaten gespeichert. Schliesslich sei noch erwähnt, dass 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äss einer Exponentialfunktion durchführen. Es ist ersichtlich, dass die einzelnen Parameter vollkommen unabhängig voneinander sein können, wodurch sich eine enorme Variationsbreite von Klängen realisieren lässt. 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ässt 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. 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. 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. 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). 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. 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. Die CPU 1 (Fig. 1) hat über die Treiber 35 und 10 direkten Zugang auf das RAM 14. 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 Tiefpassfilter enthält. Von dort gelangen sie über den Leistungsverstärker 19 zum Lautsprecher 20. Als weitere Unterschiede des Ausführungsbeispieles der Fig. 2 sind noch zu erwähnen, dass der Zähler 11 im Beispiel der Fig. 2 ein programmierbarer Aufwärts-/Abwärtszähler ist und dass die Treiber 10 und 21 jeweils Tristate-Treiber sind. Die übrigen Bauteile der Fig. 2 entsprechen denen der Fig. 1. Wirkungsmässig 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. Beim Tonerzeugungsprozess 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, dass das RAM 14 hier als Dual-Port-RAM ausgelegt ist, liegt also darin, dass das Auslesen aus den beiden Speicherteilen gleichzeitig erfolgt. Der Hauptgrund für die Wahl des Dual-Port-RAM liegt allerdings darin, dass 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. 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. 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 anschliessender 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. Für spezielle Effekte können alternativ die Teile 1 und 2 des Speichers auch folgendermassen 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. 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. 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. 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.

Claims: A musical instrument comprising: a memory unit (14) containing sampled values of waveforms and spectral variations of a sound to be generated which are stored in a plurality of individually addressable memory locations; a read/write memory device (1, 2, 3, 11) containing sample values organized in groups of basic sound data which are composed of more than one sampled value respectively spectral variations, where the memory readback device (1, 2, 3, 11) determines, according to the stored sound parameters, the sequence in which the individual memory groups or the basic sound data stored in the memory locations respectively, should be read out, characterised in that an interpolator (15) is provided which generates interpolated values between basic sound data values stored in different memory locations, in that the addresses of the sound data stored in memory unit (14) form an n-dimensional matrix wherein each of the dimensions of the matrix is assigned definitely to a single sound parameter, according to a linear or nonlinear function, and in that the number of the matrix dimensions is greater than 1. The instrument of claim 1 characterised in that addresses of the basic sound data stored in memory unit (14) are assigned definitely to sound parameters according to a linear or non-linear function. The instrument of claims 1 or 2 characterised in that basic sound data and sound parameters can be entered by means of a keyboard (7) and a monitor (5), especially by graphically displayed waveforms. The instrument of one of claims 1 to 3 characterised in that the individual memory locations of memory unit (14) contain basic sound data which are interpolated sound data obtained by an interpolator (15) from two or more basic sound data, wherein the addresses of the interpolated sound data are located between the addresses of the basic sound data used for interpolation, according to the interpolation steps. The instrument of one of claims 1 to 3 characterised in that the memory unit (14) contains basic sound data and the interpolator (15) provides the interpolation values between two adjacent basic sound values in real time, controlled by the memory readback device (1, 2, 3, 11). The instrument of one of claims 1 to 5 characterised in that the memory unit (14) contains two fields, wherein the first memory field contains basic sound data independent from the frequency of the tones to be reproduced and a second memory field containing the sound data dependent upon the frequency of the tones, wherein the memory unit (14) is a dual-port RAM and the basic sound data read out from the two memory fields are processed separately by signal processors (31, 32) and wherein the output signals of the signal processors (31, 32) which have been converted from digital to analog are added together by an analog adder (33). The instrument of one of claims 1 to 6 characterised in that the basic sound data are, controlled by the memory input device (1, 2, 3, 11) at predetermined sound parameters, read into the memory unit (14) by means of a microphone (24) and an analog-to-digital converter (22).

Inventors: GALLITZENDOERFER RAINER, GALLITZENDOERFER, RAINER, Gallitzendörfer, Rainer
Applicants: GALLITZENDOERFER RAINER, GALLITZENDOERFER, RAINER
Application year: 1987
Main classification: G10H7
IPC codes: G10H7