Wouldn’t it be great we could morph between any 2 patches for a synth with a decent MIDI implementation using the E1?
There is a bit of memory management to be done (for every parameter the E1 has to know the value of part A, part B and the temporary value), but that is quite easy to do. The hard part is to get musical results along the way.
Opening or closing a filter along the morph path will sound good, but gradually changing semi-tones settings from 8’ to 4’ will outright sound very, very bad.
So what experience do you guys have with morphing?
Are there parameters we better ignore when doing a morph?
Are there parameters we better let jump from one value to the other while morphing?
Or should we have like multiple morph modes, ranging from a musical morph but not resulting in a faithful part B simulation, over a correct morph where parameters jump along the way, to a arithmetically correct morph but with very weird intermediate results?
Hello !
I am building a set live with morphing.
I experiment it since month now. I love that.
I do that using Clyphx pro , E1 , Ableton And Plugins.
thing is more or less great, weird, original or broken regarding witch plugin i use.
Switch more often bring a “jump in the sound” contrary to continuous parameters , like filter, delay time, osc, etc.
It’s really a one by one test . Most of the time it’s really interesting.
Regarding Ableton , we are limited to 127 parameters per devices.
For some it’s anough to really morph between one patch to another.
For some other it’s a way to " join" the sounding of another patch but not to get to it totaly.
What is really excting is the “in between” sounding. Most of the time when you morph between 2 sets of multiple of parameters , you discover sound that is really interesting to morph in a musical/rythmical way .
I really enjoy it . My goal is to make my set as morpheable as possible . To inspire, and compose differently as the straighforward maner.
Having the E1 is already a great way to make morphing thanks to clyphx.
Of course having The E1 control all the parameters this way could be awesome. !!
Again, I want to achieve exactly the same. I wonder if I could just create a small LUA script that interpolates between values (so basically a damper) so that it always damps between value changes.
If anyone has a better idea of course it would be great to be able to select a snapshot and it morphs to the new settings. Obviously would only really work for sliders, but that’s fine.
Patch morphing would be awesome! But seems to like a distant goal if we don’t yet have the ability to send more than one message per control without scripting.
I have been thinking about this for quite some time. My idea on how to implement goes like this:
The Snapshots window will allow users to save two snapshots to one “Snapshot button”, version A and version B. turning a knob assigned to the Snapshot button will then gradually morph parameters between the A and B. What I like on the idea is that the user has control about what parameters will be affected and how much. Next to calculating the morphed version, it will be possible to randomize parameter values with the boundaries given by A and B.
What about option lists or toggled pads that are on different values? I was thinking on two possibilities:
you choose upfront for the A or B position and they are not changed during the morph.
Assuming the change from A to B follows a 0-127 trajectory, one could set per pad and per option list the tipping point. By setting different controls on different tipping points, the change over could be slightly more gradual.
For option lists, a further possibility could be to choose between the tipping point mode as described above, and a consecutive transition, where all intermediate positions get used as well, just as with a fader control.
Yes, for continuous controls like you mention, it should boil down to interpolation. Let’s assume simple straightforward linear interpolation. In your example that would mean the first parameter needs to travel 255-10= 245 steps, while the second does 100-10=90 steps in reverse and the 3rd only travels 5 steps, during morphing.
But the real challenge is with non-continuous controls, like pads or option lists, or osc tune settings.
I’ll give some examples where morphing might yield weird results:
image sound A has a sync’d oscillator and sound B hasn’t. Would you want the sync button being disabled somewhere halfway the morph? If yes, the B sound might be awful, as both oscillators may be detuned to one another. If no, you can never reach sound B.
imagine a digital waveform oscillator: sound A is on a piano waveform, sound B is on a flute waveform, and all intermediate waveform are percussive sounds. That would lead to a sound that looses its pitch during the morphing
imagine osc 2 is detuned with 24 semitones against osc 1 in sound B ,and it is detuned with 0 semitones against osc 1 in patch A. During morphing this detune setting would then travel through all 24 intermediate semitone settings, again delivering mostly false sounding intermediate results.
In my opinion, allthough full morphing between 2 sounds is theoretically possible, it will lead to many unuseable intermediate morphed combinations. We should rather exclude certain controls from morphing to gain more musical results, knowing we will then never actually reach sound B settings in full.
To add to the complexity: the controls you would want to exclude may differ based on the 2 chosen sounds you morph between: varying pitch differences between 2 oscillators is something you may not want to morph, unless the osc’s are synced in which case morphing of the pitch of the syncing osc is desired !
So we’ll have to be aware that even if morphing would be added to the E1, it will not make every situation possible or nicely sounding, and will not make everyone happy. I’d rather vote for a more simple algorithm, that does not make everything possible, but that at least yields musical results while morphing.
And then we should add an LFO to that morph control
I just bumped another thread with the similar question, but as I can see here you’re having more enthusiastic discussion! can we do this as effortlessly as this device’s workflow offers?
Very interested in purchasing Electra and I have high hopes it does the thing.
I love this idea of having snapshots with instant recall. Imange we’d could have 12 snapshots recallable immediately and then 2 can be instantly chosen for the morphing process.
@ambivalence no it does exist yet, but you can create it yourself or at least something similar.
Know what, let me think about… I’ll make a simplified preset some day to demonstrate
You can morph 8 MIDI CC’s with it, but nothing prevents you to enlarge it, as long as you respect the virtual numbering convention (all 4 numbers consecutive per MIDI CC) and you enlarge the 2 for loops in lua with the number of CC’s you want to control.
You could theoretically go up to all 120 MIDI CC’s but that would not be practical.
Using the E1’s snapshot system, you should be able to create your own predefined settings.
wow, that’s fast, thanks! the only thing is that I don’t have the device yet to check it. is it possible for this controller to record automations or to add an LFO? (I realize, automations is the whole another topic, sorry) I was a backer for the controller I shared above and many future users were curious if it will be possible to run an LFO bound to the global macros.
and, I guess, the last thing to make this feature truly ultimate would be non-linear/per-parameter dependency, so the macros wouldn’t change all the CCs with the same speed, like a curve with a set of values for, let’s say, 25, 50 and 75%. I guess, it’s also possible (and I believe it could be valuable feature even without all the snapshots morphing).
All possible, but you’ll have to build it yourself or get help from the audience.
I’m also ‘just a user’.
But there are ways to add LFO’s, and I believe @Martin added a native one , though I did not use it yet.
I once build an LFO, you’ll find it in the Minitaur preset.
As for having other relationships beside a pure linear one, is just a matter of changing the calculating formula while adding some new controls. If you provide me with how you see the formula , I might give it a go
Automations is another story. Would be hard to realise.
yeah, I got it, greatly appreciate your responses.
Once I saw this in some TC Electronic pedal: awful buffers, don’t recommend them, but they had a thing called tone print with some app for further tweakability. There I saw an approach I’d really love to see in any device with a macros knob: you basically set a different values for different positions of a potentiometer. Like I said above, there are five of them: 0, 25, 50, 75 and 100%. Between them scaling is also linear, but I assume some logarithmic calculations also could make sense for some.
So, in some presets fully counterclockwise potentiometer won’t give you zero, if you want it so. More than that, it could be the maxed value, like an inversion. As we are dealing with encoders, I assume there could be two different approaches
when you turn it further and further, all the bound values go at their maximum positions like 127.
But as we’re talking about snapshots, the most common usecase would be to have pre-defined snapshoted values.
the advanced bonus variant of operation would be: having some parameters to have snapshot bounds while the others that you choose specifically would go fully 0-127. If you tweak the macros so some value went in the maxed position (beyond the snapshot) and then tweak the macros back, counterclockwise, only the maxed parameters change first, until they reach the snapshotted position. from there, all the parameters are tweaked in align with the pre-defined curve as usual. complex, yeah, but cool, as you are not restricted by the snapshots in the places you don’t want to be.
also, having the tweakability at least on par with that tone print app, you can treat any of the five values as different presets, so if 25% sends some CC a value of 50, let’s say, it’s still possible to have 50% to send lower value like 25, and 75% could send 100. it would be like morphing between 5 snapshots basically.
I guess these options would alleviate the problem you mentioned above at least partially. For some parameters you could totally avoid intermediate values, like 0-99% of a macros wouldn’t change a parameter at all, while maxed out it would change it immediately (this example would require to have an ability to change 0/25/50/75/100 positions to custom ones, of course).
I think we do need access to the actual snapshot data via LUA.
The thing is @martin mentioned something like a ‘performance’ page he is working on.
Not sure if this would include things like this or offer an alternative.
Hope this would include some morphing functionality.
But macro’s should be first. So we could map all controls to 1 dial and take control over the world :).
In order to make it work:
lua access to fetch the actual snapshot data.
Like default values and the stored values.
lua acesss to store the current snapshot. ( I know we can store snapshots using the E-one menu ) But from a performance perspective it would be better to be able to create a button that can do that,
Like that you could reserve some snapshot slots pure for performance.