IMPROTEK, INTEGRATING HARMONIC CONTROLS INTO IMPROVISATION IN THE FILIATION OF OMAX Jérôme Nika Ircam - Paris, then Télécom ParisTech 46 rue Barrault - 75013 Paris jerome.nika@telecom-paristech.fr Marc Chemillier Centre analyse et e mathématique sociales EHESS, 190 avenue e France - 75013 Paris chemilli@ehess.fr ABSTRACT We introuce ImproteK, a system integrating a rhythmic framework an an unerlying harmonic structure in a context of musical improvisation. In the filiation of the improvisation software OMax [4, 3, 13], it is built on the factor oracle structure to take avantage of the particularly relevant an rich characteristics of this automaton in a musical environment [5]. Moreover, it can aapt to a regular beat an prouce improvisations following a given chor progression. ImproteK is conceive as an interactive instrument eicate to performance: its improvisations are base on the style moeling performe on live playing or on an offline corpus. Combine with pattern reuse techniques, this moeling expans on harmonization an arrangement in a harmonic interaction moule. 1. INTRODUCTION The aim of ImproteK is to combine style moeling an interaction to install an original ialogue between musicians an a virtual improviser feeing its inspiration on their playing. Both these paraigms an the automaton structure at the heart of its implementation (section 2) make this system a cousin of the improvisation software OMax [4, 3, 13] conceive an evelope at Ircam. Following previous works on musical style moeling by G. Assayag et. al [6], OMax is capable of learning the style of a human improviser thanks to a representation base on the oracle structure introuce by C. Allauzen et. al [1] extene to a musical context [5]. The software buils a moel of a musician s playing in real-time, an is then able to navigate through this representation by following ifferent paths from that taken by the musician. This leas to generate original improvisations with a common aesthetics. With the same intention, ImproteK focuses on measure music supporte by an unerlying harmonic structure. It provies an enriche interaction by taking the beat into account in the framework of a given chor progression (section 3). This conception of improvisation is mae concrete by an architecture enabling its integration in a musical ban whose tempo can be extracte an followe (section 4). Finally, it introuces harmonic interaction by extening style moeling to the scope of harmonization an arrangement (section 5). The purpose of this paper is first to recall some general principles unerlying both ImproteK an OMax approaches, an then to escribe the specific evelopments of the ImproteK software. 2. MUSICAL STYLE MODELING AND ORACLE STRUCTURE 2.1. Style moeling in improvisation an harmonization Since M&Jam Factory [22], R. Rowe s Cypher [19], or G. Lewis Voyager [14], often consiere as the first realtime interactive systems, many virtual improvisation partners have been conceive. Most of them benefite from the evelopment of machine learning techniques with the growing iea to get always closer to the interacting human performer s iscourse. Among them, the Continuator [16] conceive by F. Pachet moels the musical input using an extene Markovian moel to create new phrases from this learning. As in OMax free moe, there is no rhythmic perception to enable a synchronization with the musician. On the other han, GenJam [7] evelope by J. Biles is closer to the previous experiments of OMax with a beat moe: the software provies an accompaniment with a given tempo to support a musician s improvisation. After listening, it repeats some sequences moifie through a genetic algorithm. B. Thom s Ban Out of a Box [21] also involves a non-interactive computer accompanist with a fixe tempo in a traing fours interaction scheme where a human improviser an a virtual partner repeately call an respon in four-bar chunks. Each bar of the human improvisation is assigne to a cluster calle playing moe, an the computer response is constitute by 4 bars belonging to the same sequence of moes. This last example introuces the recurring issue of segmenting an representing the musical inputs. This point is particularly crucial in the corpus-base systems ealing with harmonization, arrangement or accompaniment such as ImproteK. Whether they are interactive an eicate to performance or conceive to be use offline, these systems can basically be classifie accoring to two characteristics: the exclusive use of formalize musical rules an the use of a musical corpus (see [15] for the positioning of ImproteK within a more exhaustive classification system). _180
In this last category, the corpus can be consiere as a training environment to create generative moels (among them C. Chuan an E. Chew [11], Microsoft Mysong- Songsmith software [20]) an/or as a musical memory in which fragments are retrieve an combine to create the new material (G. Ramalho s jazz bass player ImPact [18]). The efinition of the segmentation unit in the corpus processing is one of the key ifferences: the grain can be key notes of a reuce meloy in C. Chuan an E. Chew s system, a single chor in Songsmith an the software Ban in a Box (PG Music), or particular chor chunks in G. Ramalho s ImPact. The iea is to fin the right balance between long enough slices to provie plausibility an coherence in the returne accompaniment, an fine enough slices to avoi recopying too long an ientifiable segments from the corpus. In the case of Improtek, the chosen unit is the beat. Inee, the oracle structure prevents from choosing between musical smoothness an innovation by proviing continuity by construction, an enables to work with such a fine grain. 2.2. Oracle an pattern recognition The oracle was initially conceive for optimal string matching, an was extene for computing repeate factors in a wor an for ata compression. This acyclic automaton represents at least all the factors in a wor, an the incremental construction algorithm is time an space linear in its length (for the etails of the construction algorithm, see [1]). The formal properties of the oracle structure are etaile in the founing articles, an fully applie to the issue of stylistic reinjection [4] in several OMax papers. We briefly summarize here the tools proviing the continuity an coherence of the sequences generate through an oracle: the forwar transitions an the suffix links. The forwar transitions (forwar links, plain lines) enable to reach every sub-pattern in the original sequence starting from the initial state. In this way, every progression between consecutive states of the original sequence can be generate. a b c a 0 1 2 3 4 5 b c b c 6 7 8 Figure 1. Oracle for the sequence abcabc: generation of a sub-pattern starting from the initial state. Fig. 1 shows the oracle for the sequence abcabc an illustrates this point by isplaying a path using forwar transitions to generate the sub-sequence bc (0, 2, 3, 8), originally occurring between the states 5 an 8. The oracle also locates the repeate sub-pattern in the original sequence with the suffix links (backwar links, ashe lines). They point at the final state of the previously encountere occurrences of a pattern. a b c a 0 1 2 3 4 5 b c b c 6 7 8 Figure 2. Oracle for the sequence abcabc: repeate sub-pattern. In the example of fig. 2, a suffix link connects the states 7 an 3. 3 is inee the leftmost position where a longest repeate suffix of the sequence ening in 7 (abcabc) is recognize: bc. The oracle structure can be use as a tool to create new sequences by a non-linear navigation following the previously introuce links thanks to its unerstaning of the logic in the progressions present in the strings. In a musical application, its ability to preserve the iscourse of the original material enables to evelop an aesthetics close to that of the musicians in interaction. 3. IMPROVISING WITHIN A METRIC AND HARMONIC FRAMEWORK 3.1. The beat hypothesis The philosophy of the current version of OMax is to turn every single musical event into a state in an oracle object. The free real-time navigation [2] through a thus structure memory makes it an interactive instrument eicate to improvisation in a free musical context. The approach of the ImproteK project iffers by the integration of two paraigms. First, its improvisations take place in an unerlying harmonic structure represente by a chor progression we will refer to as gri. In this way, it makes the system able to expan its moeling on harmonization an arrangement. Then, it takes a metric framework into account by setting the beat as the elementary unit in its acquisitions, restitutions, an generations. The only musical hypothesis is therefore the existence of a regular beat in the material listene an prouce by ImproteK. The tenancy to the synchronization with a perioic beat being a eep universal of the human music perception [17], this sole assumption oes not make the system oriente towars a restricte musical fiel. Starting from this point, we a a notion of labels making some musical slices separate by beats, making them equivalent (see section 5.1.2). This process enriches the set of possible combinations, but oes not carry any harmonic hypothesis. Inee, as iscusse in the last section, the references to the jazz iiom through this article come from the context in which ImproteK has been use so far. _181
3.2. Moe beat oracles The improvisation moule is built on a previous version of OMax (OMax 2.0, 2004) conceive as a Lisp library uner the OpenMusic environment [9]. This version implemente the oracle structure both in a free improvisation context (moe free, irection aopte by the current version of OMax) an with a regular beat (moe beat, starting point of ImproteK). In this view, each state of the oracles represents a musical slice whose uration is given by the current tempo an which contains ifferents types of events happening between two beats. These events can be musical MIDI sequences - meloy or accompaniment fragments - or symbolic information such as chor labels. During the generation steps, these ifferent features constituting the states will sometimes be consiere as elementary outputs concatenate in a fragment reuse process, an sometimes seen as labels to compare with the given path to follow in the navigation through the oracle. 3.3. Learning an improvising with the live oracle ImproteK improvises by retrieving an combining preexistant elementary units: the new phrases are built by concatenating beat slices coming from its musical memory. These fragments are not inepenently an ranomly rawn but continuously collecte by following the chosen harmonic gri supporting the musical session as a guieline. This process involves a first instance of the oracle structure: the live oracle, which carries its learning process out on the phrases playe by the musicians (fig. 3). These MIDI inputs are inee inexe beat by beat in real-time by the chor labels of the current harmonic gri (see section 4.2) an are therefore formate for the builing of this object. Live Oracle Figure 3. Learning the live oracle What we call improvise is the generation of new musical phrases using the memory store in this live oracle. To o so, the chor labels in the oracle are consiere as inexes in the context of a constraine navigation, a heuristic esigne by G. Assayag. This mechanism amounts to searching sub-patterns of an input sequence (here the harmonic gri) in a ifferent sequence (here the oracle s harmonic labels). When a label matches, the meloic beat slice present in the state is returne to be ae to the the sequence constitute by the results of the previous steps. 3.4. Constraine Navigation an continuity To improvize following a gri means here to follow a path in the automaton using transitions inexe by labels coming from that gri. At each step, if no matching label is foun from the current state, the navigation tries to follow a suffix link pointing on an other state where the require label coul be rea. The suffix links provie the existence of a common context between both concatenate fragments in the orignal sequence use to buil the oracle. In this way, the navigation first looks for continuity by trying to stick to the previously learne progressions. Then, it searches for the labels inepenently of the local context if they o not appear, even after transposition, in the chosen oracle. A continuity parameter is teste at each step of the calculation. It counts the number of successive forwar transitions followe uring the navigation, an then gives the length of the uplicate segments from the sequence in the oracle. By imposing a maximum continuity parameter, one can therefore quantify the wishe balance between fielity to the original sequence an originality in the generate improvisation: a high value will lea to a high ressemblance whereas a low value will bring more surprises. The constraine navigation process consists in reaing the successive labels of the input gri to look for beats inexe by these same labels in the oracle. If the current continuity parameter oes not excee the impose maximum continuity, the search is operate following grae moes: Continuity moe: If its label matches, follow a forwar transition, upate the current beat position in the oracle, an output the associate meloy fragment. If not, switch to Suffix moe if operating suffix links are foun, otherwise switch to Nothing moe. Suffix moe: Follow the suffix link pointing on the longest repeate suffix to reach a matching label (see fig. 4), upate the current beat position in the oracle, an output the associate meloy fragment. Otherwise switch to Nothing moe. Nothing moe: The pattern matching is performe inepenently of the context an the label is searche in the whole oracle. A transposition can be use if necessary. Fig. 4 shows an example of generation step. At the current stage, the chor labels, b an c have been searche an foun in the live oracle, an the concatenation of the associate musical fragments D, B an C forms the _182
b c a Input : Chor labels sequence (gri) Percussion auio inputs Beat tracking Local tempo Current position in the gri Improvisation MIDI inputs Segmentation Labelling Selection Settings Play following the current gri a b c a b c A B C A' D B' C' D' Performer INTERFACE Live Oracle Learning Generation Save improvisations D B' C' A' Output : Improvisation Figure 4. Constraine navigation through the live oracle phrase being built. The current position in the oracle is the next-to-last state (c / C ) an the following chor label rea in the input gri is a. No forwar transition pointing on a matching label can be foun, so we switch to suffix moe. The suffix link starting from the current state points, by efinition, on the final state of the lefmost repeate suffix of bc (bc): (c /C). A forwar transition matching the searche label a is foun in this state. So we finally follow the suffix link to jump from (c /C )to(c/ C) where we arrive in the common context (bc) to be able to reach the new beat (a/a ) The notion of common context is crucial because it ensures coherence an smooth musical transitions in the generate sequences even if the navigation involves jumps between ifferent zones of the oracle. Inee, in the case of this exemple, neither the input chor labels sequence nor the output musical segment can be foun on their own in the memory of the live oracle. 4. TOWARDS AN INTERACTIVE INSTRUMENT 4.1. Architecture The live performance from the musicians is receive, segmente, formatte an save in real-time via an interface evelope uner Max/MSP. Through this same interface, the ImproteK user selects a symbolic harmonic gri which constitutes the spinal column of the improvisation. Then, he has access to control parameters to guie the calculation of ifferent kins of musical phrases: new improvisations accompanie or not (see section 5) or live arrangements of the gri (see paragraph 4.5). These processing instructions are sent via OSC protocol to the OpenMusic improvisation moule introuce in the previous section (fig. 5), following therefore the global architecture of OMax 2.0 who worke in live interaction with Max/MSP through a basic interface who i not eal with the tempo management expose in the following paragraph. Uner this version, a metronymic beat was impose by the computer. This conition necessarily implie the loss of a part of the musical richness, an constraine the Figure 5. Architecure IMPROVISATION MODULE musician s expression. Base on this analysis, a tempo following moule was implemente to extract the tempo irectly from the current improvisation session. 4.2. Get rhythm During the performance, an external source of beat is require to segment the inputs from the musician in the listening process, an to play phrases rhythmically fitting the current improvisation. To o so, ImproteK integrates the association of a beat tracker an a score follower acting as a sequencer by emitting in real-time the current position in the harmonic gri. First, it marks every beat of the listene live improvisations with the current chor label. Then, the phrases returne by the improvisation moule being labelize sequences, it triggers the playing of the corresponing beat slices. The aim of the ImproteK project is to be a proper interactive instrument fining its place within a ban. It was therefore funamental that its use i not limit creativity an expressivity by suborinating the musicians to a metronomic tempo ictate by its outputs. The Max/MSP beat tracker object [8] was especially evelope to be integrate into an environment relate to OMax to result in a richer musicality, the previous applications of the moe beat oracles involving a fixe tempo impose by the system. This moule processes MIDI or auio streams (for example the rhythm section of the ban) an continually estimates the local tempo to be use to generate an play improvisations ajuste to the necessarily variable human beat. During an initialization phase, the user provies a tempo inication with a manual time beating whose goal is also to give the initial phase by inicating the absolute ates of the beats in orer to avoi an offbeat synchronization. Following this stage, the tempo variations are calculate throughout the whole performance (the escription of the beat tracker is not the subject of the present paper, more etails can be foun in [8]). This signal is then use as a clock to trigger the ifferent elements constituting the sequences loae in Antescofo. _183
4.3. Using a score follower as a sequencer Antescofo [12] is a polyphonic score following system an a synchronous programming language for musical composition conceive by A. Cont. This object, evelope as an external moule for Max/MSP an PureData programming environments, conucts an automatic recognition of music score position from a real-time auio stream. It enables the synchronization of an instrumental performance with the computer realize elements of an electronic score. The sequences calculate by the Lisp/OpenMusic moule are written an save as Anstescofo scores. The phrases thus generate broaen the improvisations collection an are available to be loae by the performer uring the improvisation: in our use of Antescofo, the beats provie by the beat tracker object act as the notes in the electronic score, an the contents to be triggere are the beat slices. Finally, an improvisation generate from an acquisition performe at a given tempo can be playe with a ifferent one since the time notation uner the Antescofo format is relative. 4.4. Segmenting an inexing the inputs This couple of objects in charge of the beat management is foun ownstream to play the generate sequences, an equally upstream in the live acquisition process. The improvisation session takes place in the scope of a known harmonic gri, an this last is written as a progression of chor labels, each of them being associate to a numbere beat uner the Antescofo format. In this way, a live inexing of the MIDI inputs can be performe with these harmonic labels. We use a particular encoing to mark the MIDI streams: the channel 16 is eicate to the gri representation with conventions to notify the root an the type of the chors which are receive from Antescofo. In this way, the MIDI buffers use by the improvisation moule contains all the require information of segmentation an inexing to buil new oracles or musical phrases. 4.5. A source of proposals ImproteK is conceive as an instrument playe by a fulltime performer interacting with the rest of the ban. He pilots the system through a graphical interface an controls in real-time the parameters of both steps of learning an generation which are initiate on eman. During the performance, he selects the musical phrases given as inputs for the style moeling, etermines the current oracles (the live oracle as well as the instances involve in the harmonization an arrangement moule introuce in section 5) an sets technical parameters such as the maximum continuity parameter in the navigation for every oracle. Among other characteristics, the learning material, the length, or even the bolness of the improvisations are therefore left to his iscretion. The performer is not only in charge of the listening an learning but he also fully leas the playing via keyboar controls. He has access to phrases generate from the last musical events as well as the ones from the previous sessions. Different forms of improvisation are available: they can be for instance meloic or accompanie sequences, or live arrangements of the gri, an he can easily an immeiately switch phrases in real-time in a continuous musical iscourse. Finally, the part playe by ImproteK can evolve uring an improvisation session: it is actually able to be soloist an/or accompanist epening on the nature of the sequences chosen by the performer to fill the live oracle. Inee, making this oracle listen to an accompanist s playing will lea to perform real-time arrangement of the harmonic gri. The secon way to eal with accompaniment is the harmonization an arrangement moule introuce in the following section. 5. HARMONIZED AND ARRANGED IMPROVISATIONS The harmonization an arrangement moule can be use in an autonomous way as an inepenent block proucing an accompaniment for a meloy without interacting in real-time. Yet, it was conceive to be integrate in the wier environment of ImproteK to compose new accompanie improvisations. It oes not use any musical rule an is exclusively base on a corpus which is simultaneously seen as a learning groun to extract empirical harmonization mechanisms, an as a musical memory in the framework of a pattern reuse technique to make the accompaniment concrete once it has been calculate. 5.1. Learning step 5.1.1. The corpus The learning of the corpus is performe on three features: the meloic track (theme, solo improvisation, etc.), the accompaniment track, an the associate harmonic gri. It is carrie out on live performances by musicians an consists for the moment in jazz stanars an pieces by Bernar Lubat. We refer to corpus to esignate the set of moels extracte from an offline learning as well as those create uring the current performance which are immeiately available for generation: once again, the system listens to the musicians, segments the inputs by beat, an learns these sequences as well as the associations between the three features by builing oracle objects. The learning step is actually ouble. A couple of oracles is built for every element of the corpus: an harmonization oracle, an an arrangement oracle (fig. 6). The harmonization oracle recors the sequence of associations between the meloic fragments an the chor labels of the beats it covers. In the case of the arrangement _184
Harmonization Oracle 1 o 0 1 r 2 a 3 c 4 l 5 e 6 Arrangement Oracle r a c l e............ Figure 6. Learning the harmonization an arrangement oracles. 2 (o) 0 1 (r) 2 (a) 3 (c) 4 (l) 5 (e) 6 oracle, the concerne associations involve the chor labels an the fragments of accompaniment. As their names suggest, they will be use to associate a symbolic chor progression with a meloic track, an a accompaniment track with a symbolic chor progression, respectively. Figure 7. Suffix links an equivalence classes. 5.1.2. Equivalence This incremental builing, as wells as the pattern matching escribe in the next paragraph (5.2.1), is actually performe on equivalence classes. In the case of a harmonization oracle, two states are consiere as equivalent if they are inexe by the same notes without taking into consieration their uration, orer, or repetition in the beat slice. In the same way, two states of an arrangement oracle are equivalent if they are inexe by the same chor label whatever the associate fragment of accompaniment is. These equivalences have been introuce to avoi the unprouctive rigiity which coul have been brought by a strict equality criterion. The consequence regaring the oracles structure impacts the number of operating suffix links as illustrates the simplifie example in fig 7, applie to a character string: an oracle built on the wor oracle. In the first example, every suffix link points on the initial state because no repeate sub-pattern has been foun (every letter only appears once). In the secon example using the equivalence classes vowels an consonants, we observe repeate sub-patterns an the structure is much more complex. 5.2. Generation step 5.2.1. Harmonizing an arranging in a cascae The whole harmonization an arrangement process amounts to repeating the mechanism of constraine navigation in a cascae, first with a chosen harmonization oracle then with a chosen arrangement oracle (fig. 8). Input : segmente phrase Current harmonization oracle Current arrangement oracle Output : accompaniment track Figure 8. Harmonization an arrangement process. _185
The harmonization outputs a chor labels progression, an this symbolic sequence therefore becomes the path to follow for the navigation in the chosen arrangement oracle (fille by sequences of associations between meloic fragments an chor label slice by beat). The pattern matching is this time performe on chor labels to output a sequence forme by the concatenation of the accompaniment fragments foun in every stage of the research. 5.2.2. Formal intermeiary It is important to note that, even if an intermeiate step involves symbolic ata such as chor labels, no harmonic rule is use to perform harmonization an arrangement. The enomination of this formal intermeiary is only useroriente to make performance more intuitive: the system itself is unaware of the musical meaning of this labeling an only consiers two chor labels as two inexes to compare. The insertion of this formal language at an intermeiate level separating the process in two ifferent steps is motivate by three reasons. First, it naturally comes from the usual notation in jazz scores as we foun in the Realbooks where a meloy is facing a corresponing chors label progression. Then, it enables to multiply the possibilities: a phrase can inee be harmonize with a given oracle an then arrange using an arrangement oracle learne on a completely ifferent corpus. Finally, it will allow to implement in a future evelopment an optional level of chor substitutions base on a grammar [10]. Furthermore, the terms harmonization an arrangement come from the fact that ImproteK has been use so far in tonal jazz sessions. In other musical contexts, its genericity enables an unerstaning of other forms of vertical associations that can be inexe in an agnostic way with an other grammar. 6. EXPERIMENTS AND RESULTS ImproteK has been use as a virtual partner by professional musicians, in particular French jazz musician Bernar Lubat uring improvisation sessions conucte in Uzeste in 2011. Vieo an auio examples can be foun at http://ehess.moelisationsavoirs.fr/improtech/improtek. Some of them show the real-time control of the software through the Max/MSP interface (see for instance the improvisation base on Erroll Garner s mambo style transcriptions). The irect interaction of the computer with a live musician is illustrate by improvisation sessions where Bernar Lubat an ImproteK alternately play as soloist an accompanist, or trae choruses. Other series illustrate the wie variety of results for a same input in the harmonization an arrangement moule epening on the user s choice to use ifferent parts of the corpus for both steps, an on the continuity he impose. It goes from imitation by choosing a same part of the corpus for the live, harmonization, an arrangement oracles, to originality or even extravagance when completely unrelate oracles are use. 7. CONCLUSION We escribe a music generation system which is able to unerstan the logic of the horizontal an vertical associations in a live musical improvisation performance to become itself a source of proposals by eveloping its own aesthetics close to that of its partners. Its prime material is inee their playing. It is use at the same time as a learning groun for the style moeling, an as a musical memory to evelop its own improvisations. The properties of the oracle structuring this memory enable to get over the ilemma innovation vs. coherence by ensuring continuity by construction, an therefore giving the possibility to work with a fine grain: the beat is set as the elementary unit in the calculation, an its restitution is mae possible by following a beat tracker to reach a better interaction. ImproteK is inee conceive as a proper instrument an requires a full-time performer to manage the learning, the generation, an the playing in real-time. It can alternately be soloist or accompanist an is even capable of creating accompanie improvisations via the harmonization an arrangement moule. Current work is evote to the evaluation of the compatibility between the harmonic progression of the current session an that of the accompaniment returne by this moule. For the moment, the performer is given the comparison between both gris through the interface which isplays the respective chor labels. This stuy will lea to a better integration of the harmonic interaction in the instrument, an will make its use more intuitive. Acknowlegment This work is realise with the support of the French National Research Agency, in the framework of the project IMPROTECH, ANR-09-SSOC-068. We wish to thank the OMax family Gérar Assayag, Georges Bloch, an Benjamin Lévy for the fruitful exchange of experiences an ieas regaring the conception an implementation of ImproteK. We thank Laurent Bonnasse-Gahot who mae it get rhythm with the beat tracker, Carlos Agon an Jean Bresson for their avice concerning OpenMusic, an Arshia Cont for the custommae Antescofos. Finally, we want to express special thanks to La Compagnie Lubat for the always enriching sessions. 8. REFERENCES [1] C. Allauzen, M. Crochemore, an M. Raffinot, Factor oracle: A new structure for pattern matching, in SOFSEM 99: Theory an Practice of Informatics. Springer, 1999, pp. 758 758. [2] G. Assayag an G. Bloch, Navigating the oracle: A _186
heuristic approach, in International Computer Music Conference, vol. 7, 2007, pp. 405 412. [3] G. Assayag, G. Bloch, an M. Chemillier, Omaxofon, Soun an Music Computing (SMC), 2006. [4] G. Assayag, G. Bloch, M. Chemillier, A. Cont, an S. Dubnov, Omax brothers: a ynamic topology of agents for improvization learning, in Proceeings of the 1st ACM workshop on Auio an music computing multimeia. ACM, 2006, pp. 125 132. [5] G. Assayag an S. Dubnov, Using factor oracles for machine improvisation, Soft Computing-A Fusion of Founations, Methoologies an Applications, vol. 8, no. 9, pp. 604 610, 2004. [6] G. Assayag, S. Dubnov, an O. Delerue, Guessing the composers min: Applying universal preiction to musical style, in Proceeings of the International Computer Music Conference, 1999, pp. 496 499. [7] J. Biles, Genjam: Evolutionary computation gets a gig, in Proceeings of the 2002 Conference for Information Technology Curriculum, Rochester, New York, Society for Information Technology Eucation, 2002. [8] L. Bonnasse-Gahot, Donner à omax le sens u rythme: vers une improvisation plus riche avec la machine, École es Hautes Étues en sciences sociales, Tech. Rep., 2010, http://ehess.moelisationsavoirs.fr/improtech/ocs/ L.Bonnasse-Gahot-beat-tracking2010.pf. [9] J. Bresson, C. Agon, an G. Assayag, Openmusic 5: A cross-platform release of the computer-assiste composition environment, in 10th Brazilian Symposium on Computer Music, Belo Horizonte, MG, Brésil, 2005. [14] G. Lewis, Too many notes: Computers, complexity an culture in voyager, Leonaro Music Journal, pp. 33 39, 2000. [15] J. Nika, Intégrer l harmonie ans un processus informatique improvisation musicale, Master s thesis, Master ATIAM, Université Pierre et Marie Curie, Paris VI - IRCAM, 2011, http://articles.ircam. fr/textes/nika11a/inex.pf. [16] F. Pachet, The continuator: Musical interaction with style, Journal of New Music Research, vol. 32, no. 3, pp. 333 341, 2003. [17] A. Patel, J. Iversen, M. Bregman, I. Schulz, an C. Schulz, Investigating the human-specificity of synchronization to music, in Proceeings of the 10th International Conference on Music an Cognition. Sapporo, Japan, 2008, pp. 100 104. [18] G. Ramalho, P. Rollan, an J. Ganascia, An artificially intelligent jazz performer, Journal of New Music Research, vol. 28, no. 2, pp. 105 129, 1999. [19] R. Rowe, Interactive music systems: machine listening an composing. MIT press, 1992. [20] I. Simon, D. Morris, an S. Basu, MySong: automatic accompaniment generation for vocal meloies, in Proceeing of the twenty-sixth annual SIGCHI conference on Human factors in computing systems. ACM, 2008, pp. 725 734. [21] B. Thom, BoB : an interactive improvisational music companion, in Proceeings of the fourth international conference on Autonomous agents. Citeseer, 2000, pp. 309 316. [22] D. Zicarelli, M an jam factory, Computer Music Journal, vol. 11, no. 4, pp. 13 29, 1987. [10] M. Chemillier, Towar a formal stuy of jazz chor sequences generate by steeman s grammar, Soft Computing-A Fusion of Founations, Methoologies an Applications, vol. 8, no. 9, pp. 617 622, 2004. [11] C. Chuan an E. Chew, A hybri system for automatic generation of style-specific accompaniment, in 4th Intl Joint Workshop on Computational Creativity, 2007. [12] A. Cont, Antescofo: Anticipatory synchronization an control of interactive parameters in computer music, in Proceeings of the International Computer Music Conference, 2008. [13] B. Lévy, Visualising omax, Master s thesis, Master ATIAM, Université Pierre et Marie Curie, Paris VI - IRCAM, 2009. _187