A method for playing a song employing a musical controller is disclosed. Program
instructions are executed, and one or more music composition algorithms are applied
to song data in accordance with a song data structure to generate music output
for the song. User input is received for one or more musical components, and musical
data in accordance with the song data structure corresponding to the musical components
are generated or modified in accordance with the user input. The user input is
provided via a controller, and the controller provides musical information via
descriptors. The descriptors contain data that represent musical information, and
the descriptors include data that does not represent sampled audio information.
Music rules are applied to the modified musical data, and the music output for
the song is modified in accordance with the modified musical data. As a first step
the user is provided with musical data in accordance with the song data structure
for a complete song, and in response to the user input a modified song is created
based on user modifications to the complete song. The controller may be internal
or external to a computing system, and may be a touchpad. The user input may modify
music output corresponding to one or a plurality of instruments, audio samples
or microphone input. The modified song may be stored for subsequent playback and/or
played in real time as a live performance. The controller may consist of a guitar
controller, a wind controller, a keyboard controller, a sequencer tool or a MIDI controller.