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. |
16th October 2019, 18:06 | #1 | Link | ||
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
|
Sox and Avisynth+ r2772 issues
Hi there,
I've been using sox for quite some time in the past, however it's been a while since the last time I used it. Today I needed it in order to upmix the audio of a 6 seconds bumper to append it at the very beginning of a Dolby 5.1 movie. As always, I tried to use UpSoundOnSound() however Avisynth+ crashes with an error. This is what it happens when I try to use it with the simplest script possible: Code:
ColorBars(1920, 1080, pixel_type="YV24") UpSoundOnSound() Quote:
Quote:
Is it only me that it's facing this problem or is it an Avisynth+ bug/incompatibility with sox? |
||
16th October 2019, 20:04 | #2 | Link |
Big Bit Savings Now !
Join Date: Feb 2007
Location: close to the wall
Posts: 1,531
|
I see lots of plugins, maybe try to rename existing plugin folder away and try with only necessary plugins.
Then I would try Assumefps(). Then I would try upmixing using internal AviSynth functions. Or Jenyok's function itself: this is the old version, you may have to adapt "GetLeft.../GetRight" to channel numbers 1 and 2 Code:
# STEREO to 5.1 audio convertion # function UpSoundOnSound(clip clp) { # Sound On Sound Profile # SOS approach Profile with 20ms delay and some attenuation on surround a = KillVideo(clp) back = a.soxfilter("filter 100-7000") fl = a.GetLeftChannel() fr = a.GetRightChannel() cc = mixaudio(a.GetRightChannel(), a.GetLeftChannel(), 0.5, 0.5) lfe = ConvertToMono(a).SoxFilter("lowpass 120", "vol -0.5") sl = mixaudio(back.GetLeftChannel(), back.GetRightChannel(), 0.668, -0.668) sr = mixaudio(back.GetRightChannel(), back.GetLeftChannel(), 0.668, -0.668) sl = DelayAudio(sl, 0.02) sr = DelayAudio(sr, 0.02) return (MergeChannels(fl, fr, cc, lfe, sl, sr)) } and I don't have that folder anymore since I am switching AviSynth versions anyway with Groucho's tool.
__________________
"To bypass shortcuts and find suffering...is called QUALity" (Die toten Augen von Friedrichshain) "Data reduction ? Yep, Sir. We're that issue working on. Synce invntoin uf lingöage..." Last edited by Emulgator; 16th October 2019 at 20:13. |
17th October 2019, 09:34 | #3 | Link | |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,890
|
SoxFilter can be downloaded here: https://forum.doom9.org/showthread.p...154#post761154
EDIT: Seems than SoxFilter don't work with Avs+, this script: Quote:
Without SoxFilter (the commented lines) work fine.
__________________
BeHappy, AviSynth audio transcoder. Last edited by tebasuna51; 17th October 2019 at 10:24. Reason: Add info |
|
2nd December 2022, 14:18 | #4 | Link |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
|
Has there been any progress on getting SoxFilter working in the new Avisynth+?
'cause in the current version of Avisynth+ it's still broken. I have to upmix some stuff that I have to send to a cinema and I don't really feel like using ConverttoMono().Amplify() for LFE, 'cause that would honestly create A LOT of basses. As result, I've temporarily killed LFE. It's better not to send anything than to send non low pass filtered frequencies... Code:
a = last fl = a.GetLeftChannel() fr = a.GetRightChannel() cc = mixaudio(fl, fr, 0.5, 0.5) lfe = ConvertToMono(a).Normalize(0.00) back = a.Amplify(0.7) sl = mixaudio(back.GetLeftChannel(), back.GetRightChannel(), 0.668, -0.668) sr = mixaudio(back.GetRightChannel(), back.GetLeftChannel(), 0.668, -0.668) sl = DelayAudio(sl, 0.02) sr = DelayAudio(sr, 0.02) MergeChannels(fl, fr, cc, lfe, sl, sr) Last edited by FranceBB; 2nd December 2022 at 14:27. |
2nd December 2022, 16:51 | #5 | Link |
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,664
|
Have you tried the x64 version: https://forum.doom9.org/showthread.php?t=181566 ? tebasuna51 says it works.
|
2nd December 2022, 19:02 | #6 | Link | |||
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,890
|
With soxfilter.dll v64 bits the same error hapen:
Quote:
Code:
back = a.soxfilter("filter 100-7000") fl = a.GetLeftChannel() fr = a.GetRightChannel() cc = mixaudio(a.GetRightChannel(), a.GetLeftChannel(), 0.5, 0.5) lfe = ConvertToMono(a).SoxFilter("lowpass 120", "vol -0.5") sl = mixaudio(back.GetLeftChannel(), back.GetRightChannel(), 0.668, -0.668) sr = mixaudio(back.GetRightChannel(), back.GetLeftChannel(), 0.668, -0.668) sl = DelayAudio(sl, 0.02) sr = DelayAudio(sr, 0.02) return (MergeChannels(fl, fr, cc, lfe, sl, sr)) Quote:
Seems the sox high filter does not support multichannel audio (with avs+) maybe because the know issue: Quote:
lfe = fl.Amplify(0.0) Also never use Normalize() with sox filters, it need 2 pass and restart the filters can cause troubles. Use the ffmpeg filters instead avisynth for the upmix. I can recommed: ffmpeg.exe" -i "input 2.0" -af "surround=lfe_out=0" -acodec pcm_f32le "output 5.1"
__________________
BeHappy, AviSynth audio transcoder. Last edited by tebasuna51; 3rd December 2022 at 01:40. Reason: Add info |
|||
Thread Tools | Search this Thread |
Display Modes | |
|
|