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.