How accurate is Fractal DRIVE modeling?

YOu can find two TS9s that don't sound 100% the same, specially if they were built in different years.
See this post:
Yep, but I definitely don't expect the model to be exactly the same as my pedals, and when I do comparisons I don't care if the frequency response or the harmonics aren't 100% identical, or if the knobs don't correspond 1:1. These are not the qualities I'm interested in, I'm talking more about how the pedals react to your playing, how they feel under your fingers, how they interact with the amp, the attack and decay of the note, their behaviour when they process complex signals like palm muting, double stops, pinch harmonics, etc.

Anyway, I've spent the last two hours with the SS3 and the dist+ model and by changing diodes to D9E I managed to get them really really close, this kinda confirms that models based on diode clipping are pretty much spot on to the real deal. Looking forward to try the bb preamp too
 
Figured I would test this before I sold my last Eternity. It's a roadhouse model, not sure of age and not hand wired.

I have owned about a 10 Eternities over the years and 4 at one time, just sold my hand wired Kanji last week. None sounded the exact same, though I could dial all in close. I don't know what model/generation of the Eternity is modeled in the 3.

Built a preset with a 6G4 on chan A and a JCM800 on B. Real pedal in the loop using in and out 3 so that the pedal sees the same processing as the model Eternal love. Just a couple tweaks to the drive and tone, and mids and mid freq, everything else is at default settings, and the amps are all default settings. I can't tell the difference between the two. Even had the better half come in and listen for a difference and sounds the same to her too.

Sounds very close in a matter of seconds, and under 5 minutes to get it exact with small teaks. I'm very impressed.

Screen Shot 2021-01-15 at 5.01.06 PM.pngScreen Shot 2021-01-15 at 5.00.51 PM.png


And the pedal settings. This is usually how I run it.

IMG_5522.JPG
 
Today I recalled that some time ago I made a test inspired by this old Cliff interview:
https://guitarmessenger.com/cliff-chase-interview-fractal-audio/

This bit in particular:
"IC: Did you actually run out of resources on the Ultra? Were there things that you were trying to run on it that you couldn’t?

CC: Yeah, in terms of processing power it just doesn’t have enough power to run the new algorithms. It’s this thing we called G2 Modeling. It’s basically like a digital algorithm that simulates the way a tube triode works. Nowadays, when most people do modeling, they use what are called wave shapers, which is basically just a nonlinearity in math. So they’ll say you can either use polynomials or piecewise polynomials. I believe a lot
of the earlier company that begins with an L used a thing called a piecewise polynomial, which basically says if your input signal is over a certain value, then this is your function. If it’s between this value and another value it’s this function, and you splice all those polynomials together.


There are other approaches where you just use a polynomial or trigonometric functions and things like that. The problem with all those approaches is they are static – they’re a static transfer function. So whenever the input is here you know the output is… I mean, you can plot it on a piece of paper. You always know. Real tubes, on the other hand, have memory. They don’t have memory themselves, but they have memory due to their parasitic capacitance. Due to the actual terminal impedances, most designers will put a cathode cap on there, and a lot of times there will be a capacitor on the plate as well and possibly on the grid.

So those capacitors remember the charge that was on them, because charge can’t bleed off instantaneously. Or at least it can’t without burning up the traces on the board. So G2 Modeling is actually like a wave shaper, but it has memory, and so the transfer function changes over time based on the memory of the function. And it’s also based on the feedback and the frequency and everything else, so just like a real tube that transfers function changes with amplitude and time.

That, however, is a very CPU intensive process. It requires a lot of steps to simulate that. Simulating just one triode is almost as much horsepower as the entire modeling in the old Axe-Fx. When you start stringing together three or four triodes the algorithm is much more CPU intensive. You couldn’t run that on an Ultra and have any horsepower left for anything else, maybe just a basic delay and a reverb and something. Customers wouldn’t be very happy if they had an inventory of fifty effects and they could only use an amp, a cab, and one effect at a time. So the only way around that for the Axe-Fx II, given that we’re kind of at a plateau in DSP processing speeds right now, is to put two of them in there. One of them is dedicated to just the amp modeling and the other one does all the other stuff.
"


And here's the test I did to hopefully verify what he's explaining about the "memory" of the circuit and the fact that axe fx algorithms don't always produce the same result for the same input signal:
I recorded a short sample by feeding the same signal to two identical amp blocks, each one recorded on a separate channel in the daw, then I inverted the phase on one of them and this is what came out


If you do the same experiment with helix native or some other plugin you get just silence when you invert the phase, that means the output is always the same if the input signal is the same, so they use waveshapers.

So now I repeated the test with the drive block and even in this case the result is just silence, thus I assume the drive block uses waveshapers as well and not the complex algorithms used for the amp block.
I don't know if drives would gain a substantial benefit from those algos, all I know is that drive pedals have a lot in common with tube amps in terms of circuit implementation so maybe they also share most of those weird and interconnected behaviours the amp block simulates.
The CPU usage would probably increase a lot though so maybe Cliff thinks it's not worth it to waste processing power for drives.
 
Today I recalled that some time ago I made a test inspired by this old Cliff interview:
https://guitarmessenger.com/cliff-chase-interview-fractal-audio/

This bit in particular:
"IC: Did you actually run out of resources on the Ultra? Were there things that you were trying to run on it that you couldn’t?

CC: Yeah, in terms of processing power it just doesn’t have enough power to run the new algorithms. It’s this thing we called G2 Modeling. It’s basically like a digital algorithm that simulates the way a tube triode works. Nowadays, when most people do modeling, they use what are called wave shapers, which is basically just a nonlinearity in math. So they’ll say you can either use polynomials or piecewise polynomials. I believe a lot
of the earlier company that begins with an L used a thing called a piecewise polynomial, which basically says if your input signal is over a certain value, then this is your function. If it’s between this value and another value it’s this function, and you splice all those polynomials together.


There are other approaches where you just use a polynomial or trigonometric functions and things like that. The problem with all those approaches is they are static – they’re a static transfer function. So whenever the input is here you know the output is… I mean, you can plot it on a piece of paper. You always know. Real tubes, on the other hand, have memory. They don’t have memory themselves, but they have memory due to their parasitic capacitance. Due to the actual terminal impedances, most designers will put a cathode cap on there, and a lot of times there will be a capacitor on the plate as well and possibly on the grid.

So those capacitors remember the charge that was on them, because charge can’t bleed off instantaneously. Or at least it can’t without burning up the traces on the board. So G2 Modeling is actually like a wave shaper, but it has memory, and so the transfer function changes over time based on the memory of the function. And it’s also based on the feedback and the frequency and everything else, so just like a real tube that transfers function changes with amplitude and time.

That, however, is a very CPU intensive process. It requires a lot of steps to simulate that. Simulating just one triode is almost as much horsepower as the entire modeling in the old Axe-Fx. When you start stringing together three or four triodes the algorithm is much more CPU intensive. You couldn’t run that on an Ultra and have any horsepower left for anything else, maybe just a basic delay and a reverb and something. Customers wouldn’t be very happy if they had an inventory of fifty effects and they could only use an amp, a cab, and one effect at a time. So the only way around that for the Axe-Fx II, given that we’re kind of at a plateau in DSP processing speeds right now, is to put two of them in there. One of them is dedicated to just the amp modeling and the other one does all the other stuff.
"


And here's the test I did to hopefully verify what he's explaining about the "memory" of the circuit and the fact that axe fx algorithms don't always produce the same result for the same input signal:
I recorded a short sample by feeding the same signal to two identical amp blocks, each one recorded on a separate channel in the daw, then I inverted the phase on one of them and this is what came out


If you do the same experiment with helix native or some other plugin you get just silence when you invert the phase, that means the output is always the same if the input signal is the same, so they use waveshapers.

So now I repeated the test with the drive block and even in this case the result is just silence, thus I assume the drive block uses waveshapers as well and not the complex algorithms used for the amp block.
I don't know if drives would gain a substantial benefit from those algos, all I know is that drive pedals have a lot in common with tube amps in terms of circuit implementation so maybe they also share most of those weird and interconnected behaviours the amp block simulates.
The CPU usage would probably increase a lot though so maybe Cliff thinks it's not worth it to waste processing power for drives.

The drive block was updated with firmware 13, right?
”Improved Drive block modeling. New algorithm uses a novel solution to solve the nonlinear ODE of a diode clipper with memory (i.e. a capacitor).”
No longer a waveshaper, at least for diode clippers with memory . But it’s interesting your test!
 
The drive block was updated with firmware 13, right?
”Improved Drive block modeling. New algorithm uses a novel solution to solve the nonlinear ODE of a diode clipper with memory (i.e. a capacitor).”
No longer a waveshaper, at least for diode clippers with memory . But it’s interesting your test!
Well, actually I tried both a model based on diode clipping and one without, silence with both.

PS: maybe it's just that my test is not able to tell if waveshapers are used, and the "randomness" on the output of the amp block is caused by something else.. I don't know
 
Last edited:
@DLC86 Good stuff!

A little while ago I did the same within the Axe (same amps or drives inverted) and with the drives got complete or almost complete cancelation (down to 50-60 dB) while with the amps I got a ringmod/farty sound with the amps similar to your recording. The net signal level was very low (perhaps -40 dB) so there is a good bit of cancelation but a remnant that might be a feature-artifact of the nonlinear circuitry.

My original purpose was to "diff" various power tubes in the same amp to see if there was an audible difference, but I was surprised there was a residual "diff" with the same tube. As for different tubes, there is a similar ringmod tone but I'm not sure I could get the diff exact given the 0.1 dB granularity of the amp level parameter.

Will play with that preset again and post here.

EDIT:

I traced apparent non-cancelation of the drives to a slight bug/feature of the Filter block in which 0 dB is slightly different if one changes the value up or down and back to 0. IOW the drives cancel exactly if you don't fiddle with filter level knobs.

Also confirmed as @DLC86 shows above, amps do not cancel unless PA is turned off. See next post for preset.
 
Last edited:
Here is the preset promised above that does a "difference" of two drive blocks (Rats) or two amp blocks (AC-20s).

For the test I have a synth sweeping a sine wave (Scene 1) but a guitar or other signal can be used in addition (Input 1). You can see the sweep in the RTA block. Warning: keep your output volume low to start, especially if you change any settings for the drives or amps since to hear the "difference" the level is boosted and compressed.

Scene 1: The synth sine wave sweep. Level shouldn't be loud but audible.​
Scene 2: The synth signal feed into inverse polarity phase filter blocks in parallel. When loading the preset there is exact cancelation (no audible output and nothing in the RTA block) unless you change one of the filters level up and down in different ways. [This may be a tiny filter block "bug" which I might submit.]​
Scene 3: Sine sweep fed into two of the same drive blocks in parallel with one inverted. They cancel (unless levels in filter blocks are touched).​
Scene 4: Sine sweep fed into two of the same amp (AC-20 12AX7A Treble) with one in inverse polarity. They do not cancel and you can here additional harmonics compared to the raw sine sweep in Scene 1.​
Scene 5: Same as Scene 4 but the Power Amps are turned off (Sag=0). Here there is almost perfect cancelation but a strange intermittent "remnant" artifact like a low pink noise rumble that can last for 10-20 seconds and then dissipate. Perhaps this is residual signal in the buffer or some dithering effect? [I might query Cliff about this but I suspect he might say "don't do that" or "that's expected" or "who cares?"]​
Scene 6: Same as Scene 4 but with no Synth. A guitar signal produces a ringmod-like sound at a very low level.​
Scene 7: Same as Scene 6 but one amp has a 6550 power tube and the level has been adjusted to get as much cancelation as possible. Similar sound to Scene 6. I was hoping there would be an obvious difference due to tube type differences.​
Scene 8: AC-20s with PA's off but with different preamp tubes, one 12AX7A Syl and one EF86. A different ringmod-like sound.​
 

Attachments

  • Diff of Drives Amps 15.01.syx
    48.2 KB · Views: 1
Last edited:
Today I recalled that some time ago I made a test inspired by this old Cliff interview:
https://guitarmessenger.com/cliff-chase-interview-fractal-audio/

This bit in particular:
"IC: Did you actually run out of resources on the Ultra? Were there things that you were trying to run on it that you couldn’t?

CC: Yeah, in terms of processing power it just doesn’t have enough power to run the new algorithms. It’s this thing we called G2 Modeling. It’s basically like a digital algorithm that simulates the way a tube triode works. Nowadays, when most people do modeling, they use what are called wave shapers, which is basically just a nonlinearity in math. So they’ll say you can either use polynomials or piecewise polynomials. I believe a lot
of the earlier company that begins with an L used a thing called a piecewise polynomial, which basically says if your input signal is over a certain value, then this is your function. If it’s between this value and another value it’s this function, and you splice all those polynomials together.


There are other approaches where you just use a polynomial or trigonometric functions and things like that. The problem with all those approaches is they are static – they’re a static transfer function. So whenever the input is here you know the output is… I mean, you can plot it on a piece of paper. You always know. Real tubes, on the other hand, have memory. They don’t have memory themselves, but they have memory due to their parasitic capacitance. Due to the actual terminal impedances, most designers will put a cathode cap on there, and a lot of times there will be a capacitor on the plate as well and possibly on the grid.

So those capacitors remember the charge that was on them, because charge can’t bleed off instantaneously. Or at least it can’t without burning up the traces on the board. So G2 Modeling is actually like a wave shaper, but it has memory, and so the transfer function changes over time based on the memory of the function. And it’s also based on the feedback and the frequency and everything else, so just like a real tube that transfers function changes with amplitude and time.

That, however, is a very CPU intensive process. It requires a lot of steps to simulate that. Simulating just one triode is almost as much horsepower as the entire modeling in the old Axe-Fx. When you start stringing together three or four triodes the algorithm is much more CPU intensive. You couldn’t run that on an Ultra and have any horsepower left for anything else, maybe just a basic delay and a reverb and something. Customers wouldn’t be very happy if they had an inventory of fifty effects and they could only use an amp, a cab, and one effect at a time. So the only way around that for the Axe-Fx II, given that we’re kind of at a plateau in DSP processing speeds right now, is to put two of them in there. One of them is dedicated to just the amp modeling and the other one does all the other stuff.
"


And here's the test I did to hopefully verify what he's explaining about the "memory" of the circuit and the fact that axe fx algorithms don't always produce the same result for the same input signal:
I recorded a short sample by feeding the same signal to two identical amp blocks, each one recorded on a separate channel in the daw, then I inverted the phase on one of them and this is what came out


If you do the same experiment with helix native or some other plugin you get just silence when you invert the phase, that means the output is always the same if the input signal is the same, so they use waveshapers.

So now I repeated the test with the drive block and even in this case the result is just silence, thus I assume the drive block uses waveshapers as well and not the complex algorithms used for the amp block.
I don't know if drives would gain a substantial benefit from those algos, all I know is that drive pedals have a lot in common with tube amps in terms of circuit implementation so maybe they also share most of those weird and interconnected behaviours the amp block simulates.
The CPU usage would probably increase a lot though so maybe Cliff thinks it's not worth it to waste processing power for drives.

The diode-based models in the Drive block have memory. They use a novel approach to solve the nonlinear ODE.

Your logic is flawed. If you put the same signal into two identical amps/drives etc. you should get the same output. The memory is very short, in the millisecond range.

The reason the amps don't cancel perfectly is because of the virtual power supply. The 60 Hz power supply between two amps will not be synchronized. If you subtract them you'll get a slight residual because of power supply ripple being out of phase between the two amps. This is because the amp objects instantiate at different times so the power supplies are out of phase.

IMHO the diode-based models are excellent and compare favorably with their analog counterparts.
 
The diode-based models in the Drive block have memory. They use a novel approach to solve the nonlinear ODE.

Your logic is flawed. If you put the same signal into two identical amps/drives etc. you should get the same output. The memory is very short, in the millisecond range.
Ok then, as I suspected, this test doesn't tell me anything about the type of algorithm used.
I probably don't understand exactly what you meant in that interview if we get the same output when feeding the same input.

The reason the amps don't cancel perfectly is because of the virtual power supply. The 60 Hz power supply between two amps will not be synchronized. If you subtract them you'll get a slight residual because of power supply ripple being out of phase between the two amps. This is because the amp objects instantiate at different times so the power supplies are out of phase.
Got it. So if I set the power supply type to DC I should get full cancelation. I'll try that!

IMHO the diode-based models are excellent and compare favorably with their analog counterparts.
I agree, they are the best ones for sure and, as I previously said, in the end I was able to match one of my pedals with a few advanced tweaks and a tonematch.
Still unsuccessful with fuzzes and muffs though.


EDIT: after thinking a bit about it maybe I got what you really meant in that interview: they don't produce the same output for two identical input signals fed at two different points in time.
Example: if I feed two identical transients in rapid succession (let's say 1ms apart) the output produced by the second transient would be different than the output produced by the first one cuz the virtual circuit still hasn't gone back to its "rest state" after being excited by the first stimulus.
Is that right?
 
Last edited:
EDIT: after thinking a bit about it maybe I got what you really meant in that interview: they don't produce the same output for two identical input signals fed at two different points in time.
Example: if I feed two identical transients in rapid succession (let's say 1ms apart) the output produced by the second transient would be different than the output produced by the first one cuz the virtual circuit still hasn't gone back to its "rest state" after being excited by the first stimulus.
Is that right?
Exactly. The time constants are very short, typically milliseconds or tens of milliseconds. The memory will fade in less than a second.

An analog RC circuit has "memory". That memory is the capacitor. It "remembers" the voltage. Over time that memory fades to zero. In mathematical parlance it's an integral or a derivative. The capacitor integrates or differentiates and the output is a function of the current input and previous inputs and output. Because the output is based on previous results it therefore has "memory".

If you take two identical circuits with memory they'll both produce the same output to the same input stimulus, just as a circuit without memory would. There is no way to test if an algorithm has memory because any linear filters in the algorithm also have memory.

The key to a good tube algorithm is that there is "nonlinear memory".

The classic method of modeling nonlinear things like tube amps and drive pedals for consumer products is Wiener/Hammerstein techniques. You put linear filters before and/or after a static waveshaper. Crude but pretty effective. Falls apart at edge-of-breakup.

More modern approaches make the waveshaper dynamic but still use fixed filters. Another approach is dynamic filters and static waveshapers.

The advantage of these techniques is they are CPU efficient. The disadvantage is they don't sound particularly good under scrutiny and, more importantly, don't feel right.

More advanced approaches use state-space methods, Volterra kernels, neural networks, etc. They all have advantages and disadvantages.

Personally I prefer parametric approaches with state-space methods. The advantage is that you can create virtual models with realistic control behavior and dynamics. Methods that rely on learning are opaque and only provide a snapshot. They also usually have poor dynamic properties and rely on generalized dynamics to get a fit. IOW everything "feels the same".
 
The reason the amps don't cancel perfectly is because of the virtual power supply. The 60 Hz power supply between two amps will not be synchronized. If you subtract them you'll get a slight residual because of power supply ripple being out of phase between the two amps. This is because the amp objects instantiate at different times so the power supplies are out of phase.

Hi Cliff, I know this is slightly off topic but what you said above may explain something I’ve been hearing when I put the Axe 3 analog stereo chorus block in front of my two amp hard L R panned chains. It’s a kind of phasey whoosh as the chorus modulates that I don’t hear when I put a stereo chorus after an amp block in a single amp signal chain. Could the phasey sound of the stereo chorus in front of a 2 amp block signal chain be coming from the 2 amp blocks virtual power supply ripples being slightly out of phase, as you detailed above?

To be clear, I put the analog stereo chorus in front of my L R amp blocks because I like the sound of the chorused signal being over driven by the amp...
 
Did you set the Input Select in one of the Amps to left and to Right in the other?
 
Hi Cliff, I know this is slightly off topic but what you said above may explain something I’ve been hearing when I put the Axe 3 analog stereo chorus block in front of my two amp hard L R panned chains. It’s a kind of phasey whoosh as the chorus modulates that I don’t hear when I put a stereo chorus after an amp block in a single amp signal chain. Could the phasey sound of the stereo chorus in front of a 2 amp block signal chain be coming from the 2 amp blocks virtual power supply ripples being slightly out of phase, as you detailed above?

To be clear, I put the analog stereo chorus in front of my L R amp blocks because I like the sound of the chorused signal being over driven by the amp...
You've got something configured wrong and you're getting phase cancelleation.
 
You've got something configured wrong and you're getting phase cancelleation.
It’s very subtle, not altogether bad. I’ll check again for any L R sum mistakes in the signal path. I am careful about trying to preserve the image, I even have separate mono reverbs for each side. But I still hear the phasey sound with the verbs out of the chain and chorus on. I also have things set so the enhancer block is in when the chorus is out, and I hear no phasey stuff with the enhancer block at the very end of the chain.

It seems like the chorus is the culprit or there is something happening in the amp block with the mono input signal split into the L R chorus signal before them.

Also forgot to mention there are drive blocks before each amp, set to micro amp with HV tube clip. But all the panning is correct.
 
Last edited:
Just thought of something else, since some amp circuits have more components and gain stages than others, is it possible there are internal differences in latency between amp models?

I’m using a Recto2 Red Modern on one side and the Engl Energyball on the other. But they are both 6L6 amps and im guessing the circuits are similar enough that there is little or no difference in latency, if that is actually a thing...
 
Just thought of something else, since some amp circuits have more components and gain stages than others, is it possible there are internal differences in latency between amp models?

I’m using a Recto2 Red Modern on one side and the Engl Energyball on the other. But they are both 6L6 amps and im guessing the circuits are similar enough that there is little or no difference in latency, if that is actually a thing...

https://forum.fractalaudio.com/threads/axr-fx-ii-xl-noise-over-palm-mute.119930/post-1444307
 
Back
Top Bottom