Strasheela provides a means for the composer to create a symbolic score by formally describing it in a rule-based way. The environment defines a rich music representation for complex polyphonic scores. Strasheela enables the user to define expressive compositional rules and then to apply them to the score. Compositional rules can restrict many aspects of the music – including the rhythmic structure, the melodic structure and the harmonic structure – by constraining the parameters (e.g. duration or pitch) of musical events according to some numerical or logical relation. Strasheela combines this expressivity with efficient search strategies. Strasheela is implemented in the Oz programming language. The Strasheela user writes an Oz program which applies the Strasheela music representation. The program searches for one or more solution scores which fulfil all compositional rules applied to the score.