Closed sneak-thief closed 5 years ago
+1 for this, but a lot of thought would need to be put into the implementation, to produce musically useful results, I suspect.
Morphing tends to work best where the parameter-space is relatively fine-grained. That's not really the case with note and (particularly) gate and pattern-length data.
From my perspective, the "musicality" of the function should be agnostic considering the vast musical sphere. Guided "happy accidents" is what makes this function desirable.
It really doesn't have to be a complex implementation for it to be incredibly useful.
That said, I suppose one could have the granular option to morph 1) notes, 2) gates and 3) gate lengths.
That said, I suppose one could have the granular option to morph 1) notes, 2) gates and 3) gate lengths.
I think that would be a good idea.
I think this is an interesting idea. But I would definitely implement it as morphing from one pattern to the next on the same track. Otherwise its becoming a mess.
One possible implementation would be to extend the Fill feature. Currently, you can already jump to the next pattern temporarily by setting the Next Pattern fill mode and engaging fill. If fill was continuous instead of binary, it could morph to the next pattern. The other modes could also be more interesting with a continuous fill amount. I would then implement Fill Amount as a routable target (for CV or MIDI control) and the fill keys on the performer page would still set Fill Amount to 100% as in the current implementation, so that behaviour would not change.
I think this is an interesting idea. But I would definitely implement it as morphing from one pattern to the next on the same track. Otherwise its becoming a mess.
This was what immediately sprang to my mind, too.
One possible implementation would be to extend the Fill feature.
That makes perfect sense!
Sure, using the next pattern is actually a very interesting alternative, especially in terms of transitions. In fact, transitions are one of the most important aspects of sequencing and yet the most ignored.
Fantastic!
There are various options in terms of how the morph works, eg.
I personally favour option 2, but I may be in a minority. It's a more unusual twist on the morphing concept, which may prove to be a selling-point.
A variation on option 2 above would be to make the random number assigned to each step represent a probability that the step from p2 will play, as opposed to the step from p1.
The morph-position value will apply a bias to the probabilities, much like the routable bias parameters.
threshold values for per-step randomisation or gate/repeat/note, but won't work for binary values (gates on/off values, slide on/off)
That's precisely why I mentioned using a "probabilistic method". The devil is in the details of course - I left it specifically vague to stimulate Simon's imagination :D
I spend a while trying to develop a browser-based (WebMIDI) acid bassline-generator, a couple of years ago, based largely on morphing concepts, inspired by Mutable Instruments Grids Euro module, so I have a few ideas on this ;)
Sadly it doesn't seem to work in any current browsers, but when it did work, it produced output like this (using 303 VST): https://soundcloud.com/toneburst/bassline-explorer-2
The other modes could also be more interesting with a continuous fill amount
True. Again, this could be done using probabilistic methods.
Some keywords here: stochastic interpolation, brownian motion.
Check out this for ideas and inspiration:
Algorithmic Composition Using Probabilistic Methods
Will be part of the 0.1.22 release. The most consistent concept was to go with my initial idea and it's actually quite nice and fun to play with!
One possible implementation would be to extend the Fill feature. Currently, you can already jump to the next pattern temporarily by setting the Next Pattern fill mode and engaging fill. If fill was continuous instead of binary, it could morph to the next pattern. The other modes could also be more interesting with a continuous fill amount. I would then implement Fill Amount as a routable target (for CV or MIDI control) and the fill keys on the performer page would still set Fill Amount to 100% as in the current implementation, so that behaviour would not change.
Track mirror/morph would be a Track option where you could make one track (destination) morph into another track (source) from 0-100%.
At 100%, the destination would have the same notes & gates as the source (aka mirror).
You would be able to select the source track and as you increase the percentage, the notes of the destination track would shift towards the source track.
The gate distribution/density and length of the destination track would also shift in a probabilistic method towards the source track.
Transposition, scale and root notes of the destination track would override the source track.
Bonus points if the percentage value could be routable.