1. **Fixed Soft Knee Implementation:**
- The **soft knee** implementation was incorrect in previous versions. This has been fixed to ensure a **smooth quadratic transition** within the knee region.
- The new implementation uses the equation:
y = x + ((1 / R - 1) * (x - T + W/2)^2) / (2 * W)
where:
- `x` is the input level (in dB),
- `y` is the output level (in dB),
- `R` is the compression ratio,
- `T` is the threshold (in dB),
- `W` is the knee width (in dB).
- This ensures a seamless transition between the uncompressed and compressed regions.
2. **Moved Target Gain Reduction Calculation to `target_gain_reduction` Public Method:**
- The calculation of the **target gain reduction** has been moved to the `target_gain_reduction` public method.
- This makes the method more accessible and reusable for users who want to compute gain reduction without processing the entire signal.
3. **Added Example for Computing and Drawing Transfer Curves:**
- A new example has been added to demonstrate how to compute and draw the **transfer curves** of `AudioCompressor` and `PeakLimiter` using the `target_gain_reduction` method.
- The example uses `matplotlib` to visualize the input-output relationship in both **linear** and **dB** scales.