forte framework - lambda days 2015

46
The Forte Framework for Music Composition Jakub Korczyński Lambda Days 2015

Upload: jakub-korczynski

Post on 03-Aug-2015

227 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Forte Framework - Lambda Days 2015

The Forte Framework for Music CompositionJakub Korczyński

Lambda Days 2015

Page 2: Forte Framework - Lambda Days 2015

– Igor Stravinsky

„Now art is the contrary of chaos.”

Page 3: Forte Framework - Lambda Days 2015

The Problem

Frederic Chopin playing for prince Radziwiłł in 1887, Henryk Siemiradzki

Page 4: Forte Framework - Lambda Days 2015

How to grasp music?

"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin

Page 5: Forte Framework - Lambda Days 2015

A partial solution

"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin

Page 6: Forte Framework - Lambda Days 2015

What we would like instead?

"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin

Page 7: Forte Framework - Lambda Days 2015

Even better …

"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin

Page 8: Forte Framework - Lambda Days 2015

Wow!

"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin

Page 9: Forte Framework - Lambda Days 2015

Structure Theory

Page 10: Forte Framework - Lambda Days 2015
Page 11: Forte Framework - Lambda Days 2015

Forte DSL

Page 12: Forte Framework - Lambda Days 2015

Forte DSLAllen Forte (born December 23, 1926) is a music theoretician and musicologist best known for his work “The Structure of Atonal Music” published by Yale University Press.

What is Forte theory?• A mapping of pitches to pitch classes• A mapping of intervals to interval classes• A grouping of pitch classes with pitch class sets• Pitch class set normalization• Various pitch class set relations• Analysis with interval vectors and basic interval patterns• Complexes and subcomplexes

Page 13: Forte Framework - Lambda Days 2015

Mapping music to numbers

Claude Debussy at the piano

Page 14: Forte Framework - Lambda Days 2015

Pitches to Pitch Class Sets

Forte mapping - "Clair de lune" C. Debussy

Page 15: Forte Framework - Lambda Days 2015

Contributions

What we propose:• Forte theory systematization and enhancement• A EDSL instead of a batch processor for manipulating• Forte-theoretic entities• Techniques for domain abstraction, interpretation swapping

and self-optimizing library implementation• A method for boilerplate code reduction

Page 16: Forte Framework - Lambda Days 2015

Graph DSL

Page 17: Forte Framework - Lambda Days 2015

Graph DSL

Basic concepts:• Modeling music as a graph• Time axis and musical time windows• Vertical plane• Musical paths and the horizontal plane

Page 18: Forte Framework - Lambda Days 2015

Graph DSL example

Page 19: Forte Framework - Lambda Days 2015

Musical Time Window

Page 20: Forte Framework - Lambda Days 2015

Musical Time Window

Page 21: Forte Framework - Lambda Days 2015

Musical Time Window

Page 22: Forte Framework - Lambda Days 2015

Musical Time Window

Page 23: Forte Framework - Lambda Days 2015

Vertical Plane

Page 24: Forte Framework - Lambda Days 2015

Vertical Plane

Page 25: Forte Framework - Lambda Days 2015

Vertical Plane

Page 26: Forte Framework - Lambda Days 2015

Vertical Plane

Quarter Note Time Window

Page 27: Forte Framework - Lambda Days 2015

Horizontal Plane

Page 28: Forte Framework - Lambda Days 2015

Horizontal Plane

Page 29: Forte Framework - Lambda Days 2015

Horizontal Plane

Page 30: Forte Framework - Lambda Days 2015

Horizontal Plane

Two Horizontal Planes

Page 31: Forte Framework - Lambda Days 2015

Graph DSL operations

Page 32: Forte Framework - Lambda Days 2015

Function application code example

Page 33: Forte Framework - Lambda Days 2015

Function Application Intuition

Page 34: Forte Framework - Lambda Days 2015

Split code example

Page 35: Forte Framework - Lambda Days 2015

Split intuition

Page 36: Forte Framework - Lambda Days 2015

Merge code example

Page 37: Forte Framework - Lambda Days 2015

Merge Intuition

Page 38: Forte Framework - Lambda Days 2015

Cut and Inject code example

Page 39: Forte Framework - Lambda Days 2015

Cut and Inject Intuition

Page 40: Forte Framework - Lambda Days 2015

Helper code example

Page 41: Forte Framework - Lambda Days 2015

Helper Intuitions

Page 42: Forte Framework - Lambda Days 2015

Forte Framework = Forte DSL + Graph DSL

Page 43: Forte Framework - Lambda Days 2015

Getting real

Page 44: Forte Framework - Lambda Days 2015

Final result …

Page 45: Forte Framework - Lambda Days 2015

… and with a little more work

Page 46: Forte Framework - Lambda Days 2015

Thank you!