| He's written a series of books. His software appears to be much more usable
if you have a Mac. The later books have CDs with sample music some of which
is rather impressive.
The first thing would be to look at some of the later books that deal with
technicalities, and get some of the code. I don't know how much of his code
is actually available.
Regards,
Mike
----- Original Message -----
From: "Tim Mortimer"
To:
Sent: Sunday, January 06, 2008 5:10 AM
Subject: [Csnd] Re: Re: Python - Help! Creating a nestable "Pattern" class
>
> No Michael thanks for the recommendation.
>
> (short Google later...)
>
> http://arts.ucsc.edu/faculty/cope/
>
> That's him? do you know of a specific reference or paper i might find
> useful?
>
>
>
> Michael Gogins wrote:
>>
>> Have you looked at David Cope's work on algorithmic composition based on
>> pattern matching? He gets very remarkable results in terms of
>> automatically
>> composing music in existing styles. His code is in Lisp, but most of what
>> Lisp does Python can do.
>>
>> Regards,
>> Mike
>>
>> ----- Original Message -----
>> From: "Tim Mortimer"
>> To:
>> Sent: Saturday, January 05, 2008 1:29 AM
>> Subject: [Csnd] Re: Python - Help! Creating a nestable "Pattern" class
>>
>>
>>>
>>> In terms of pattern matching existing patterns to further input, this
>>> method
>>> below is kind of counter-productive..
>>>
>>> but in terms of going "the other way around" & building patterns on
>>> pre-existing motifs, this achieves what i was originally trying to
>>> achieve,
>>> so i thought i may as well post it. (for David W if nobody else...)
>>>
>>> (i will be exploring this further, to find the best balance between
>>> matching
>>> "original input" to existing patterns vs. the capacity to "build upon
>>> the
>>> known" as per the below - 2 sides of the coin as it were...)
>>>
>>> & I'm not really sure if this is applicable to anything other than
>>> rhythms.
>>> But i still reckon it's pretty cool.
>>>
>>> So problem solved! At least by running this, anybody trying to
>>> understand
>>> what i was getting at in the first place may get some more insight...
>>>
>>> & David (or anybody) if you have anything more to say on pattern
>>> matching
>>> or
>>> the capacity to define unique objects & variables by string
>>> concatonation
>>> as
>>> you demonstrated for functions & the use of eval() i'd still be very
>>> interested.
>>>
>>>
>>> # ******Begin Python Code
>>>
>>> dick = {}
>>>
>>> dick[-1] = [0,500]
>>> dick[-2] = [0,750]
>>> dick[-3] = [-1,-2]
>>> dick[-4] = [-3,-3]
>>> dick[-5] = [-4,-3,-2,-1]
>>>
>>> def deletedups(valin):
>>>
>>> valout = []
>>>
>>> for e in valin:
>>> if e not in valout:
>>> valout.append(e)
>>>
>>> return valout
>>>
>>> def readdick(index,firstcallflag):
>>>
>>> global dick
>>> value = dick[index]
>>> resflag = 0
>>> valout = []
>>>
>>> while resflag == 0:
>>>
>>> for e in value:
>>>
>>> if e < 0:
>>>
>>> e2 = readdick(e,0)
>>> for val in e2:
>>> valout.append(val)
>>>
>>> else:
>>>
>>> valout.append(e)
>>>
>>> resflag = 1
>>>
>>> for val in valout:
>>> if val < 0:
>>> resflag = 0
>>> value = valout
>>>
>>> if firstcallflag == 1:
>>>
>>> # reconcile list for output
>>> accum = 0
>>> gaccum = 0
>>>
>>> for i in range(len(valout)):
>>>
>>> val = valout[i]
>>> #print val
>>>
>>> if val == 0:
>>>
>>> if i == 0:
>>> continue
>>>
>>> gaccum += accum
>>> accum = 0
>>>
>>> else:
>>>
>>> accum += val
>>> valout[i] = val+gaccum
>>>
>>> valout = deletedups(valout)
>>>
>>> return valout
>>>
>>> # ******
>>>
>>> keys = dick.keys()
>>> keys.sort()
>>> keys.reverse()
>>>
>>> print "\nPATTERN DICTIONARY DEMONSTRATION\n"
>>> print "key: pattern\n"
>>> for key in keys:
>>> pattern = dick[key]
>>> print "%s: %s" % (key,pattern)
>>>
>>> for key in keys:
>>> print "\ncall pattern %s" % key
>>> val = readdick(key,1)
>>> print val
>>>
>>> print "\nthat's how we roll!!\n"
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Python---Help%21-Creating-a-nestable-%22Pattern%22-class-tp14564226p14630436.html
>>> Sent from the Csound - General mailing list archive at Nabble.com.
>>>
>>>
>>>
>>> Send bugs reports to this list.
>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
>>> csound"
>>
>>
>>
>> Send bugs reports to this list.
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
>> csound"
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Python---Help%21-Creating-a-nestable-%22Pattern%22-class-tp14564226p14645971.html
> Sent from the Csound - General mailing list archive at Nabble.com.
>
>
>
> Send bugs reports to this list.
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
> csound"
|