Music is composed of loops of sequenced samples. A loop can be percussive, or pitch based. Pitch based loops select notes from the current scale. Beat based loops depend on the current speed. The number of elements there are depends upon various 'mood' factors. Maximally there will be: Drums Bass Melody Chords/Melody Changes ------- Scales change according to scalesets. Bar length changes every 4 bars. Scalesets change every 4th bar. Fills happen on the 4th bar of every 4 bars. Types ----- * Song * Sample * DrumKit * Loop * Beat * Tune * Scale * ScaleSet Beats specify what speeds they can go at. Beats specify which drumkits they work with. Tunes can be 'melodic' or 'chordal' or 'bassline'. Tunes specify which sets of scales they belong to. Tunes specify which samples they work with. Scales can be 'interesting' or 'happy' (major) or 'sad' (minor). Scalesets are sets of scales that go well together in different orders and arrangements. Moods ----- The 'mood' of the music can be specified programmatically as follows: "tight", "loose", "relaxy" -> how much swing to put on it. "happy", "sad", "interesting" -> specifies whether major, minor, or interesting key. "hiphop", "big beat", "garage", "breakbeat", "drum and bass" -> specifies the speed of the music. "sparse", "light", "normal", "busy" -> specifies how many elements there should be. There can only ever be one chordal element playing. Sparse = Any single element Light = Any two elements Normal = Any three elements Busy = All four elements (Bass, Drums, Melody, Chord/Melody) are present Fill types ---------- In-3s back-and-forward-shifting delay-repeater of either 1st or 3rd element Screens ------- ScaleMaker Create new scales using basic sine tones. Allows you to create scalesets which relate scales to eachother. SamplePool Load different samples into this 'song'. DrumkitMaker Put together different drumkits from samples. BeatMaker Script drum loops in a drum-machine style interface. TuneMaker Write melodies and chords using sequences of notes. MusicTester Modify the 'mood' parameters to change the music and test all your different assets out.