Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
23rd June 2020, 03:31 | #1 | Link |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Request for SoxFilter 64 bits
Please, someone can make the 64 bits version of this plugin?
32 bits and sources here https://forum.doom9.org/showthread.p...154#post761154 The author sh0dan is retired in 2016.
__________________
BeHappy, AviSynth audio transcoder. |
23rd June 2020, 05:41 | #3 | Link |
結城有紀
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
|
https://down.7086.in/soxfilter_64_r0.zip Try this.
|
23rd June 2020, 11:07 | #4 | Link |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Tanks! Seems work fine.
SoxFilter have many options and I can test all. Also sh0dan say than there are some issues and we never know. I test a simple filter than crash Avs+ 32 r2772 and work fine, also work the 32 bits, I'm using Avs+ r3106 (32 and 64) Also work a compand function than I need to replace the Audiolimiter plugin (without sources) to make downmix 7.1 -> 5.1 in MeGUI 64. BTW seems than the 32 bits version is fast, but no problem for me. Thanks.
__________________
BeHappy, AviSynth audio transcoder. |
25th June 2020, 23:08 | #8 | Link |
Registered User
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
|
does the r0 has update the Sox library https://forum.doom9.org/showthread.p...29#post1733929 ?
__________________
See My Avisynth Stuff |
1st July 2020, 14:21 | #10 | Link | ||
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
@MeteorRain
About this plugin and your improvements in audio formats conversion, maybe you want read the VapourSynth Audio thread and how AviSynth must work with audio data. Lossy functions (Amplify..., Resamples..., Filters...) must work always in float format, and the conversion must be automatic, it doesn't make sense work in 16 bit int with the risk of overflow and clip and 0 advantages. Comments like was make in old Avs+ thread and behaviour like: Quote:
Quote:
__________________
BeHappy, AviSynth audio transcoder. |
||
1st July 2020, 20:13 | #11 | Link |
結城有紀
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 894
|
Any reason why the conversion must be automatic?
I always believe the user should have the ultimate power to do whatever they want instead of being told what to do, and should always be aware of what's being done. If user sincerely wants to run lossy functions on 16 bit, I would rather do it then converting it to float without telling the user. But anyway that's just my personal opinion. For now I think a bigger concern is that no one is working on improving the audio part. Current code base still have lots of MMX code that I'd love to delete asap. And I'd hope someone would take time to rewrite it to proper intrinsics. (I've done a bit but I don't have time yet to verify the result and debug that.) |
1st July 2020, 21:40 | #12 | Link |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
The lossy operations involve audio data and float coeficients, if we operate between integers and float values we obtain float values.
If you do a automatic restore to the int audio format can obtain overflow and clip. Here you do a automatic, and dangerous now, conversion. Convert to float is 100% safe, operate between floats is safe. If the user want a final int output must Normalize (or check maxvalue, I don't know how in AviSynth) to avoid clip converting float values > 1.0 to int. Sorry, I can't help you converting MMX to proper intrinsics.
__________________
BeHappy, AviSynth audio transcoder. |
1st July 2020, 23:57 | #14 | Link | |
Moderator
Join Date: Nov 2001
Location: Netherlands
Posts: 6,364
|
Quote:
|
|
2nd July 2020, 01:33 | #15 | Link | |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Quote:
If you put Amplify(2.0) over a int you can obtain overflow (clip) for all volumes over 50%, over float values you can obtain values until 2.0 and after can be Normalized without lose info.
__________________
BeHappy, AviSynth audio transcoder. |
|
7th July 2020, 00:07 | #20 | Link | ||||
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Quote:
Quote:
Still work internally with int32 samples with the same clip problem than in 12.17.9, for instance: Code:
//Native SoX audio sample type (alias for sox_int32_t). typedef sox_int32_t sox_sample_t; //Max value for sox_sample_t = 0x7FFFFFFF. #define SOX_SAMPLE_MAX (sox_sample_t)SOX_INT_MAX(32) //Min value for sox_sample_t = 0x80000000. #define SOX_SAMPLE_MIN (sox_sample_t)SOX_INT_MIN(32) #define SOX_SAMPLE_CLIP_COUNT(samp, clips) \ do { \ if (samp > SOX_SAMPLE_MAX) \ { samp = SOX_SAMPLE_MAX; clips++; } \ else if (samp < SOX_SAMPLE_MIN) \ { samp = SOX_SAMPLE_MIN; clips++; } \ } while (0) ... sample = gain * *ibuf++; SOX_SAMPLE_CLIP_COUNT(sample, effp->clips); *obuf++ = sample; I checked some filters and I obtain bit-identical values with Soxfilter.dll (32 or 64 based in sox 12.17.9) and with sox.exe v14.4.2 We can supply the 32int audio format and soxfilter don't need use the old ASM in Convertaudio.cpp. I see also some limits in soxfilter: Quote:
There are also: Quote:
To finish, for me is enough like is now, don't waste time if don't like it.
__________________
BeHappy, AviSynth audio transcoder. |
||||
|
|