Menu

Equalizer APO as headphone crossfeed solution

2015-12-03
2016-07-20
  • Mika Salonoja

    Mika Salonoja - 2015-12-03

    Would like to discuss this topic


    Mika Salonoja
    mika.salonoja (at) iki.fi

     
  • Michael W. Gilbert

    I do just that. I use the Copy Channel command. I have the right channel set to 80% right and 20% left, and vice versa. The text file looks like this...

    Copy: R=0.2L+0.8R
    Copy: L=0.8L+0.2R

    This doesn't correct the time differences between when your ears hear a sound, but it narrows the image.

     
  • Joe No

    Joe No - 2016-01-23

    There are also some free HRTFs in the Internet that you can use for this.
    For example there you can hear some demo sounds: http://recherche.ircam.fr/equipes/salles/listen/sounds.html
    Find the ones that have the best match for you, and download that so that you can use them for convolving.

    Here an example how I use that in principal.

    #Common preamp
    Preamp: -4 dB
    
    # Copy channels to virtual channels for the convolution to get the virtual speaker channels
    Copy: L2=L R2=R
    
    # Signals for Left & Right Headphone Channel from L Speaker
    Channel: L L2
    Convolution: D:\Downloads\Audio\HRTS_etc\IRC_1058\COMPENSATED\WAV\IRC_1058_C\IRC_1058_C_R0195_T030_P000.wav
    # Copy: L=0 L2=0
    
    # Signals for Left & Right Headphone Channel from R Speaker
    Channel: R R2
    Convolution: D:\Downloads\Audio\HRTS_etc\IRC_1058\COMPENSATED\WAV\IRC_1058_C\IRC_1058_C_R0195_T330_P000.wav
    # Copy: R=0 R2=0
    
    # Copy the virtual speaker channels to Left & Right Headphone Channel
    Copy: L=1.0*L+1.0*R
    Copy: R=1.0*L2+1.0*R2
    

    It can be also used to get a surround setup like 7.1.

    Therefore it would be nice if Equalizer APO would not always do channel "downmixing".
    For example when i use a external usb DAC, my output device is only 2.0, and it seems that there is always a windows downmixing from multichannel audio to 2.0.
    With help of additional software it can be done, but there are some problems.

    So a direct access to the multichannel data in Equalizer APO would be great, instead of downmixing to the output speaker setup.

     

    Last edit: Joe No 2016-01-24
    • Michael W. Gilbert

      Excellent! I've been playing around with convolution. I'll experiment with this. Right now, this is what I'm doing...

      First I did the math. With speakers 90 degrees apart, considering the distance between the ears to be six inches, I did the math, and found that the signal from the right speaker reaches the left ear 0.313 milliseconds later than it does the right ear - same for the left ear. If the speakers are only 60 degrees apart, the delay drops to 0.222 milliseconds. I rounded off between, and chose a delay of 0.25.

      Determining how much volume difference there is, is mathematically impossible because of varying room reflections et cetera, so I just used a pan control and estimated a six decibel difference. That will work, because that difference would vary from room to room, and setup to setup anyway.

      So I came up with this crossfeed file...

      Preamp: -2.5 dB
      Copy: L2=L R2=R
      Channel: L2 R2
      Delay: 0.25 ms
      Preamp: -6 dB
      Copy: L=L+R2 R=R+L2

      The preamp command is there to zero out the added gain, This works pretty well.

       
      • Giorgio

        Giorgio - 2016-01-26

        Preamp: -2.5 dB
        Copy: L2=L R2=R
        Channel: L2 R2
        Delay: 0.25 ms
        Preamp: -6 dB
        Copy: L=L+R2 R=R+L2

        Tried: wonderful!
        Many thanks to the author.

         
    • Florio Alagna

      Florio Alagna - 2016-07-20

      I'm having a hard time to understand the logic behind this.
      You're outputting mono and I can't see what you might have accidentally copied wrong.

      If I simply do a

      Channel: R
      Convolution: _path to right channel file

      Channel L
      Convolution: _path to left channel file

      The output is skewed towards the left. But your channel convolutions (heh!) don't really make sense to me.

       
  • Peter Verbeek

    Peter Verbeek - 2016-07-20

    Yes, it should be at least in this format (this example: 0.5 crossfeeding):

    Copy: L2=0.5*L+0.5*R
    Copy: R2=0.5*R+0.5*L
    Copy: L=L2
    Copy: R=R2
    

    I have a crossfeed rotary knob for this on the Effects panel of the Peace GUI.

    An elaborate crossfeed is done by Jan Meier (also on SourceForge) which relieves the ear pressure. My simulation is as follows:

    Copy: RLOW=R
    Copy: RHIGH=R
    Copy: RNORMAL=R
    Channel: RLOW
    Delay: 0.32 ms
    Preamp: -9.5 dB
    Filter 1: ON HS Fc 650 Hz Gain -30 dB
    Channel: RHIGH
    Delay: 0.16 ms
    Preamp: -9.5 dB
    Filter 1: ON HS Fc 650 Hz Gain 2 dB
    Channel: RNORMAL
    Filter 1: ON LS Fc 650 Hz Gain -3 dB
    Copy: LLOW=L
    Copy: LHIGH=L
    Copy: LNORMAL=L
    Channel: LLOW
    Delay: 0.32 ms
    Preamp: -9.5 dB
    Filter 1: ON HS Fc 650 Hz Gain -30 dB
    Channel: LHIGH
    Delay: 0.16 ms
    Preamp: -9.5 dB
    Filter 1: ON HS Fc 650 Hz Gain 2 dB
    Channel: LNORMAL
    Filter 1: ON LS Fc 650 Hz Gain -3 dB
    Copy: L=LNORMAL+RLOW+RHIGH
    Copy: R=RNORMAL+LLOW+LHIGH
    

    It filters the low and high part and crossfeeds these with a delay to the other ear. I haven't incorporated this into Peace, so the amounts (frequency, delay, pre amp) must be changed by hand or the E-APO's Configuration Editor.

     

    Last edit: Peter Verbeek 2016-07-20

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.