Hier wird die Umstimmautomatik einer mutierenden Stimmung definiert. Eine Umstimmautomatik besteht aus einer Aneinanderreihung von Anweisungen. Wir wollen in diesem Abschnitt besprechen, welche Anweisungen Sie zur Programmierung einer mutierenden Stimmung verwenden können.
Wie der Begriff schon andeutet, soll es sich bei der Umstimmautomatik um einen im Hintergrund arbeitenden Mechanismus handeln, der die Stimmung des Instrumentes immer im richtigen Moment verändert. Bereits bei der Besprechung von Umstimmungen haben Sie einen solchen Mechanismus kennen gelernt: die Umstimmung ’auf Knopfdruck’. Leider ist es während des Spiels nicht immer möglich, die eine Hand zum Computer zu bewegen, um dort eine Taste zur Umstimmung zu betätigen. Deshalb können Sie MUTABOR so programmieren, dass bei der Erkennung von bestimmten Tastenkombinationen (Harmonien) eine Umstimmung durchgeführt wird. Welche Tastenkombination nun welche Umstimmung hervorrufen soll, können Sie frei bestimmen.
Es gibt insbesondere in der Anwendung tonaler Harmonik bestimmte Strukturen, die über pure „Tastenkombinationen“ herausgehen. Deshalb wäre es meistens sehr umständlich, wenn Sie alle möglichen Tastenkombinationen angeben müssten, die die Umstimmung erzeugen sollen. Die Analyse der Klaviatur zu jedem Zeitpunkt einer Änderung steht in einem Zusammenhang mit dem aktuellen Tonsystem, insbesondere mit seiner Breite. Ein sinnvoller Auslöser für Umstimmungen ist also die Erkennung einer Harmonie, bzw. eine Beziehung zwischen den gedrückten Tasten und der Fundamentaltonleiter, was dann z.B. so etwas wie einen „C-Dur-Akkord ohne Berücksichtigung von Lage und Umkehrung“ ergibt. Allgemein können wir also wieder
Auslöser -> Aufruf
als Regel für das Laufzeitmodul definieren, beim Erkennen eines bestimmten Auslösers (z.B. einer Harmonie) den angegebene Aufruf durchzuführen (z.B. eine Umstimmung aufrufen). Damit können wir bereits ein erstes Programm mit einer automatisch mutierenden Stimmung schreiben.
Nehmen wir folgendes Beispiel: Das im Abschnitt „Tonsysteme“ beschriebene Programm zum Spielen in einem ’reinen’ C-Dur soll die Grundlage für unsere mutierende Stimmung sein. Dieses Tonsystem definiert den Ton b als Quinte unter dem Ton f. Nehmen wir nun an, wir hätten den Wunsch, beim Anschlagen der Sept c-b das b nicht als Quinte unter f zu intonieren, sondern als Naturseptime über c. Ferner soll bei einstimmigem Melodiespiel das b wieder als Quinte unter f benutzt werden.
Die Automatik, die dies realisieren kann, benötigt also zwei verschiedene Zustände, nämlich den Zustand „Natur“, in dem das Intervall c-b eine Naturseptime ist und den Zustand „Normal“, in dem der Ton b als Quinte unter f genommen wird. Die einfachste Realisierung dieser zwei Zustände wären zwei Logiken, bei denen diese Zustände als Einstimmung angegeben sind. Dieses Beispiel funktioniert ohne Klaviaturanalyse. Im Programmtext also:
INTERVALL
Quinte = 3:2 Terz = 5:4 Naturseptime = 7:4 Oktave = 2:1 TON c = a - Terz + Quinte - Oktave des = f - Terz d = g + Quinte - Oktave es = g - Terz e = c + Terz f = c - Quinte + Oktave fis = d + Terz g = c + Quinte as = c - Terz + Oktave a = 440 b = f - Quinte + Oktave h = g + Terz b2 = c + Naturseptime TONSYSTEM C_Dur_Rein = 60 [ c,des,d,es,e,f,fis,g,as,a,b,h ] Oktave UMSTIMMUNG Natur = [ @,@,@,@,@,@,@,@,@,@, b2 ,@ ] LOGIK C_Normal Taste C = C_Dur_Rein [ ] C_Natur Taste N = Natur [ ] |
In diesem Programm wird zunächst ein Tonsystem mit einem ’reinen’ C-Dur programmiert, wie Sie es aus dem Kapitel „Tonsysteme“ bereits kennen. Zusätzlich wird das Intervall Naturseptime als 7:4 und der Ton b2 als c+Naturseptime deklariert. Nun folgt eine Umstimmung: die Umstimmung Natur setzt die Taste b auf den Ton b2, also eine Naturseptime über c. Alle anderen Töne der FT bleiben bei der Umstimmung unverändert (Klammeraffensymbol). Zum Umschalten wurden hier einfach zwei aktionslose Logiken deklariert, die die beiden Zustände Natur und C_Dur_Rein als Einstimmung benutzen. Sie können jetzt per Knopfdruck zwischen den beiden Septimen wechseln. Wenn Sie aber gerne beide Hände zum Spielen frei haben möchten, und dennoch nicht auf den „Septimenwechsel“ verzichten wollen, so
müssen Sie sich eine Automatik programmieren. Überlegen wir uns dazu, welche Harmonien die Auslöser für Umstimmungen sind. Die Naturseptime soll in einem Zweiklang c-b erklingen. Deklarieren wir also die Harmonie
HARMONIE Septakkord = { 0, *4, *7, 10 }
|
und die Aktion
LOGIK
Mutierend Taste M = C_Dur_Rein [ Septakkord -> Natur ] |
Was bedeutet dies? Die Harmoniedeklaration sollte klar sein. Ein Septakkord ist das Tastenmuster, bei dem auf jeden Fall die 0. und die 10. Taste der Projektionstonleiter gedrückt sind, eventuell die 4. und/oder die 7. Taste, aber keine anderen. Wenn der Computer während des Spiels diese Harmonie erkennt, so soll die Umstimmung Natur durchgeführt werden - das ist alles. Diese Logik benutzt als Einstimmung das ’normale’ C-Dur und schaltet auf Naturseptime, sobald ein C-Septakkord erkannt wurde.
Die Schwäche dieses Programms liegt in der Tatsache, dass der Zustand „Naturseptime“, wenn er einmal erreicht ist, nicht mehr verlassen werden kann; aber gerade das wollen wir ja erreichen: z.B. beim einstimmigen Melodiespiel soll das b wieder als Quinte unter f interpretiert werden. Wir brauchen also noch eine zweite Aktion, die in den alten Zustand zurückschaltet, und zwar genau dann, wenn kein Septakkord mit c-b angeschlagen wird. Hierzu deklarieren wir die „Harmonie“ Be mit
HARMONIE
Be = { 10 } |
(Hier erkennen Sie deutlich, dass der Begriff „Harmonie“ eher im Sinne von „Tastenmuster“ zu verstehen ist.) Schließlich fügen wir der Logik die Aktion
LOGIK
Mutierend Taste M = C_Dur_Rein [ Septakkord -> Natur Be -> Normal ] |
hinzu. Damit haben wir unser Ziel erreicht. Zwecks Übersichtlichkeit hier nochmal der Steuerungsteil des Programms4 :
UMSTIMMUNG
Natur = [ @,@,@,@,@,@,@,@,@,@, b2 ,@ ] Normal = [ @,@,@,@,@,@,@,@,@,@, b,@ ] HARMONIE Septakkord = { 0, *4, *7, 10 } Be = { 10 } LOGIK Statisch Taste s = C_Dur_Rein [ ] Mutierend Taste m = C_Dur_Rein [ Septakkord -> Natur Be -> Normal ] |
Programmieren Sie diese Logik einmal und spielen Sie sie dann folgendermaßen: