On 07/01/25 17:56, Prof. Spock via groups.io wrote:
I noticed a
similarity between the code for "chorus" and "phaser": both
have modulated delay lines.
For a chorus this is absolutely correct, but a phaser should
_not at all_ have modulated delay lines, it must have
_modulated phase shift stages_.
Hence the 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"
What shall we do?
I strongly desire that, if sox-14.4.2 did X for a given syntax,
sox_ng should do the same because if sox_ng is dropped-in
as a replacement for sox by someone's distro we must not
break their ten-year-old scripts, nor other programs that
launch sox to easily achieve certain effects.
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.
The first means that if there is a sox effect whose name happens
to begin with ph- and end with -er that does X and works,
it must continue to do that.
The fact that 'sox echo' is not an echo and 'sox phaser' is not a phaser
is not as important as trying to make them coincide more closely
with the dictionary meanings of those terms. Being a sox effect means
living in your own namespace.
An exception was the "echos" effect which has never worked because
(as you, prof, so keenly spotted) it has always overwritten its input
samples
before using them to generate its output and has never done anything more
than the sox "echo" effect, in fact probably less and worse so it's very
unlikely
that anyone ever used it. At least, I hope they didn't.
Currently, in git since 14.5.0, it is "fixed" to do what its author seems
to have intended it to do and what it said it should do in the manual.
That it cannot do anything the "echo" effect couldn't do with a couple
of extra arguments is not that serious, it just makes it pointless :)
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.
* Leave everything as is and accept the inappropriate name
for the phaser effect just to be compatible to the past?
Yes
* 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.
Its parameters should be
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.) and modulation-kind is either
Is it always a multiple of 4? 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.
-s or -t.
Preferably with a default of whatever people use most commonly.
I think that having to say "-s" ot "-t" always (and at the end of the
argument list to boot, not as a normal argument!) is awkward.
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.
I wouldn't want someone quietly changing my tools under my feet and
breaking the stuff I worked so hard on, and I'm not even quite certain
that we should fix echos, in case someone relies on its broken behaviour
but that's a corner case.
M
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#36): https://groups.io/g/sox-ng/message/36
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]]
-=-=-=-=-=-=-=-=-=-=-=-