Projects / Strasheela


Strasheela is a highly expressive constraint-based music composition system. Users declaratively state a music theory and the computer generates music which complies with this theory. A theory is formulated as a constraint satisfaction problem (CSP) by a set of rules (constraints) applied to a music representation in which some aspects are expressed by variables (unknowns). Music constraint programming is style-independent and is well-suited for highly complex theories (e.g. a fully-fledged theory of harmony). Results can be output into various formats including MIDI, Lilypond, and Csound.

Operating Systems

Recent releases

  •  28 Mar 2009 22:19

    Release Notes: This release fixes a serious bug. Previously, Strasheela only worked when IOzSeF (an Oz extension for constraint solvers) was installed. It simplifies the installation on Windows by providing an installation batch file. It also adds a collection of ready-made constructors for musical segments such as contrapuntal lines, homophonic chord progressions, or specific motifs, and adds a number of harmony-related constraints. Further additions and bugfixes have been made as well.

    •  09 Mar 2009 16:06

      Release Notes: This release brings many small-scale improvements and extensions to Strasheela. Most importantly, the implementation of Schoenberg's Theory of Harmony as CSP has been documented (HTML with sound examples), Strasheela now supports adaptive just intonation, the music representation has been extended by several convenient constructors, and a number of pattern constraints have been added. Also, some bugs have been fixed.

      •  04 Dec 2008 08:25

        Release Notes: This release fixes a serious bug which even caused a compilation error. In order to avoid such errors in the future, the code has been cleaned up, and virtually all compiler warnings are now fixed as well. In addition, the tutorial revision continued, and some distribution strategies have been optimized.

        •  27 Nov 2008 23:53

          Release Notes: This release improves sound synthesis format export. For example, expressive timing of scores can be defined by time shift functions. Predefined MIDI file export also supports non-note events like continuous controllers (e.g. pitch bend, aftertouch, and CC) and a global tempo curve. Additional examples have been added, and further extensions and bugfixes have been made.

          •  19 Aug 2008 18:41

            Release Notes: This release supports new techniques for constraining the musical form, and demonstrates them in examples. Also, the definition of complex distribution strategies (variable orderings in the search) is simplified by special constructor functions. Several further examples have been added, and many other extensions and bugfixes have been made.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.