• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Equaliser APO - Stereo Surround Upmixer

sakenfor

New Member
Joined
Nov 30, 2022
Messages
3 (0.01/day)
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.
 
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
Its possible to make a setup that does, you would do 50% of front and 50% of rear, to create a side, from 5.1.

1669892842918.png
1669892862597.png
 
Last edited:

sakenfor

New Member
Joined
Nov 30, 2022
Messages
3 (0.01/day)
I was not precise, sorry, I meant, a plugin to detect if side or rear is used, and then to auto fill.
 
Joined
Sep 24, 2020
Messages
20 (0.02/day)
Location
Jakarta (+7 GMT)
There are no 'plugins' - just edit the text files or use the editor.

A total guess because I don't have a 7.1 system, but in the upmixer.txt file you could have:

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
The first deals with stereo, the second with existing 5.1 content.

For movies, you could also use AC3Filter. It's not been updated for a loooong time but it's still fully functional.
 

sakenfor

New Member
Joined
Nov 30, 2022
Messages
3 (0.01/day)
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.
ACfilter i tried but i might again, thought it can't fill in how i want it to.

There are vst plugins, tried finding there too but no luck. I guess some audio cards can do it, which is what i plan on gettng anyway, to replace onboard.
 
Last edited:
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
I defaulted crossover to a more common standard. Note the preset is a default, it can be changed, added to, bits removed, do as you like.
 
Last edited:
Joined
Apr 5, 2023
Messages
54 (0.14/day)
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.
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.

In the pre-mix stage, which happens individually in each application, the channel count will be equal to what the application chooses to output. It's entirely up to each application what happens here. Some are well-behaved and choose speaker layout closest to the media being played. Some are badly engineered to just always choose the maximum, and only fill a few of the channels. Best solution is use better software.
 
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
You also get PCM 'pre-amp' (no hardware), this will however be limited to a degree by hardware (max output):

1681387944529.png

----

32bit float potentially could be used as a PCM amp, no hardware.
 
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
Updated
  • Increased crossover frequency, added 14% LFE gain, adjust to suit.
  • Removed a redundant channel input for the upmixer.
You can add side channels if you are using 7.1.
 
Last edited:
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
EAPO.png Audacity.png
Youtube (WB).png

Restart the computer to make sure adjusted effects apply properly (can be odd at times).
 
Last edited:
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
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).

First disable the endpoint (SPDIF, Speakers, Headphones), then use FX Config to get-copy the endpoint GUID, then edit and restore the relevant .reg.
Once restored, setup Equalizer APO as normal (following the guide in post 1), enable the device, then restart.

DTS Settings.png

E-APO on SFX only. The 'DTS Settings' file can be found here.

----

E-APO SFX - DTS DCH.png
 
Last edited:
Joined
Dec 24, 2018
Messages
45 (0.02/day)
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).
Speaking of upmixers, have you ever tried the Nugen Audio Halo Upmix VST(3)?
The absolute best in its class IMHO.,
Would love to hear your opinion about it...
 

Attachments

  • HaloMainUI.png
    HaloMainUI.png
    103.3 KB · Views: 121
  • HaloAlgos.png
    HaloAlgos.png
    15.5 KB · Views: 130
  • HaloIO.png
    HaloIO.png
    33.9 KB · Views: 128
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
DTS DCH Config updated, added restore (DTS + Realtek SFX), in case E-APO is uninstalled (other).
If you are already using E-APO, simply run the configure.reg, and reboot.

----

End result (DTS DCH):

[SPDIF]: E-APO (SFX) >> DTS APO4 - Realtek (MFX) >> DTS APO4 - DTS Encoder (EFX).
[Analogue]: E-APO (SFX) >> DTS APO4 - Realtek (MFX) >> DTS APO4 - Realtek (EFX).

----

Note the config is essentially 'True Sound Stereo Surround' (+ Centre assist & LFE crossover).
Feel free to post your own config, or other, such as VST, ideally SFX only.
 
Last edited:
Joined
Feb 15, 2019
Messages
66 (0.03/day)
I heard we should share E-APO configs in this thread. I will share two of my favorites recently, based off Pro Logic IIz

Pro Logic IIz Convolution this one you have to have and load convolution wav in E-APO, also requires you to have 48k 24 bit sampling rate set.


Dolby_ProLogic_IIz_(7.1.2_upmix)_IIR this one has more phasing, can set any sample rate, my current favorite.

Screenshot 2023-09-27 204250.png
Screenshot 2023-09-27 204347.png

I would post preview pictures of the IIR one but it is simply too complicated to capture in images. Check them out.

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 (?):


Code:
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:

This is how Hesuvi does its upmixing under the hood.

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.
Code:
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:

this is embedded in my Pro Logic IIz upmix config but it can work independently as well. If you don't want to use a Convolution filter then you will need to:
Code:
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:
 
Last edited:
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
Please note this EAPO preset is a stereo surround upmixer [left-right cloned to rear left-right, cloned centre, and with clone and filter crossover], its 'not' a stereo expand upmixer.
In most cases, stereo expand with generate audio from left-right, add delays other, then output the generated audio over the extra channels.

Personally I don't like the outcome of expand, and prefer original (cloned), but populated speakers.

----

The -0.8 dB is for anti-clipping, 144 dB becomes 143.2 dB and a small amount of gain from MFX-EFX processing is allowed.
The audio would need to be already clipped before SFX, Windows volume is just before EFX (near useless).

====

If you use headphones, see the link below, you can use EAPO ParametricEQ on SFX.
You can rename the generated .txt file prior to setup, if you want.

AutoEq - Make Your Headphones Sound Better
 
Last edited:
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
I forgot AV's don't like shortcut files in packages, I removed the URL link from the package and have re-uploaded (no webfile).
Scanning the files with my AV and also using VirusTotal, its clean. If Edge-Other flags it, ignore it.

E-APO Stereo Upmixer.png

I apologize for any inconvenience.
 
Last edited:
Joined
Dec 8, 2020
Messages
2,771 (2.25/day)
If you want Edge to upmix stereo to 5.1+, and still do true 5.1+ when available, create-copy an Edge shortcut with the following additions:

"Location-To\msedge.exe" --profile-directory=Default --try-supported-channel-layouts --force-wave-audio


----
 

Attachments

  • Edge Wave.png
    Edge Wave.png
    50 KB · Views: 7
Last edited:
Top