Forte Framework - Lambda Days 2015
-
Upload
jakub-korczynski -
Category
Software
-
view
227 -
download
1
Transcript of Forte Framework - Lambda Days 2015
![Page 1: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/1.jpg)
The Forte Framework for Music CompositionJakub Korczyński
Lambda Days 2015
![Page 2: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/2.jpg)
– Igor Stravinsky
„Now art is the contrary of chaos.”
![Page 3: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/3.jpg)
The Problem
Frederic Chopin playing for prince Radziwiłł in 1887, Henryk Siemiradzki
![Page 4: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/4.jpg)
How to grasp music?
"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin
![Page 5: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/5.jpg)
A partial solution
"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin
![Page 6: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/6.jpg)
What we would like instead?
"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin
![Page 7: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/7.jpg)
Even better …
"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin
![Page 8: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/8.jpg)
Wow!
"Etude in A minor" (Op. 10, No. 2) by Fryderyk Chopin
![Page 9: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/9.jpg)
Structure Theory
![Page 10: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/10.jpg)
![Page 11: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/11.jpg)
Forte DSL
![Page 12: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/13.jpg)
Mapping music to numbers
Claude Debussy at the piano
![Page 14: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/14.jpg)
Pitches to Pitch Class Sets
Forte mapping - "Clair de lune" C. Debussy
![Page 15: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/16.jpg)
Graph DSL
![Page 17: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/18.jpg)
Graph DSL example
![Page 19: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/19.jpg)
Musical Time Window
![Page 20: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/20.jpg)
Musical Time Window
![Page 21: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/21.jpg)
Musical Time Window
![Page 22: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/22.jpg)
Musical Time Window
![Page 23: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/23.jpg)
Vertical Plane
![Page 24: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/24.jpg)
Vertical Plane
![Page 25: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/25.jpg)
Vertical Plane
![Page 26: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/26.jpg)
Vertical Plane
Quarter Note Time Window
![Page 27: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/27.jpg)
Horizontal Plane
![Page 28: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/28.jpg)
Horizontal Plane
![Page 29: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/29.jpg)
Horizontal Plane
![Page 30: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/30.jpg)
Horizontal Plane
Two Horizontal Planes
![Page 31: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/31.jpg)
Graph DSL operations
![Page 32: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/32.jpg)
Function application code example
![Page 33: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/33.jpg)
Function Application Intuition
![Page 34: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/34.jpg)
Split code example
![Page 35: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/35.jpg)
Split intuition
![Page 36: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/36.jpg)
Merge code example
![Page 37: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/37.jpg)
Merge Intuition
![Page 38: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/38.jpg)
Cut and Inject code example
![Page 39: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/39.jpg)
Cut and Inject Intuition
![Page 40: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/40.jpg)
Helper code example
![Page 41: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/41.jpg)
Helper Intuitions
![Page 42: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/42.jpg)
Forte Framework = Forte DSL + Graph DSL
![Page 43: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/43.jpg)
Getting real
![Page 44: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/44.jpg)
Final result …
![Page 45: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/45.jpg)
… and with a little more work
![Page 46: Forte Framework - Lambda Days 2015](https://reader034.fdocuments.net/reader034/viewer/2022042818/55beaef1bb61ebcf618b45c6/html5/thumbnails/46.jpg)
Thank you!