| CPC G10H 1/0025 (2013.01) [G10H 2210/051 (2013.01); G10H 2210/346 (2013.01)] | 20 Claims |

|
1. A computer implemented method of generating a musical variation, the method comprising:
receiving as input a plurality of musical patterns, each musical pattern corresponding to a respective input attack vector;
receiving a plurality of rhythmic building blocks, each rhythmic building block comprising a respective set of time points corresponding to a stage of pattern formation in a musical meter;
analyzing each of the musical patterns to identify rhythmic building blocks which coincide with each musical pattern by identifying one or more symmetries between portions of each respective input attack vector and the respective set of time points of each rhythmic building block;
generating an activations vector for each musical pattern, the activations vector comprising a respective activation number for each of the plurality of rhythmic building blocks, each respective activation number representing a respective fraction of time points in each rhythmic building block which corresponds to attacks in the respective input attack vector;
generating a rhythmic potentials vector for each musical pattern based on the respective activations vector, each rhythmic potentials vector comprising a respective likelihood of an attack at each time point in the respective musical pattern, wherein the respective likelihood of the attack at each time point is a function of a sum of the activation number of all rhythmic building blocks which contain that time point;
assigning a respective weight to each musical pattern;
generating a rhythm variation based on a weighted combination of the rhythmic potentials vectors, wherein a respective contribution of each rhythmic potentials vector to the weighted combination is based upon the weight assigned to the corresponding musical pattern, and wherein at least one threshold value is used to control which values of the weighted combination are interpreted as attacks in the rhythm variation and which values of the weighted combination are interpreted as non-attacks in the rhythm variation;
generating a musical variation by assigning a musical quantity to each attack in the rhythm variation; and
outputting the musical variation to an output device.
|