From 60e239b62876a581ea887c734cace4df6cda62a5 Mon Sep 17 00:00:00 2001 From: junh1024 Date: Mon, 26 Jun 2023 17:26:48 +1300 Subject: [PATCH] MMC: improved support of 15.1 EX and added 22.2 NHK Circle --- Converters/Multi Mix Convert (L).txt | 175 ++++++++++++++++++++------- 1 file changed, 130 insertions(+), 45 deletions(-) diff --git a/Converters/Multi Mix Convert (L).txt b/Converters/Multi Mix Convert (L).txt index fd69052..8c4769d 100644 --- a/Converters/Multi Mix Convert (L).txt +++ b/Converters/Multi Mix Convert (L).txt @@ -25,7 +25,7 @@ -desc:Multi-format surround converter in ALPHA. Pan law -3dB. +desc:Multi-format surround converter. Internal format is 15.1 EX w/o BC // s1 input // s2 output @@ -39,8 +39,8 @@ desc:Multi-format surround converter in ALPHA. Pan law -3dB. // s10 upmix -slider1:15<0,23,1{x,2.0 Stereo,5.1/3.0 (FILM),4.0 Quad,5.1 (SMPTE),5.1.2 (SMPTE),7.1 (SMPTE-Dolby),7.1 (SMPTE-MS),5.1.4/5.1.6 Auro-3D (SMPTE),7.1.2/7.1 Atmos Base (SMPTE-Dolby),7.1.4 DTS-X (SMPTE-Dolby),7.1.4 MPEG-H (SMPTE-MS),13,14,9.1.6 Atmos CBA (SMPTE-Dolby),15.1 junh1024 (SMPTE-MS),15.1 EX,18,19,20,21,22,23,22.2 NHK}>Input layout -slider2:14<0,23,1{x,2.0 Stereo,5.1 (FILM),4,5.1 (SMPTE),5.1.2 (SMPTE),7.1 (SMPTE-Dolby),7.1 (SMPTE-MS),5.1.4/5.1.6 Auro-3D (SMPTE),7.1.2/7.1 Atmos Base (SMPTE-Dolby),7.1.4 DTS-X (SMPTE-Dolby),7.1.4 MPEG-H (SMPTE-MS),13,14,9.1.6 Atmos CBA (SMPTE-Dolby),15.1 junh1024 (SMPTE-MS),17 Reserved,18 Reserved,19,20,21 Reserved,22 Reserved,23 Reserved,22.2 NHK}>Output layout +slider1:15<0,24,1{x,2.0 Stereo,5.1/3.0 (FILM),4.0 Quad,5.1 (SMPTE),5.1.2 (SMPTE),7.1 (SMPTE-Dolby),7.1 (SMPTE-MS),5.1.4/5.1.6 Auro-3D (SMPTE),7.1.2/7.1 Atmos Base (SMPTE-Dolby),7.1.4 DTS-X (SMPTE-Dolby),7.1.4 MPEG-H (SMPTE-MS),13,14,9.1.6 Atmos CBA (SMPTE-Dolby),15.1 junh1024 (SMPTE-MS),15.1 EX junh1024 (SMPTE-MS),18,19,20,21,22,23,22.2 NHK (Square),22.2 NHK (Circle)}>Input layout +slider2:14<0,24,1{x,2.0 Stereo,5.1 (FILM),4,5.1 (SMPTE),5.1.2 (SMPTE),7.1 (SMPTE-Dolby),7.1 (SMPTE-MS),5.1.4/5.1.6 Auro-3D (SMPTE),7.1.2/7.1 Atmos Base (SMPTE-Dolby),7.1.4 DTS-X (SMPTE-Dolby),7.1.4 MPEG-H (SMPTE-MS),13,14,9.1.6 Atmos CBA (SMPTE-Dolby),15.1 junh1024 (SMPTE-MS),15.1 EX,18 Reserved,19,20,21 Reserved,22 Reserved,23 Reserved,22.2 NHK (Square),22.2 NHK (Circle)}>Output layout slider3:75<0,100 ,1>Height height slider4:0<0,100 ,1>ELL height slider5:0<-100,100,1>Top Side Depth (+ve is front) @@ -50,6 +50,12 @@ slider7:100<0,100,10>Front Width (Disabled) slider8:100<0,100,10>Rear Width slider9:0<-100,100,10>Center Content (Disabled) slider10:0 <0,100,10>Fill for 22.2 (Disabled) +slider11:0<0,100 ,0>-unused +slider12:0<0,100 ,0>-unused +slider13:0<0,100 ,0>-unused +slider14:0<0,100 ,0>-unused +slider15:0<0,100 ,0>-unused +slider16:0<0,100 ,0{1,L R,L C R BL BR LFE,L R BL BR,L R C LFE BL BR,L R C LFE BL BR TSL TSR,L R C LFE SL SR BL BR,L R C LFE BL BR SL SR,L R C LFE BL BR TL TR TBL TBR,L R C LFE SL SR BL BR TSL TSR,L R C LFE SL SR BL BR TL TR TBL TBR,L R C LFE BL BR SL SR TL TR TBL TBR,13,14,L R C LFE SL SR BL BR WL WR TL TR TSL TSR TBL TBR,L R C LFE BL BR SL SR TL TR BtL BtR TBL TBR TSL TSR,L R C LFE BL BR SL SR TL TR BtL BtR TBL TBR TSL TSR WL WR CL CR,18,19,20,21,22,23,L R C LFE1 BL BR CL CR BC LFE2 SL SR TL TR TC OH TBL TBR TSL TSR TBC BtC BtL BtR,WL WR C LFE1 BL BR L R BC LFE2 SL SR TL TR TC OH TBL TBR TSL TSR TBC BtC BtL BtR}>Output order import surroundlib1.txt import surroundlib2.txt @@ -116,7 +122,7 @@ back_L=back_R=0; mode_in=mode_out=0; @slider -ELL_side_exists=Top_side_exists=0; +ELL_side_exists=Top_side_exists=Wide_exists=Centers_exists=Bottom_exists=0; Height_height=slider3/100; Height_height_TS=(100-((100-slider3)*0.75))/100; @@ -132,7 +138,13 @@ mode_out=slider2+1; (mode_out==8||mode_out>=10)?ELL_side_exists=1; -(mode_out==16||mode_out==24)?Bottom_exists=1; +(mode_out==16||mode_out==17||mode_out==24||mode_out==25)?Bottom_exists=1; + +(mode_out==15||mode_out==17||mode_out==25)?Wide_exists=1; + +(mode_out==17||mode_out==24)?Centers_exists=1; + +slider16=mode_out-1; @sample @@ -241,11 +253,10 @@ mode_in==15? spl12= temp14; spl13= temp15; - //downmix Wide - spl0+=spl8*0.7; - spl1+=spl9*0.7; - spl6+=spl8*0.7; - spl7+=spl9*0.7; + //remap Wide + spl16=spl8; + spl17=spl9; + //remap TF spl8= spl10; @@ -258,44 +269,40 @@ mode_in==15? //151EX mode_in==17? ( -//downmix wides - spl0+=spl16*0.7; - spl1+=spl17*0.7; - spl6+=spl16*0.7; - spl7+=spl17*0.7; - //add FC - spl0 +=spl18*0.6; - spl1 +=spl19*0.6; - spl2+=(spl18+spl19)*0.6; + //add BC spl4 +=spl20*0.7; spl5 +=spl20*0.7; - spl16=spl17=spl18=spl19=spl20=0; + spl20=0; ); - -mode_in==24? +// 222 common +(mode_in==24||mode_in==25)? ( //LFE - spl3=(spl3+spl9)*0.5; + spl3=(spl3+spl9)*1; //add BC spl4 +=spl8*0.7; spl5 +=spl8*0.7; - //add FC - spl0 +=spl6*0.6; - spl1 +=spl7*0.6; - spl2+=(spl6+spl7)*0.6; + //centers + CL_temp=spl6; + CR_temp=spl7; + + //Side spl6=spl10; //SL spl7=spl11; //SR + + + //Top spl8=spl12+(spl14*0.7); spl9=spl13+(spl14*0.7); @@ -311,14 +318,36 @@ mode_in==24? //Bt spl10= spl22 +(spl21*0.7); spl11= spl23 +(spl21*0.7); + + spl20=spl22=spl23=spl21=0; + + //centers + spl18=CL_temp; + spl19=CR_temp; ); + +(mode_in==25)? +( + //move lr to wide + spl16=spl0; + spl17=spl1; + + // move centers to lr + spl0=spl18; + spl1=spl19; + + spl18=spl19=0; + +); + + mode_out==2? ( //faster than a loop - spl0+=(spl2*0.71)+spl4+spl6+spl8+spl10+spl12+spl14; - spl1+=(spl2*0.71)+spl5+spl7+spl9+spl11+spl13+spl15; + spl0+=(spl2*0.71)+spl4+spl6+spl8+spl10+spl12+spl14+spl16+spl18*0.71+spl19*0.4; + spl1+=(spl2*0.71)+spl5+spl7+spl9+spl11+spl13+spl15+spl17+spl19*0.71+spl18*0.4; // i=4; @@ -329,10 +358,11 @@ mode_out==2? // ); silence_top_layer_151(); - spl2=spl3=spl4=spl5=spl6=spl7=0; + spl2=spl3=spl4=spl5=spl6=spl7=spl16=spl17=spl18=spl19=0; ); + Bottom_exists==0? ( //bottom into LR @@ -342,6 +372,17 @@ Bottom_exists==0? spl11=0; ); + +(Wide_exists==0)? +( +//downmix wides + spl0+=spl16*0.7; + spl1+=spl17*0.7; + spl6+=spl16*0.7; + spl7+=spl17*0.7; + spl16=spl17=0; +); + //Rear width rear_width(R_width_coeff); @@ -369,6 +410,19 @@ rear_width(R_width_coeff); ); + +(Centers_exists==0)? +( + //downmix FC + spl0 +=spl18*0.7; + spl1 +=spl19*0.7; + spl2+=(spl18+spl19)*0.7; + spl18=spl19=0; +); + + + + //51 film @@ -499,15 +553,27 @@ mode_out==15? spl14= spl8; spl15= spl9; - spl8=0; - spl9=0; + //add wides + spl8=spl16; + spl9=spl17; + + + spl16=spl17=0; ); -//22.2 -mode_out==24? +//22.2 common +(mode_out==24||mode_out==25)? ( //Order of ops v.important + + CL_temp=spl18*1; //LC + CR_temp=spl19*1; //RC + + WL_temp=spl16*1; //LC + WR_temp=spl17*1; //RC + + spl22=spl10*1; // BtL spl23=spl11*1; // BtR spl21=(spl22+spl23)*0; // BtC @@ -524,20 +590,39 @@ mode_out==24? spl13=spl9*1; // TR spl14=(spl12+spl13)*0; // TC + // spl4 =spl4*1; //BL + // spl5 =spl5*1; //BR + spl8 =(spl4+spl5)*0; //BC + + spl3 =spl9=spl3*0.5; // LFE L + +); + +//22.2 square +(mode_out==24)? +( spl10=spl6; //SL spl11=spl7; //SR - spl0 =spl0*1; //L - spl1 =spl1*1; //R - spl2 =spl2; //C - spl6 =spl0*0; //LC - spl7 =spl1*0; //RC + // spl0 =spl0; //L + // spl1 =spl1; //R + // spl2 =spl2; //C - spl4 =spl4*1; //BL - spl5 =spl5*1; //BR - spl8 =(spl4+spl5)*1; //BC - - spl3 =spl3*0.5; // LFE L - spl9 =spl3*0.5; // LFE R + spl6 =CL_temp; //CL + spl7 =CR_temp; //CR +); +//22.2 circle +(mode_out==25)? +( + // spl10=spl6; //SL + // spl11=spl7; //SR + + // move L&R to CL CR + spl6 =spl0; + spl7 =spl1; + + spl0 =WL_temp; //L + spl1 =WR_temp; //R + // spl2 =spl2; //C );