Trends in Answer Set-Programming - Focus Musik

18

Click here to load reader

description

Was könnte man mit ASP für die Musik tun

Transcript of Trends in Answer Set-Programming - Focus Musik

Page 1: Trends in Answer Set-Programming - Focus Musik

Trends in Answer-Set-

Programming mit Focus auf

Musik

Von Erhard Dinhobl / 0525938

Page 2: Trends in Answer Set-Programming - Focus Musik

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

Page 3: Trends in Answer Set-Programming - Focus Musik

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.

Page 4: Trends in Answer Set-Programming - Focus Musik

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

Page 5: Trends in Answer Set-Programming - Focus Musik

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)

Page 6: Trends in Answer Set-Programming - Focus Musik

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

Page 7: Trends in Answer Set-Programming - Focus Musik

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.

Page 8: Trends in Answer Set-Programming - Focus Musik

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]:

Page 9: Trends in Answer Set-Programming - Focus Musik

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

Page 10: Trends in Answer Set-Programming - Focus Musik

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

| | | | | | | | | | | | | | | |

Page 11: Trends in Answer Set-Programming - Focus Musik

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

Page 12: Trends in Answer Set-Programming - Focus Musik

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

Page 13: Trends in Answer Set-Programming - Focus Musik

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):

Page 14: Trends in Answer Set-Programming - Focus Musik

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).

Page 15: Trends in Answer Set-Programming - Focus Musik

%% 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.

Page 16: Trends in Answer Set-Programming - Focus Musik

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 :- .

Page 17: Trends in Answer Set-Programming - Focus Musik

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)

Page 18: Trends in Answer Set-Programming - Focus Musik

[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