### Analysis of the Boss MT2 Metal zone pedal (1)

I create a model of the Boss SD1 and the Ibanez TS9 some time ago. Now it’s time to get on modelling another pedal, the famous Boss MT2 Metal Zone.

There are many pages online that also analyse this pedal, but I’d like to start from the schema, split in independent pieces and analyze them with my Modelling  Lite tool. The end result will probably end up as a new plugin, but this is currently outside the scope of this new subserie.

###### Schema

Let’s start first with the full schema of this pedal.

When looking at the schema, there are two things that we can notice, which are repeated everywhere in the schema, and these are known as gyrators:

The transistor version is a low cost version of the opamp version and they are designed to replace an equivalent coil. But how much equivalent are they?

###### The perfect gyrator

Let’s have a look at the perfect gyrator again:

As there is only two resistors, one capacitor and one opamp, we can derive the equivalent complex impedance of the circuit and check it against a coil impedance.

We start from the Kirchhoff voltage equation, replace the voltages with the complex impedance, combine this with the equivalence between the voltage at the capacitor and the resistor around the opamp. Then we obtain: $V = \frac{1+R_2Cjw}{1+R_1Cjw}R_1i$.

This means that for small $w$, the perfect gyrator is equivalent to a resistor $R_1$ in series with a coil of value $R_1R_2C$, then for higher values of $w$, it turns back to a resistance of value $R_2$.

Let’s see the evolution of the amplitude and the phase of this impedance for $C=47p$, $R_1=2.2k$, $R_2=100k$. First the code:

 import numpy as np from scipy.signal import freqs import matplotlib.pyplot as plt c = 47.0e-9 r1 = 2.2e3 r2 = 100.0e3 a1 = [1.] b1 = r1 * np.array((1., r2*c))[::-1] a2 = np.array((1., r1*c))[::-1] b2 = r1 * np.array((1., r2*c))[::-1] w1, h1 = freqs(b1, a1, worN=np.logspace(1, 4.2, 10000)) w2, h2 = freqs(b2, a2, worN=np.logspace(1, 4.2, 10000)) plt.semilogx(w1, 20 * np.log10(abs(h1)), label="coil") plt.semilogx(w2, 20 * np.log10(abs(h2)), label="gyrator") plt.xlabel('Frequency') plt.ylabel('Amplitude response [dB]') plt.legend() plt.grid() plt.figure() plt.semilogx(w1, np.angle(h1), label="coil") plt.semilogx(w2, np.angle(h2), label="gyrator") plt.xlabel('Frequency') plt.ylabel('Angle') plt.legend() plt.show()
view raw perfect_gyrator.py hosted with ❤ by GitHub

And now the results: