Patent Document ID: 7902447
Application ID: 11542699

Base Claim:
1. A method for the automatic composition of music, the method comprising: receiving a plurality of input sound sequences containing sound frequencies with corresponding time duration; converting the plurality of input sound sequences to a finite state automaton using a system that allows over-generation; receiving exploration rules that constrain how the finite state automaton is to be traversed; creating a path marker data structure indexing a plurality of path markers, where each path marker contains a path marker history and a path marker registry; traversing the finite state automaton with a graph exploration procedure that uses the exploration rules and the plurality of path markers to determine path across the finite state automaton, such that the path marker history and the path marker registry of particular path markers are updated when traversing the finite state automaton; and storing the paths across the finite state automaton to the path marker data structure to define recorded path markers; wherein the recorded path markers that are not found in the plurality of input sound sequences define a new music composition.

---

Claim 8:
8. A method for automatic music composition as recited in claim 1 , wherein traversing the finite state automaton includes, (a) creating a path marker at an origin node and recording the origin node as the contents of the path marker history for the origin node; (b) following a link from the origin node to a destination node if the link is not blocked; (c) recording the contents of the path marker history for the origin node and the destination node to a path marker history for the destination node unless the exploration rules are violated in which case it is recorded to a path marker registry for the origin node that the link between the origin node and the destination node is blocked; (d) following any links from the origin node that have not been followed; (e) if there is nothing recorded in the path marker registry for the origin node, deleting the path marker for origin node and renaming the destination node to the origin node; (f) repeating steps (a)-(e) until reaching the end of the finite state automaton.