Is know than MeGUI 64 can't do the same audio downmix 7.1 -> 5.1 because the plugin Audiolimiter.dll don't have a 64 bits version (and the source code is unknow)
I make some test with the
soxfilter, 32 bits by sh0dan, compiled to
64 bits by MeteorRain and I can obtain the same output with this downmix:
Code:
# As AudioLimiter.dll is not available is replaced by SoxFilter
# 7.1 Channels L,R,C,LFE,BL,BR,SL,SR -> standard 5.1
function c71_c51(clip a)
{
front = GetChannel(a, 1, 2, 3, 4)
back = GetChannel(a, 5, 6)
side = GetChannel(a, 7, 8)
mix = MixAudio(back, side, 0.5, 0.5).ConvertAudioTo32bit()
mix = mix.SoxFilter("compand 0.1,0.1 -90,-84,-16,-10,-0.1,-3 0.0 -90 0.0").ConvertAudioToFloat()
return MergeChannels(front, mix)
}
# 6.1 Channels L,R,C,LFE,BC,SL,SR -> standard 5.1
function c61_c51(clip a)
{
front = GetChannel(a, 1, 2, 3, 4)
bcent = GetChannel(a, 5).Amplify(0.7071)
back = MergeChannels(bcent, bcent)
side = GetChannel(a, 6, 7)
mix = MixAudio(back, side, 0.5, 0.5).ConvertAudioTo32bit()
mix = mix.SoxFilter("compand 0.1,0.1 -90,-84,-16,-10,-0.1,-3 0.0 -90 0.0").ConvertAudioToFloat()
return MergeChannels(front, mix)
}
We need add the new soxfilter plugin at ...MeGUI64\tools\avs\plugins
EDIT: seems soxfilter work fast in 32 bits int, and MixAudio need 16 or float, then to improve performance some changes added.