2. Inhaltsverzeichnis
Einleitung....................................................................................................................................3
Grundlagen..................................................................................................................................3
Harmonik................................................................................................................................ 3
Melodik................................................................................................................................... 3
Genre.......................................................................................................................................4
Das System Anton.......................................................................................................................4
Kompositionsprozess.............................................................................................................. 4
Answer-Set-Programming Grundlagen.......................................................................................5
Atome......................................................................................................................................6
Regeln..................................................................................................................................... 6
Choice Rules........................................................................................................................... 6
Answer-Set..............................................................................................................................6
Keine Negation....................................................................................................................... 6
Answer-Set-Programming im System Anton..............................................................................7
Beispiel - Komposition....................................................................................................... 9
Beispiel – Regelbasis........................................................................................................ 10
Evaluation..........................................................................................................................11
Technische Evaluation...................................................................................................... 12
Aktuelle Entwicklung........................................................................................................... 12
Anton 1.5...........................................................................................................................13
Harmonische Verifikation durch das Lydian Chromatic Concept.........................................15
Literatur.....................................................................................................................................17
Hauptquellen......................................................................................................................... 17
Referenzierte Quellen............................................................................................................17
3. Einleitung
Zu Begin muss man sich eine Frage stellen: Ist es möglich, die Regeln eines
Kompositionsprozesses in der Musik formal zu beschreiben? Die Entwickler vom System
Anton sagen ja, mithilfe von Answer-Set-Programming. Das System ermöglicht es,
harmonisch als auch melodisch zu komponieren, Fehler in Kompositionen zu entdecken und
als Computer-Aided-Composition-Tool zu agieren. Nun stellt sich hier die Frage, ob Fehler in
einer Komposition erlaubt werden dürfen und der emotionale Faktor einer Komposition in
Regeln gefasst werden kann. Modale Stücke zum Beispiel, folgen keiner harmonischen
Funktion im eigentlichen Sinne. Es gibt ein paar Regeln, die definieren, was man nicht tun
soll, aber der Prozess der Weiterführung erfolgt meist nur durch hören. Das System Anton
verwendet eine deklerative Programmiersprache zur Repräsentation dieser Regeln. Mithilfe
der in Wissensrepräsentationstechniken wiedergegebenen Regeln, soll Komponisten geholfen
werden Kompositionen besser zu verstehen und ihre Regeln zu erweitern.
Grundlagen
Grundlagen in kürze einfach erklärt.
Harmonik
Die Harmonie beschreibt den, dem/der Melodieton/Melodietöne unterliegenden Klangkörper.
Es beschreibt einen Akkord, was soviel heißt wie das gleichzeitige Erklingen mehrerer Töne
in einen bestimmten Zusammenhang. Eine Komposition hat eine harmonische Struktur. Durch
Regeln soll Anton diese Struktur generieren. Als Regeln werden Kadenzen für kadenzierende
Stücke eingetragen. Klar geben Kadenzen eine klare Struktur vor, welche einem
harmonischen Ablauf folgen und dieser wurde schon unzählige Male in Kompositionen
verwendet. Man kann sogar von harmonisch identisch Stücken ausgehen und diese als
harmonische Grundlage für eine neue Komposition verwenden (siehe dazu Charlie Parker
Kompositionen). Beispiel: Der Ton C ist in einem A-moll Akkord die Terz. In einem C-Dur
Akkord der Grundton.
Melodik
Die Melodik einer Komposition beschreibt den Fortschritt der Noten über die Zeit in einer
Bewegung. Das entspricht dem, was wir, wenn wir ein Lied wiedergeben wollen, singen oder
pfeifen.
4. Genre
Eine Komposition einem gewissen Stil oder einem Genre zuzuordnen, erfordert differenzierte
Regeln. Es gibt zwar allgemein, fundamentale Regeln der Musik, aber zusätzlich hat jeder
Stil, wie Rock, Jazz, etc. und selbst jeder Substil dieser, spezielle Regeln. Diese implizieren
Charakteristiken des Stils, kulturelle Hintergründe, Instrumentalisierung und auch die Art, wie
wir hören. Zusätzlich ist auch die westliche Tonalität, die Halbtonmusik, differenzierter zu
manchen anderen Musikarten. Anderswo ist die Intervallstruktur nicht basieren auf
Halbtonschritten. Der Abstand zwischen zwei Tönen wir geringer. Als Beispiel ist die
arabisch-klassische Musik, Vierteltonmusik oder auch mikrotonale Musik zu nennen. Selbst
in der westlichen Musik gibt es spezielle Formen, wie zum Beispiel den Blues in der
Phrasierung der Quint (auf manchen Instrumenten möglich diese zwischen Quart und Quint
zu intonieren – nicht aber #11).
Das System Anton
Wie schon anfangs erwähnt, wurde das System Anton entwickelt. Ziel des Systems ist es, mit
einem minimalen Set an Regeln, Musik zu erzeugen bzw. diese zu Verifizieren. Diese sollte
„akzeptabel“ sein. Die weitere Frage ist nun, wie sich die Musik durch hinzufügen von
Regeln verbessert. Die Anwendungsbereiche wären vielfältig. Zum einen könnte
Komponisten eine Hilfestellung gegeben werden. Wo „Hintergrundmusik“ gebraucht wird,
wie in Aufzügen, Eingangshallen, etc. könnte diese automatisch generiert werden und es gäbe
keine Probleme mit Tantiemen-Abgaben.
Kompositionsprozess
Der Kompositionsprozess selbst ist ein Vorgang mit sehr vielen Parametern. Einige
Basisfragen stellen sie, wie zum Beispiel:
1. globale Form des Stücks, z.B. AABA-Form wie im Pop/Rock/Jazz-Bereich, Form
einer Etude, Fuge, etc. [7, p.251]
2. Die Melodie selbst, welche sich meist nicht über das gesamte Stück zieht, sondern in
Variationen auftritt. Beispiele wären hier J.S.Bachs Inventionen bzw. KV 265,
Wolfgang Amadeus Mozart „Ah, vous dirai-je, maman“ – Twinkle Twinkle Little Star
(Aufnahme Fazil Say - Mozart - 12 Variation "Ah, vous dirai je, maman" KV.265)
Beim Melodiekomponieren ist der Prozess eigentlich basierend auf der Frage nach: „Wo
kommt die nächste Note hin?“. Ein berühmtes Beispiel für algorithmische Komposition ist
5. das Musikalische Würfelspiel. Dieses kann man im Haus der Musik in Wien spielen. Es
wurde schon Ende des 18. Jahrhunderts definiert. Hier wird jedoch lediglich ein Set von
Musikpatterns anhand von Würfelzahlen in Minuet-Form angeordnet.
Kompositionen wurden bereits in Form von Melodielinien, mithilfe zahlreicher
mathematischer Modelle, wir Fraktalen, Chaosprozessen, Markov-Chains, etc., generiert.
Wesentliche Arbeit in diesem Bereich kommt von David Cope, speziell im Buch „The
Algorithmic Composer“, oder auch von Iannis Xenakis’Arbeiten, als Beispiel „Modulor“ [3,
p.102]. Auch möchte ich hier meine Arbeit erwähnen, welche im Bereich der generativen
Kunst angesiedelt ist [3]. Darin finden sich zahlreiche andere Beispiele, welche z.B. durch
Verwendung von Ornamenten (Kompositionen von Claude Debussy, Morton Feldmann)
Musik generieren und eine Möglichkeit der Transformation zwischen Musik und Architektur.
Eine Alternative zu Anton ist IRCAM mit der PWConstraints-Erweiterung, ein Lisp-
Interpreter basierend auf einer graphischen Programmiersprache für Kompositionen.
Der Kompositionsprozess findet auch eine weitere Form in der, unbeholfen als
„Instantcomposing“ bezeichneten, Improvisationsmusik [7, p.233f]. Diese ist heute im Jazz
sehr populär aber auch im Barocken z.B. der Generalbassnotation. Dabei ist die
Akkordstruktur des Stückes bekannt und es wird darüber eine Melodie gespielt. Mit letzterem
Sachverhalt muss man nun auch zwischen „Improvisations-“ und „Kompositions-Systeme“
unterscheiden. Ersteres tritt Entscheidung in der Zeit basierend auf einem statischen,
harmonischen Konzept. Denn jeder nächste Schritt entsteht im aktuellen Moment bzw. in
einem kurzen Zeitraum vor dem eigentlichen Spielen des Tons. Die Vergangenheit kann nicht
mehr verändert werden und man ist zeitlich eingegrenzt. Im Gegensatz zum Letzteren, bei
dem die Komposition als ganzes behandelt und in EINE Entscheidung gebracht werden kann,
zeitunabhängig. Denn die Melodie beeinflusst die Harmonie und umgekehrt. Eine Verifikation
des gesamten Stücks kann in der letzten Note ebenfalls passieren.
Answer-Set-Programming Grundlagen
Answer-Set-Programming basiert auf einem Modell, welches formal durch Regeln definiert
wird. Als Beispiel hier beschrieben:
r: a1,…, aj ← b1,…, bm, not bm+1,…, not bn … wenn b1,…, bm bekannt sind und not
bm+1,…, not bn bekannt sind, dann sind a1,…, aj bekannt
H(r) … beschreibt den Teil links vom Pfeil und ist der „Head“, also die Konsequenz
B(r) … beschreibt den Teil rechts vom Pfeil und ist der „Body“, also die Bedingung; B+(r)
beschreibt b1 bis bm (negationsfrei); B-(r) beschreibt not bm+1 bis bn (Negationen)
6. Wenn B(r) = {} dann ist H(r) ein Factum, also immer wahr. Der eigentliche
Konstruktionsprozess eines Answer-Sets geschieht in Iterationen. Bei jedem Durchlauf wird
ein Head zum Set hinzugefügt, wenn mit dem aktuellen Set ein Body wahr wird. Ein Beispiel:
a ← b, c
b ← c
c ← .
d ← e
e ← d
Iterationsschritte:
T({}) = {c}
T({c}) = {b, c}
T({b, c}) = {a, b, c}
T({a, b, c}) = {a, b, c}
Anmerkung: d und e sind in diesem Answer-Set nicht enthalten!
Atome
Atome sind Aussagen über die reale Welt. Im Bezug auf Anton wäre dies zum Beispiel:
Stimme 1 spielt Note 25 zum Zeitpunkt 12.
Regeln
Regeln sind die Verbindungen zwischen den Atomen.
Choice Rules
Choice Rules sind hilfereich um eine beliebige Auswahl aus Atomen zu treffen. So zum
Beispiel:
1 { p, q, r } 2 beschreibt, dass aus den Atomen p, q, r mindestens eines aber
höchstens zwei gewählt werden, dass diese zutreffen.
Answer-Set
Ein Answer-Set ist eine Zuweisung von Atomen zu wahr oder falsch, wodurch alle Regeln
erfüllt sind.
Keine Negation
Um unintuitive Aussagen wie a ← not a zu vermeiden, werden Negationen aus den Regeln
mithilfe des Gelfond-Lifschitz Reducts entfernt. Unter einer Interpretation pI wird eine
7. Interpretation einer Aussage als Wahr angenommen. Nun wird überprüft ob die Negation
unter dieser Interpretation Wahr oder Falsch annimmt. In ersterem Fall wird die Negation
durch ein Wahr ersetzt. In zweitem Fall wird die Regel entfernt.
Answer-Set-Programming im System Anton
Mithilfe von ASP soll ein Modell definiert werden, welches melodisch und harmonisch die
Korrektheit von Kompositionen verifiziert und so dem Komponisten computergestützt hilft.
Wenn ein Ergebnis „valid“ ist, ist ein Stück korrekt im Sinne des Modells, welches durch
Regeln definiert ist. Ein Stück ist eigentlich eine Instanz der Regeln. Anton selbst besteht aus
191 Zeilen Code welche 28 melodische und harmonische Regeln beinhalten. Ein Stück mit 8
Noten enthält 3.500 Atome und 13.400 Regeln; ein Stück mit 16 Noten im Duett besteht aus
11.000 Atomen und 1.350.000 Regeln.
Das Laufzeitverhalten von Anton bei der Erstellung von verschiedenen Stücken kann in den
folgenden Tabellen gesehen werden.
Folgende Tabelle zeigt das Laufzeitverhalten für die Komposition eines einstimmigen Stückes
mit gegebener Länge (Anzahl der Noten) durch verschiedenen Solver.
Folgende Tabelle zeigt das Laufzeitverhalten für die Komposition eines zweistimmigen
Stückes mit gegebener Länge (Anzahl der Noten) durch verschiedenen Solver.
8. Anmerkung: Solver mit Claus-Learning-Mechanismus zeigen ein besseres Laufzeitverhalten.
Auch hat Anton 1.5 eine erheblich bessere Laufzeit [5].
Das darunter befindliche Stück ist ein Auszug aus einem von Anton komponierten Werk
genannt „Twenty Short Pieces“.
Die endgültige Verifikation eines Stücks obliegt natürlich dem Hörer, aber es ist akzeptable.
Ein noch wesentlicher Nachteil von Anton ist, dass es noch nicht möglich ist, rhythmische
Akzente zu setzen (wobei in der neuen Version dies und vieles andere bereits möglich ist [5]).
In der aktuellen Version sind lediglich Kompositionen, welche nur Vierteltöne enthalten, wie
oben ersichtlich, möglich.
Die deklerative Programmierung bietet im Zuge dessen den Vorteil, dass man sich keine
Gedanken über die eigentliche Reihenfolge der Abarbeitung der Regeln machen muss, bzw.
die Regelbasis beliebig mit Regeln erweitert werden kann. Da Anton harmonisch Komponiert,
wurde versucht, obiges Stück zu harmonisieren. Dabei kam folgendes Ergebnis [13]:
9. Beispiel - Komposition
Im Folgenden wird ein Beispiel von Anton gezeigt. Die wesentliche Aussage ist
choosenNote(P, T, N). Dies sagt folgendes aus: „Zum Zeitpunkt T, Stimme P spielt
Note N“. Daraus resultiert zum Ersten, dass die Zeit diskretisiert ist. Jeder Zeitpunkt definiert
eine Einheit, in diesem Fall eine Viertelnote. Weiters, dass ein Stück eine bis mehrere
Stimmen beinhalten kann (z.B. verschiedene Instrumente spielen gleichzeitig – Polyphonie)
und dass die Oktave als Intervall in 12 Teile, unabhängig von der Stimmung, aufgeteilt wird
(Teilung der Oktave in 12 Halbtonschritte, wie es üblich ist).
Erstes Ergebnis (Atome):
keyMode(lydian).
choosenNote(1,1,25).
choosenNote(1,2,24).
choosenNote(1,8,19).
choosenNote(1,9,20).
choosenNote(1,10,24).
C G/B G G7 C F F/A G F C/E Am E F C G C
10. choosenNote(1,14,29).
choosenNote(1,15,27).
choosenNote(1,16,25).
#const t=16.
configuration(solo).
part(1).
Das Resultat des obigen Stücks ist:
Die erste Regel keyMode(lydian) gibt Anton bekannt, dass in der lydischen Skala komponiert
wird. Aus den obigen Noten kann man erkennen, dass es sich um die lydische Skala in C
handelt. Die choosenNote-Atome definieren die Auswahl der Noten (oben die Beschriftung).
Der Zweite Parameter gibt an, wann die Note gespielt wird. Da der Takt in 4/4 also vier
Schläge eingeteilt wird, kann man das bei obigen Noten anhand der darüber senkrecht
verlaufenden Linien abzählen.
Beispiel – Regelbasis
Bis jetzt hat man gesehen, welche Stücke entstehen können. Folgendes zeigt nun ein kleines
Beispiel an Regeln, welche Anton dazu bewegen, Stücke zu komponieren.
% Jede Note muss in Tonleiter sein
#const err nik="Note nicht in Tonleiter".
reason(err nik).
error(P,T,err nik) :- choosenNote(P,T,N), chromatic(N,C), not
key(C).
% Letzten zwei noten abhängig von Spielweise ob aufwärts oder
abwärts – melodisch Moll (Klassik)
25 24 19 20 24 29 27 25
| | | | | | | | | | | | | | | |
11. error(P,T + 1,err ism) :- choosenNote(P,T + 1,N),
chromatic(N,9), upAt(P,T), keyMode(minor).
% Stimmen können sich nur an einem Punkt treffen und dass kann
nur 1x passieren
haveMet(P,T+1) :- choosenNote(P,T,N), choosenNote(P+1,T,N),
not haveMet(P,T), part(P+1).
haveMet(P,T+1) :- haveMet(P,T).
% Zu jedem weiteren Zeitpunkt, muss sich die Note ändern
% Das passiert dadurch, dass sich die Note nach oben oder
unten ändert
1 { stepAt(P,T), leapAt(P,T) } 1 :- T != t.
1 { downAt(P,T), upAt(P,T) } 1 :- T != t.
% Sprünge können nur harmonische Intervalle sein
1 { leapBy(P,T,LS) : leapSize(LS) : LS > 0 } 1 :- leapUp(P,T).
% Wenn sich eine Stimme um das Intervall I ändert, ist die
Note zum Zeitpunkt T+1 um I Schritte höher/tiefer als die
aktuelle
choosenNote(P,T + 1,N + L) :- choosenNote(P,T,N), leapAt(P,T),
leapBy(P,T,L), note(N + L).
Für Anton ist das „Füllen“ von Takten kein Problem. Durch die Korrelation zwischen
Harmonik und Melodik ist auch die Harmonisierung von Stücken kein Problem. Dabei geht
man von einer statischen Melodie aus im Gegensatz zur Improvisation. Ein Standardbeispiel
hierfür wäre die Harmonisierung von Chorälen. J.S. Bachs Harmonisierung kann als Referenz
genommen werden [10]. Diese ist deshalb interessant, da Bach durchgehend in der
Harmonisierung, durch seine Stieltreue, ein konsistentes Regelwerk definiert hat.
Anton bietet als Ausgabe verschiedene Formate an wie Csound oder Lilypond. Aber auch das
Entwickeln für neue Schnittstellen ist offen.
Evaluation
Musikalische Bewertung ist sehr subjektiv [6]. Wie schon erwähnt, hängt dies von sehr vielen
Faktoren ab. Wir würden Vierteltonmusik als sehr disharmonisch empfinden, da unsere
12. Hörgewohntheiten anders sind. Hingegen würden Leute im arabischen Raum diese Musik als
harmonischer und angenehmer empfinden.
Folgendes Beispiel zeigt ein von Anton komponiertes Stück, welches im dorischen Modus der
Bb-Skala komponiert ist:
Technische Evaluation
Ein Script in Anton beinhaltet rund 200 Zeilen Code. Wenn man alle zusätzliche Libraries
nehmen würde, käme man auf eine Anzahl von 800. Bisherige Software wie Strasheela,
entwickelt an der Belfaster Queen’s Universität, enthält 8000 Zeilen oder ein Skript basierend
auf dem Bol-Prozessor für MIDI Daten, welches 88000 Zeilen aufweist. Rein technisch
erweist sich Anton als wesentlich einfacher.
Aktuelle Entwicklung
Aktuelle Entwicklungen sollen folgende Verbesserungen bringen:
1. Das Laufzeitverhalten verbessern, daraus resultiert
2. Echtzeit-Komposition womit Improvisation möglich wäre
3. Die Erweiterung mit drei (Trio) oder vier Stimmen (Quartett)
4. Das Erkennen und Verwenden von globalen Strukturen
13. 5. Rhythmische Komposition
Anton 1.5
[9] Die neue Version bietet im Gegensatz zur Version 1.0 bereits viele Verbesserungen. Zum
Ersten ist die Laufzeit erheblich besser. Folgende Tabelle zeigt das Laufzeitverhalten bei der
Komposition eines einstimmigen Stück, bei gegebener Länge (Anzahl der Noten):
Folgend, das Laufzeitverhalten eines zweistimmigen Stücks, bei gegebener Länge (Anzahl
der Noten):
Folgend das Laufzeitverhalten eines dreistimmigen Stücks, bei gegebener Länge (Anzahl der
Noten):
Folgend das Laufzeitverhalten eines vierstimmigen Stücks, bei gegebener Länge (Anzahl der
Noten):
14. Folgendes Stück zeigt ein vierstimmiges Stück, von Anton 1.5 komponiert. Man beachte
dabei die Komponenten der Rhythmik und Vierstimmigkeit.
Anmerkung: Hier dürfte den Verfassern ein Fehler passiert sein. Es ist im 4/4 Takt notiert, hat
aber pro Takt 6/4 gehalt.
Obiges Stück hat zur Grundlage folgende Specification:
%% Ein Quartett wird komponiert
style(quartet).
%% Es sind 4 Stimmen
part(1..4).
%% Die erste Stimme spielt die Melodie
melodicPart(1).
15. %% Für die Akkorde müssen wir den Grundton wissen und den
spielt Stimme 4
lowestPart(4).
%% Durch die oberste Startnote g’ ergibt sich durch zwei
zusätzliche Oktaven die oberste Note als 68ste. Durch die
tiefste Startnote kleines c ergibt sich als die unterste Note
dann 1 = Contra C.
#const quartetBottomNote=1.
#const quartetTopNote=68.
note(quartetBottomNote..quartetTopNote).
bottomNote(quartetBottomNote).
topNote(quartetTopNote).
%% Startnoten sind 1 – 5 – 1 - 5
#const err isn="Incorrect starting note".
reason(err isn).
error(1,1,err isn) :- not chosenNote(1,1,44). % 5
error(2,1,err isn) :- not chosenNote(2,1,37). % 1
error(3,1,err isn) :- not chosenNote(3,1,32). % 5
error(4,1,err isn) :- not chosenNote(4,1,25). % 1
%% No rests
#const err nrfw="No rest for the wicked".
reason(err nrfw).
error(P,T,err nrfw) :- rest(P,T).
%% Bei mehreren Stimmen können 5 Halbtonschritte entstehen,
bei einer Quarte – Quartvorhalt (sus4)
validInterval(5).
Harmonische Verifikation durch das Lydian Chromatic Concept
Eine weitere Möglichkeit der harmonischen Verifikation wäre durch das Lydian Chromatic
Concept von George Russell. In diesem Bereich gibt es nur wenige Überlegungen bzw.
Methoden welche dieses anwenden. Durch meine Arbeit mit Musiktheorie wurde ich durch
eine kleine Erwähnung in [7] damit bekannt. [8] beschreibt dieses Konzept. Einer meiner
Lehrer arbeitete mit George Russell zusammen. Er erweiterte diesen Ansatz der Horizontal
Tonal Gravity und entwickelte daraus folgendes Visualisierungsmodell [4]. Ausgangspunkt
für diese Visualisierung ist die relative Bewegung im Quintenzirkel.
16. Kurz erklärt, stellt das Lydian Chromatic Concept zu jedem Akkordtyp eine passende lydische
Skala bzw. Derivate genannt „ParentScale“. So ist für einen mollb5 Akkord die lydische Skala
von b5 weg die Parentscale, von einem b7 von der b7 weg, von einem Major vom Grundton
weg [8]. Es wird also von der jeweils wichtigsten Note im Akkord weg, die lydische Skala
genommen. Basierend auf diesem Konzept und der Visualisierung einer Kadenz, wie folgend
gezeigt, entwickelt sich eine „Wanderung“ durch den Quintenzirkel mit der Korrektheit der
normalen Dur-Moll-Dualistischen Harmonik, wie sie vorherrscht. Folgend wird ein Beispiel
einer Harmonieanalyse gezeigt.
(used with permission)
Man könnte nun diese Strukturgegebenheit in Regeln fassen und somit harmonisch plausibel
Anton komponieren lassen. Als Beispiel:
stepUp(P, T) :- quintUp(P, T – 1, parentscale(P, T)).
stepDown(P, T) :- quintDown(P, T – 1, parentscale(P, T)).
parentscale(P, T) :- isLydianChromaticscale(P, T, basenote(P,
T)).
1 { stepUp(P, T), stepDown(P, T) } 1 :- .
17. Literatur
Hauptquellen
[1]
Automatic Composition of Melodic and Harmonic Music by Answer Set Programming,
Georg Boenn, Martin Brain, Marina De Vos, John ffitch, Cardiff School of Creative &
Cultural Industries University of Glamorgan UK
[2]
ANTON: Composing Logic and Logic Composing, Georg Boenn, Martin Brain, Marina De
Vos, John ffitch, Cardiff School of Creative & Cultural Industries University of Glamorgan
UK
Referenzierte Quellen
[3]
Ursprungskunst, Erhard Dinhobl, BSc-Thesis, 2008, TU Wien
[4]
Persönliche Korrespondenz mit Robert M. Weiss / Lehrgang „Lydian Chromatic Concept“ am
Josef M. Hauer Konservatorium Wr. Neustadt
[5]
Persönliche Korrespondenz mit Michael Brain, Entwickler ANTON
[6]
Das wohltemperierte Gehirn: Wie Musik im Kopf entsteht und wirkt, Robert Jourdain,
Spektrum Verlag, 2001
[7]
Neue Jazz-Harmonielehre, Frank Sikora, SCHOTT, 2003
[8]
The Lydian Chromatic Concept of Tonal Organisation, George Russel, Concept Publishing
Co. New York N.Y, 1953 (2001)
18. [9]
Automatic Composition using Anwer Set Programming, Georg Boenn, Martin Brain, Marina
de Vos, John Ffitch, University of Glamorgan, UK, 2009
[10]
389 Choralgesänge (für vierstimmigen gemischten Chor), J.S.Bach
[11]
Knowledge, Representation, Reasoning and Declarative Problem solving, Chitta Baral,
University of Cambridge, 2003
[12]
Logische Programme und Antwortensemantik II, Prof. Dr. Gabriele Kern-Isberner, Universität
Dortmund, 2004
[13]
Persönliche Korrespondenz mit Monika Etzelt