Trends in Answer-Set-Programming – Focus: Music          Erhard Dinhobl
Roadmap•   Motivation: Why Automatic Composition?•   Basics in Music•   ANTON and Music•   Basics in Answer-Set-Programmin...
Why Automatic Composition• Is it possible? – With ANTON, yes• melodic and harmonic composition tool• ANTON uses declarativ...
BasicsHarmony• „underlying sound“ of a melody –  functional parameter, the chord  structure• define harmonic progress (his...
Basics - Genre• style of music – different rules (added to  fundamental music)• characteristics, culture, instruments, way...
System ANTON• minimal set of rules to generate/verify  music• adding rules  improvement of quality• Computer-Aided Compos...
Compositionprocess I• global structure (AABA, Etude, Minuet,  …)• melody (not overall, variations, J.S.Bach  Invetionen, W...
Compostionprocess II• David Cope „The Algorithmic Composer“• Iannis Xenakis (example: Modulor)• my work „Ursprungskunst“ –...
Composition III• alternative: IRCAM (based on  PWConstraints-addon LISP and graphic  lang.)• composition also in „improvis...
Answer-Set-Programming I• formal defined rules• r: a1,…, aj ← b1,…, bm, not bm+1,…,  not bn• H(r) = „head“, left-hand side...
Answer-Set Example•   a ← b, c                   Iterations:•   b←c            T({}) = {c}•   c←.            T({c}) = {b, ...
Answer-Set Programming II• atoms: something about reality• rules: connection between atoms;  assignment gets them to true ...
Gelfond-Lifschitz-Reduct• Reduce every „not“ in rules• result: no negation in rules• Interpretation, then check if true or...
ANTON• with ASP model is defined due that  music is harmonic and melodic valid  (instance of rules  atoms)• ANTON consist...
runtime of anton      piece for 1 voice with _length_ notes     piece for 2 voices with _length_ notesclause learning-mech...
Twenty Short Pieces (excerpt)• verification by human• disadvantage: only quarter notes• advantage: due declarative prog.  ...
Twenty Short Pieces (Harmony)
Some Example in Code• key-rule: choosenNote(P, T, N)  „at time T, voice P plays note N“• discrete time (quarter notes in t...
Example IIkeyMode(lydian).choosenNote(1,1,25).choosenNote(1,2,24).choosenNote(1,8,19).choosenNote(1,9,20).choosenNote(1,10...
Some Rules% every note must be in the scale#const err nik=„note not in scale".reason(err nik).error(P,T,err nik) :- choose...
ANTON• „filling“ of bars no problem• harmonisation no problem• harmonisation rules (rules may be taken  from J.S.Bach Chor...
Evaluation         musical                 technicalsubjective by human     ~200 loc for a script(halftone  quartertone A...
Work on ANTON•   better runtime performance (Anton 1.5)•   real time composition  improvisation•   composing trios and qu...
ANTON 1.5 (no yet released)• runtime for generating pieces for 1/2 voice(s)  with _length_ notes            0.22     0.33 ...
ANTON 1.5• runtime for generating pieces for 3/4 voice(s)  with _length_ notes
Example from ANTON 1.5               code-remarks               style(quartet).               part(1..4).               me...
Verification with lydian chromatic    concept – George Russel• method of scale-finding for improvisation• chord  some lyd...
Verification with lydian chromatic concept –              George Russel II       „A Child Is Born“
Conclusion / Future Work- Anton is some kind of composition- not the overall solution- would be useful if it works in real...
Reductio ad absurdum – but good               Christmas-Song „Es ist ein Roß entsprungen“  (A) ||: Bbmaj Eb7     |    Abm...
Quellen[1]Automatic Composition of Melodic and Harmonic Music by Answer Set Programming, Georg Boenn, Martin Brain, Marina...
Upcoming SlideShare
Loading in …5
×

Trends in Answer Set-Programming - Focus Musik - Presentation

193 views

Published on

Präsentation for the document

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
193
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Trends in Answer Set-Programming - Focus Musik - Presentation

  1. 1. Trends in Answer-Set-Programming – Focus: Music Erhard Dinhobl
  2. 2. Roadmap• Motivation: Why Automatic Composition?• Basics in Music• ANTON and Music• Basics in Answer-Set-Programming• ANTON and Answer-Set-Programming• Conclusion
  3. 3. Why Automatic Composition• Is it possible? – With ANTON, yes• melodic and harmonic composition tool• ANTON uses declarative programming language for rules representation• helps composers to understand and detect failures
  4. 4. BasicsHarmony• „underlying sound“ of a melody – functional parameter, the chord structure• define harmonic progress (history, new melody) – i.e. cadencesMelody• progress of notes over time• „what we sing“
  5. 5. Basics - Genre• style of music – different rules (added to fundamental music)• characteristics, culture, instruments, way we hear• western tonality – halftone musicinterval structure smaller – Arabian- classic, quarter-tone, microtonal• BUT: blues (quint in between #11 and 5)
  6. 6. System ANTON• minimal set of rules to generate/verify music• adding rules  improvement of quality• Computer-Aided Composition• „Background music“ – Elevators, Halls, …
  7. 7. Compositionprocess I• global structure (AABA, Etude, Minuet, …)• melody (not overall, variations, J.S.Bach Invetionen, W.A.Mozart Twinkle Twinkle Little Star)• question: „where is the next note?“• example: „Musikalisches Würfelspiel“• approved: mathematic models, fractals, chaos processes, Markov-chains
  8. 8. Compostionprocess II• David Cope „The Algorithmic Composer“• Iannis Xenakis (example: Modulor)• my work „Ursprungskunst“ – generate music out of architecture and the other way• ornaments (Claude Debussy, Morton Feldmann)
  9. 9. Composition III• alternative: IRCAM (based on PWConstraints-addon LISP and graphic lang.)• composition also in „improvisation music“ (jazz, baroque „figured bass“ notation)• jazz musicians improvise over accord structure „a standard“• Improvisation system  Composition system
  10. 10. Answer-Set-Programming I• formal defined rules• r: a1,…, aj ← b1,…, bm, not bm+1,…, not bn• H(r) = „head“, left-hand side „consequence“• B(r) = „body“, right-hand side „condition“• if B(r) = {}  H(r) = fact, always true• construction of answer-set in fixpoint iterations to truth assignment of atoms
  11. 11. Answer-Set Example• a ← b, c Iterations:• b←c T({}) = {c}• c←. T({c}) = {b, c}• T({b, c}) = {a, b, c} d←e T({a, b, c}) = {a, b, c}• e←dd & e not contained!
  12. 12. Answer-Set Programming II• atoms: something about reality• rules: connection between atoms; assignment gets them to true or false  atoms (rules fulfilled)• choice rules: 1 { p, q, r } 2 describes, that at least 1 atom of p, q, r but at most 2 are choosen to be true• no negation %
  13. 13. Gelfond-Lifschitz-Reduct• Reduce every „not“ in rules• result: no negation in rules• Interpretation, then check if true or false (accept as true or delete rule)• all facts Example:• all rules without neg. a ← not b a←. c ← not d c←. d←b  d←b d ← e, not a d←e e ← d, not a e←d
  14. 14. ANTON• with ASP model is defined due that music is harmonic and melodic valid (instance of rules  atoms)• ANTON consists of 191 loc (28 melodic and harmonic rules)• piece with 8 notes: 3.500 atoms; 13.400 rules• duet with 16 notes: 11.000 atoms; 1.350.000 rules
  15. 15. runtime of anton piece for 1 voice with _length_ notes piece for 2 voices with _length_ notesclause learning-mechanism  better performance
  16. 16. Twenty Short Pieces (excerpt)• verification by human• disadvantage: only quarter notes• advantage: due declarative prog. order of rules processing doesn‘t matter and rule base is extendable… trying to get insight to Antons„thinking“… 0:57
  17. 17. Twenty Short Pieces (Harmony)
  18. 18. Some Example in Code• key-rule: choosenNote(P, T, N) „at time T, voice P plays note N“• discrete time (quarter notes in this example)• may consists of more than one voice (polyphonic)• octave is divided in 12 intervals – independent from temper
  19. 19. Example IIkeyMode(lydian).choosenNote(1,1,25).choosenNote(1,2,24).choosenNote(1,8,19).choosenNote(1,9,20).choosenNote(1,10,24).choosenNote(1,14,29).choosenNote(1,15,27).choosenNote(1,16,25).#const t=16.configuration(solo).part(1).
  20. 20. Some Rules% every note must be in the scale#const err nik=„note not in scale".reason(err nik).error(P,T,err nik) :- choosenNote(P,T,N), chromatic(N,C), not key(C).% melodic minor -> last two notes depend on direction of playingerror(P,T + 1,err ism) :- choosenNote(P,T + 1,N), chromatic(N,9),upAt(P,T), keyMode(minor).% voices can only meet at one timehaveMet(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).% every note, the next note must be an other (up or down)1 { stepAt(P,T), leapAt(P,T) } 1 :- T != t.1 { downAt(P,T), upAt(P,T) } 1 :- T != t.% if melody does a jump, only harmonic intervals are allowed1 { leapBy(P,T,LS) : leapSize(LS) : LS > 0 } 1 :- leapUp(P,T).% if a voice changes of interval I the next note must be I stepshigher/lowerchoosenNote(P,T + 1,N + L) :- choosenNote(P,T,N), leapAt(P,T),leapBy(P,T,L), note(N + L).
  21. 21. ANTON• „filling“ of bars no problem• harmonisation no problem• harmonisation rules (rules may be taken from J.S.Bach Choralgesänge – consistent rules)• ANTON produces diff. formats (i.e. Csound, Lilypond) and open for further ones
  22. 22. Evaluation musical technicalsubjective by human ~200 loc for a script(halftone  quartertone ALL libs and so on: ~800music) loc STRASHEELA (UC Belfast): 8000 loc BOL-Proc.-Script: 88000 loc
  23. 23. Work on ANTON• better runtime performance (Anton 1.5)• real time composition  improvisation• composing trios and quartets (Anton 1.5)• rhythmic composition (Anton 1.5)• recognizing and using of global structures
  24. 24. ANTON 1.5 (no yet released)• runtime for generating pieces for 1/2 voice(s) with _length_ notes 0.22 0.33 1.01 1.06 2.27 2.42 4.62 4.01 0.77 1.18 3.73 3.88 16.84 14.50 29.63 82.64 old values
  25. 25. ANTON 1.5• runtime for generating pieces for 3/4 voice(s) with _length_ notes
  26. 26. Example from ANTON 1.5 code-remarks style(quartet). part(1..4). melodicPart(1). lowestPart(4). #const quartetBottomNote=1. #const quartetTopNote=68. % from contra C (lowest + 2 octaves 8vb) to g’’’ (highest + 2 octaves) 4/4 or 6/4 or …?? 0:26
  27. 27. Verification with lydian chromatic concept – George Russel• method of scale-finding for improvisation• chord  some lydian scale = parent scale• chord  lydian scale from note (b7, b9, -b5, maj = tonic)• visualisation-model of Robert M. Weiß (worked with George Russel)• „travelling“ through quint-circle
  28. 28. Verification with lydian chromatic concept – George Russel II „A Child Is Born“
  29. 29. Conclusion / Future Work- Anton is some kind of composition- not the overall solution- would be useful if it works in realtimeFuture work: trying to get a verification model through my mathematical visualisation of music in architecture
  30. 30. Reductio ad absurdum – but good Christmas-Song „Es ist ein Roß entsprungen“  (A) ||: Bbmaj Eb7 | Abmaj F#7b5 | Fm7 Bb7#11 | Ebmaj Abmaj || (B) (A) | Gsus :|| B-7 A-5b13 | E-7 || Bbmaj Eb7 | | Abmaj F#7b5 | Fm7 Bb7#11 | Ebmaj Abmaj | Gsus | | Cmaj || 0:49- odd count of bars- melody  some chords (arbitrary)- most incorrect cadences- some correct cadences- global structure: AABA
  31. 31. Quellen[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[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 EtzeltFeel free to contact me: Erhard Dinhobl / er@master-studios.net

×