1. A method of creating a musical composition comprising: (a) defining a multi-level hierarchical framework on which the composition will be based; (b) defining a rule set comprising a plurality of rules for generating musical objects within the framework, each rule generating one or more musical objects at a given level within the framework in dependence upon transitions between musical objects at a higher level within the framework.