Re: ToneShiftEQ v0.3.0 — First public relea se

Hermann Meyer <brummer--S0/[email protected]> Fri, 3 Jul 2026 13:55:25 +0200
Newsgroups gmane.linux.audio.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------RmQTzjasKXMV2nXx5eut0MNd
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable


Am 03.07.26 um 13:51 schrieb Hermann Meyer:
>
>
> Am 03.07.26 um 12:46 schrieb Fons Adriaensen:
>> On Wed, Jul 01, 2026 at 08:39:40AM +0200, Hermann Meyer wrote:
>>
>>> It provides two processing modes for different workflows:
>>>
>>> =E2=80=A2 Master Mode =E2=86=92 Perfect linear-phase response with 128=
 samples latency for
>>> precise mastering and critical processing.
>>> =E2=80=A2 Live Mode =E2=86=92 Zero-latency processing with slight phas=
e deviation, optimized
>>> for real-time use and live performance.
>> This is the sort of thing that causes Linux Audio to have a
>> bad reputation. The marketing blabla and the actual performance
>> seem to be completely unrelated.
>>
>> Linear-phase implies that the impulse response is symmetric.
>> The IRs produced by this plugin are clearly not, not even when
>> short enough to be causal with 256 samples latency.
>>
>> In fact the only difference between the two modes seems to
>> be that 'master' has 256 samples latency and 'live' has 128.
>> That is assuming that the mode indication in the GUI actually
>> shows the one that is NOT currently active. The actual IR
>> in both modes seem to be the same.
>>
>> And that's only the beginning. The actual EQ curves (I assume
>> that is what is displayed by the blue line), even with 'Smooth'
>> set to zero, are so weird and unphysical that I wonder how they
>> are arrived at.
>>
>> Other problems:
>>
>> The 'Solo' and 'Mute' functions do not select or exclude one
>> of the 12 bands as one would expect. Instead they seem to
>> enable a brickwall bandpass or band reject filter based on
>> the last band what was selected. This is completely useless.
>>
>> Depending on the selected mode, switching 'bypass' on and then
>> off results in a latency of 24 ms. This remains so until the
>> mode is changed again.
>>
>> What 'Dynamics' and 'Tone Bias' are doing remains entirely
>> a mystery.
>>
>> Probably more weirdness would show up, but I stopped bothering.
>>
>
> Regarding the phase response: the plugin uses minimum-phase impulse=20
> responses processed through a partitioned convolution engine. The=20
> Ardour spectrum analyzer confirms linear-phase behavior in the output,=
=20
> which is consistent with the design. The term "linear-phase" in the=20
> description refers to the measured output response, not the IR=20
> symmetry =E2=80=94 I agree that this could be stated more precisely in t=
he=20
> documentation and will clarify it.
>
> Regarding the latency: Master Mode operates at 128 samples latency,=20
> Live Mode at 0 samples. If your measurements show different values, I=20
> would be interested to know how you measured them, as my own=20
> measurements consistently show these values.
>
> Regarding Solo/Mute, Dynamics, Tone Bias and the bypass behavior:=20
> these are fair points =E2=80=94 the documentation is currently minimal a=
nd=20
> does not explain these features adequately. I will address this.
>
> https://github.com/brummer10/ToneShiftEQ/blob/main/Manual.md
>
> I appreciate constructive criticism.
>
>
I forgot to mention, the blue line is the generated Impulse Response, it=
=20
is exactly what goes into the Convolver engine.


--------------RmQTzjasKXMV2nXx5eut0MNd
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF-=
8">
  </head>
  <body>
    <p><br>
    </p>
    <div class=3D"moz-cite-prefix">Am 03.07.26 um 13:51 schrieb Hermann
      Meyer:<br>
    </div>
    <blockquote type=3D"cite"
      cite=3D"mid:c5b1989e-c45e-46ed-9534-029da6e850bc-S0/[email protected]">
      <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUT=
F-8">
      <p><br>
      </p>
      <div class=3D"moz-cite-prefix">Am 03.07.26 um 12:46 schrieb Fons
        Adriaensen:<br>
      </div>
      <blockquote type=3D"cite"
        cite=3D"mid:akeTCYeV6gCvFvEw-i9wRM+HIrmlcsMIzqIq2i0B+6BGkLq7r@public.gmane.org">
        <pre wrap=3D"" class=3D"moz-quote-pre">On Wed, Jul 01, 2026 at 08:=
39:40AM +0200, Hermann Meyer wrote:

</pre>
        <blockquote type=3D"cite">
          <pre wrap=3D"" class=3D"moz-quote-pre">It provides two processin=
g modes for different workflows:

=E2=80=A2 Master Mode =E2=86=92 Perfect linear-phase response with 128 sam=
ples latency for
precise mastering and critical processing.
=E2=80=A2 Live Mode =E2=86=92 Zero-latency processing with slight phase de=
viation, optimized
for real-time use and live performance.
</pre>
        </blockquote>
        <pre wrap=3D"" class=3D"moz-quote-pre">This is the sort of thing t=
hat causes Linux Audio to have a
bad reputation. The marketing blabla and the actual performance
seem to be completely unrelated.

Linear-phase implies that the impulse response is symmetric.
The IRs produced by this plugin are clearly not, not even when
short enough to be causal with 256 samples latency.

In fact the only difference between the two modes seems to=20
be that 'master' has 256 samples latency and 'live' has 128.
That is assuming that the mode indication in the GUI actually
shows the one that is NOT currently active. The actual IR
in both modes seem to be the same.

And that's only the beginning. The actual EQ curves (I assume
that is what is displayed by the blue line), even with 'Smooth'
set to zero, are so weird and unphysical that I wonder how they
are arrived at.

Other problems:

The 'Solo' and 'Mute' functions do not select or exclude one
of the 12 bands as one would expect. Instead they seem to=20
enable a brickwall bandpass or band reject filter based on
the last band what was selected. This is completely useless.

Depending on the selected mode, switching 'bypass' on and then
off results in a latency of 24 ms. This remains so until the
mode is changed again.

What 'Dynamics' and 'Tone Bias' are doing remains entirely
a mystery.

Probably more weirdness would show up, but I stopped bothering.

</pre>
      </blockquote>
      <p class=3D"font-claude-response-body break-words whitespace-normal"=
><br>
      </p>
      <p class=3D"font-claude-response-body break-words whitespace-normal"=
>Regarding
        the phase response: the plugin uses minimum-phase impulse
        responses processed through a partitioned convolution engine.
        The Ardour spectrum analyzer confirms linear-phase behavior in
        the output, which is consistent with the design. The term
        "linear-phase" in the description refers to the measured output
        response, not the IR symmetry =E2=80=94 I agree that this could be
        stated more precisely in the documentation and will clarify it.</p=
>
      <p class=3D"font-claude-response-body break-words whitespace-normal"=
>Regarding
        the latency: Master Mode operates at 128 samples latency, Live
        Mode at 0 samples. If your measurements show different values, I
        would be interested to know how you measured them, as my own
        measurements consistently show these values.</p>
      <p class=3D"font-claude-response-body break-words whitespace-normal"=
>Regarding
        Solo/Mute, Dynamics, Tone Bias and the bypass behavior: these
        are fair points =E2=80=94 the documentation is currently minimal a=
nd
        does not explain these features adequately. I will address this.</=
p>
      <p class=3D"font-claude-response-body break-words whitespace-normal"=
><a
          class=3D"moz-txt-link-freetext"
href=3D"https://github.com/brummer10/ToneShiftEQ/blob/main/Manual.md"
          moz-do-not-send=3D"true">https://github.com/brummer10/ToneShiftE=
Q/blob/main/Manual.md</a><br>
      </p>
      <p class=3D"font-claude-response-body break-words whitespace-normal"=
>I
        appreciate constructive criticism. <br>
      </p>
      <p><br>
      </p>
    </blockquote>
    <p>I forgot to mention, the blue line is the generated Impulse
      Response, it is exactly what goes into the Convolver engine.<br>
    </p>
    <p><br>
    </p>
  </body>
</html>

--------------RmQTzjasKXMV2nXx5eut0MNd--