From: AAAI Technical Report SS-93-01. Compilation copyright © 1993, AAAI (www.aaai.org). All rights reserved. REAL-TIME MUSICAL ACCOMPANIMENT BRIDGET BAIRD 7"heCenterfor Arts andTechnology ConnecticutCollege New London CT 06320 USA Abstract. The artificially intelligent computer performer is a software program that enables a computer to accompany, in real-time, live performers. The computer is, in effect, a participating memberof a musical ensemble. It interacts with the musicians by listening to them and it makes musical decisions based on what it hears and what it Imowsabout music. The computer performer uses parallel processing to speed up its response time. The implementation of the system is discussed, the tracking algorithm and the subsequent computer response are described, and then ongoing and future work are outlined. Musical considerations which have influenced the developmentof the system are also discussed. 1. Background Therelationship of musicto artificial intelligence and cognitive science is complexand fascinating. Questions about wheremusicresearch fits in these disciplines, what approacheswill be mostfruitful, andwhatwill be the role of the computerhavebeenstudied. Artificial intelligence and music have a long history of interaction. In 1980 two issues of the ComputerMusicJournal were devoted exclusively to the topic of AI and music. In 1981 Otto Laske published Musicand Mind:An Artificial Intelligence Perspective (Laske, 1981). In 1985 the ACM devoted an issue ACMComputingSurveys to computermusic, and in that issue, in his article on "Researchin MusicandArtificial Intelligence" Curtis Roadsadvocatesapplications of AI methodologyand slrategies to music (Roads, 1885). several of the AAAIsummermeetings there have been workshops on AI and music. Because of the strong influence of AI on computermusic research, parallel processing and neural nets have recently played a significant role in computer music research. The ConnectionMachineat M1T(Vercoe, 1988) is just one notable example. In 1989, two issues of the Computer Music Journal were devoted to neural nets and connectionism. Morerecently there has emergedthe field of cognitive musicology, which "has as its goal the modelingof musical intelligence in its manyforms"and "...[whose] topics of primary concern... ate those of understandingmusicaland musicologicalthought and its link to musical action" (Laske, 1988). The role cognitive science in this field and whetheror not music, becauseit is based in perception, will employthe same methodologies as other branchesof cognitive science, is being studied (Agmon,1990;, Laske, 1988). Also being studied are questions about musical intelfigence and whetherit is different from other intelligences and in particular, its relationshipto linguistics. It is interesting to note that in 1952John Myhill claimedthat "musical thinking cannot be whollyaccountedfor in computational terms"(Kugel,1990;, Myhill, 1952). 127 Thecomputerhas, of course, played an active role in musicresearch. "For the in’st time in the history of musical research, the computer program provided a mediumfor formulating theories of musical activity, whereasprior to its emergenceonly theories of musical artifacts hadexisted" (Laske,1988). Computers are being used to test theories in cognitive musicology, to improviseandcompose,as wonderfullyversatile computer notationtools, andas instruments,tutors, andperformers. It is this last role that wewishto examine moreclosely. For quite a few years computershavebeen used by musicianseither to generatesoundsthat are impossibleto produce on conventional instruments or even as substitutes for conventional instruments. In these capacities they havealso beenused in five performances. But generallythe computerperformerhas beenlike a tape deck, incapable of altering its performance,and thus forcing the other performersto keeppace with it. It is turned on at the beginning of the performance and performsin exactly the samewayfor each performance. "Anessential part of ’real’ musicis the live element,the indefmablebut undeniableinteraction betweenplayers and audiencewhichmakesmusicexciting" (Puckette, 1991). Acomputerperformerthat acts like a tape decknot only has no interaction with the other performers but also prevents those live performersfrom any spontaneity or interaction with each other or the audience. Whatis neededis a moreintelligent computerperformer,capable of interaction and capable of makingadjustments in tempo,dynamics,andexpression. There memanykinds of computerperformers, with varying degrees of control exercised either directly or indirectly by the other participants (Pressing, 1990). The immediate goalof this researchis to producean intelligent computerperformerthat is capable of listening to the other performers,and is able to react and interact in a musical manner,but that is not directly controlled by other performers.Themodelwouldbe a player in a siring quartet, wholistens andreacts to other playersin matters of dynamics and tempo, but whois not a leader in controlling the performance,except within broad bounds as specified by the score. Thecomputerperformerwould playits part or parts froma scoreandalso has availableto it the entire score for the piece. Sucha performerwould be able to changeits tempoand dynamics,and evenff the other performersmademistakes,it wouldbe able to guess where they were and respond appropriately. Such a performer would not have the ability to improvise. Althoughimprovisationis an intriguing area of research, it is not the focus here. Thekind of computerperformer wehavedescribedcould be used both in live perftxmances (a rock concert or a chamberensemble,for example)and for training purposes(practicing for a concerto). The ultimate goal of this research is to learn moreabout musical cognition by producing such a computer performer.Themainissues for this researchare to devise a good tracking algorithm and then to determine an appropriate musical ~. Severalresearchershaveworkedon such a performer. At Carnegie Mellon (Dannenberg, 1984; Bloch and Dannenberg,1985) a computeraccompaniment system was developedthat followsa single live performer.In order to track wherethe live performeris in the score, Blochand Dannenberg formulatedan algorithmthat uses pitches and assigns costs to producethe best possible matchingwith the score. At MIT(Vercoe, 1984; Vercoeand Puckette, 1985) researchers workedindependently on a similar system. Unlike the Dannenbergsystem, this tracking algorithm used both pitch and attack time to make matches.Bothsystemsare limited to input from a single live performer. The Carnegie Mellon system was developedon IBMand Amigamicrocomputersand the MIT system wasoriginally hosted on a VAX. The Artificially Intelligent ComputerPerformer (AICP) was developed on a Macintosh to implement tracking algorithmthatuses wholepatterns of notes in its tracking algorithm(Baird et al., 1989a;1989b;to appear). This tracking algorithm is described morefully below. Bairdextendedthis workto considerinput fromseveral live performersandusedparallel processingin order to achieve this (Baird, 1991).Baird, Blevinsand Zahlerreasonedthat the wayto emulatehowlive performers track whenthey are playingis to considermusicalpatternsas wholeentities and not as isolated notes. Humansprocess notes as musical motivesand not as discrete events in a vacuum. Whenwe hear the opening notes of Beethoven’s Fifth Symphony Fig. I. weconsiderit as a single musicalentity. TheBairdet al. tracking algorithm morenearly reflects this situation. Both the algorithm and the entire AICPare described in moredetail in the rest of this paper. 2. Implementation The artificially intelligent computerperformer is a programwhichruns on ¯ Macintoshcomputer. All input and output isindigital form. Althoughthere aremany 128 intriguing and interesting problems associated with recognizing pitch from analog sources, we decided to consider only digital information, as specified by the MIDIstandard. MIDIstands for Musical Instrument Digital Interface, and is a universal standard for the musical world. MIDIencodes pitch, volume and many other musicalparameters.All synthesizers, for example, comeequippedwith MIDIcapabilities. A variety of MIDI instrumentsare available, and there are evenmicrophones which translate voice and ambient sound into MIDI information. Anydevice that will give MIDIsignals to the Macintoshwill workwith the AICP.The Macintosh receivesand sendssignals througha MIDIinterface, which can be attached to either the modem or printer port. The Macintoshplays its computerpart(s) by sendingsignals through the sameMIDIinterface. Several MIDIdevices maybe connected to the computer, for either input or output, or both. During a live performance, MIDI information is transmitted to the Macthrough the interface. Theinformationthat is neededfor the wacldng algorithmis pitch and duration. Other MIDIinformation about the score, suchas meterand tempo,is also used in the program. The Macintosh will process information from a single live source, but in order to effectively handlemore than one live performer, the Macmust be equippedwith transputers. Transputersare 32-bit RISCmicroprocessors which contain their ownmemoryand which are placed inside the Macintosh to give it parallel processing capabilities. The wansputerscommunicate synchronously with eachother andwith the Mac;each wansputerhas four input/output channels. Whena transputer sends a signal it mustwait until the signal is receivedbeforecontinuing on to the next instruction. Transputers achieve parallelism both by having many of them connected togetherand they also simulateparallelisminternally via high speed switching. It is possible to set up multiple processes to run simultaneouslyon a single transputer. Transputersfit on boards that are placedin NuBus slots; communications amongtransputers are set up with software commands.The Macintosh communicateswith the fn’st transputer on each board. Since our boardseach hold a maximum of four transputers, we arranged the transputersin a star configuration,withthe fwsttransputer on each board communicatingboth with the Macintosh and with the three other transputers. Althoughtransputers on one board can communicate with transputers on other boards via a cable link, we did not choose to do this because most of our communication is between the Macintosh and the transputers and not between two transputers. The transputer programs are written in Logical SystemsC, and the Macintoshhost programis wriuen in MPW C. Whenthe program on the Macintosh first begins, it sendsboot codeto the first transputerson each boardandthenthe Macsends boot codefor the other transputers via the first transputers. All communication betweenthe Macand the transputers passes through the first transputers oneachboard. Whenwefirst started workingwith the transputers weused a commerciallyavailable interface (Express) makecommunicationeasier. Becauseof the relatively large overhead of this system, and because real-time processing is a crucial componentin this system, we eventually scrappedthat interface andhavebeenworking out our own communications. This has enormously speeded up the communication time but also enormously added to our programming time. Wehave established our own broadcast and message passing system, loosely modeledon that of Express. It should be noted that debuggingwith transputers is a moretedious processthan on a conventional machinebecause there is no direct output device. After the program starts up, the user can specifythe musical score to be loaded. These scores must be in standard MIDIformat (most musical notation programs will produce this format). Each part in the score correspondsto a single MIDIchannel. Thepresent limit is eight channels(purely for convenienceandcost). Once the score is loaded,the user has choicesabouteachof the channels (parts). A channelmaybe designatedas a live channel, a channelto be played by the computer,a file channel, or turned off. File channelmeansthat the part will be played from a file. This file maybe either one producedin the MIDIformat, or it maybe a file which has beensavedfroma previousperformance and is in our ownformat. Performancescan be saved for future use or can be specially construed. Since we are considering multiple live inputs andsince our playing abilities are limited by two hands and not muchexpertise, this is an essential feature. It also allowsfor exact replications of performances,whichassists in evaluation of the program and in debugging.The user has additional options: to changethe original tempoof the score, to choosea MIDI port, andto turn off the tranaputers.Theuser is also able to select the type of performance: a live performance with combinationsof live and f’fle instruments, a computer performance with the computerplayingany or all parts of thescore,or a replayof the last live performance. Beforethe performancebegins, the programdoes a pre-performancereading of the score, muchthe waylive musicians might do. Tempoand beat information are noted. Then each live performer (or MIDIchannel) assigned to one or moretranaputers. Thesetranaputers receive the score for that MIDIchannel and during the performance are provided with incoming musical data aboutthat player. At least one transputer keepsa window into the score positionedat whatit believesis the correct location of that performer.Thepreviouslocation and the start of newnotes governwherethis window is placedin the score. If goodmatchesare not obtained, then the windowmovesforwardas newnotes are played. If there are enoughIranaputers,an additionaltransputeris assigned to a single channel,but this tranaputercontinuallychecks the beginningof the score. It assumesthat the player is starting over from the beginning of the piece. Each transputeruses the trackingalgorithmto performa pattern matchof the incominginformationto the score for that channel,and then sends backto the Macintoshan estimate of the location in the score of that live performer.The Macintoshreconciles the information from (possibly) manytransputers and decides on an overall response. Based on its conclusions it plays its owncomputer part(s). Since the computermust emulate a live performer,speed is of the essence. Evaluationsmustbe 129 madequickly so that acceptable real-time accompaniment is feasible. Duringa performancethe AICPis faced with essentially two tasks: to determinethe location in the scoreof each of the live performersand to determinethe tempoand location at whichit itself should play. This involves not only reconciling possibly conflicting informationfromthe various live channelsin a musically informedmanner,but respondingwith its ownpart in a musicallyacceptable manner. 3. Tracking Algorithm This section describes the tracking algorithm of Bairdet al. Thefirst step in determining the correct score position is to treat each live performerseparately. The incoming data for a single live performeris matched to the scorefor that instrument.If there are tranaputersthenthis matchingtakes place on them; otherwise the Macintosh performs the tracking algorithm for a single live performer. This tracking algorithm takes place as follows. The most recently heard notes constitute a performancepattern. This performancepattern is matched to several score patterns. Thepossiblescore patterns are determinedby looking througha "window" into the score. Thecenter of this window is placedat the best guessas to the currentcorrect score position. Scorepatternsare taken within this window.Thesize of the windowand the size of the patterns (both performerand score) are governed processingtime, althoughpatterns are not allowedto be too large becauseof musical considerations. A single performancepattern is matchedto each of manypossible score patterns and a cost is assignedto each match.The minimum cost from all of these is picked, and both the cost and the location in the score of that best matchis conveyedto the Macintosh. Thecost of a matchof a performancepattern to a score pattern is based on both duration and pitch informationfor all the notes in the performance pattern, with the mostrecently heardnotes carryinggreater weight. Pitch mismatchesincur a relatively greater cost than duration ones. In fact, since musicians maybe rather inexact about endingtimesof notes, someof these "gaps" are smoothed over. Rests constitute a type of "note" and, with someslight modifications,are treated as such. One musical problem is to determine whena performer is intentionally playinga rest andwhenthere is merelya gap in the performance. In absolute time it is perfectly possiblefor there to be a rest in the score that is longer than a performer’s pause betweentwo successive notes. Thealgorithmtakes into accountthis kind of scenario. In fact, there are four types of individual note matchesthat are considered.Threeof these matchesanticipate the kinds of mistakes that musiciansare likely to makeduring a performance. The furst kind of note matchis a verbatim match. Onenote in the performance is matchedto onenote in the score (either of the notes could be a rest). A cost assignedfor incorrect pitch; the greater the differencein pitchesthe greater the cost, modulo the octaves.. Acost is also assignedfor differences in duration. Aslong as two successive performancenotes do not have a rest, the algorithmassumesthat the endof the first note is at the beginningof rite next one, so the gaps betweennotes are smoothedover. The second kind of note match, an amalgamated match, occurs whenthe perfo~nerplays a wrongnote and then immediately corrects it to the fight note. Twoof the performer’snotes are matchedto one of the score notes. Thepitch of the performer’ssecondnote is comparedto the pitch of the score’s note, andthe samof the durations of the performer’stwonotes is compared to the durationof the score note. This exampleis illustrated in Figure2. ~0re Live Perlormer Fig. 4. Live Performer Fig. 2. Thethird type of match, the held through, is when two notes in the score are matchedto a single performance note. Theperformerhas missed playing one note and has instead held the previous note through the time of the secondnote (see Figure3). Thepitch of the performer’s note is compared to the pitch of the first notein the score andthe durationof the performer’snote is compared to the sum of the durations of the two score notes. Score Live Performer Fig. 3. Thelast type of match, the rest, occurs whenthe performerreleases a noteearly, probablyin anticipationof the next note or passage(see Figure 4). Thegap that caused by the early release might be long enough to count, in the computer’s view, as a resL It is not desirable to shorten the length of time the computer considersa rest becausethere mayin fact be places in the score wherethis length of time shouldcount as a rest. On the other hand, treating this situation as a rest in some cases would cause undue cost to be assigned in the trackingalgorithm.Instead, in this situation the duration of the performer’spauseis addedto the previousnote and this unit is compared to onenote in the score. 130 In order to calculate the entire cost for a matchof a performance pattern to a score pattern, the last notes(most recently heard)are treated t-u-st. For each note the four types of matches outlined above are considered and possible costs computed.For all but the verbatimmatch, a small penalty is addedto the cost. Thealgorithmthen considersall four possibilities for all of the notesin the pattern, andaddsthese to the total cost. Thealgorithmis performedrecursively. Thecomputerhas an upper bound on acceptablecosts so that obviouslyunprofitable paths are cut off. At the end of one pattern matchthere is a total least cost. This processis repeated for each score pattern. For each successive score pattern, the accumulatingcost is comparedwith the best cost so far, so that dead ends are eliminated. Finally, the overall minimal cost is selectedfromall the score patterns. This part of the program is computationally intensive and since respondingin real-time is a major consideration,the parallel processinghelps this part of the program. Throughexperimentation, it was determined that if the tracking algorithm takes more than approximately5/60 of a second, the degradationin the computer’sresponseis too great. This constraint governs the size of the windowand the size of the patterns. The size of the patterns is also restricted by musical considerations. Whenthe Macintoshis running without transputers,this restriction on processingtime effectively limits the performanceto one or two performers and limits the window size to about5 notes wide. Oncethe best cost has been determined, this also givesa best beat as specifiedby the location of that score pattern. Locationin the score is calculate by the total numberof beats fromthe beginningof the piece. These two pieces of information, beat and cost, are communicatedto the Macintosh. The Macintoshstores this informationandalso the time (on the computerclock) whenthe informationarrived. 4. Computer Performer Response Oncethe programreceives beat information froma live channelandalso an estimateas to the reliability of that information(cost of the trackingalgorithm)it mustdecide on its response.If there is morethan oneperformer,then conflicting locations maybe indicated by the different performersand then the AICPmust, in effect, becomea conductor,and determinea "true" location and a "true" tempo. In these considerations, the issues of time and tempo are extremely importanL The computer has its owninternal clock, whichis keepingan absolute time; each transputer keeps an absolute time also, although becausetheir units are different fromthe Macintosh’sand becauseany communication betweenthe computerand the transputers takes an (albeiO small amountof time, there are minor inconsistencies. Tempois not an absolute. There is the tempoof the piece, there is the tempoat whichthe computer believesthe piece is beingplayed,i.e. a conductor’s tempo,there are the temposat whichthe live performersare playingand then there is the tempoat whichthe computermight be playing (slowing downor speedingup) in order to catch the rest of the players. The two absolutes in the piece are the internal clock of the Macintoshand the beats in the score. Everythingelse is relative. In order to decideon onelocation in the score, all of the beat andcost information,andthe computertime at whichit wasreceivedfromthe various performers,are put into an array. Alinear least squaresfit of beat vs. timeis performedto determinethe tempoof the piece. This least squaresfit is weightedaccordingto the mostrecently heard informationandalso accordingto the reliability or cost of each piece of information. This meansthat movinglines will have a greater say in determiningthe tempo,which generally is consistent with musical interpretation. Movingparts often have the melodyand thus should take the lead in determining tempo, although movinglines mayalso denotesecondaryinstrumentsandit is debatable whetherthey should be allowedto keepthe beat. It is also possible to weightthe least squaresfit accordingto the instrument.For example,in a string quartet the first violin might be assigned a greater weight and thus be given moresay in determiningthe tempo. Thelinear least squaresfit will give the computer not only an indication about the correct current beat but will also give the current tempo,whichcan be foundfzom the slope of the line. Nowthe computermust decide on the correct response. At this point the computerbelieves it knowsthe correct beat and the current tempo.Chances are the computer is not in the exactcorrect locationin the scoreandis not playingat the current tempo. One possible response for the computer is to simplymoveto the correct location and to start playing the correct tempo. Themainproblemwith this approach is that it is not in conformancewith howhumansmake music. There maybe situations in which the computer shouldshift its location in the score, but only whenit is very far fromthe correct location. Andin that situation, the computermighthaveto wait before shifting if it has only just beguna note. In effect, the computermustbe slowed downto humanspeed. If the computerholds a note for an extremelyshort period of time, the result is jarring and unmusical. But in most situations the computershould not jumpto another location in the score but shouldslowdownor speedup to catch the performers. Howmuchit should adjust its tempoin order to catch themdependson several factors. Thefirst factor is a musicaloneandis governedby musicalexperimentation.Whatisneededis to determine an interval over whichthe computercatches the live 131 performers.It is a parameterthat is set to betweenone and two seconds. Less than one secondsoundsartificial, and moreappears to be inefficient. Thesecondfactor is governedby the kind of piece that is being played. In a Bach chorale, the tempo should never be unduly fast, whereas in a vivace movement,there is more leeway about speed. Thusthere is an upper limit established. There seems to be more latitude about a lower limit, however. Anincredibly slow tempoessentially amounts to holdingnotes, anddoes not soundterribly out of place even in fast movements.Theseupper and lower ~mits are set by the pre-performancescore consultation and are governedby the meterandtempoof the piece. In fact, as pieces are read in, several parameters,suchas these, are set. But even if a tempois allowed by the upper and lower bounds,it maybe inappropriate becausethe change is too abrupt. Thusthe previous tempoalso sets limits on the ensuingone. Although tempo is perhaps the most important consideration,there are other factors to be noted. Asthe programplays a performanceit also checks the dynamics of the other players. Incomingdata is checkedagainst the scoreandif there are large differencesin dynamics then the AICPmodifies its response by playing softer or louder also. It is possible that the incominginformation is deemedtoo unreliable to act upon, i.e. the costs are unacceptablyhigh. Thenthe response of the AICPis to continueplaying, while gradually reverting to the tempo specified in the score. In an earlier version of the AICP, if the computerdetermined that the live player was hopelesslylost (in its view)then it wouldstop playing for a short while and then jumpahead to a place in the musicjust after a tonic cadence(as found by the preperformance score consultation). It wouldalso play quite loudly. This wouldcorrespondto giving a cue to start playing at the beginningof a newsection. This kind of jumpwouldonly workin classical western tonal music, for only in those pieces could the computeridentify the key of the piece and then also be able to identify the cadences. 5. Ongoing and Future Work At present the author is in the midst of workingon the reconciliation aspect of this work. The system works extremelywell whenthere is a single live performer.It is difficult to throw off the computer, even whenmany mistakesare made,and the computerbeautifully follows the tempoof the live performer. Whenthere are several live performers, the computertracks them reasonably well, as long as they are not themselveswayout of step with each other, whichis about whatshould be expected. Muchmore experimentation needs to be done to "tune" the weightsand parametersthat are used in the multiple live input case. There is a difficulty in obtaining appropriate test data. If the live performers’parts are given by files, they tend to haveno affect on eachother, whichis not the case for a true live performance.But in executinglive performanceson several instrumentsthere is a great tendencyfor the performersto havea great affect on each other and all play at the sametempo, in which case the system does quite well. The best data comes from two experienced players, whenone of them is asked to lead and change tempo, and the other follows suit, albeit slowly. Perhaps the lesson here is that in most ensembles there will tend to be one tempo, and the computer performer need not worry too much about reconciling wildly conflicting information. At present parallel processing is usedin a very straightforward manner, mainly to give the system greater speed. Different processors correspond to different performers, which begins to emulate the parallel nature of humancognition, but as more is known about musical cognition, this whole area could open up muchmore. A very promising domainfor further research is to examinethe tracking algorithm. It wouldbe preferable if the algorithm not only used patterns of notes, but actually used more musical patterns of notes. This would more closely emulate what humansdo in a musical ensemble. This gets into the fascinating and difficult area of recognizing what constitutes a musical pattern and also lJossibly recognizing whenpatterns are essentially the same (Kendall, 1986; Hulse et al., 1992). At the very least, the system should be modified so that musical patterns do not cross obvious musical boundaries, such as ends of phrases or sections. There is muchinteresting and fruitful research still to be accomplished. Acknowledgments:The author would like to thank the KnowledgeModels and Cognitive Systems program of NSF for supporting this rese4~ch under grant IRI-9010793.She also thanks her early collaborators, DonaldBlevins and Noel Zahler, for their continuedinput. References Agrnon,E.: 1990, MusicTheoryas Cognitive Science: Some Conceptual and Methodological Issues, Music Perception, 7, 3, pp. 285-308. Baird. B.: 1991, The artificially intelligent computer performerand parallel proce~sin8, /n Proceedingsof the 1991International ComputerMusic Conference, International Computer Music Association, San Francisco, pp. 340-343. Baird, B., Blevins, D. and Zalder, N.: 1989a,Theartificially intelligent computerperformer, bs Proceedingsof The Arts and TechnologyH, Connecticut College Press, New London,Connecticut, pp. 16-23. Baird, B., Blevim,D. and Zahler, N.: 1989b,Theartificially intelligent computerperformeron the Macintosh11 and a pattern matching algorithm for real-time interactive performance, inProceedings ofthe1989International ComputerMusic Conference, International Computer MusicAssociation, San Francisco, pp. 13-16. Baird" B. , Blevins, D. and Zalder, N.: to appear, Artificial Intelligence and Music: Implementingan Interactive ComputerPerformer, ComputerMusic Journal.. Bloch, L J. and Dannenberg, R.B.: 1985, Real-time computer accompanimentof keyboard performance, in Proceedings of the1985Internat~al Computer Music Conference, International ComputerMusic Associa~.ion, San Francisco, pp. 279-289. Dmmenberg, R. B.: 1984, An on-line algori~ for real-time accompaniment, in Proceedings of the 1984 132 International ComputerMusicConference, hteraational ComputerMusic Association, San Francisco, pp. 193198. Hulse, S., Takeuchi, A. and Braates~ R.: 1992, Perceptual Invariances in the ComparativePsychology of Music, MusicPerception, 10, 2, pp. 151-184. KendallR.A.: 1986, Therole of acoustic signal partitions in listener categorization of musical phrases, Music Perception, 4, 2, pp.185-214. Kugel, P.: 1990, Myhill’s Thesis: There’s More than Computing in Musical Thinking, Computer Music Journa/, 14, 3, pp. 12-25. Laske, O.: 1981, Music and Mind:An artificial intelligence perspective, Computer Music Association, San Francisco. Luke, O.: 1988, Introduction to Cognitive Musicology, ComputerMusicJournal, 12, I, pp. 43-57. Myhill, J.: 1952" SomePhilosophical Implications of MathematicalLogic: Three Classes of Ideas, Reviewof Metaphysics, 6, 2, pp. 165-198. Pressing, J.: 1990, Cybernetic Issues in Interactive Performance Systems, ComputerMusic Journal, 14, 1, pp. 12-25. Puckette, M.: 1991, Something Digital, ComputerMusic Journal, 15. 4, pp. 65-69. Roads, C.: 1985, Research in music and artificial intelligence, ACM ComputingSurveys, 17, 2, pp. 163190. Vercoe, B.: 1984, The synthetic performer in the context of live performance, in Proceedings of the 1984 International Music Conference, International Computer MusicAssociation, San Francisco, pp. 199-200. Vercoe, B. and Puckeue, M.: 1985, Synthetic rehearsal: Training the synthetic performer, in Proceedingsof the 1985 International Computer Music Conference, International Computer Music Association, San Francisco, pp. 275-278. Vercoe, B.: 1988, Hearing polyphonic music with the connection machine, in Proceedings of the First Workshop on Artificial Intelligence and Music, Minneapolis/St. Paul pp. 183-194.