I think than AviSynth+ 3.7.3 is enough mature to improve the MeGUI behaviour.
We can do the change only in 64 bits to avoid problems with old soft, now all plugins 64 bits are make for Avs+ and work fine. Remember the AvisynthWrapper.dll
Now, with the audio cache and the channelmask implemented, Avs+ can improve the audio management a lot. Of course video and other questions can be improved also but I can help with audio.
For instance we can use the new SoxFilter.dll 2.0 to downmix functions like:
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).SoxFilter("compand 0.0,0.0 -90,-84,-8,-2,-6,-1,-0,-0.1")
return MergeChannels(front, mix)
}
function c512_c51(clip a)
{
front = GetChannel(a, 1, 2)
midch = GetChannel(a, 3, 4, 5, 6)
topfr = GetChannel(a, 7, 8)
mix = MixAudio(front, topfr, 0.5, 0.5).SoxFilter("compand 0.0,0.0 -90,-84,-8,-2,-6,-1,-0,-0.1")
return MergeChannels(mix, midch)
}
function c71_c51(clip a)
{
front = GetChannel(a, 1, 2, 3, 4)
back = GetChannel(a, 5, 5)
side = GetChannel(a, 7, 8)
mix = MixAudio(back, side, 0.25, 0.75).SoxFilter("compand 0.0,0.0 -90,-84,-8,-2,-6,-1,-0,-0.1")
return MergeChannels(front, mix)
}
I support.
But I no longer remember what the problems were when only Megui x64 was used - in some topic somewhere I gave concrete examples of how only Megui x86 could be used...
Lyric deviation: https://sourceforge.net/p/megui/bugs/984/?limit=25#916e/2e36
Last edit: seagate 2023-12-03
Sorry with the copy/paste
side = GetChannel(a, 7, 8)
must be
side = GetChannel(a, 6, 7)
And soxfilter 2.0 output only 32 bits int, where MixAudio work only on 16 bits or float the call to these functions must be with float samples and the output is always also float with:
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).SoxFilter("compand 0.0,0.0 -90,-84,-8,-2,-6,-1,-0,-0.1").ConvertAudioToFloat()
return MergeChannels(front, mix)
}
5.1.2 Channels L,R,C,LFE,SL,SR,TFL,TFR -> standard 5.1
function c512_c51(clip a)
{
front = GetChannel(a, 1, 2)
midch = GetChannel(a, 3, 4, 5, 6)
topfr = GetChannel(a, 7, 8)
mix = MixAudio(front, topfr, 0.5, 0.5).SoxFilter("compand 0.0,0.0 -90,-84,-8,-2,-6,-1,-0,-0.1").ConvertAudioToFloat()
return MergeChannels(mix, midch)
}
6.1 Channels L,R,C,LFE,BC,SL,SR -> standard 5.1
function c71_c51(clip a)
{
front = GetChannel(a, 1, 2, 3, 4)
back = GetChannel(a, 5, 5)
side = GetChannel(a, 6, 7)
mix = MixAudio(back, side, 0.25, 0.75).SoxFilter("compand 0.0,0.0 -90,-84,-8,-2,-6,-1,-0,-0.1").ConvertAudioToFloat()
return MergeChannels(front, mix)
}
Last edit: Tebasuna 2023-12-03
Problem solved with the new MeGUI-6666