Axe-Fx III Firmware Release Version 13.00 Public Beta

Okay, I guess I need to revise my understanding.

The way I understand it, Nyquist tells us that in order to perfectly reconstruct a signal, we need a sample rate that’s at least twice the highest frequency in the signal. And we need to leave enough room between that Nyquist rate and our sample rate to build an artifact-free filter that will knock down higher, alias-causing frequencies that would otherwise show up at more than half of our sample rate. IIRC, @FractalAudio posted that ideally, that “magic number” is somewhere around 62 KHz — that would accommodate a 20 KHz bandwidth, which is the audible spectrum, whether there’s distortion or not.

As I understand it, further oversampling can be used for noise reduction via sample averaging, where uncorrelated signal components (noise) would not add as strongly as the desired correlated signal.


I am open to re-education.

I think the issue with sample rates and modelling distortion is less the audio quality aliasing perspective like you're thinking (where you need a rate high enough to record, do simple processing, then play back without aliasing) and more like the issue of significant figures in mathematical calculations. This is because modelling the clipping, and especially cascading clipping, involves calculating distortion on top of distortion on top of distortion, etc for each stage.

If you do the whole calculation at the normal sample rate, then each level of distortion is "rendered" into the sample rate, then the next stage has to calculate against that last stage. But even if the aliasing isn't audible, it's there to cause effects in the next stage of distortion. So by oversampling, you make sure that each stage of clipping is at a much higher resolution so no details are lost until the whole thing is done, then it's brought back to the standard rate.

Since all this audio processing is just math, it's pretty similar to if you round after every calculation or just once at the end:

12.5 / 3 = 4.166666666667 * 2.1 = 8.75 / 2 = 4.375 * 4 = 17.5 * 5 = 87.5 / 3 = 29.166667.

12.5 / 3 ~= 4.2 (4.166666667)
4.2 * 2.1 ~= 8.8 (8.82)
8.8 / 2 = 4.4
4.4 * 4 = 17.6
17.6 * 5 = 88
88 / 3 = 29.3 (29.3333333)

This is obviously extremely contrived, and if I tweaked the numbers the difference could be made larger or smaller. But I think that's the core concept: If you do all your gain stage clipping calculations at the normal rate, each step is "rounded" into the sample rate. If you oversimple you keep additional detail do these differences don't become as pronounced.
 
  • Like
Reactions: Rex
I think the issue with sample rates and modelling distortion is less the audio quality aliasing perspective like you're thinking (where you need a rate high enough to record, do simple processing, then play back without aliasing) and more like the issue of significant figures in mathematical calculations. This is because modelling the clipping, and especially cascading clipping, involves calculating distortion on top of distortion on top of distortion, etc for each stage.

If you do the whole calculation at the normal sample rate, then each level of distortion is "rendered" into the sample rate, then the next stage has to calculate against that last stage. But even if the aliasing isn't audible, it's there to cause effects in the next stage of distortion. So by oversampling, you make sure that each stage of clipping is at a much higher resolution so no details are lost until the whole thing is done, then it's brought back to the standard rate.

Since all this audio processing is just math, it's pretty similar to if you round after every calculation or just once at the end:

12.5 / 3 = 4.166666666667 * 2.1 = 8.75 / 2 = 4.375 * 4 = 17.5 * 5 = 87.5 / 3 = 29.166667.

12.5 / 3 ~= 4.2 (4.166666667)
4.2 * 2.1 ~= 8.8 (8.82)
8.8 / 2 = 4.4
4.4 * 4 = 17.6
17.6 * 5 = 88
88 / 3 = 29.3 (29.3333333)

This is obviously extremely contrived, and if I tweaked the numbers the difference could be made larger or smaller. But I think that's the core concept: If you do all your gain stage clipping calculations at the normal rate, each step is "rounded" into the sample rate. If you oversimple you keep additional detail do these differences don't become as pronounced.
This ain't it :p
 
  • Like
Reactions: Rex
The new TS9 drive is fantastic! And the bass response parameter is a total game changer for getting the low end to sit perfectly. Thanks for the great additions, Cliff!

Took the words out of my mouth...the T* has become my go to drive and the bass response parameter is just what was missing...!
 
I have a physical precision drive and after messing around with the precise drive in the firmware I can BARELY tell a difference between the two. And the slight difference I do hear is so slight that I can't even point out what it is and it's not a bad difference by any means. I would definitely be able to leave my physical pedal out of my chain and get pretty much the exact sound. Very impressive and convenient! Thanks for the update!
 
The way I understand it, Nyquist tells us that in order to perfectly reconstruct a signal,

You're right, but you're right about a different topic than what Cliff is talking about. Aliasing from discretization is a whole other matter :).
 
  • Like
Reactions: Rex
Okay, I guess I need to revise my understanding.

The way I understand it, Nyquist tells us that in order to perfectly reconstruct a signal, we need a sample rate that’s at least twice the highest frequency in the signal. And we need to leave enough room between that Nyquist rate and our sample rate to build an artifact-free filter that will knock down higher, alias-causing frequencies that would otherwise show up at more than half of our sample rate. IIRC, @FractalAudio posted that ideally, that “magic number” is somewhere around 62 KHz — that would accommodate a 20 KHz bandwidth, which is the audible spectrum, whether there’s distortion or not.

As I understand it, further oversampling can be used for noise reduction via sample averaging, where uncorrelated signal components (noise) would not add as strongly as the desired correlated signal.


I am open to re-education.
Correct. The problem is when you distort a signal you increase it's bandwidth considerably. In the extreme a sine wave is turned into a square wave. The Fourier series for a square wave goes to infinity. I forget the exact formula but it's something like F(w) = sin(w0 t) + 1/3 sin(3 w0 t) + 1/5 sin (5 w0 t) + ... Note that the harmonics decrease proportionally to frequency.

If you don't oversample, all those harmonics you create fold back (alias). For example let's take a 10 kHz sine wave sampled at 48 kHz. If we distort this sine wave (asymmetrically) we create harmonics at 20, 30, 40, etc. kHz. The Nyquist frequency is 24 kHz so anything above that will alias. Therefore the 30 kHz and above harmonics will alias. 30 kHz will fold to 18 kHz. 40 kHz will fold to 8 kHz.

The solution to this problem is to oversample. If we internally increase the sample rate by, say, 8, our Nyquist frequecy is now 192 kHz. Since the Fourier series for a square wave decreases proportionally to the harmonic the frequencies that alias will be greatly attenuated. If you oversample enough the aliasing will be inaudible.
 
Well I wasn't a drive aficionado, but I think I'll become one. Wow! Spent the evening on my strat trying different drives into a Deluxe Verb Normal set pretty clean. Good fun. I usually use amps at edge of breakup. These drives give some nice options for that.
Awesome beta!
 
Correct. The problem is when you distort a signal you increase it's bandwidth considerably. In the extreme a sine wave is turned into a square wave. The Fourier series for a square wave goes to infinity. I forget the exact formula but it's something like F(w) = sin(w0 t) + 1/3 sin(3 w0 t) + 1/5 sin (5 w0 t) + ... Note that the harmonics decrease proportionally to frequency.

If you don't oversample, all those harmonics you create fold back (alias). For example let's take a 10 kHz sine wave sampled at 48 kHz. If we distort this sine wave (asymmetrically) we create harmonics at 20, 30, 40, etc. kHz. The Nyquist frequency is 24 kHz so anything above that will alias. Therefore the 30 kHz and above harmonics will alias. 30 kHz will fold to 18 kHz. 40 kHz will fold to 8 kHz.

The solution to this problem is to oversample. If we internally increase the sample rate by, say, 8, our Nyquist frequecy is now 192 kHz. Since the Fourier series for a square wave decreases proportionally to the harmonic the frequencies that alias will be greatly attenuated. If you oversample enough the aliasing will be inaudible.
I would love to sit in a room and chat with you.. your level of technical knowledge is astounding.
 
Correct. The problem is when you distort a signal you increase it's bandwidth considerably. In the extreme a sine wave is turned into a square wave. The Fourier series for a square wave goes to infinity. I forget the exact formula but it's something like F(w) = sin(w0 t) + 1/3 sin(3 w0 t) + 1/5 sin (5 w0 t) + ... Note that the harmonics decrease proportionally to frequency.

If you don't oversample, all those harmonics you create fold back (alias). For example let's take a 10 kHz sine wave sampled at 48 kHz. If we distort this sine wave (asymmetrically) we create harmonics at 20, 30, 40, etc. kHz. The Nyquist frequency is 24 kHz so anything above that will alias. Therefore the 30 kHz and above harmonics will alias. 30 kHz will fold to 18 kHz. 40 kHz will fold to 8 kHz.

The solution to this problem is to oversample. If we internally increase the sample rate by, say, 8, our Nyquist frequecy is now 192 kHz. Since the Fourier series for a square wave decreases proportionally to the harmonic the frequencies that alias will be greatly attenuated. If you oversample enough the aliasing will be inaudible.
Okay, I get it now.

I was thinking about signals limited to 20 KHz, and that no human ear can hear the difference between a 10 KHz sine wave and a 10 KHz square wave. I was blindly assuming that the signal would stay bandwidth-limited because, well, isn't that how magic works? :) I hadn't considered that nonlinear events in the digital domain would generate ultrasonic harmonics that must be dealt with — and that maybe we even care about the audible effects of those events (intermod?).

Thanks, @FractalAudio and everyone else for your patient explanations.

Oh, and Cliff... thanks for reminding me that i haven't had to think about ω or j or any of that for well over thirty years. :p
 
Indeed, the drive blocks sound much better with v13 ! I had drive blocks in many presets, but didn't make much use of them - the sound became too scratchy and kind of flat. With V13, I tried playing a few songs with the drive block on (after doing some tweaks) and had fun .....
 
An explicit solution is one where the output does not depend on itself, i.e.
V = f(Vin)

An iterative implicit solution is where you have to iterate an equation to get the result. For example consider a hypothetical component where the current is a function of the voltage. I.e.
I = f(V)

In a series circuit with a resistor the voltage across the device would be
V = Vin - I*R = Vin - f(V)*R

Let's say the function is I = V^2

So then
V = Vin - V^2 * R

V is on both sides of the equation. One way to solve this is using Newton's method (x = x - f(x)/f'(x)). But that takes a lot of time because you have to keep iterating until the error is below some desired value. You also have to use the derivative which adds computations. The other problem is stability/convergence. Sometimes the solution "blows up" and doesn't converge. This is unacceptable in a real-time system.

A resistor in series with a diode results in an equation with an exponential (or log) function that needs to be solved along with its derivative.

Now when you add a capacitor in parallel with the diode you complicate things even further because now you have a nonlinear ordinary differential equation (ODE). So the current is not only a function of the voltage, the voltage has "memory" due to the capacitor. Solving these types of networks is extremely time consuming. Things like SPICE use implicit solutions like Runge-Kutta 4 (RK4).

I've been working on this for a while and came up with a semi-explicit solution that doesn't require iteration, has the accuracy of implicit solutions and is nearly as fast as explicit solutions.

This is a graph of a 1K resistor in series with a diode. The blue trace is the reference and was derived by solving the network using Newton's method. The red trace is the semi-explicit solution. If you can't see the blue trace that's because the red trace is nearly exactly on top of it.

View attachment 71052

On the Axe-Fx III solving the network using Newton's method uses over 30% CPU. The semi-explicit method is around 6%.


I feel like I'm back in electrical engineering school at The University Of South Carolina again... almost 2 years of retirement, and my brain doesn't do those things anymore... aCk!!!

Lions, and tigers, and Laplace and Z transforms, oh myyyy...

https://lpsa.swarthmore.edu/LaplaceZTable/LaplaceZFuncTable.html
 
Okay, I get it now.

I was thinking about signals limited to 20 KHz, and that no human ear can hear the difference between a 10 KHz sine wave and a 10 KHz square wave. I was blindly assuming that the signal would stay bandwidth-limited because, well, isn't that how magic works? :) I hadn't considered that nonlinear events in the digital domain would generate ultrasonic harmonics that must be dealt with — and that maybe we even care about the audible effects of those events (intermod?).

Thanks, @FractalAudio and everyone else for your patient explanations.

Oh, and Cliff... thanks for reminding me that i haven't had to think about ω or j or any of that for well over thirty years. :p
 
Anyone have an Amp/drive recommendation for a non-metal, distorted rock rhythm type tone? I just don’t know where to start with all these drives.
 
Anyone have an Amp/drive recommendation for a non-metal, distorted rock rhythm type tone? I just don’t know where to start with all these drives.

Freedman Small Box with a TS808 in front, drive zero level about 6.

Turn the gain down on the amp to about 2.5 and that should get you in the right ball park
 
Back
Top Bottom