Author 
Message 
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1082 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 217

Posted: Wed Oct 14, 2009 2:22 pm Post subject:
DIY Lag Processor Subject description: a patching trick to obtain this nice feature 


The lagprocessor of the Xpander /Matrix12 was something that I was especially fond of, and something that I often miss on the A6. Sure, you have portamento, but this is hardwired to the master pitch.
Today, with some "thinking out of the box", I found a solution how to create a freely assignable lagprocessor on the Andromeda. It turns an envelope generator into an integrator (which is the same as a lagprocessor) via recursion. So, you sacrifice an envelope for this feature. But hey, you still have two.
I haven't seen this trick published anywhere, so I thought I'd share it.
This is how it's done:
1) Choose an envelope generator (I always use ENV1). Go to the "dynamics" menu and make sure that all tracking and velocityassignments are zeroed. Set the ResetMode to ANALOG.
2) If you are starting from a preset, make sure no CRoutes are affecting the envelope in any way. Deactivate all three MODs.
3) Set sustain to max. Deactivate all other envelope stages. Set attack to minimum (2ms) and release2 to maximum. (Only the sustain and the holdLED should be lit now.)
4) Select MOD1. Set source=ENVELOPE x (the one you've chosen, ENVELOPE1 in my case); destination=ENV LEVEL; offset=0; level to 0 for now.
5) Select MOD2. Set source=the modulation source you want to interpolate (lagprocess) (This source may only be positivegoing); destination=ENV LEVEL; offset=0; level to 100 for now.
6) The lagrate is now defined by the ratio of the two MODlevels. For everything to work correctly, the sum of the MODlevels has to be exactly 100. MOD1level controls the recursion and therefore the lagrate. The higher, the slower the interpolation. MOD2level controls the input of the signal to be smoothed. As mentioned, this has to be set so that the sum of the two levels add up to 100.
Done.
Due to the recursion, the envelope now operates as an integrator basically a lowpass filter for modulation signals. The signal to be lagged (filtered, interpolated, slew limited, etc.) is inputted at MOD2. The output level of the envelope is the lagged result. As pointed out, it only works for positivegoing signals. But with attenuation and offset (50/50) of bipolar signals, this drawback can be worked around.
FIY: The lagprocessor always restartes from zero at every key press.
Now you can eg. filter out the coarse 7bit resolution of critical MIDICC#s (that was my primary goal). Or smooth out the S/Houtput. Or have a separate portamento for the second oscillator, or for a sequencer output... mmmh, nice new features for the Andy.
(PS: This trick should theoretically work with any synth that provides the equivalent modulation routings.)
Have fun.
cheers,
tim _________________


Back to top



ThreeFingersOfLove
Joined: Oct 21, 2004 Posts: 162 Location: Greece
Audio files: 3
G2 patch files: 1

Posted: Fri Oct 16, 2009 12:58 am Post subject:



Hi Tim,
thanks for the awesome tip!
I just have a slight objection regarding the term "integrator". I always thought that it's a function where a z1 sample is "added" back to a mixer which, at the time of the addition or mixing  contains a z sample. The way you describe it, it seems that it's not mixing but multiplying since in MOD1 Envelope level modulates its level. OK, I know that multiplication can be broken down to a sum, but I'd be grateful if you could explain this a little more.
Also, does the initial level of the Envelope play a role?
Thanks again for this tip. Please post more!
Regards,
Yannis 

Back to top



Tim Kleinert
Joined: Mar 12, 2004 Posts: 1082 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 217

Posted: Fri Oct 16, 2009 1:08 pm Post subject:



ThreeFingersOfLove wrote:  Hi Tim,
thanks for the awesome tip!
I just have a slight objection regarding the term "integrator". I always thought that it's a function where a z1 sample is "added" back to a mixer which, at the time of the addition or mixing  contains a z sample. 
In an integrator, what is fed back is a fractional x of the z1 sample added together with 1x of the signal to be integrated, so the sum of the feedback equals unity gain (1). So yes, there is addition going on, and it's the combination of the MOD1 (the feedback) and MOD2 (the signal to be integrated) routings that represent this addition.
The numerical system of the Andromeda mod engine is fractional. Mod index 100 equals ratio 1:1, mod index 50 equals 1:2 etc.. 100 therefore represents unity gain and a multiplication (modulation) with less than 100 actually is a division. This is the reason why the sum of MOD1 and MOD2 have to add up to 100 (unity gain), not more, not less.
As an example, I use the DIY lag processor with the setting 90 for lagging (rather slow). So the index of MOD1 (the feedback) is 90 and the index of MOD2 (the signal to be integrated) therefore has to be 10.
so: z=90/100*(z1) + 10/100*x, where x is the signal to be integrated.
Hope this makes some sense _________________


Back to top



ThreeFingersOfLove
Joined: Oct 21, 2004 Posts: 162 Location: Greece
Audio files: 3
G2 patch files: 1

Posted: Sat Oct 17, 2009 10:50 am Post subject:



Yes, it makes sense.
I guess if it wasn't fractional then you would need a signal to flush the integrator  otherwise it would clip after a while.
Thanks again


Back to top



Tim Kleinert
Joined: Mar 12, 2004 Posts: 1082 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 217

Posted: Thu Oct 22, 2009 3:29 am Post subject:



ThreeFingersOfLove wrote:  Yes, it makes sense.
I guess if it wasn't fractional then you would need a signal to flush the integrator  otherwise it would clip after a while.
Thanks again

Yupp, exactly. If the sum of MOD1 and MOD2 indexes are over 100, it clips. If less, the lag processor can't reach the destination value.
I must say, I love the vast mod engine of the A6 (except for the fact that the CV DACs aren't filtered which often creates artefacts) and hope to figure out more stuff. _________________


Back to top



pulsewave
Joined: Jun 26, 2011 Posts: 7 Location: pulsewave

Posted: Sun Jul 03, 2011 7:39 pm Post subject:



just thought Id post this here too:
I set up the envelope to lag the mod wheel, which was controlling the osc frequency. (move the mod wheel and the frequency gradually/smoothly rises/falls).
Here's what I did to control the 'mod wheel's lag amount' with the ribbon controller:
Set up the osc mod 1 to env 1 (mod level = 0) which lags the mod wheel.
Set osc mod 2 to mod wheel (mod level = 100) controlling osc freq.
CROUTE the ribbon controller (at level 100) to control Osc Mod 1.
CROUTE the ribbon controller (at level 100) to control Osc Mod 2.
So set the ribbon controller to 'hold' and tap on the left side, the CROUTE initiates Osc Mod 2 (mod wheel with no lag), slide your finger to the right and the CROUTE will gradually decrease Osc Mod 2 and increase Osc Mod 1 which is lagging the mod wheel via the envelope and you'll get more glide.
I haven't looked into using lag with the s&h yet. Not sure if this 'lag amount' trick would work for other mod destinations.
jed 

Back to top



Infrablue
Joined: Dec 29, 2011 Posts: 125 Location: Utah

Posted: Mon Feb 20, 2012 11:01 pm Post subject:



I also have a slight objection with the use here of the term "integrator", but only because that word is just too big and intimidating...
Question on this DIY Lag... the final ENV output... is it full analog resolution?
I imagine it is if it modulates the destination it is hard wired to, and then for other destinations it's just much higher res than midi input.
Genius programming. 

Back to top



Infrablue
Joined: Dec 29, 2011 Posts: 125 Location: Utah

Posted: Mon Feb 20, 2012 11:55 pm Post subject:



Ok, I think I found the answer in another of your posts on a similar topic, Tim. ...
Quote:  I sometimes use this to smooth out a coarse 7 bit MIDI controller on a critical modulation to the full internal 16 bit resolution. 
So it seems the smoothness this will give is at a 16 bit resolution in all cases. Which is of course well worth doing for the right modulation.
Again, Tim... amazing work! 

Back to top



