Cosy is a COmpact Sequencing sYntax. It is a domain specific language (DSL) for composing musical patterns and general purpose sequencing. It generates sequential patterns of arbitrary symbols. It was designed to be generic enough for use in any context where a controllable sequence of symbols is needed. I expect it to be particularly useful for exploratory composition (audio or visual) and live coding. Currently a lot of effort is being put into making it compatible with MIDI standard for interfacing with audio software and hardware.
Cosy is under heavy development and not ready for general public consumption just yet. I'm going to try to have a real release sometime in 2009 (hopefully by Q2). In the meantime, it is quite functional and you can either:
The primary goal of this software is to allow for expressing and generating complex patterns with a minimal amount of typing. I have found that GUI sequencing applications for music (step sequencers, piano rolls, trackers) impose too many limitations due to their equivalency of time and space in a simple flat structure. Intricate patterns, especially in music, involve hierarchical relationships that are not easily expressed using current GUI conventions for sequencing. (Ok, Buzz is semi-hierarchical, but it only goes one level deep and requires too much jumping around to lay down complex patterns). Some text-based programming languages address these issues, but I have found their syntax to be overly verbose. Thus, Cosy was born.
To learn more about what's under the hood, read the technical details.
And some notes on how I am defining the symbols for Cosy.
Update October 23, 2008
I added some new features in the last couple weeks:
Update November 27, 2008
More new features:
Examples for all these new features are now on the Cosy online preview.
Comments
Re: Cosy Sequencing Language
so where is that cosy interpreter external for maxmsp?
Re: Cosy Sequencing Language
Good question! I haven't been so great about following through.
I've had this stuff more-or-less working for a while. Just need to clean it up, fix some bugs, and share it. It will arrive one day...
Re: Cosy Sequencing Language
Interesting!
Is there any other language which Cosy is based in?
Re: Cosy Sequencing Language
It's only implemented in Ruby. However, by using JRuby you can use it with Java. I also have a (currently unreleased) object for Max/MSP & Max for Live that let's you use Cosy in those environments.