Hi Steven -

Forgot to reply to this - Sorry and thanks again for your reply.  I'll give it a go - keep in mind I use CM-1.4, not 2.0.

I always assumed the ItemStream concept was based on set theory.  You have a series (here called an ItemStream) - it has some qualifying keywords which modify how the stream is read.  There are a few different types of Items defined in CM - pitch, rhythm, and a few others, which have some special behavior. You can nest the streams for musically interesting results, which is really where they get interesting.  There is more functionality to them, but I use them basically for these reasons.

An ItemStream gives an item every time it is evaluated, it's best illustrated by some examples:

(item (items 1 2 3 4 5))would yield '1 2 3 4 5' if evaluated five times,
(item (items 1 2 3 4 5 in random)) would yield some random set contain any of '1 2 3 4 5' if evaluated five times,
(item (items 1 2 3 4 5 in heap)) would yield some random set contain some combination of '1 2 3 4 5' if evaluated five times, without repeating any of the members more than once, as in basic 12-tone composition.
(item (items 1 2 3 4 5)(items 1 2 3 4 5)) would yield '1 2 3 4 5 1 2 3 4 5' etc

(item (rhythms s s e) tempo (tempo 60)) would yield startimes for your notes based on a 16th-16th-8th rhythmic pattern at 60 bpm.

There are a handful of these modifiers which, combined with some programming knowledge, can yield some interesting musical results.  The full docs for ItemStreams is still mirrored online here:

http://www.notam02.no/internt/cm-sys/cm-1.4/doc/dict/item_streams.tpc.html

The entire CM Dictionary for 1.4 is here

http://www.notam02.no/internt/cm-sys/cm-1.4/doc/dict/index.html

I use it very often - for everything from generating dense textures and crowd sounds to programming beats, chord progressions, and melodic ideas for pop songs (and lots in between).  I do a lot of music for films, and often I want quick sketches of elaborate ideas so it comes in handy there. I usually take the results from CM and vary them by hand, rather than just take the result of the algorithm blindly.  I'd like to automate _some_ of that variation-by-hand, and extend the framework, so I am porting this to a language I'm more comfy with.

Thanks for asking! b

PS - there was a book on CM that was due to be published by MIT press, and I think the author was Mary Simony.  Anyone know what ever became of it?

On 12/21/05, Steven Yi <stevenyi@gmail.com> wrote:
<snip>

BTW: I'm not sure if you have time but could you explain the
ItemStream concept from Common Music?  The last time I had a working
common music system on my computer was a couple years ago and when I
got into it I remember having problems with the way it abstracted some
ideas about time and music; it'd be great to hear your thoughts on it.

Thanks and also Happy Holidays to all!
steven
</snip>


On 12/21/05, Ben McAllister <benmca@gmail.com> wrote:
> Hi all,
>
>  I've been lurking since 1996, but rarely write - so, first, THANK YOU to
> you devs for csound5 - I'm a software dev myself during the day and
> understand the investment you are making.  Thanks so much!
>
>  My question:
>  In an effort to reinvigorate my Python skills, I'm going to port my
> favorite bits of Common Music 1.x to Python, particularly the ItemStream
> concept and a few other things I frequently use.  As many of you know, it's
> a good fit within Steven Yi's excellent program blue, and the last drop of
> csound5 included a python wrapper for the Csound API.  I'm excited as well
> about the GUI-building possibilities between this wrapper and the Python
> ugens Maurizio Umberto Puxeddu contributed.  But I digress...
>
>  Looking for starting points within the csound world, I've found the
> following: athenaCl, Steven's Orchestra Library in the last drop of blue,
> and some in csoundVST.   I'm playing catchup to a certain degree. There are
> a few examples in the last release of csoundVST which I saw, and I
> understand there is more in Silence, but it appears to no longer be hosted
> at csounds.com.  Is it still available anywhere? Someone is using the name
> at sourceforge :(  I noticed that Michael Gogin's site is down due to it's
> popularity, so perhaps it's there waiting to be downloaded.
>
>  So, csound community, do you know of any other
> algorithmic-composition-related python resources which I might find useful
> in this endeavor?  I'm wondering if someone hasn't already invented this
> wheel.  I'd much rather get back to building instruments and making music ;)
>  Seriously, I'd rather build on something others are using than reinvent the
> wheel.
>
>  Merry Christmas and Happy New Year from Seattle,
>  Ben McAllister
>  http://www.listenfaster.com
>
>
--
Send bugs reports to this list.
To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk