SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Trends in Answer-Set-
Programming mit Focus auf
Musik
Von Erhard Dinhobl / 0525938
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
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.
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
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)
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
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.
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]:
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
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
| | | | | | | | | | | | | | | |
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
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
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):
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).
%% 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.
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 :- .
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)
[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

Weitere ähnliche Inhalte

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Trends in Answer Set-Programming - Focus Musik

  • 1. Trends in Answer-Set- Programming mit Focus auf Musik Von Erhard Dinhobl / 0525938
  • 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