1. A method for generating a musical composition based on user input, comprising: responsive to user input, extracting a first set of musical characteristics from a first input musical piece; preparing the first set of musical characteristics as an input vector into an unsupervised neural net comprised of a plurality of computing layers, wherein each computing layer is composed of a set of nodes, wherein the input vector is prepared by perturbing the first set of musical characteristics according to a user intent expressed in the user input to create a perturbed input vector; providing the perturbed input vector into a first set of nodes in a first visible layer of the unsupervised neural net; operating the unsupervised neural net using the perturbed input vector to calculate an output vector from a higher set of nodes of the unsupervised neural net; and using the output vector to create an output musical piece.