3              Klänge sehen – Funktionen hören

Bild 3.1

Im Bild 3.1 sind drei verschiedene Funktionen dritten Grades auszugsweise gezeichnet. Wie könnte man diese Bilder so in eine Tonfolge umsetzen, dass der Schaubildverlauf aus der Musik erkennbar ist? Eine Idee besteht darin, die Klavierrollennotation (siehe 1) anzuwenden, also die x-Achse als Zeitachse und die y-Achse als Tonhöhenachse zu deuten. Die dazu nötigen Umrechnungen wollen wir hier entwickeln.

3.1    Eine Parabelmelodie

Im Bild 3.2 ist eine kubische Parabel auszugsweise gezeichnet, diesem Bild soll eine Melodie zugeordnet werden durch Deutung als Klavierrollennotation..

Bild 3.2: Die Funktion f(x) = 0.0148x3 + 0.114x2 – 0.628x + 1.22

Bei der (waagrechten) Zeitachse deuten wir die ganzzahligen Intervalle der Länge 1 als Takte, unterteilen diese in Viertel, unsere Melodie erhält also das Taktmaß 4/4, als Auflösung wird 1 gewählt. Wir bestimmen in 0.25-er-Schritten die Tonhöhen. Als solche nehmen wir die ein- und zweigestrichene Oktave, d. h. 0 wird c‘ zugeordnet, 1 cis‘ ..... und 24 der Ton c‘‘‘. Bei den Funktionswerten schneiden wir die Nachkommastellen einfach ab, diesen T-Werten sind dann wie angegeben Tonhöhen zugeordnet. Wir könnten auch direkt die MIDI-Werte ausrechnen (Mid(f(x) = [f(x)] + 60, c‘ hat die MIDI-Nummer 60, [ ] schneidet bei positiven Weten die Nachkommastellen ab), für das Bild sind aber unsere T-Werte geschickter.

Die Tonhöhen behalten wir jeweils für das folgende Viertel als Tonhöhe bei. Bei aufeinander folgenden gleichen Tonhöhen innerhalb eines Taktes fassen wir deren Dauern zusammen.

Wir starten bei x = –12, der erste T-Wert ist 0 (-1 wenn man genauer hinschaut und nicht rundet), bei –11.75 gilt noch die 0, bei –11.5 möglicherweise schon die 1 (Ablesegenauigkeit), bei –11.25 gilt noch die 1, aber wir sind schon nahe bei 2 (Runden?). Um bei dieser Bestimmung von Tonhöhen frei von Ableseunsicherheiten zu sein, verschaffen wir uns eine Tabelle mit DERIVE (floor(f(x)) für [f(x)]) .

Die x-Werte rechnen wir durch Addition der 12 in Zeitwerte von 0 bis 24 (t(x):= x+12) um. Aufgrund der zuvor beschriebenen Tonhöhenzuordnung ist so unsere Parabelmelodie bereits festgelegt (genauer: deren Tonhöhen und Dauern).

Im Bild 3.3 erkennen wir das zur musikalischen Umsetzung (Tonhöhenbestimmung) benutzte Schaubild der Funktion T mit der t-Achse als erster Achse.

Bild 3.3: Tonhöhen-Zeit-Diagramm zur Funktion f


T1

T2

T3

T4

-1   0    1     1  

2   2    3     3  

4   4    4     5  

5   5    5     5  

T5

T6

T7

T8

5   6    6     6  

6   6    6     5  

5   5    5     5  

5   5    5     4  

T9

T10

T11

T12

4   4    4     3  

3   3    3     3 

2   2      2     2    

1   1      1     1    

T13

T14

T15

T16

1   1      0     0    

 0    0      0    0    

0   0      0     0    

0   0      1     1    

T17

T18

T19

T20

1   1      2     2    

2   3      3     4    

4   5      6     6    

7   8      9    10   

T21

T22

T23

T24

11  12     13    14   

15  16     18    19

  21   22     24    26   

27 29    31   33   ( 36)

Bild 3.4: Tonhöhentabelle zur Funktion f, Zeitachse in Viertel geteilt

Das Ergebnis unserer Bemühungen können wir auch im Notenbild festhalten. Am Ende (Takt 25) haben wir noch einen C-Dur Akkord als erkennbaren Abschluss eingebaut

Bild 3.5 Notenbild der Parabelmelodie (Hören: plotfu1,plotfu2schneller)

Interessanter als dieses konventionelle Notenbild ist die Darstellung des Werkes im Piano-Roll-Editor, weil darin eine unmittelbare Umsetzung des Schaubildes in Musik erkennbar wird (vgl. Bild 3.6 mit Bild 3.3). Damit das gesamte Schaubild sichtbar wird, wurden alle Tondauern halbiert, je zwei Takte also zu einem zusammengefasst. Durch Tempohalbierung erhält man genau das gleiche Musikstück.

Bild 3.3 entsteht durch Vergröberung aus dem ursprünglichen Bild 3.2, in der Klavierrollen­notation wird nochmals vergröbert. Im Unterschied zu Bild 3.3 ist die Breite aller Balken ein ganzzahliges Vielfaches von 0.25 bzw. 0.125 nach der angegebenen Umrechnung. Veränderungen innerhalb dieser kleinsten Einheit werden nicht berücksichtigt, dadurch werden in der Klavierrollennotation (am rechten Rand) Tonhöhen teilweise ausgelassen, die im feineren Bild 3.3 als Funktionswerte auftreten.


Bild 3.6: Tonhöhen-Zeit-Diagramm im Piano-Roll-Editor

Die Balkenlänge in der Waagrechten repräsentiert die Dauer, durch die Klaviertastatur werden die Tonhöhen in der Senkrechten erkennbar.




3.2    Einsatz von Controll-Editoren

Statt der Tonhöhen könnte man auch andere MIDI-Parameter zur musikalischen Beschreibung des Schaubildverlaufs verwenden. Bei konstanter Tonhöhe lassen sich z. B. die Schwankungen der Funktionswerte in Lautstärkeänderungen oder in Intensitätsänderungen der Abstrahlung durch den linken oder rechten Lautsprecher übersetzen.

 

Eine andere Möglichkeit besteht darin, die MIDI-Parameter als zusätzliches Mittel zur musikalischen Repräsentation des Funktionsverlaufs einzusetzen, vgl. Bilder 3.7 und 3.8

Bild 3.7: Die Balance als erste Ableitung

(Die quadratische Funktion wurde qualitativ direkt grafisch eingetragen)

 

Bild 3.8: Die Lautstärke als zweite Ableitung (lineare Funktion)

Das Funktionenhören ist bei den Tools des Programms „Mathematik Experimental“ von R. SCHÄFER (Hompage: tafelbilder.de)teilweise eingebaut. Dort kann man z. B. auch die erste oder zweite Ableitung abspielen und daraus Rückschlüsse auf die Funktion ziehen. Dieses  Programm stellt auch Kurven mittels Tonpaaren akustisch dar, dazu werden in der Parameterdarstellung in Abhängigkeit von der Zeit den x- und y-Werten Tonhöhen unterschiedlicher Instrumente zugeordnet.

Vielleicht hören Sie zukünftig bei Funktionsbildern in Ihrem Innern eine Melodie dazu? Die hier angegebenen graphischen Verfahren bilden jedenfalls eine Grundlage zur Umsetzung von Bildpartituren in Musik.
In den folgenden Dateien wird bei unserer Funktionenmelodie ein wenig mit den Controllern wie zuvor beschrieben gespielt: 

 

plotfu3 ,  plotfu4 ,  plotfu5


 

3.3    Mathematische Ergänzungen

In diesem Abschnitt stellen wir für mathematisch Interessierte und Anregung für eigene Versuch einige Hinweise zum musikalischen Funktionsplotter zusammen für den Fall, dass die Umrechnungen etwas mühsamer als im Beispiel 3.1 sind.

3.3.1    Einteilungen der Zeitachse (x-Achse)

Für das in Klänge umzusetzende Bild einer Funktion setzen wir voraus, dass als Definitionsbereich ein abgeschlossenes Intervall [a,b] vorliege bzw. ausgewählt wurde. Demnach soll a = xmin (b = xmax) der kleinste (größte) x-Wert sein, der bei den Koordinaten des Bildes auftritt. Durch die Transformation 

t:= x – xmin

rechnen wir die x-Werte auf mit dem Wert Null startende Zeitwerte um.

Am einfachsten wird es, wenn xmin und xmax ganzzahlig gewählt werden und Intervalle der Länge 1 mit ganzzahligen Rändern als Takte interpretiert werden. Nach der Umrechnung in Zeitwerte muss man allerdings beachten, dass in der Musik der erste Takt (Taktangabe 1) mit dem Zeitpunkt Null beginnt, auf unserer Zeitachse mit der 1 dagegen das Ende des ersten Taktes (und der Beginn des zweiten Taktes) markiert wird.

Natürlich kann man die Festlegungen allgemeiner treffen: Soll das Intervall [a,b] in n Takte unterteilt werden, so ist deren Länge L = (b-a)/n. Für die Umrechnung der x-Werte in Zeitwerte t(x) gilt dann

.

Bild 3.9: Umrechnung der x-Werte in Zeitwerte

Weiter müssen wir festlegen, wie fein wir die einzelnen Takte unterteilen. Sinnvolle Werte wären Viertel-, Achtel- oder möglicherweise auch Sechszehntelschritte, entsprechend der kleinsten vorgesehenen Tondauer unter Berücksichtigung der in der klassischen Musiknotation üblichen Werte.

 

Man kann auch von kleinsten Einheiten („Ticks“) ausgehen und durch die Vorgabe einer Anzahl k von Ticks festlegen, wie fein die dem Taktmaß zugrunde liegende Einheit (z. B. 1/4 beim 3/4– oder 4/4–Takt) unterteilt werden soll. Will man z. B. Achtelnoten und auch  Triolen von Achtelnoten im Vierteltakt haben, so müsste man der Viertelnote 6 Ticks (oder Vielfache der 6) zuordnen. Diese Methode erlaubt auch ungewöhnliche Einteilungen (z. B. 17 Ticks für ein Viertel), mittels elektronischer Realisierung kann man dadurch Dauern nutzen, die ein Musiker kaum exakt treffen würde.

3.3.2    Bestimmung der Tonhöhen

Wir nehmen an, dass die zum Tönen zu bringende Funktion im Definitionsintervall [a,b] Werte aus dem abgeschlossenen Intervall [u,v] annimmt. Dabei müssen zwar die Randwerte nicht unbedingt angenommen werden, aber es ist für das weitere Vorgehen sinnvoll, ein Intervall so vorzugeben, dass u und v möglichst nahe an Funktionswerten liegen. Weil wir von einem abgeschlossenen Intervall als Definitionsbereich ausgehen, besitzt die Funktion meist einen kleinsten (größten) Funktionswert fmin (fmax) im Bereich des reellen Intervalls [a,b]. In diesem Fall – und nur den wollen wir weiter verfolgen – kann man u = fmin und v = fmax setzen.

Weil aufgrund der endlichen Unterteilung der Zeitachse (Diskretisierung) nur endlich viele Funktionswerte betrachtet werden, gibt es unter diesen in jedem Fall einen größten und einen kleinsten. Es kann allerdings sinnvoll sein, u kleiner als fmin zu wählen (oder v größer als fmax), wenn zum Beispiel die Funktion asymptotisch gegen einen Wert strebt (Beispiel: 1/x®0 für x®¥, man wird im Falle [a,b] = [1,100] vielleicht [u,v] = [0,1] wählen, auch wenn fmin = 1/100).

 

Zur Umrechnung der Funktionswerte in Tonhöhen gibt es verschiedene Wege:

(1)              Will man die Tonhöhen als ganze Zahlen zwischen 0 und einer geeigneten Obergrenze (z. B. 24) beschreiben, so sorgt man zunächst durch den Übergang zu

(2)              

y(x):= f(x) – fmin

dafür, dass alle Werte nicht negativ sind und Null der kleinste vorkommende Wert ist. Ist ymax der größte Wert dieser Funktion im betrachteten Bereich, also ymax = fmax – fmin, so liefert

H(x) := y(x)×24/ymax    bzw.     Hk(x) := y(x)×k/ymax

Werte zwischen 0 und 24 (bzw. zwischen 0 und k).

Die so gefundenen Ergebnisse sind noch auf ganzzahlige Werte zu runden. Man kann z. B. zu  Beginn jedes Zeitintervalls (also bei 0, 0.25, 0.5, 0.75, 1, 1.25, ….. bei Unterteilung der Zeitachse in Viertelnoten) den Wert von H bestimmen, durch Runden oder Abschneiden der Nachkommastellen erhält man ganzzahlige Tonhöhen aus dem gewählten Bereich, die übernimmt man bis zum nächsten markierten Punkt der Zeitachse, dort wird wieder der Wert von H bestimmt usw. Bei gleicher Tonhöhe kann man die Dauern von Nachbarintervallen zu größeren Dauern zusammenfassen.


Bei den Zeitpunkten 0 und 0.25 liest man die ganzzahligen Werte 0 (entsprechend c’) ab, bei 0.5, 0.75, 1.0, 1.25, 1.5 ergibt sich 1 (cis’) als ganzzahliger Anteil, die Viertelnoten wurden teilweise zu halben Noten zusammengefasst. Zu 1.75, 2.0, 2.25 gehören die Werte 2 (d). Die Funktionswerte wurden in diesem Beispiel auf die nächste ganze Zahl gerundet.

Bild 3.10: Beispiel zum Umwandeln der y-Werte in Tonhöhen


Im Bild 3.10 ist die Zeitachse in Viertel unterteilt. Durch Ablesen der Funktionswerte an den Stellen 0, 0.25, 0.5,…und deren Rundung auf ganze Zahlen (die Rundungsfunktion ist in das Bild ebenfalls eingezeichnet) findet man den in der Tabelle angegebenen Anfang einer Plotmelodie.

(2)       Die Tonhöhen kann man auch durch Frequenzen festlegen. Weil es hierbei auch auf die Hörbarkeit ankommt (untere Hörgrenze bei etwa 16 Hz, obere Hörgrenze altersabhängig), muss man die Funktionswerte geeignet in ein hörbare Intervall umrechnen. Ist Fmax die größte, Fmin die kleinste angestrebte Frequenz, so liefert

F(x):= (Fmax – Fmin)/(fmax – fmin) × (f(x) – fmin) + Fmin

eine lineare Umrechnung der Funktionswerte in das Frequenzintervall [Fmin; Fmax].

Nehmen wir etwa die Töne aus den beiden Oktaven zwischen c’ und c’’’ als angestrebte Tonhöhen. Bei dieser Skala entspricht bei der ersten Variante einem bestimmten Zuwachs der Funktionswerte stets der gleiche Zuwachs der Tonhöhe.

Würde man den entsprechenden Frequenzbereich zwischen Fmin = 264 Hz (entsprechend c’) und Fmax=1056 Hz (entsprechend c’’’) als Tonhöhenvorgaben ansteuern und auf diesen die angegebene Formel für F(x) anwenden, so erhielt man zunächst die Möglichkeit, viele neue Töne zum Einsatz zu bringen. Diese könnte man zwar nicht auf dem Klavier, aber elektronisch realisieren. Das Ergebnis würde aber nicht nur wegen der neuen Zwischentöne unseren Hörgewohnheiten widersprechen. Wenn z. B. dem y-Wert 0 die Frequenz 264 Hz zugeordnet ist, dem Wert 10 der angestrebte höchste Ton mit 1058 Hz, so entspräche der 5 (dem halben Wert von 10) nicht der erwartete Ton c’’ (512 Hz), sondern ein Ton mit 660 Hz  (arithmetisches Mittel von 512 und 1058).

Zur Anpassung der verfeinerten Skala an die Einteilung gemäß (1) müssen wir demnach eine Funktion suchen, die für das Minimum von f den Wert Fmin, für das Maximum den Wert Fmax, bei den Zwischenwerten sich aber multiplikativ verhält wie die temperierte Stimmung. Dies leistet der Ansatz

H(x):= qf(x)-fmin×Fmin                 mit      H(xmax) = Fmax.

Durch Einsetzen von f(xmax) = fmax erhält man eine Gleichung zur Berechnung von q:

.

Dabei ist es unerheblich, welche Basis bei der Logarithmusfunktion verwendet wird.

Im Beispiel ymin = 0 und ymax = 10 (ymax = 24) ergibt sich für den angegebenen Frequenzbereich

Die Umrechnungsfunktionen  H(x) = qx×264 sind im Bild 3.11 dargestellt.

 

Bild 3.11: Umrechnung von Funktionswerten in Frequenzen

Bei unsern Umrechnungen wurde dem Ton c’ die Frequenz 264 zugeordnet. Für Kammerton a’ ergibt sich dadurch eine Frequenz von rund 443 Hz. Um die Norm 440 Hz zu erhalten müsste man bei temperierter Stimmung (vgl. Teil 2) für c’ die Frequenz 261.63 Hz vorgeben, bei reiner Stimmung gelten dagegen 264 Hz für c’ und 440 Hz für a’.

 

Das hier angewandte Verfahren findet sich mit verfeinerter Einteilung in der Cent-Rechnung für Tonhöhen. Bei ihr wird eine Oktave in 1200 Cents eingeteilt, ein Halbton in der wohltemperierten Stimmung besteht dann aus 100 Cents. Setzen wir

,

so ist F(x) = ax die Umrechnung von absoluten Centwerten x in Frequenzen.