Sure, some of the transformations that already exist in the project:
- Applying harmony from one file to another - I use this with dynamic piano phrases to go from a static progression file to a rich piece that sounds as if it were actually played
- harmonic extensions - not sure if this is the right term, but it’s a variation on the first. The allowed notes are the notes of a chord (supplied in the form of a progression file) minus the root and plus the extensions of a chord. This one is fun to apply to melodic information
- applying the rhythm of one midi file to another
- limiting notes to a range - simple but effective when used in combination with the other transformations
- uniform stochastic variation - on a longer repeated phrase, this can introduce note drops and shifts uniformly on say the first and third bars of a midi file.
Right now, I build up “models” with folders of midi patterns and run them through specific combinations of transformations that aim to achieve a desired effect… like peaceful piano vs funky melody, rhythmic octave bass line that follows the kick drum etc.
To flesh these out and build more, I do album in a day projects which can be heard by following the link: neptunely.com - I define what I’m calling a meta-song which describes what can happen/which models to pull from in each section and then I generate a handful of variations and pick ones I like, render it out.