I really only care about this for input volume in the pre-mix stage, but could be useful for plenty of things (like noise dampening a mic for example). Basically, I want constants that basically carry the same data as the Copy: variables to be used in variables. Chrome for example plays youtube videos in stereo as whatever windows uses (7.1 in my case) with empty data in all the extra channels. So L and R have sound, but C SUB RL RR SL SR are silent. Some versions of VLC do it, too, depending on the config.
Example scripts:
Currently this does not work as the application does play 7.1 sound, but only two channels have streams in them.
If: inputChannelCount == 2
Copy: M=0.25L+0.25R
Copy: C=M+C
Copy: SUB=M+SUB
Copy: RL=L+RL
Copy: RR=R+RR
Copy: SL=L+SL
Copy: SR=R+SR
EndIf:
Something that could work is
If: C > 0 or SUB > 0 or RR > 0 or RL > 0 or SR > 0 or SL > 0
Copy: M=0.25L+0.25R
Copy: C=M+C
Copy: SUB=M+SUB
Copy: RL=L+RL
Copy: RR=R+RR
Copy: SL=L+SL
Copy: SR=R+SR
EndIf:
I just threw that together. I realize after looking that the proper if statement would be
If: C == 0 and SUB == 0 and SR == 0 and SL == 0 or inputChannelCount == 2
for the second example
Could you please create a log file with trace messages enabled (instructions) while reproducing the YouTube problem? I want to see if the application really sends 7.1 instead of 2 channels or if it is first trying to send only 2 channels.
Currently, there can be a problem when an application uses a sample rate that does not match the device sample rate: The APO requests a different sample rate then, but Windows not only enables resampling to change the sample rate but also matches the output channel count to the input channel count. This will hopefully be fixed when resampling is done by E-APO.
Finally got a hold of this (I was busy, then forgot...)