Hello SoX_ng,
thanks for the answer and sorry to bother you with
largely academic discussions!
> > [SoX phaser is not a phaser, but a flanger.
> > Funnily enough there is also a flanger available in SoX]
> I notice that the comment at the top of "phaser.c" says
> "SoX flanger effect"
Well spotted, I didn't notice that. Good thing
J.M. obviously knowingly called that a phaser ;-)
> > What shall we do?
> [compatibility with sox-14.4.2 is an absolute priority]
> Not only, but if someone happens to be developing with
> sox_ng and one day they (pr their work) find themselves
> running on sox, everything (modulo new features and bug
> fixes) should work exactly the same.
I understand that, the SoXPlugins have the same principle.
But I wanted to revise and systematise the algorithms; some
algorithmic deviations were allowed as long as the difference
to commandline SoX were below the hearing threshold (see below).
So I am okay with that.
> The real step forward there is to provide a different type
> of echo one with feedback, possibly a multitap. *That*
> would open up new possibilities, but it has to have a new
> name.
Or it has the same name but with optional parameters like
echo gain-in gain-out [ -f feedback ] { delay decay }
> > Provide a real phaser as "phaser"?
> As "phazer" or "resahp" or whatever. "spockify" if you
> want. People don't care - it's only SoX's effect
> namespace - and if spockify makes tongue-in-cheek
> sarcastic comments about phaser in its manual entry it
> might give them a laugh, you never know.
That's okay. My point was that a person expecting a real
phaser when using "SoX phaser" might be surprised.
But this could be handled in the documentation, e.g.:
»phaser uses delay lines and hence does a harmonic comb
filtering.«
Anyone who is familiar with effects will understand that and
all the other ones don't care and only pick the effect by
its sound.
> > [proposed command line for "new" phaser is]
> > phaser gain-in gain-out stage-count decay speed
> > modulation-kind where the stage-count gives the number
> > of allpass stages (typically 4, 8, 12 etc.)
> Is it always a multiple of 4?
No, in principle any natural number is allowed. I guess
that it originally comes from the analog world where
integrated circuits with arrays of operational amplifiers
(one per stage) were used for the allpass filters in a
phaser and typically there were 1, 2 or 4 opamps per chip.
But for a digital emulation anything goes...
> You seem to know flangers better than me but best is
> whatever people expect from the classic flangers they know
> so as to reduce user-astonishment.
Flangers are already adequately covered in SoX multiple
times ;-)
And the above command line for a phaser should be okay. One
could also imagine multiple parallel stages, but one should
not make things too complicated.
> > and modulation-kind is either -s or -t.
> [preferably with a default]
Sorry, that was always meant to be optional (like the last
parameter in the SoX phaser).
> All of Mueller's effects (echo echos chorus and phaser)
> are turning out rather disappointing but composers are
> using them in their work the world over, whatever it is
> they do, so I think we are tied to them, as long as
> they're not a complete disaster.
Definitely, I think your underlying condition is absolutely
okay.
But the programming - as you mentioned - sometimes is a bit
sloppy. For example, the wave form iterator in sox_i.h
(lsx_generate_wave_table) has a problem in my opinion: it
cannot reproduce exact frequencies, because it keeps an
_array of samples_.
When the modulation signal wavelength does not exactly fit
into that raster, some roundoff error occurs, which
accumulates over time.
One can compensate that algorithmically (I did it in the
SoXPlugins) and admittedly the effect is absolutely tiny.
When subtracting a typical signal processed by the
SoXPlugins tremolo from one processed with the SoX tremolo
there is a tiny spike wandering in the spectrum at about
-130dB.
Long story short: in my opinion the algorithms may be
renovated and improved as long as the change is hardly
noticeable.
The problem is: you cannot test that. If someone really
pushes the parameters of some effect, the differences
between the original and a revised version might become
significant.
Nevertheless, I would prefer to go down the path of being as
mathematically correct as possible rather than remaining
compatible at all costs.
But you are the maintainer: it is you to decide.
Best regards,
Prof. Spock
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#38): https://groups.io/g/sox-ng/message/38
Mute This Topic: https://groups.io/mt/110480565/21656
Group Owner: [email protected]
Unsubscribe: https://groups.io/g/sox-ng/leave/13602885/21656/313486934/xyzzy
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-