Spa$al Programming for Musical Representa$on and Analysis Louis Bigo & Antoine Spicher & Olivier Michel mgs.spatial-computing.org LACL, University Paris Est Créteil LIFO, University of Orléans – Mai 23-24, 2011 Context n Spa$al compu$ng o o n Compute in space Compute space MGS: a programming language for spa$al compu$ng o o Introduc$on of topological concepts in a programming language Two main principles Data structure: topological collec$on n Control structure: transforma$on n n Musical analysis NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Outline n n n Background on MGS spa$al-­‐compu$ng Music and spa$al compu$ng Space for musical representa$on Space as musical representa$on Conclusion NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Outline n n n Background on MGS spa$al-­‐compu$ng Music and spa$al compu$ng Space for musical representa$on Space as musical representa$on Conclusion NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis MGS Main Concepts n Topological collec$ons o Structure n 0-cell A collec$on of topological cells 1-cell 2-cell NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis 3-cell MGS Main Concepts n Topological collec$ons o Structure A collec$on of topological cells n An incidence rela/onship n NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis MGS Main Concepts n Topological collec$ons o Structure A collec$on of topological cells n An incidence rela$onship n o Data: associa&on of a value with each cell « LACL » 2 ‘a’ λx.(…x…) 4.005 1 « MGS » 5 λx.0 NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis `foo MGS Main Concepts n Transforma$ons o Func$ons defined by case on collec$ons Each case (pa\ern) matches a sub-­‐collec$on o Defining a rewri$ng rela$onship: topological rewri/ng Sub-collection Trans T = Topological { rewriting pa$ern1 è expression1 … pa$ernn è expressionn } Transformation Topological collection Sub-collection Topological collection NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Outline n n n Background on MGS spa$al-­‐compu$ng Music and spa$al compu$ng Space for musical representa$on Space as musical representa$on Conclusion NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Neo-­‐Riemannian Problema$c n Tradi$onal western music representa$on o o Based on the use of a staff Main drawbacks for visualiza$on of harmony n Contrapuntal proximity The spa$al distance between notes is not relevant for harmonic purpose n n Spa$ally close pa\erns can sound very different Neo-­‐Riemannian representa$on of music o o Graphical representa$on of harmony rules Consonance used as a graphical criterion Two notes that sound well must be spa$ally close NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Neo-­‐Riemannian Problema$c n Musical composi$on (J.-­‐M. Chouvel) Musical segments as successive transforma$ons of a shape in the labce Musical melody as a path in the labce NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Spa$al Representa$on of Musical Sequences n Temporal succession of musical events n Musical event as a topological collec4on D o Posi$ons are notes o Labels represent played notes A C F n B A♯ G D♯ G♯ E C♯ F♯ Succession of events as a stream of collec4ons Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) /me NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Formaliza$on of Notes Neighborhoods n Which neighborhoods for significant visualiza$on? n Strong algebraic structure of music o B C C♯ Set N of notes (i.e. pitch classes) = { C, C#, D, …, A, A#, B } A♯ We do not consider octaves D D♯ A E G♯ G F F♯ N = { C, C♯, D, D♯, E, F, F♯, G, G♯, A, A♯, B } NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Formaliza$on of Notes Neighborhoods n Which neighborhoods for significant visualiza$on? n Strong algebraic structure of music o o Set N = { C, C♯, …, A♯, B } B m2 M2 A♯ Group (I,+) of intervals n C C♯ D m3 Rela$ve difference between notes TT P4 A M3 D♯ E G♯ G F F♯ I = { P1, m2, M2, m3, M3, P4, TT, P5, m6, M6, m7, M7 } NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Formaliza$on of Notes Neighborhoods n Which neighborhoods for significant visualiza$on? n Strong algebraic structure of music o o Set N = { C, C♯, …, A♯, B } Group (I,+) of intervals C B C♯ A♯ D Rela$ve difference between notes A n (I,+) ≅ (Z12,+) (isomorphism) n Example M3 + m3 = P5 G♯ P5 n D♯ E m3 G F F♯ I = { P1, m2, M2, m3, M3, P4, TT, P5, m6, M6, m7, M7 } NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Formaliza$on of Notes Neighborhoods n Which neighborhoods for significant visualiza$on? n Strong algebraic structure of music o Set N = { C, C♯, …, A♯, B } Group (I,+) = { P1, …, M7 } o Transposi$on ⊕ of notes A♯ D A n ⊕ i = n’ if i is the interval between n and n’ n Example G♯ o C ⊕ P4 = F o E ⊕ m3 = G n C♯ ⊕ P4 o B C D♯ E ⊕ m3 G ⊕ ac$on of I over N NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis F F♯ Formaliza$on of Notes Neighborhoods n Consonance as a neighborhood rela$onship o o n S ⊂ N x N (n1, n2) ∈ S if n1 “sounds well” with n2 Assump$ons on S o S is symmetric n o (n1, n2) ∈ S ⇒ (n2, n1) ∈ S i1 n i2 i3 S is defined up to a transposi$on ∀i ∈ I, (n1, n2) ∈ S ⇒ (n1 ⊕ i, n2 ⊕ i) ∈ S n (C, G) sounds well ⇒ (E= C ⊕ M3, B = G ⊕ M3) sounds well n n S characterized by a subset I of I I = { i1, i2, …, in } n ∀n ∈ Ν, ∀i ∈ I, (n, n ⊕ i) ∈ S n NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Formaliza$on of Notes Neighborhoods n Spa$al representa$on of S o I as a set of group generators < I > subgroup of I generated by the elements of I n Example I = { M2 } n S = { (C,D), (C#,D#), …} I = { M2 } < I > = { P1, P1 + M2, P1 + 2.M2, … } = { P1, M2, M3, TT, m6, m7 } NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Formaliza$on of Notes Neighborhoods n Spa$al representa$on of S o o I as a set of group generators Graph representa$on of < I > n Cayley’s graph Ver$ces: intervals of < I > o Edges: generators of I o n Example with I = { M2 } P1 +M2 M2 +M2 +M2 m7 M3 +M2 +M2 m6 +M2 NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis TT Formaliza$on of Notes Neighborhoods n Spa$al representa$on of S o o o I as a set of group generators Graph representa$on of < I > Representa$on of S based on Cayley graph Ac$on of < I > on Ν n Example with I = { M2 } n C=C ⊕ P1 A♯=C ⊕ m7 D=C ⊕ M2 E=C ⊕ M3 G♯=C ⊕ m6 F♯=C ⊕ TT C♯ D♯ B F A NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis G Applica$ons n Scale representa$ons o Chroma$c scale I = { m2 } C o C♯ D D♯ E F F♯ G♯ A A♯ B Whole-­‐tone scale I = { M2 } C D E F♯ G♯ A♯ C♯ D♯ F G A B o G Diminished scale I = { m2, M2 } C C♯ D D♯ E D D♯ E F E F F♯ G G♯ A F♯ F♯ G G♯ NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis A♯ Applica$ons n Tradi$onal harmony representa$on o o o I = { M3, P5 } (Euler’s Tonnetz) I = { m3, M3, P5 } (Harmonic table) I = { m3, M3, P5, m7 } (3D-­‐Tonnetz) (Euler) (J.-­‐M. Chouvel) NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis (E. Gollin) Applica$ons Automa$c graph genera$on n unfolding NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Applica$ons n Instruments concep$on I = { m2, P4 } (Guitar) I = { m2, P5 } (Violin) I = { m2, M2, m3 } (Accordion) NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Applica$ons n Analysis example o o Signature of a piece Example : F. Chopin Prelude Extract of the Prelude N.4 Op28 of F. Chopin NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Outline n n n Background on MGS spa$al-­‐compu$ng Music and spa$al compu$ng Space for musical representa$on Space as musical representa$on Conclusion NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Tonality and Möbius Strip n n Mo$va$on: spa$al visualiza$on of tonality Associa$on of a chord set with the tonality: the degrees o Example: C-­‐major tonality C n Spa$al representa$ons o o n Note = vertex Chord = surface IC G Fusion of the common notes for the 7 degrees [Mazzola02] NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis E Self-­‐Assembly of Chords Automa$on of the process for the analysis of other chords sequences n Reac4on of the chords between themselves n Simplicial representa$on of musical objects n o o o Note: 0-­‐simplex 2-­‐note chord: 1-­‐simplex 3-­‐note chord: 2-­‐simplex C Cmaj G NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis E Self-­‐Assembly of Chords Automa$on of the process for the analysis of other chords sequences n Reac4on of the chords between themselves n Simplicial representa$on of musical objects n o o o o C Note: 0-­‐simplex 2-­‐note chord: 1-­‐simplex 3-­‐note chord: 2-­‐simplex 4-­‐note chord: 3-­‐simplex B Cmaj Cmaj7 G NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis E Self-­‐Assembly of Chords n MGS transforma$on for self-­‐assembly process Trans identification = { s1 s2 / (s1 == s2 & (faces s1) == (faces s2)) => let c = new_cell (dim s1) (faces s1) (union (cofaces s1) (cofaces s2)) in s1 * c } NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Applica$ons n Four-­‐note degrees of C-­‐major tonality n Chord = 3-­‐simplex (tetrahedrons) Self-­‐assembly n NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Applica$ons n Extract of the Prelude No. 4 Op. 28 of F. Chopin n Simplicial complex NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Applica$ons n Extract of the Prelude No. 4 Op. 28 of F. Chopin n Analysis of the path under the chords n The path chosen by F. Chopin is associated with the smallest movements on the chords NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Outline n n n Background on MGS spa$al-­‐compu$ng Music and spa$al compu$ng Space for musical representa$on Space as musical representa$on Conclusion NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Conclusion & Perspec$ves n n n Preliminary work Strong collabora$ons with composers / musicologists Extend the valida$on on more musical problems o n n n Spa$al representa$ons of other musical proper$es ($mbre, rythm, fingering etc.) Extension to study musical styles Spa$al proper$es ⇔ musical proper$es Acknowledgements Jean-­‐Louis Giavi\o, Moreno Andrea\a, Carlos Agon, Jean-­‐Marc Chouvel NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D B♭ F# E# B G E♭ B G# E C G♭ C F C# A B♭ b Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the 2nd movement of the Symphony No. 9 (L. van Beethoven) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Extract of the Prelude Op.28 N.4 (F. Chopin) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the Prelude Op.28 N.4 (F. Chopin) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the Prelude Op.28 N.4 (F. Chopin) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the Prelude Op.28 N.4 (F. Chopin) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the Prelude Op.28 N.4 (F. Chopin) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the Prelude Op.28 N.4 (F. Chopin) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the Prelude Op.28 N.4 (F. Chopin) C# D Bb F# B G Eb B G# C E A Bb D Eb B G# F C# A F C# A G# C E C E G# C Eb G B G B Eb G Bb D F# D F# Bb D F# A C# F F C# F A C# E C E G# G Eb Bb F# D Bb Eb B Extract of the Prelude Op.28 N.4 (F. Chopin) D G# Bb B E B G G I = {m3, M3, P5} I = {m2, m3, M3} D Bb Eb B G Eb E G# E C G# B G Eb C# NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Bb F# Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F Extract of the Prelude Op.28 N.4 (F. Chopin) G D Bb F# F C# A F G# C E Eb Bb D A F G# B G Eb B G Eb G# C E C E G# C A C# F C# F A C# Bb D F# D F# Bb D F# Eb G B B G B Eb G E C E G# C# A Bb F# D Bb A F NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis C A# B D D# A G# C# E G F E F# NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis C A# B D D# A G# C# E G F E F# NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis C A# B C# D# A G# D G F E F# NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Spa$al Compu$ng & MGS n Spa$al compu$ng o o n Compute in space Compute space MGS: a programming language for spa$al compu$ng o o Introduc$on of topological concepts in a programming language Two main principles Data structure: topological collec$on n Control structure: transforma$on n NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis Neo-­‐Riemannian Problema$c n Examples Neo-­‐Riemannian approach for tonal music Euler’s tonnetz Hexagonal network of notes (J.-­‐M. Chouvel) NWC 2011 -­‐ Spa$al Programming For Music Representa$on and Analysis