43
CAU Kiel, 17.5.2006 Von Mozart zur Informatik Wie programmiert man Musik? Wie komponiert man Programme? Michael Hanus Christian-Albrechts-Universit ¨ at zu Kiel

Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

CAU Kiel, 17.5.2006

Von Mozart zur InformatikWie programmiert man Musik?

Wie komponiert man Programme?

Michael Hanus

Christian-Albrechts-Universitat zu Kiel

Page 2: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

MUSIK UND INFORMATIK

Vielfaltige Beruhrungspunkte:

• Computer-generierte Musik

• Informatikmethoden zur Speicherung von Musik (MP3)

• Suche nach Musik (Music Information Retrieval)

Konzeptuelle Gemeinsamkeiten:

• Dynamische Ablaufe: Auffuhrung ↔ Berechnung

• Techniken zur Beherrschung dieser Ablaufe

Musikalische Prinzipien aus der Schule bekannt:(Informatik leider immer noch nicht!)

Erlauterung von Prinzipien der Informatik anhand von Musik

guter Informatiker = guter Komponist?

Institut fur Informatik, CAU Kiel Michael Hanus 2

Page 3: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

FORMALE PRINZIPIEN DER MUSIK

Analyse der mathematischen Verhaltnisse alte Idee:

Pythagoras (ca. 500 v. Chr.): Monochord➜ Zahlenverhaltnisse der Musikintervalle

➜ Unterteilung einer Saite 1:2 : Abstand einer Oktave

➜ erste Tonleiter der Weltgeschichte

Marin Mersenne (17. Jahrhundert):➜ physikalische Erklarung der Zahlenverhaltnisse

➜ eine Oktave ≈ doppelte Tonfrequenz

Beschreibung von Musik durch Frequenzanalyse?➜ gut zur physikalischen Speicherung

➜ ungeeignet zum Aufschreiben durch Komponisten

Institut fur Informatik, CAU Kiel Michael Hanus 3

Page 4: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

ABSTRAKTION, MODELLIERUNG, NOTATION

Wichtige Prinzipien zur Beherrschung komplexer Systeme:

Abstraktion: ignoriere Unwichtiges (z.B. Obertone), Beschrankung aufwesentliche Prinzipien

Modellierung: bilde ein geeignetes Modell der abstrahierten Prinzipien(z.B. zwolf Tone einer Oktave)

Notation: finde geeignete kompakte Notation (fur Experten verstandlich)

Musik ohne diese Prinzipien: Musik von Mozart heute noch erfahrbar?

Diese Begriffe sind auch zentral fur Informatik-Systeme!

Institut fur Informatik, CAU Kiel Michael Hanus 4

Page 5: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

NOTATION

Notationen sind Ausdruck von Ideen:Musik: NotensystemInformatik: Programme, ER-Diagramme, UML

Bedeutung von Notationen:nichtssagend fur LaienBedeutung muss erlernt werden

Notation mussen adaquat sein:Ideen moglichst einfach und prazise ausdrucken, z.B.➜ Spielweise von Instrumenten➜ Losung/Berechnung von Problemen

Gute Notationen in der Musik, aber Informatik?

Institut fur Informatik, CAU Kiel Michael Hanus 5

Page 6: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

PRINZIPIEN DER BESCHREIBUNG VON MUSIK

Abstraktion: Ton eines Musikinstrumentes:➜ Reduktion auf Grundton, Instrumentenart und -spielweise➜ ignoriere Obertone, Klangverlauf,. . .

Modellierung: unterteile Frequenzspektrum in Tone:➜ Oktaven, bestehend aus zwolf Tonen➜ Tonarten➜ Notenwerte, Tempo

Notation: Notensystem➜ Liniensystem➜ Notenschl ussel➜ Vorzeichen

kompakte und fur Experten verstandliche Notation

Institut fur Informatik, CAU Kiel Michael Hanus 6

Page 7: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

LASST MOZART BEGINNEN. . .

44 � �

��

� �

��

Programmierung von Musik:

Ubersetzung in eine fur den Computer verstandliche Notation➜ kein

”Scannen“ der Notenschrift

➜ aquivalente textuelle Darstellung

1. Ansatz: Darstellung von Noten durch entsprechende Zeichen:(; Buchstabentonschrift mit Oktavbereichen)

g’ d’ g’ d’ g’ d’ g’ h’ d’’

Institut fur Informatik, CAU Kiel Michael Hanus 7

Page 8: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

LASST MOZART BEGINNEN. . . (2. VERSUCH)

44 � �

��

� �

��

Modellierung unzureichend:

Darstellung durch Tonhohen reicht nicht aus, es fehlen➜ Pausen

➜ Notenwerte

g’ (1/4) Pause (1/8) d’ (1/8) g’ (1/4) Pause (1/8) d’ (1/8)

g’ (1/8) d’ (1/8) g’ (1/8) h’ (1/8) d’’ (1/4) Pause (1/4)

Institut fur Informatik, CAU Kiel Michael Hanus 8

Page 9: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

PROGRAMMIERUNG VON MUSIK: NOTEN UND PAUSEN

Bisherige Darstellung:

g’ (1/4) Pause (1/8) d’ (1/8) g’ (1/4) Pause (1/8) d’ (1/8)

g’ (1/8) d’ (1/8) g’ (1/8) h’ (1/8) d’’ (1/4) Pause (1/4)

Mehrfaches Vorkommen identischer Elemente:➜ Notenwerte: (1/4) (1/8) . . .

➜ Pausen: Pause (1/8) . . .

Informatiker sind bequem (sind ja auch nur Menschen. . . ):

Definiere Abkurzungen fur immer wiederkommende Elemente!

Institut fur Informatik, CAU Kiel Michael Hanus 9

Page 10: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

ABKURZUNGEN

Abkurzung:➜ gebe komplexen Objekt einen Namen (z.B. Kfz = Kraftfahrzeug)

➜ schreibe diesen Namen anstelle des komplexen Objekts

➜ Vorteil: Verbesserung der Lesbarkeit (falls Abk urzung einpragsam)(z.B. Bafog statt Bundesausbildungsforderungsgesetz)

Abkurzungen fur Notenwerte und Pausenwerte

gN = (1/1) -- ganze Note gP = Pause gN -- ganze Pause

hN = (1/2) -- halbe Note hP = Pause hN -- halbe Pause

vN = (1/4) -- viertel Note vP = Pause vN -- viertel Pause

aN = (1/8) -- achtel Note aP = Pause aN -- achtel Pause

sN = (1/16) -- sechzehntel Note aP = Pause sN -- sechzehntel Pause

...

Institut fur Informatik, CAU Kiel Michael Hanus 10

Page 11: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

PROGRAMMIERUNG VON MUSIK MIT ABKURZUNGEN

44 � �

��

� �

��

Bisherige Darstellung:

g’ (1/4) Pause (1/8) d’ (1/8) g’ (1/4) Pause (1/8) d’ (1/8)

g’ (1/8) d’ (1/8) g’ (1/8) h’ (1/8) d’’ (1/4) Pause (1/4)

mit obigen Abkurzungen:

g’ vN aP d’ aN g’ vN aP d’ aN

g’ aN d’ aN g’ aN h’ aN d’’ vN vP

Institut fur Informatik, CAU Kiel Michael Hanus 11

Page 12: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

ZUSAMMENSETZEN VON NOTEN

44

� ��

Bisherige Darstellung:

c’ vN e’ vN g’ vN e’ vN g’ vN c’’ vN

unzureichend, da kein Unterschied zwischen➜ Noten nacheinander spielen (c’ vN e’ vN g’ vN)

➜ Noten gleichzeitig spielen (e’ vN g’ vN c’’ vN)

Modelliere die Art der Zusammensetzung durch Kompositionsoperatoren:

m1 :+: m2 : spiele Musik m1 und m2 nacheinander

m1 :=: m2 : spiele Musik m1 und m2 gleichzeitig

Institut fur Informatik, CAU Kiel Michael Hanus 12

Page 13: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

KOMPOSITIONSOPERATOREN FUR MUSIK

44

� ��

Darstellung mit Kompositionsoperatoren:

c’ vN :+: e’ vN :+: g’ vN :+: (e’ vN :=: g’ vN :=: c’’ vN)

Kompositionsoperatoren:

• Ausdrucksmittel, um großere Strukturen zu bilden

• Beispiel Mathematik: 1 ∗ (3 + (4 ∗ 5))

“+”: bilde die Summe zweier Ausdrucke“*”: bilde das Produkt zweier Ausdrucke

• Beispiel Musik:hintereinander notieren: nacheinander spielenubereinander notieren: gleichzeitig spielen (Noten, Begleitung,. . . )

Institut fur Informatik, CAU Kiel Michael Hanus 13

Page 14: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

MUSIK FORMAL GEFASST

Musik ist zusammengesetzt aus➀ Noten einer bestimmten Tonhohe und Dauer

➁ Pausen einer bestimmten Dauer

➂ nacheinander gespielte Musik (sequenzielle Komposition)

➃ gleichzeitig gespielte Musik (parallele Komposition)

Musikdaten: (lese “|” als Alternative)data Musik = Note GanzeZahl Bruch

| Pause Bruch

| Musik :+: Musik

| Musik :=: Musik

Anmerkung: Tonhohe nicht als Frequenz, sondern als Halbtonwerte:

c’ hN = Note 0 (1/2)

e’ vN = Note 4 (1/4)

c’’ aN = Note 12 (1/8)

Institut fur Informatik, CAU Kiel Michael Hanus 14

Page 15: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

NAMEN FUR HALBTONWERTE

Nutzlich: Namen (ce, cis, de, dis,. . . ) statt Zahlen fur Halbtonwerte; Programme lesbarer fur den Menschen

”Programme mussen geschrieben werden, damit Menschen sie lesen, und

nur nebenbei, damit Maschinen sie ausfuhren.“

(Abelson/Sussman: Struktur und Interpretation von Computerprogrammen,2001)

ce = 0 cis = 1 des = 1

de = 2 dis = 3 es = 3

...

Hiermit:

c’ hN = Note ce (1/2)

d’ vN = Note de (1/4)

c’’ aN = Note (ce+12) (1/8)

Institut fur Informatik, CAU Kiel Michael Hanus 15

Page 16: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

. . . UND WO BLEIBT DIE INFORMATIK?

Bisher:

• Ubersetzung: 2-dimensionales Notensystem → Zeichenfolge

• Zeichenfolge durch Computer verarbeitbar (z.B. Klangsynthese)

Informatik:

• Auffinden regularer Strukturen in Anwendungen

• Modellierung und Implementierung dieser Strukturen

• dadurch: Bereitstellung von Losungen fur Klassen von Problemen

• Parametrisierung der Strukturen

• konkrete Instanz durch Festlegung der Parameter

Nachster Schritt: finde regulare Strukturen in Musikkompositionen

Institut fur Informatik, CAU Kiel Michael Hanus 16

Page 17: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

AKKORDE

Akkord: Zusammenklang von mehr als zwei Tonen

Beispiel: C-Durdreiklang: c’ vN :=: e’ vN :=: g’ vN

in Musikdaten: Note 0 (1/4) :=: Note 4 (1/4) :=: Note 7 (1/4)

Allgemeiner Aufbau von Durdreiklangen:Grundton :=: Grundton+4 :=: Grundton+7

Formal in Musikdaten (t: Grundtonhohe, d: Dauer):

durDreiklang t d = Note t d :=: Note (t+4) d :=: Note (t+7) d

; Abkurzung mit Parametern, Funktionen

Beispiele: C-Durdreiklang: durDreiklang ce (1/4)

F-Durdreiklang: durDreiklang ef (1/4)

Institut fur Informatik, CAU Kiel Michael Hanus 17

Page 18: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

BEDEUTUNG VON ABKURZUNGEN

durDreiklang t d = Note t d :=: Note (t+4) d :=: Note (t+7) d

Bedeutung der Abkurzungen/Funktionen: Vorschriften zum Ausrechnen➀ Parameter bekannt (Werte f urt und d) ; setze diese ein

➁ ersetze Abk urzung durch Definition (rechte Seite)

➂ rechne rechte Seite weiter aus

Analog zur Anwendung von Formeln (Mathematik, Physik,. . . )

Flacheninhalt eines Quadrats: qflaeche r = r*r

Konkretes Quadrat: r=5:

qflaeche 5 = 5*5 (Einsetzen der Definition)

= 25 (Ausrechnen der rechten Seite)

Institut fur Informatik, CAU Kiel Michael Hanus 18

Page 19: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

AUSRECHNEN VON MUSIKFORMELN

durDreiklang t d = Note t d :=: Note (t+4) d :=: Note (t+7) d

Bedeutung der Abkurzungen/Funktionen: Vorschriften zum Ausrechnen➀ Parameter bekannt (Werte f ur t und d) ; setze diese ein

➁ ersetze Abk urzung durch Definition (rechte Seite)

➂ rechne rechte Seite weiter aus

D-Durdreiklang: durDreiklang de (1/4)

Ausrechnen: t = de, d = (1/4):

durDreiklang de (1/4)

= Note de (1/4) :=: Note (de+4) (1/4) :=: Note (de+7) (1/4)

= Note 2 (1/4) :=: Note (2+4) (1/4) :=: Note (2+7) (1/4) (de = 2)

= Note 2 (1/4) :=: Note 6 (1/4) :=: Note 9 (1/4)

Institut fur Informatik, CAU Kiel Michael Hanus 19

Page 20: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

WEITERE MUSIKALISCHE ABKURZUNGEN

Molldreiklange: kleine Terz + große Terz

mollDreiklang t d = Note t d :=: Note (t+3) d :=: Note (t+7) d

mollDreiklang ce (1/2)

= Note 0 (1/2) :=: Note 3 (1/2) :=: Note 7 (1/2)

Quintenintervall (leere Quinte) zum Grundton t:

quinte t d = Note t d :=: Note (t+7) d

Verlangerung einer Dauer d um die Halfte ihres Wertes:

punktiert d = (3/2) * d

punktiert vN = (3/8)

Einfache Wiederholung von Musik m:

wdh m = m :+: m

Institut fur Informatik, CAU Kiel Michael Hanus 20

Page 21: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

BEISPIEL: BLUES

44

�� �

�� � ��

� �� ��

�� �

�� � ��

� �� ��

��

��

�� �

��

� �� ��

��

��

�� �

��

� �� ��

Programmierung:➜ Noten nicht direkt abschreiben➜ ahnliche Strukturen finden und mit Funktionen umsetzen

Hier: Halbtakte identisch, Takte identisch bis auf Grundton

phrase t = quinte t (punktiert aN) :+: quinte t sN :+:

Note (t+3) (punktiert aN) :+: Note (t+4) sN

Hiermit Blues programmieren:blues t = wdh (phrase t) :+: wdh (phrase (t+5)) :+: wdh (phrase t)

:+: phrase (t+7) :+: phrase (t+5)

meinBlues = wdh (blues be) :+: quinte be hN

Institut fur Informatik, CAU Kiel Michael Hanus 21

Page 22: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

VORTEILE DES PROGRAMMIERUNG

phrase t = quinte t (punktiert aN) :+: quinte t sN :+:

Note (t+3) (punktiert aN) :+: Note (t+4) sN

blues t = wdh (phrase t) :+: wdh (phrase (t+5)) :+: wdh (phrase t)

:+: phrase (t+7) :+: phrase (t+5)

meinBlues = wdh (blues be) :+: quinte be hN

Bluesprogramm:➜ kompakte Notation

➜ Ahnlichkeiten explizit ; verbessertes Strukturverstandnis

➜ ohne Programmierung: aufwandiges Aufschreiben

Institut fur Informatik, CAU Kiel Michael Hanus 22

Page 23: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

VORTEILE DES PROGRAMMIERUNG

meinBlues =(((((Note 10 (3/16) :=: Note 17 (3/16)) :+: (Note 10 (1/16) :=: Note 17

(1/16)) :+: Note 13 (3/16) :+: Note 14 (1/16)) :+: (Note 10 (3/16) :=: Note 17

(3/16)) :+: (Note 10 (1/16) :=: Note 17 (1/16)) :+: Note 13 (3/16) :+: Note 14

(1/16)) :+: (((Note 15 (3/16) :=: Note 22 (3/16)) :+: (Note 15 (1/16) :=: Note

22 (1/16)) :+: Note 18 (3/16) :+: Note 19 (1/16)) :+: (Note 15 (3/16) :=: Note

22 (3/16)) :+: (Note 15 (1/16) :=: Note 22 (1/16)) :+: Note 18 (3/16) :+: Note

19 (1/16)) :+: (((Note 10 (3/16) :=: Note 17 (3/16)) :+: (Note 10 (1/16) :=:

Note 17 (1/16)) :+: Note 13 (3/16) :+: Note 14 (1/16)) :+: (Note 10 (3/16) :=:

Note 17 (3/16)) :+: (Note 10 (1/16) :=: Note 17 (1/16)) :+: Note 13 (3/16) :+:

Note 14 (1/16)) :+: ((Note 17 (3/16) :=: Note 24 (3/16)) :+: (Note 17 (1/16)

:=: Note 24 (1/16)) :+: Note 20 (3/16) :+: Note 21 (1/16)) :+: (Note 15 (3/16)

:=: Note 22 (3/16)) :+: (Note 15 (1/16) :=: Note 22 (1/16)) :+: Note 18 (3/16)

:+: Note 19 (1/16)) :+: (((Note 10 (3/16) :=: Note 17 (3/16)) :+: (Note 10

(1/16) :=: Note 17 (1/16)) :+: Note 13 (3/16) :+: Note 14 (1/16)) :+: (Note 10

(3/16) :=: Note 17 (3/16)) :+: (Note 10 (1/16) :=: Note 17 (1/16)) :+: Note 13

(3/16) :+: Note 14 (1/16)) :+: (((Note 15 (3/16) :=: Note 22 (3/16)) :+: (Note

15 (1/16) :=: Note 22 (1/16)) :+: Note 18 (3/16) :+: Note 19 (1/16)) :+: (Note

15 (3/16) :=: Note 22 (3/16)) :+: (Note 15 (1/16) :=: Note 22 (1/16)) :+: Note

18 (3/16) :+: Note 19 (1/16)) :+: (((Note 10 (3/16) :=: Note 17 (3/16)) :+:

(Note 10 (1/16) :=: Note 17 (1/16)) :+: Note 13 (3/16) :+: Note 14 (1/16)) :+:

(Note 10 (3/16) :=: Note 17 (3/16)) :+: (Note 10 (1/16) :=: Note 17 (1/16))

:+: Note 13 (3/16) :+: Note 14 (1/16)) :+: ((Note 17 (3/16) :=: Note 24

(3/16)) :+: (Note 17 (1/16) :=: Note 24 (1/16)) :+: Note 20 (3/16) :+: Note 21

(1/16)) :+: (Note 15 (3/16) :=: Note 22 (3/16)) :+: (Note 15 (1/16) :=: Note

22 (1/16)) :+: Note 18 (3/16) :+: Note 19 (1/16)) :+: Note 10 (1/2) :=: Note

17 (1/2)

Institut fur Informatik, CAU Kiel Michael Hanus 23

Page 24: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

MEHR MUSIK!

Einfache Wiederholung von Musik:wdh m = m :+: m

Musik m dreimal spielen:wdh3 m = m :+: wdh m

Musik m viermal spielen:wdh4 m = m :+: wdh3 m

. . .

Musik m n-mal spielen:mehrfach n m = if n>1 then m :+: mehrfach (n-1) m

else m

Fallunterscheidung!(alles programmierbar mit Funktionen+Fallunterscheidung)

Kaufhausmusik:endlos m = m :+: endlos m

Institut fur Informatik, CAU Kiel Michael Hanus 24

Page 25: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

MEHRSTIMMIGKEIT

44

Bru-�

der

Ja-

kob,

Bru-

der

Ja-

kob,

� � �

� � � � � � � �

� � � � �

� �

� �

phrase1 = c’ vN :+: d’ vN :+: e’ vN :+: c’ vN

phrase2 = e’ vN :+: f’ vN :+: g’ hN

phrase3 = g’ aN :+: a’ aN :+: g’ aN :+: f’ aN :+: e’ vN :+: c’ vN

phrase4 = c’ vN :+: g vN :+: c’ hN

Institut fur Informatik, CAU Kiel Michael Hanus 25

Page 26: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

MEHRSTIMMIGKEIT

Vollstandige Strophe: Wiederholung der einzelnen Phrasen

strophe = wdh phrase1 :+: wdh phrase2 :+: wdh phrase3 :+: wdh phrase4

Viele Strophen:

strophen = endlos strophe———————– wdh strophe

Kanon: gleiche Strophen, zeitlich versetzt:

einsatz d m = (Pause d) :+: m

4-stimmiger Kanon:bruderJakob = strophen :=:

einsatz (2/1) strophen :=:

einsatz (4/1) strophen :=:

einsatz (6/1) strophen

Institut fur Informatik, CAU Kiel Michael Hanus 26

Page 27: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

RECHNEN MIT MUSIK

Musikkomposition ist exakte Struktur:

data Musik = Note GanzeZahl Bruch

| Pause Bruch

| Musik :+: Musik

| Musik :=: Musik

➜ Rechnen wie mit anderen mathematischen Objekten moglich➜ Definition der Berechnungen uber den Aufbau der Struktur

(analog zu Bruchrechnung, Rechnen mit komplexen Zahlen,. . . )

Beispiel: Bruchrechnunga

b+

c

d=

a∗d+b∗c

b∗d

a

b∗ c

d=

a∗c

b∗d

Ausrechnen: wie bisher (Definition anwenden und weiter ausrechnen)

2

3+

3

4=

2 ∗ 4 + 3 ∗ 3

3 ∗ 4=

17

12

Institut fur Informatik, CAU Kiel Michael Hanus 27

Page 28: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

RECHNEN MIT MUSIK: TRANSPOSITION

Transponiere Musik: transponiere i m

erhohe alle Noten in Musik m um Anzahl i von Halbtonen

transponiere i (Note t d) = (Note (t+i) d)

transponiere i (Pause d) = (Pause d)

transponiere i (m1 :+: m2) = (transponiere i m1) :+: (transponiere i m2)

transponiere i (m1 :=: m2) = (transponiere i m1) :=: (transponiere i m2)

Beispiel: Kanon mit transponierten Stimmen

bruderJakobT = strophen :=:

einsatz (2/1) (transponiere 12 strophen) :=:

einsatz (4/1) strophen :=:

einsatz (6/1) (transponiere 12 strophen)

Institut fur Informatik, CAU Kiel Michael Hanus 28

Page 29: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

RECHNEN MIT MUSIK: TRANSPOSITION

Beispiel: C-Dur-Tonleiter

44

� � � � � � � �

cDurNoten = c’ vN :+: d’ vN :+: e’ vN :+: f’ vN :+:

g’ vN :+: a’ vN :+: h’ vN :+: c’’ vN

G-Dur-Tonleiter durch Transposition um 5 Halbtone:

� 44 � � � � � � � �

gDurNoten = transponiere 5 cDurNoten

Institut fur Informatik, CAU Kiel Michael Hanus 29

Page 30: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

RECHNEN MIT MUSIK: TEMPOTRANSFORMATION

Transformiere Tempo: tempo t m

spiele alle Noten und Pausen in Musik m t-mal so schnell

z.B. m doppelt so schnell: tempo 2 m

tempo t (Note n d) = Note n (d/t)

tempo t (Pause d) = Pause (d/t)

tempo t (m1 :+: m2) = (tempo t m1) :+: (tempo t m2)

tempo t (m1 :=: m2) = (tempo t m1) :=: (tempo t m2)

Definition verschiedener Tempi: adagio = 7/6

andante = 9/6

allegro = 2

presto = 3

Beispiel:cDurNoten :=: wdh (tempo allegro (transponiere 12 cDurNoten))

Institut fur Informatik, CAU Kiel Michael Hanus 30

Page 31: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

RECHNEN MIT MUSIK: RUCKWARTS SPIELEN

rueckwaerts m : spiele Musik m ruckwarts

rueckwaerts (Note n d) = Note n d

rueckwaerts (Pause d) = Pause d

rueckwaerts (m1 :+: m2) = (rueckwaerts m2) :+: (rueckwaerts m1)

rueckwaerts (m1 :=: m2) = (rueckwaerts m1) :=: (rueckwaerts m2)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

let d1 = dauer m1

d2 = dauer m2 in

if d1>d2 then rueckwaerts m1 :=: (Pause (d1-d2) :+: rueckwaerts m2)

else (Pause (d2-d1) :+: rueckwaerts m1) :=: rueckwaerts m2

Hierzu definieren wir die Dauer von Musik:dauer (Note t d) = d

dauer (Pause d) = d

dauer (m1 :+: m2) = (dauer m1) + (dauer m2)

dauer (m1 :=: m2) = max (dauer m1) (dauer m2)

Beispiel: cDurNoten :+: rueckwaerts cDurNoten

Institut fur Informatik, CAU Kiel Michael Hanus 31

Page 32: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

RECHNEN MIT MUSIK: ZEITBESCHRANKUNG

Beschranke Lange der Musik: schnitt laenge m

spiele Musik m bis zur Gesamtdauer laenge

schnitt laenge m | laenge <= 0 = Pause 0 -- Definition mit Bedingung

schnitt laenge (Note n d) = Note n (min d laenge)

schnitt laenge (Pause d) = Pause (min d laenge)

schnitt laenge (m1 :=: m2) = schnitt laenge m1 :=: schnitt laenge m2

schnitt laenge (m1 :+: m2) = let sm1 = schnitt laenge m1

sm2 = schnitt (laenge - dauer sm1) m2

in sm1 :+: sm2

Kanon mit Endlosstrophen:

strophen = endlos strophe

Abspielen: (schnitt 16 bruderJakob)

Institut fur Informatik, CAU Kiel Michael Hanus 32

Page 33: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

HOHERES RECHNEN MIT MUSIK

Musik m n-mal hintereinander spielen:

mehrfach n m = if n>1 then m :+: mehrfach (n-1) m

else m

Musik m n-mal spielen und jedesmal um i Halbtone transponieren:

mfTrans i n m = if n>1 then m :+: mfTrans i (n-1) (transponiere i m)

else m

; mfTrans 1 12 (c’ aN)

; mfTrans 1 12 (c’ aN :=: e’ aN)

; mfTrans 1 12 (durDreiklang ce aN)

Institut fur Informatik, CAU Kiel Michael Hanus 33

Page 34: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

HOHERES RECHNEN MIT MUSIK

Musik m n-mal spielen und Richtung jedesmal umdrehen:

mfRueck n m = if n>1 then m :+: mfRueck (n-1) (rueckwaerts m)

else m

; mfRueck 6 (c’ aN :+: e’ aN :+: g’ aN :+: c’’ aN)

Musik m n-mal spielen und jedesmal Tempo um t andern:

mfTempo t n m = if n>1 then m :+: mfTempo t (n-1) (tempo t m)

else m

; mfTempo 2 6 (c’ gN :+: e’ gN :+: g’ gN :+: c’’ gN)

Institut fur Informatik, CAU Kiel Michael Hanus 34

Page 35: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

HOHERES RECHNEN MIT MUSIK

Betrachte Unterschiede in der Definition obiger Funktionen:

mfTrans i n m = if n>1 then m :+: mfTrans i (n-1) (transponiere i m)

else m

mfRueck n m = if n>1 then m :+: mfRueck (n-1) (rueckwaerts m)

else m

mfTempo t n m = if n>1 then m :+: mfTempo t (n-1) (tempo t m)

else m

; ein generelles Schema mit Musikfunktion f als Parameter

mehrfach f n m = if n>1 then m :+: mehrfach f (n-1) (f m)

else m

; mehrfach rueckwaerts 6 (c’ aN :+: e’ aN :+: g’ aN :+: c’’ aN)

; mehrfach (tempo 2) 6 (c’ aN :+: e’ aN :+: g’ aN :+: c’’ aN)

Institut fur Informatik, CAU Kiel Michael Hanus 35

Page 36: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

NOCH HOHERES RECHNEN MIT MUSIK

Musik m n-stimmig spielen und jedesmal mit einer Funktion f verandern:

mehrstimmig f n m = if n>1 then m :=: (mehrstimmig f (n-1) (f m))

else m

; mehrstimmig (transponiere 12) 4 (c vN :+: e vN :+: g vN :+: c’ vN)

; mehrstimmig (einsatz gN) 4 (c vN :+: e vN :+: g vN :+: c’ vN)

Musik m n-stimmig spielen und jedesmal mit einer Funktion f verandernund Ergebnismusik noch einmal mit einer weiteren Funktion g verandern:

mehrstimmig f g n m = if n>1 then m :=: g (mehrstimmig f g (n-1) (f m))

else m

halbtonlauf = mehrstimmig (transponiere 1) (einsatz sN) 24 (c’ sN)

; wdh (halbtonlauf :=: rueckwaerts halbtonlauf)

Institut fur Informatik, CAU Kiel Michael Hanus 36

Page 37: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

NOCH HOHERES RECHNEN MIT MUSIK

mehrstimmig f g n m = if n>1 then m :=: g (mehrstimmig f g (n-1) (f m))

else m

; kompakte Notation fur komplexe Strukturen:

”Kaskadenmusik“:

lauf = mehrstimmig (transponiere 5) (einsatz sN) 8 (c’ sN)

kaskade = mehrstimmig (transponiere 4) (einsatz vN) 8 lauf

kaskaden = mehrstimmig id (einsatz aN) 2 kaskade

kaskadenMusik = kaskaden :+: rueckwaerts kaskaden

Institut fur Informatik, CAU Kiel Michael Hanus 37

Page 38: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

HOHERES RECHNEN: EINE KOMPAKTE NOTATIONkaskadenMusik =(((Note 0 (1/16) :=: Pause (1/16) :+: Note 5 (1/16) :=: Pause (1/16) :+: Note 10 (1/16) :=: Pause (1/16) :+: Note 15 (1/16):=: Pause (1/16) :+: Note 20 (1/16) :=: Pause (1/16) :+: Note 25 (1/16) :=: Pause (1/16) :+: Note 30 (1/16) :=: Pause (1/16):+: Note 35 (1/16)) :=: Pause (1/4) :+: (Note 4 (1/16) :=: Pause (1/16) :+: Note 9 (1/16) :=: Pause (1/16) :+: Note 14(1/16) :=: Pause (1/16) :+: Note 19 (1/16) :=: Pause (1/16) :+: Note 24 (1/16) :=: Pause (1/16) :+: Note 29 (1/16) :=: Pause(1/16) :+: Note 34 (1/16) :=: Pause (1/16) :+: Note 39 (1/16)) :=: Pause (1/4) :+: (Note 8 (1/16) :=: Pause (1/16) :+: Note13 (1/16) :=: Pause (1/16) :+: Note 18 (1/16) :=: Pause (1/16) :+: Note 23 (1/16) :=: Pause (1/16) :+: Note 28 (1/16) :=:Pause (1/16) :+: Note 33 (1/16) :=: Pause (1/16) :+: Note 38 (1/16) :=: Pause (1/16) :+: Note 43 (1/16)) :=: Pause (1/4) :+:(Note 12 (1/16) :=: Pause (1/16) :+: Note 17 (1/16) :=: Pause (1/16) :+: Note 22 (1/16) :=: Pause (1/16) :+: Note 27 (1/16):=: Pause (1/16) :+: Note 32 (1/16) :=: Pause (1/16) :+: Note 37 (1/16) :=: Pause (1/16) :+: Note 42 (1/16) :=: Pause (1/16):+: Note 47 (1/16)) :=: Pause (1/4) :+: (Note 16 (1/16) :=: Pause (1/16) :+: Note 21 (1/16) :=: Pause (1/16) :+: Note 26(1/16) :=: Pause (1/16) :+: Note 31 (1/16) :=: Pause (1/16) :+: Note 36 (1/16) :=: Pause (1/16) :+: Note 41 (1/16) :=: Pause(1/16) :+: Note 46 (1/16) :=: Pause (1/16) :+: Note 51 (1/16)) :=: Pause (1/4) :+: (Note 20 (1/16) :=: Pause (1/16) :+: Note25 (1/16) :=: Pause (1/16) :+: Note 30 (1/16) :=: Pause (1/16) :+: Note 35 (1/16) :=: Pause (1/16) :+: Note 40 (1/16) :=:Pause (1/16) :+: Note 45 (1/16) :=: Pause (1/16) :+: Note 50 (1/16) :=: Pause (1/16) :+: Note 55 (1/16)) :=: Pause (1/4) :+:(Note 24 (1/16) :=: Pause (1/16) :+: Note 29 (1/16) :=: Pause (1/16) :+: Note 34 (1/16) :=: Pause (1/16) :+: Note 39 (1/16):=: Pause (1/16) :+: Note 44 (1/16) :=: Pause (1/16) :+: Note 49 (1/16) :=: Pause (1/16) :+: Note 54 (1/16) :=: Pause (1/16):+: Note 59 (1/16)) :=: Pause (1/4) :+: Note 28 (1/16) :=: Pause (1/16) :+: Note 33 (1/16) :=: Pause (1/16) :+: Note 38(1/16) :=: Pause (1/16) :+: Note 43 (1/16) :=: Pause (1/16) :+: Note 48 (1/16) :=: Pause (1/16) :+: Note 53 (1/16) :=: Pause(1/16) :+: Note 58 (1/16) :=: Pause (1/16) :+: Note 63 (1/16)) :=: Pause (1/8) :+: (Note 0 (1/16) :=: Pause (1/16) :+: Note5 (1/16) :=: Pause (1/16) :+: Note 10 (1/16) :=: Pause (1/16) :+: Note 15 (1/16) :=: Pause (1/16) :+: Note 20 (1/16) :=:Pause (1/16) :+: Note 25 (1/16) :=: Pause (1/16) :+: Note 30 (1/16) :=: Pause (1/16) :+: Note 35 (1/16)) :=: Pause (1/4) :+:(Note 4 (1/16) :=: Pause (1/16) :+: Note 9 (1/16) :=: Pause (1/16) :+: Note 14 (1/16) :=: Pause (1/16) :+: Note 19 (1/16):=: Pause (1/16) :+: Note 24 (1/16) :=: Pause (1/16) :+: Note 29 (1/16) :=: Pause (1/16) :+: Note 34 (1/16) :=: Pause (1/16):+: Note 39 (1/16)) :=: Pause (1/4) :+: (Note 8 (1/16) :=: Pause (1/16) :+: Note 13 (1/16) :=: Pause (1/16) :+: Note 18(1/16) :=: Pause (1/16) :+: Note 23 (1/16) :=: Pause (1/16) :+: Note 28 (1/16) :=: Pause (1/16) :+: Note 33 (1/16) :=: Pause(1/16) :+: Note 38 (1/16) :=: Pause (1/16) :+: Note 43 (1/16)) :=: Pause (1/4) :+: (Note 12 (1/16) :=: Pause (1/16) :+: Note17 (1/16) :=: Pause (1/16) :+: Note 22 (1/16) :=: Pause (1/16) :+: Note 27 (1/16) :=: Pause (1/16) :+: Note 32 (1/16) :=:Pause (1/16) :+: Note 37 (1/16) :=: Pause (1/16) :+: Note 42 (1/16) :=: Pause (1/16) :+: Note 47 (1/16)) :=: Pause (1/4) :+:(Note 16 (1/16) :=: Pause (1/16) :+: Note 21 (1/16) :=: Pause (1/16) :+: Note 26 (1/16) :=: Pause (1/16) :+: Note 31 (1/16):=: Pause (1/16) :+: Note 36 (1/16) :=: Pause (1/16) :+: Note 41 (1/16) :=: Pause (1/16) :+: Note 46 (1/16) :=: Pause (1/16):+: Note 51 (1/16)) :=: Pause (1/4) :+: (Note 20 (1/16) :=: Pause (1/16) :+: Note 25 (1/16) :=: Pause (1/16) :+: Note 30(1/16) :=: Pause (1/16) :+: Note 35 (1/16) :=: Pause (1/16) :+: Note 40 (1/16) :=: Pause (1/16) :+: Note 45 (1/16) :=: Pause(1/16) :+: Note 50 (1/16) :=: Pause (1/16) :+: Note 55 (1/16)) :=: Pause (1/4) :+: (Note 24 (1/16) :=: Pause (1/16) :+: Note29 (1/16) :=: Pause (1/16) :+: Note 34 (1/16) :=: Pause (1/16) :+: Note 39 (1/16) :=: Pause (1/16) :+: Note 44 (1/16) :=:Pause (1/16) :+: Note 49 (1/16) :=: Pause (1/16) :+: Note 54 (1/16) :=: Pause (1/16) :+: Note 59 (1/16)) :=: Pause (1/4) :+:Note 28 (1/16) :=: Pause (1/16) :+: Note 33 (1/16) :=: Pause (1/16) :+: Note 38 (1/16) :=: Pause (1/16) :+: Note 43 (1/16):=: Pause (1/16) :+: Note 48 (1/16) :=: Pause (1/16) :+: Note 53 (1/16) :=: Pause (1/16) :+: Note 58 (1/16) :=: Pause (1/16):+: Note 63 (1/16)) :+: (Pause (1/8) :+: (Pause (7/4) :+: (Pause (7/16) :+: Note 0 (1/16)) :=: ((Pause (3/8) :+: Note 5(1/16)) :=: ((Pause (5/16) :+: Note 10 (1/16)) :=: ((Pause (1/4) :+: Note 15 (1/16)) :=: ((Pause (3/16) :+: Note 20 (1/16)):=: ((Pause (1/8) :+: Note 25 (1/16)) :=: ((Pause (1/16) :+: Note 30 (1/16)) :=: Note 35 (1/16) :+: Pause (1/16)) :+: Pause(1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause (3/2) :+:(Pause (7/16) :+: Note 4 (1/16)) :=: ((Pause (3/8) :+: Note 9 (1/16)) :=: ((Pause (5/16) :+: Note 14 (1/16)) :=: ((Pause(1/4) :+: Note 19 (1/16)) :=: ((Pause (3/16) :+: Note 24 (1/16)) :=: ((Pause (1/8) :+: Note 29 (1/16)) :=: ((Pause (1/16):+: Note 34 (1/16)) :=: Note 39 (1/16) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause

Institut fur Informatik, CAU Kiel Michael Hanus 38

Page 39: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

(1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause (5/4) :+: (Pause (7/16) :+: Note 8 (1/16)) :=: ((Pause (3/8) :+:Note 13 (1/16)) :=: ((Pause (5/16) :+: Note 18 (1/16)) :=: ((Pause (1/4) :+: Note 23 (1/16)) :=: ((Pause (3/16) :+: Note 28(1/16)) :=: ((Pause (1/8) :+: Note 33 (1/16)) :=: ((Pause (1/16) :+: Note 38 (1/16)) :=: Note 43 (1/16) :+: Pause (1/16)):+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause(1/1) :+: (Pause (7/16) :+: Note 12 (1/16)) :=: ((Pause (3/8) :+: Note 17 (1/16)) :=: ((Pause (5/16) :+: Note 22 (1/16)) :=:((Pause (1/4) :+: Note 27 (1/16)) :=: ((Pause (3/16) :+: Note 32 (1/16)) :=: ((Pause (1/8) :+: Note 37 (1/16)) :=: ((Pause(1/16) :+: Note 42 (1/16)) :=: Note 47 (1/16) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+:Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause (3/4) :+: (Pause (7/16) :+: Note 16 (1/16)) :=: ((Pause (3/8):+: Note 21 (1/16)) :=: ((Pause (5/16) :+: Note 26 (1/16)) :=: ((Pause (1/4) :+: Note 31 (1/16)) :=: ((Pause (3/16) :+: Note36 (1/16)) :=: ((Pause (1/8) :+: Note 41 (1/16)) :=: ((Pause (1/16) :+: Note 46 (1/16)) :=: Note 51 (1/16) :+: Pause (1/16)):+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause(1/2) :+: (Pause (7/16) :+: Note 20 (1/16)) :=: ((Pause (3/8) :+: Note 25 (1/16)) :=: ((Pause (5/16) :+: Note 30 (1/16)) :=:((Pause (1/4) :+: Note 35 (1/16)) :=: ((Pause (3/16) :+: Note 40 (1/16)) :=: ((Pause (1/8) :+: Note 45 (1/16)) :=: ((Pause(1/16) :+: Note 50 (1/16)) :=: Note 55 (1/16) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+:Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause (1/4) :+: (Pause (7/16) :+: Note 24 (1/16)) :=: ((Pause (3/8):+: Note 29 (1/16)) :=: ((Pause (5/16) :+: Note 34 (1/16)) :=: ((Pause (1/4) :+: Note 39 (1/16)) :=: ((Pause (3/16) :+: Note44 (1/16)) :=: ((Pause (1/8) :+: Note 49 (1/16)) :=: ((Pause (1/16) :+: Note 54 (1/16)) :=: Note 59 (1/16) :+: Pause (1/16)):+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause(7/16) :+: Note 28 (1/16)) :=: ((Pause (3/8) :+: Note 33 (1/16)) :=: ((Pause (5/16) :+: Note 38 (1/16)) :=: ((Pause (1/4):+: Note 43 (1/16)) :=: ((Pause (3/16) :+: Note 48 (1/16)) :=: ((Pause (1/8) :+: Note 53 (1/16)) :=: ((Pause (1/16) :+: Note58 (1/16)) :=: Note 63 (1/16) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+:Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/4)) :+: Pause (1/4)) :+: Pause (1/4)) :+: Pause (1/4)) :+: Pause (1/4)) :+:Pause (1/4)) :+: Pause (1/4)) :=: ((Pause (7/4) :+: (Pause (7/16) :+: Note 0 (1/16)) :=: ((Pause (3/8) :+: Note 5 (1/16)):=: ((Pause (5/16) :+: Note 10 (1/16)) :=: ((Pause (1/4) :+: Note 15 (1/16)) :=: ((Pause (3/16) :+: Note 20 (1/16)) :=:((Pause (1/8) :+: Note 25 (1/16)) :=: ((Pause (1/16) :+: Note 30 (1/16)) :=: Note 35 (1/16) :+: Pause (1/16)) :+: Pause(1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause (3/2) :+:(Pause (7/16) :+: Note 4 (1/16)) :=: ((Pause (3/8) :+: Note 9 (1/16)) :=: ((Pause (5/16) :+: Note 14 (1/16)) :=: ((Pause(1/4) :+: Note 19 (1/16)) :=: ((Pause (3/16) :+: Note 24 (1/16)) :=: ((Pause (1/8) :+: Note 29 (1/16)) :=: ((Pause (1/16):+: Note 34 (1/16)) :=: Note 39 (1/16) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause(1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause (5/4) :+: (Pause (7/16) :+: Note 8 (1/16)) :=: ((Pause (3/8) :+:Note 13 (1/16)) :=: ((Pause (5/16) :+: Note 18 (1/16)) :=: ((Pause (1/4) :+: Note 23 (1/16)) :=: ((Pause (3/16) :+: Note 28(1/16)) :=: ((Pause (1/8) :+: Note 33 (1/16)) :=: ((Pause (1/16) :+: Note 38 (1/16)) :=: Note 43 (1/16) :+: Pause (1/16)):+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause(1/1) :+: (Pause (7/16) :+: Note 12 (1/16)) :=: ((Pause (3/8) :+: Note 17 (1/16)) :=: ((Pause (5/16) :+: Note 22 (1/16)) :=:((Pause (1/4) :+: Note 27 (1/16)) :=: ((Pause (3/16) :+: Note 32 (1/16)) :=: ((Pause (1/8) :+: Note 37 (1/16)) :=: ((Pause(1/16) :+: Note 42 (1/16)) :=: Note 47 (1/16) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+:Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause (3/4) :+: (Pause (7/16) :+: Note 16 (1/16)) :=: ((Pause (3/8):+: Note 21 (1/16)) :=: ((Pause (5/16) :+: Note 26 (1/16)) :=: ((Pause (1/4) :+: Note 31 (1/16)) :=: ((Pause (3/16) :+: Note36 (1/16)) :=: ((Pause (1/8) :+: Note 41 (1/16)) :=: ((Pause (1/16) :+: Note 46 (1/16)) :=: Note 51 (1/16) :+: Pause (1/16)):+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause(1/2) :+: (Pause (7/16) :+: Note 20 (1/16)) :=: ((Pause (3/8) :+: Note 25 (1/16)) :=: ((Pause (5/16) :+: Note 30 (1/16)) :=:((Pause (1/4) :+: Note 35 (1/16)) :=: ((Pause (3/16) :+: Note 40 (1/16)) :=: ((Pause (1/8) :+: Note 45 (1/16)) :=: ((Pause(1/16) :+: Note 50 (1/16)) :=: Note 55 (1/16) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+:Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause (1/4) :+: (Pause (7/16) :+: Note 24 (1/16)) :=: ((Pause (3/8):+: Note 29 (1/16)) :=: ((Pause (5/16) :+: Note 34 (1/16)) :=: ((Pause (1/4) :+: Note 39 (1/16)) :=: ((Pause (3/16) :+: Note44 (1/16)) :=: ((Pause (1/8) :+: Note 49 (1/16)) :=: ((Pause (1/16) :+: Note 54 (1/16)) :=: Note 59 (1/16) :+: Pause (1/16)):+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :=: ((Pause(7/16) :+: Note 28 (1/16)) :=: ((Pause (3/8) :+: Note 33 (1/16)) :=: ((Pause (5/16) :+: Note 38 (1/16)) :=: ((Pause (1/4):+: Note 43 (1/16)) :=: ((Pause (3/16) :+: Note 48 (1/16)) :=: ((Pause (1/8) :+: Note 53 (1/16)) :=: ((Pause (1/16) :+: Note58 (1/16)) :=: Note 63 (1/16) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/16)) :+:Pause (1/16)) :+: Pause (1/16)) :+: Pause (1/4)) :+: Pause (1/4)) :+: Pause (1/4)) :+: Pause (1/4)) :+: Pause (1/4)) :+:Pause (1/4)) :+: Pause (1/4)) :+: Pause (1/8)

Institut fur Informatik, CAU Kiel Michael Hanus 39

Page 40: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

WEITERE ASPEKTE

Programmierte Musik ≈ formalisierte Musik

; Musik zuganglich fur weitere Analysen

Automatische Erzeugung von Begleitakkorden

Eingabe: Melodie (Folge von Noten)

Ausgabe: Folge von Akkorden (z.B. fur Gitarrenbegleitung)

Methode:

➀ rate Akkord und berechne Dissonanzen zwischen Akkord und Melodie ineinem Takt

➁ falls Dissonanzen zu groß, unterteile Takt➂ wahle Akkord mit kleinster Dissonanz

Programmierparadigma: Logikprogrammierung

Institut fur Informatik, CAU Kiel Michael Hanus 40

Page 41: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

BEWEISEN VON MUSIKALISCHEN EIGENSCHAFTEN

Programmierte Musik ≈ formalisierte Musik:beweisbare Eigenschaften von Musik?

Gleichheit von Musikstucken:

transponiere 2 (tempo 2 (quinte ce (1/2)))?= quinte de (1/4)

beide Seiten ausrechnen: Note 2 (1/4) :=: Note 9 (1/4)

Anwendung: Programmoptimierung

Problem: Gleichheit nach Ausrechnen 6=”horbare Gleichheit“

Note ce (1/4) :=: Note ge (1/4) 6= Note ge (1/4) :=: Note ce (1/4)

Losung:➜

”horbare Gleichheit“ ≈ identisch, wenn aufgefuhrt

➜ definiere Gesetze f ur Gleichheit bezuglich einer Auffuhrung

➜ benutze diese, um Gleichheit von Musik nachzuweisen

Institut fur Informatik, CAU Kiel Michael Hanus 41

Page 42: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

ZUSAMMENFASSUNG

Beherrschung komplexer Systeme durch➜ Abstraktion (ignoriere Unwichtiges)

➜ Modellierung (bilde geeignetes Modell)

➜ Notation (finde kompakte und verstandliche Symbole)

Spezifisch fur jeweiligen Anwendungsbereich➜ Musik

➜ Architektur

➜ Ingenieurwissenschaften

➜ . . .

Besonderheit der Informatik:➜ Notationen durch Computer ausf uhrbar ; Programme

➜ definiereAbstraktionen von Notationen (durDreiklang, mehrstimmig,. . . )

Institut fur Informatik, CAU Kiel Michael Hanus 42

Page 43: Von Mozart zur Informatikmh/mozart/folien.pdfSuche nach Musik (Music Information Retrieval) Konzeptuelle Gemeinsamkeiten: Dynamische Ablauf¨ e: Auffuhr¨ ung $ Berechnung Techniken

FAZIT

Programme sind Notationen von Ideen eines Anwendungsbereichs

Programme mussen lesbar, verstandlich und”schon“ sein

Gute Programme ≈ gute Kompositionen(aufgebaut aus einfachen Einheiten und geschickten Kombinationen)

Ahnlich wie in der Architektur, aber:leider viele Programme, die an Plattenbauten erinnernauch bedingt durch Taylorisierung der Programmierung (“lines of code”)

Programmiersprachen konnen helfen, gute Kompositionen zu entwickeln:➜ Beispiele in diesem Vortrag: funktionale Programme

(Sprache: Haskell, Bibliothek: Haskore [Hudak, Yale])

➜ ahnliche Eleganz mit traditionellen Sprachen (Fortran, C, Java) kaumerreichbar

Entwicklung adaquater Programmiersprachen: aktuelle Forschung

Institut fur Informatik, CAU Kiel Michael Hanus 43