VirtuaLatin - Agent Based Percussive Accompaniment David Murray-Rust Master of Science School of Informatics University of Edinburgh 2003 Abstract This project details the construction and analysis of a percussive agent, able to add timbales accompaniment to pre-recorded salsa music. We propose, imple- ment and test a novel representational structure speciflc to latin music, inspired by Lerdahl and Jackendofi’s General Theory of Tonal Music, and incorporating speciflc domain knowledge. This is found to capture the relevant information but lack some (cid:176)exibility. We develop a music listening designed to build up these high level representa- tions using harmonic and rhythmic aspects along with parallelism, but flnd that it lacks the information necessary to create full representations. We develop a generative system which uses expert knowledge and high level representations to combine and alter templates in a musically sensitive manner. We implement and test an agent based platform for the composition of music, which is found to con- vey the necessary information and perform fast enough that real time operation should be possible. Overall, we flnd that the agent is capable of creating accom- paniment which is indistinguishable from human playing to the general public, and di–cult for domain experts to identify. i Acknowledgements Thanks to everyone who has helped and supported me through this project, in particular, Alan Smaill and Manuel Contreras my supervisor and co-supervisor, and everyone who took the Salsa Challenge. ii Declaration I declare that this thesis was composed by myself, that the work contained herein is my own except where explicitly stated otherwise in the text, and that this work has not been submitted for any other degree or professional qualiflcation except as specifled. (David Murray-Rust) iii Table of Contents 1 Introduction 1 1.1 The use of agent systems for musical activities . . . . . . . . . . . 1 1.2 Customised representations for latin music . . . . . . . . . . . . . 2 1.3 Output Generation . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Musical analysis of latin music . . . . . . . . . . . . . . . . . . . . 3 1.5 Aims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Background 5 2.1 Music Representations . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 Common Practice Notation . . . . . . . . . . . . . . . . . 5 2.1.3 MIDI - Overview . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Music Representations and Analyses . . . . . . . . . . . . 7 2.2.2 Mechanical Analysis of Music . . . . . . . . . . . . . . . . 8 2.2.3 Computer Generated Music . . . . . . . . . . . . . . . . . 8 2.2.4 Agents and Music . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.5 Interactive Systems . . . . . . . . . . . . . . . . . . . . . . 11 2.2.6 Distributed Architectures . . . . . . . . . . . . . . . . . . 11 2.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Design 14 3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 Higher Level Representations . . . . . . . . . . . . . . . . . . . . 14 iv 3.2.1 The GTTM and its Application to Latin Music . . . . . . 15 3.2.2 Desired Results . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.3 Design Philosophy . . . . . . . . . . . . . . . . . . . . . . 17 3.2.4 Well-Formedness Rules . . . . . . . . . . . . . . . . . . . 19 3.2.5 Preference Rules . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 Agent System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.4 Generative Methods . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4.1 Basic Rhythm Selection . . . . . . . . . . . . . . . . . . . 26 3.4.2 Phrasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4.3 Fills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4.4 Chatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.5 Design Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4 System Architecture 30 4.1 Agent Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.2 Class Hierarchy and Roles . . . . . . . . . . . . . . . . . 31 4.1.3 Information Flow . . . . . . . . . . . . . . . . . . . . . . 34 4.2 High Level Representations . . . . . . . . . . . . . . . . . . . . . 38 4.2.1 Representation Classes . . . . . . . . . . . . . . . . . . . . 38 4.2.2 Human Readability . . . . . . . . . . . . . . . . . . . . . . 41 4.2.3 Identities . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.4 Representations By Hand . . . . . . . . . . . . . . . . . . 44 4.3 Low Level Music Representation . . . . . . . . . . . . . . . . . . . 45 4.4 Architecture Summary . . . . . . . . . . . . . . . . . . . . . . . . 45 5 Music Listening 46 5.1 The Annotation Class . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2 Feature Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2.1 Harmonic Analysis . . . . . . . . . . . . . . . . . . . . . . 48 5.2.2 Pattern Analysis . . . . . . . . . . . . . . . . . . . . . . . 51 5.3 Rhythmic Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 52 v 5.4 Dissection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.5 Music Listening Summary . . . . . . . . . . . . . . . . . . . . . . 54 6 Generative Methods 56 6.1 Basic Rhythm Selection . . . . . . . . . . . . . . . . . . . . . . . 56 6.2 Ornamentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.2.1 Phrasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.2.2 Fills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.2.3 Chatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.2.4 Transformations . . . . . . . . . . . . . . . . . . . . . . . . 60 6.3 Modularity and Division of Labour . . . . . . . . . . . . . . . . . 61 6.3.1 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.4 Generative Methods Summary . . . . . . . . . . . . . . . . . . . . 62 7 Results and Discussion 63 7.1 Music Listening . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7.1.1 Chordal Analysis . . . . . . . . . . . . . . . . . . . . . . . 64 7.1.2 Chord Pattern Analysis . . . . . . . . . . . . . . . . . . . 65 7.1.3 Phrasing Extraction . . . . . . . . . . . . . . . . . . . . . 66 7.1.4 Final Dissection . . . . . . . . . . . . . . . . . . . . . . . . 67 7.2 Listening Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 7.3 Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 7.3.1 Structural Assumptions . . . . . . . . . . . . . . . . . . . 70 7.4 Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 8 Future Work 74 8.1 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 8.1.1 Chord Recognition . . . . . . . . . . . . . . . . . . . . . . 74 8.1.2 Pattern Analysis . . . . . . . . . . . . . . . . . . . . . . . 75 8.2 Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 8.2.1 Ornament Selection . . . . . . . . . . . . . . . . . . . . . . 76 8.2.2 Groove and Feel . . . . . . . . . . . . . . . . . . . . . . . . 77 8.2.3 Soloing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 vi 8.3 Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 8.4 Agent Environment . . . . . . . . . . . . . . . . . . . . . . . . . . 79 8.5 Long Term Improvements . . . . . . . . . . . . . . . . . . . . . . 79 9 Conclusions 83 A Musical Background 85 A.1 History and Use of the Timbales . . . . . . . . . . . . . . . . . . . 85 A.2 The Structure of Salsa Music . . . . . . . . . . . . . . . . . . . . 89 A.3 The Ro^le of the Timbalero . . . . . . . . . . . . . . . . . . . . . . 90 A.4 Knowledge Elicitation . . . . . . . . . . . . . . . . . . . . . . . . 91 B MIDI Details 92 B.1 MIDI Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 B.2 MIDI Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 C jMusic 95 C.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 C.2 Alterations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 C.3 jMusic Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 D Listening Assessment Test 99 E Example Output 101 Bibliography 108 vii List of Figures 3.1 Representation Structure . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Example section: the montuno from Mi Tierra (Gloria Estefan), leading up to the timbales solo . . . . . . . . . . . . . . . . . . . . 18 3.3 Possible Network Structures . . . . . . . . . . . . . . . . . . . . . 22 3.4 Possible Distributed Network Structure . . . . . . . . . . . . . . . 23 3.5 Music Messages Timeline . . . . . . . . . . . . . . . . . . . . . . . 24 3.6 Final Agent Architecture . . . . . . . . . . . . . . . . . . . . . . . 25 4.1 Overview of System Structure . . . . . . . . . . . . . . . . . . . . 31 4.2 Class Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3 Message Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4 Example jMusic XML File . . . . . . . . . . . . . . . . . . . . . . 36 4.5 SequentialRequester and CyclicResponseCollector (cid:176)ow diagrams . 37 4.6 Difierent sets of notes which would be classifled as as C major . . 40 4.7 Ambiguous Chords . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.8 Example fragment of Section textual output . . . . . . . . . . . . 43 5.1 Analysis Operations . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.1 Generative Structure . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.2 Rhythm Selection Logic . . . . . . . . . . . . . . . . . . . . . . . 58 7.1 Guitar part for bars 22-25 of Mi Tierra, exhibiting split bar chords 65 7.2 Phrasing under the solos (bars 153-176) . . . . . . . . . . . . . . . 66 8.1 Chunk Latency for the Agent System . . . . . . . . . . . . . . . . 80 viii A.1 Example Timbales setup (overhead view) . . . . . . . . . . . . . . 86 A.2 Scoring Timbale Sounds . . . . . . . . . . . . . . . . . . . . . . . 88 A.3 Standard Son Claves . . . . . . . . . . . . . . . . . . . . . . . . . 88 A.4 Basic Ca¶scara pattern, with a backbeat on the hembra . . . . . . 89 C.1 jMusic Part, Phrase and Note Structure . . . . . . . . . . . . . . 96 ix
Description: