On 13/01/25 20:07, Thomas Barth via Sox-users wrote:
I use sox for converting and merging vox-files in a shell script. But
the vox files often have different duration in seconds and I want to
make sure that the shorter file always has the duration of the longer
file before merging.
With soxi -D <file.vox> I get the length in seconds. If the
differences between the two files are greater than 2 seconds, I
calculate the stretch factor. The “problem” now is that the stretched
file is often longer than the longer file itself, e.g.
soxi -D fileA.vox = 870.408000
soxi -D fileB.vox = 868.360000
stretch factor = 1.00235846883780920355
The used command for stretching is:
sox -r 8000 -t vox “$fileB” -r 8000 -t vox
“${work_dir}/fileB_stretched.vox” stretch “$factor”
But the unexpected result of stretching this file is
soxi -D ${work_dir}/fileB_stretched.vox = 875.197500
I don't know how this inaccuracy is caused.
Long story short: yes, "stretch" does create a slightly longer file than
is mathematically expected because it has a "drain" phase in which it
empties out what's left in the delay line it uses to create the effect.
"tempo", despite having a drain phase, does seem to get the length as
expected.
M
_______________________________________________
Sox-users mailing list
Sox-users@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/sox-users