Frankenstein: a Framework for musical improvisation. Davide Morelli

Similar documents
REMEMBERING THE FUTURE : AN OVERVIEW OF CO-EVOLUTION IN MUSICAL IMPROVISATION.

2 2. Melody description The MPEG-7 standard distinguishes three types of attributes related to melody: the fundamental frequency LLD associated to a t

Introductions to Music Information Retrieval

Jazz Melody Generation and Recognition

MUSI-6201 Computational Music Analysis

PLANE TESSELATION WITH MUSICAL-SCALE TILES AND BIDIMENSIONAL AUTOMATIC COMPOSITION

Building a Better Bach with Markov Chains

Outline. Why do we classify? Audio Classification

Sudhanshu Gautam *1, Sarita Soni 2. M-Tech Computer Science, BBAU Central University, Lucknow, Uttar Pradesh, India

Music Alignment and Applications. Introduction

TOWARD AN INTELLIGENT EDITOR FOR JAZZ MUSIC

Musical Creativity. Jukka Toivanen Introduction to Computational Creativity Dept. of Computer Science University of Helsinki

DJ Darwin a genetic approach to creating beats

Music Composition with Interactive Evolutionary Computation

Artificial Intelligence Approaches to Music Composition

DAY 1. Intelligent Audio Systems: A review of the foundations and applications of semantic audio analysis and music information retrieval

Music Information Retrieval

Hidden Markov Model based dance recognition

Composer Identification of Digital Audio Modeling Content Specific Features Through Markov Models

TongArk: a Human-Machine Ensemble

Evolutionary Computation Applied to Melody Generation

TEST SUMMARY AND FRAMEWORK TEST SUMMARY

Week 14 Query-by-Humming and Music Fingerprinting. Roger B. Dannenberg Professor of Computer Science, Art and Music Carnegie Mellon University

Various Artificial Intelligence Techniques For Automated Melody Generation

EVOLVING DESIGN LAYOUT CASES TO SATISFY FENG SHUI CONSTRAINTS

CTP431- Music and Audio Computing Music Information Retrieval. Graduate School of Culture Technology KAIST Juhan Nam

Computational Modelling of Harmony

TEST SUMMARY AND FRAMEWORK TEST SUMMARY

A TEXT RETRIEVAL APPROACH TO CONTENT-BASED AUDIO RETRIEVAL

Grade 4 Music Curriculum Maps

A Creative Improvisational Companion Based on Idiomatic Harmonic Bricks 1

K-12 Performing Arts - Music Standards Lincoln Community School Sources: ArtsEdge - National Standards for Arts Education

A PERPLEXITY BASED COVER SONG MATCHING SYSTEM FOR SHORT LENGTH QUERIES

Topics in Computer Music Instrument Identification. Ioanna Karydi

Grade 3 General Music

Curriculum Framework for Performing Arts

Efficient Computer-Aided Pitch Track and Note Estimation for Scientific Applications. Matthias Mauch Chris Cannam György Fazekas

Automatic Labelling of tabla signals

Curriculum Standard One: The student will listen to and analyze music critically, using the vocabulary and language of music.

Drunken Sailor The Melody

Curriculum Standard One: The student will listen to and analyze music critically, using the vocabulary and language of music.

Topic 11. Score-Informed Source Separation. (chroma slides adapted from Meinard Mueller)

Chapter Five: The Elements of Music

Greeley-Evans School District 6 High School Vocal Music Curriculum Guide Unit: Men s and Women s Choir Year 1 Enduring Concept: Expression of Music

Week 14 Music Understanding and Classification

JAZZ STANDARDS OF A BALLAD CHARACTER. Key words: jazz, standard, ballad, composer, improviser, form, harmony, changes, tritone, cadence

Music Composition with RNN

Audio Structure Analysis

CSC475 Music Information Retrieval

Automatic Composition of Music with Methods of Computational Intelligence

Learners will practise and learn to perform one or more piece(s) for their instrument of an appropriate level of difficulty.

Statistical Modeling and Retrieval of Polyphonic Music

The song remains the same: identifying versions of the same piece using tonal descriptors

Music Understanding and the Future of Music

Bach-Prop: Modeling Bach s Harmonization Style with a Back- Propagation Network

Curriculum Standard One: The student will listen to and analyze music critically, using the vocabulary and language of music.

Music Emotion Recognition. Jaesung Lee. Chung-Ang University

Computer Coordination With Popular Music: A New Research Agenda 1

Augmentation Matrix: A Music System Derived from the Proportions of the Harmonic Series

Interacting with a Virtual Conductor

Singer Traits Identification using Deep Neural Network

scale of 1 to 6. *Sightread traditional monophonic hymns on their particular instrument. *Play liturgically appropriate literature in class.

Evolutionary Computation Systems for Musical Composition

NCEA Level 2 Music (91275) 2012 page 1 of 6. Assessment Schedule 2012 Music: Demonstrate aural understanding through written representation (91275)

Music Segmentation Using Markov Chain Methods

CSC475 Music Information Retrieval

Transition Networks. Chapter 5

Music Curriculum Map

BayesianBand: Jam Session System based on Mutual Prediction by User and System

Audio Structure Analysis

Shades of Music. Projektarbeit

Grade Level 5-12 Subject Area: Vocal and Instrumental Music

Algorithmic Composition in Contrasting Music Styles

MUSIC CURRICULM MAP: KEY STAGE THREE:

Norman Public Schools MUSIC ASSESSMENT GUIDE FOR GRADE 8

Machine Learning Term Project Write-up Creating Models of Performers of Chopin Mazurkas

Melody Extraction from Generic Audio Clips Thaminda Edirisooriya, Hansohl Kim, Connie Zeng

FINE ARTS Institutional (ILO), Program (PLO), and Course (SLO) Alignment

CPU Bach: An Automatic Chorale Harmonization System

However, in studies of expressive timing, the aim is to investigate production rather than perception of timing, that is, independently of the listene

Tempo and Beat Analysis

Constructive Adaptive User Interfaces Composing Music Based on Human Feelings

An Integrated Music Chromaticism Model

Composer Style Attribution

Music Complexity Descriptors. Matt Stabile June 6 th, 2008

SAMPLE ASSESSMENT TASKS MUSIC CONTEMPORARY ATAR YEAR 11

CHAPTER 14: MODERN JAZZ TECHNIQUES IN THE PRELUDES. music bears the unmistakable influence of contemporary American jazz and rock.

Automatic Composition from Non-musical Inspiration Sources

Music Structure Analysis

LEVELS IN NATIONAL CURRICULUM MUSIC

LEVELS IN NATIONAL CURRICULUM MUSIC

Improvised Duet Interaction: Learning Improvisation Techniques for Automatic Accompaniment

Curriculum Standard One: The student will listen to and analyze music critically, using vocabulary and language of music.

Music Morph. Have you ever listened to the main theme of a movie? The main theme always has a

Curriculum Standard One: The student will listen to and analyze music critically, using the vocabulary and language of music.

Music Information Retrieval (MIR)

PRESCOTT UNIFIED SCHOOL DISTRICT District Instructional Guide January 2016

MUSIC PERFORMANCE: GROUP

Melody Retrieval On The Web

I. Students will use body, voice and instruments as means of musical expression.

Transcription:

Frankenstein: a Framework for musical improvisation Davide Morelli 24.05.06

summary what is the frankenstein framework? step1: using Genetic Algorithms step2: using Graphs and probability matrices step3: toward mpeg7 whishlist

Frankenstein is an Open Source Framework for music composition and improvisation the team: Davide Morelli www.davidemorelli.it David Plans Casal www.davidcasal.com David's PhD project in UEA (Norwich) Project partially financed by LAM www.livealgorithms.org Goldsmiths College (London)

who is Frank? motivations interest in applying AI techniques to music create a compositional tool an aid while improvising in difficult musical languages (for example: microtonal, spectral, etc..) understand the musical language

who is Frank? objectives capable of jamming with one (or more) human musician rhythm + melody + harmony + structure cross stylistic realtime interactive (not only reactive) usable on stage pass the Turing test

why Frankenstein? Frankensteinian Methods for Evolutionary Music Composition Peter M. Todd & Gregory M. Werner we started from Todd's idea of co evolution because we share the same hubris as Victor Von Frankenstein to keep in mind that our creature will probably be a monster, unable to survive in the real world but we love it!

puredata the software is in the form of a set of pd externals. pd is an audio/video dataflow programming language. why? basilar audio components ready to use it is Open Source nice community easy to prototype an external is an extension: a new object usable as a native object. Externals can be coded in C and C++ (Python, Ruby, C#)

step1: GA traditional GA vs Co evolutionary GA fitness function evolves together with the solutions darwinian selection vs sexual selection: females chosing males nice because it gives us a new soution every generation every solution is somehow related to the previous ones

GA: co evolution 2 populations: male or female males and females have identical genotype structure each generation every female evaluates N males (randomly chosen) one male is selected and becomes father he and the other males can be chosen by another female the child can be both male or female female population changes every generation

GA: the genotype a rhythm is expressed as an array of bits: each genotype is a bar 8 voices 16 beats in a bar I need an array of 16 Bytes to express rhythm: every Byte is a beat every bit tells us if that voice is active or not in that beat

GA: the genotype limits this representation has many limits: only 1 bar long rhythms are possible no triplets, etc..

GA: mutations mutation function implemented: silence where it was an event event where it was silence

GA: crossover crossover function: randomly select a split point N bits 0 to N from mother bits N to genotype length from father sometimes apply the mutation function

GA: fitness fitness functions: how similar are male and female (co evolutionary) how dense is male (traditional) how many consecutive events (traditional)

GArhythm the implemented external is GArhythm has been used on stage: GA2005 in Milan (www.generativeart.com) SMC2005 in Salerno (www.smc05.unisa.it)

chord_melo another GA external same idea applied to tonal melodies unlike other similar works we take care of melody shape instead of exact notes example: original local transitions shape

harmonizer another GA external that generates voicing you give it an initial chord the starting positions (MIDI notes) the target chord And it will generate a correct voicing western musical rules have been coded no need of more than 1 generation

GA limitations GA are really good for evolving musical material (rhythms, melodies) but have no memory not possible to create musical form I can't have A B A I can only have A A' A''

memory Harmony: built an object implementing short term memory of played chords sequences [chords_memory] Learns the probability of chords transitions while you play Once trained can be asked for normal or strange chords sequences We can ask things like: we are in C major tonality, current chord D minor, where did I usually go from here? build a walk 3 chords long from F major to A minor in C major tonality using rarely used chords seqences

[chords_memory] The memory is implemented using an oriented graph where the nodes are the possible chords in a given tonality and the arcs are the transitions from a chord to another The arcs have weight: the probability of that transition in this style The weights are set realtime each time a new chord is added to the memory

How it works (1) Initially each arc has weight = 0 (transition never played) I maj II maj III maj etc.. I min II min etc.. etc.. etc..

How it works (2) Let s say we are in C major tonality, last chord is D min and we want to add C maj. First we translate them in relative names: II min and I maj, then we increment the arc s weight I maj 1 II min

How it works (3) Now next time we ll be in II min we ll know that 1 time we used this transition: from II min to I maj I maj II maj III maj etc.. I min etc.. 0 1 0 II min etc.. 0 etc..

[chords_memory] there are 69 possible chords type 11 possible tones the graph is implemented with a matrix of 11 x 69 x 11 x 69 each cell stores the probability of the transition from chord x to chord y

[chords_memory] Current status: stable, usable and used: In an installation: at SMC05 (Salerno, November 2005, www.smc05.unisa.it ) In a performance: at GA05 (Milano, December 2005, www.generativeart.com ) In a performance at UEA (Norwich, February 2006, www.uea.ac.uk/mus ) Needs improvements: modulations

step2: graphs [chords_memory] was succesfull! Then we tried to apply the same principle to a rhythm maker object (then a melody maker object) GAs have no memory of the played rhythms (nor themes) Using graphs we can store enough informations to represent all the rhythmic (and thematic) material of a musical piece

[rhythms_memory] The idea: Each note of a played rhythm is parsed into simple elements Each rhythm is a linked list of simple elements Each time a rhythm is heard we match it with rhythms in memory: If has some similarity then this is a variation If has too fiew similarity then is a new rhythm

[rhythms_memory] This object is capable of doing a real time rhythmic analysis of the played rhythms While you play it builds a memory of your rhythms and labels each rhythm with a tag (a1, a2, b1, etc..)

[rhythms_memory]: how? Let s say you first play this rhythm It can be expressed as a list of moments.. when each note starts (in musical notation): 1.0/1 2.3/16 3.3/8 1.1/2 2.11/16 3.3/4

[rhythms_memory]: how? Then you play 2 variations of the rhythm 0/1, 3/16, 3/8, ½, 11/16, ¾, 10/12, 11/12 0/1, 3/16, ½, 11/16, 0/1, 3/16, ½, 11/16, ¾

[rhythms_memory]: how? Can be stored as a graph:

[rhythms_memory]: how? The most played nodes are the nodes that make the root rhythm, the kernel of this group of variations:

limits all these externals live in a small world : MIDI simple tempo (4/4) no reference to timbre concrete, electronic, microsound music impossible

mpeg7 Multimedia Content Description Interface we use the audio part tools to extract audio/musical features we use: AudioSpectrumBasis, AudioSpectrumProjection also interesting: AudioSpectrumEnvelope, AudioSpectrumCentroid, AudioSpectrumSpread, AudioSpectrumFlatness, HarmonicSpectralCentroid, HarmonicSpectralDeviation, etc...

mpeg7 its goal is classification possible applications: you whistle a melody and the computer tells you the song name speech detection segmentation automatic description and classification

soundspotter we are using a pd object from M. Casey: [soundspotter2~] what does it do? you give it a soundfile and it will analyze it now you can play an instrument and it will search the closest audio segment in its memory it sounds like it is following you

soundspotter: how? it segments the audio data in frames FFT is computed over each frame (8193 floats) mpeg7 data extracted from FFT (86 floats) only the shape is kept logaritmic frequency space (instead of linear) as Human Auditory System is closer to log than lin

soundspotter: how? searching the database for similar content: extracts mpeg7 features from realtime incoming audio data for each frame in memory: computes the distance the nearest is the most similar

soundspotter: usefull David Casal used it in many concerts in (Belfast, Norwich, London) he used soundfiles with orchestra and choir from Ligeti he is a pianist

extending soundspotter LAM asked us to extend soundspotter we should provide it with memory initially short term only we will apply same code from rhythms_memory (graph, transition matrix) ID, hashes or lexemes?

the easy way: ID exploiting mpeg7 tools implemented in soundspotter we get an estimation of the difference between a specific audio segment and the the segments in memory if a segment is very close it is a repetition if it is quite close it is a variation if it is far it is a new segment

the easy way: ID every new segment has an unique identification number this way you can build a graph and a transition table easy but each instance will have its id list impossible to build a shared memory

common alphabet more interesting is finding a way to share knowledge between instances robust audio hashes: similar audio segments should have similar hashes but how do we get back from hash to audio? lexemes: create an alphabet using only the most common segments used

lexemes the audio stream is fragmented in frames each frame is matched against an alphabet frames changes over time the way they change is the sound fingerprint the alphabet is constructed with: Hidden Markov Models k means

lexemes once we have an alphabet we can consider music as a language and apply NLP techniques we can create a shared long term memory: a cultural context

tomorrow? all our efforts are about syntax what about semantic? associations and emotions? we need a real cultural context for this!

conclusions applying AI techniques to music is hard because is hard to define what music is: many different models to express music syntax who can define its semantic? too subjective, too cultural dependent

frank chronicles summer 2005: first melody externals based on Todd's article fall 2005: co evolutionary GA code applied to rhythm. first graph based externals winter 2005: SMC05 (Salerno), GA05 (Milano), LAM meeting (London). graph based rhythms analyzer and variatiotor. Concert in Belfast, Norwich spring 2006: mpeg7. concert in London. NIME.

links http://www.davidemorelli.it http://www.davidcasal.com http://cvs.sourceforge.net/viewcvs.py/pure data/externals/frankenstein/ www.puredata.info Peter M. Todd: http://www abc.mpib berlin.mpg.de/users/ptodd/ http://mpeg7.doc.gold.ac.uk/ http://www.livealgorithms.org http://www.generativeart.com http://www.smc05.unisa.it

references co evolutionary GA: Frankensteinian Methods for Evolutionary Music Composition Peter M. Todd & Gregory M. Werner lexemes: Sound Classification and Similarity M. Casey audio hashing: Robust Audio Hashing for Content Identification J. Haitsma, T. Kalker, J. Oostveen mpeg7: http://en.wikipedia.org/wiki/mpeg7 k means: http://en.wikipedia.org/wiki/k means HiddenMarkovModels: http://en.wikipedia.org/wiki/hmm