Thread: MeGUI x64
View Single Post
Old 23rd June 2020, 12:10   #487  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 6,915
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.
Attached Files
File Type: 7z soxfilter64.7z (113.6 KB, 99 views)
__________________
BeHappy, AviSynth audio transcoder.

Last edited by tebasuna51; 23rd June 2020 at 14:16.
tebasuna51 is offline   Reply With Quote