The first deals with stereo, the second with existing 5.1 content.If: inputChannelCount == 2 or inputChannelCount == 0
Copy: L=L R=R C=0.25*L+0.25*R LFE=0.5*L+0.5*R RL=L RR=R SL=L SR=R
If: inputChannelCount == 6
Copy: RL=SL RR=SR
That's only true for the post-mix stage, which happens in the windows audio mixer just before it's sent to the audio device, so of course it has to match what the device is configured for.Channel count "if" always gives same number of channels (confirmed in another discussion on main download site), fixed to how it is setup in the audio driver - not related to actual audio stream played.
Speaking of upmixers, have you ever tried the Nugen Audio Halo Upmix VST(3)?If you are using this upmixer with my DTS DCH, due to the fact that E-APO will take over SFX (as intended), the Realtek SFX will no longer update the endpoint (not needed).
Has HRTF convolution filtering and HRIR been implemented in Equalizer APO, or by some other FOSS project to work with Eq APO? There was a thread discussion about this here some years ago, but I haven't followed the progress since:
Upmix has been possible for some time, but this is not the nice binaural experience you can get with good HRTF convolution filtering and custom models. I know it's been possible to do this with commercial VST plugins with Equalizer APO, but as everyone's ear shape and spacing are unique, the tweak-ability of open source models is much more compelling.
Edit: Just found this which makes it sound like HRTF and HRIR are now implemented in Equalizer APO (?):
HeSuVi
Download HeSuVi for free. Headphone Surround Virtualizations for Equalizer APO. This tool imitates the 7.1 to binaural sound effect of many surround virtualizations by making use of Equalizer APO's convolution filter. Available are impulse response that were recorded with activated...sourceforge.net
Stage: pre-mix
If: inputChannelCount == 2
Eval: UPMIXING=true
Copy: L=0.5*L
Copy: R=0.5*R
Copy: RL=0.3*L+-0.2*R
Copy: RR=-0.2*L+0.3*R
If: outputChannelCount > 4
Copy: C=0.2*L+0.2*R
Copy: SUB=0.0
EndIf:
If: outputChannelCount > 6
Copy: SL=0.45*L+-0.25*R
Copy: SR=-0.25*L+0.45*R
EndIf:
EndIf:
If: inputChannelCount == 6 and outputChannelCount > 6
Copy: RL=0.4*5+0.1*6
Copy: RR=0.1*5+0.4*6
Copy: SL=0.15*L+-0.10*R+0.45*5
Copy: SR=-0.10*L+0.15*R+0.45*6
EndIf:
Can this plugin fill rear or side when 5.1 is played? So it is 7.1, just copied rear to side or vice versa.
Am trying to find such plugin for some time but no luck.
Stage: pre-mix
If: inputChannelCount == 6 and If: outputChannelCount > 6
Eval: UPMIXING=true
Copy: LI=L RI=R
Channel: LI RI
Delay: 13 ms
Filter 1: ON HPQ Fc 120 Hz Q 0.541
Filter 2: ON HPQ Fc 120 Hz Q 1.307
Convolution: minimum_phase_24bit_48khz_mono_(90_phase).wav
Copy: L=L R=R C=C LFE=LFE RL=RL RR=RR SL=RL+0.340*RI SR=RR+-0.340*LI
Channel: SL SR
Filter 1: ON LPQ Fc 24000 Hz Q 0.541
Filter 2: ON LPQ Fc 24000 Hz Q 1.307
EndIf:
Stage: pre-mix
If: inputChannelCount == 6 and If: outputChannelCount > 6
Eval: UPMIXING=true
Copy: LI=L RI=R
Channel: LI RI
Delay: 13 ms
Filter 1: ON HPQ Fc 100 Hz Q 0.541
Filter 2: ON HPQ Fc 100 Hz Q 1.307
Filter 3: ON LPQ Fc 8000 Hz Q 0.541
Filter 4: ON LPQ Fc 8000 Hz Q 1.307
Eval: Q = 1/sqrt(2)
Eval: freq = 105
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 5: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Eval: freq = 220
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 6: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Eval: freq = 450
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 7: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Eval: freq = 1280
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 8: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Eval: freq = 2200
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 9: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Eval: freq = 3000
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 10: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Eval: freq = 5700
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 11: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Eval: freq = 6600
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 12: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Eval: freq = 7600
Eval: omega = 2 * pi * freq / sampleRate
Eval: sn = sin(omega)
Eval: cs = cos(omega)
Eval: alpha = sn / (2 * Q)
Eval: aa = 1 - alpha
Eval: ab = -2 * cs
Eval: ac = 1 + alpha
Filter 13: ON IIR Order 2 Coefficients `aa` `ab` `ac` `ac` `ab` `aa`
Copy: L=L R=R C=C LFE=LFE RL=RL RR=RR SL=RL+0.340*RI SR=RR+-0.340*LI
Channel: SL SR
Filter 1: ON LPQ Fc 24000 Hz Q 0.541
Filter 2: ON LPQ Fc 24000 Hz Q 1.307
EndIf: