Skip to main content
Topic: Is there a way to get Dolby Headphone system-wide on any PC? (Read 14051 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #25
The dummy head BRIRS were  recorded for 360° and have 720 channels. I reduced them to 16ch for 7.1 .  The wav file  have the channel configuration that is mentioned in the file name (L_R_C_LFE_LS_RS_LB_RB).  For EQ-APO you have to  make seperate wav files for every speaker. So you have to put  the channels 1 and 2 into a seperate wav file (left speaker) , 2,3 into a seperate wav file (right speaker)  3,4  into a seperate wav file (center speaker)....

The procedure  would be the same for the DH files.

For using more than stereo you need a sound device that allows you to choose 5.1 or 7.1 in the windows settings! Otherwise Windows will downmix to stereo before  EQ-APO can do the convolution!

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #26
I used some free binaural  impulse response files that were recorded with a dummy head.
I have a soundcard that supports Dolby Headphone but I  like these BRIRs much more. I already  uses the  BRIRs  with  a differenet convolver that can be used as a VST or directshow filter but not for the complete system like EQ-APO.

You can find the files here: (post 818).
http://www.head-fi.org/t/555263/foobar2000-dolby-headphone-config-comment-discuss/810.

All files are in  wav format with 16 channels.

But as I posted before you also can use the Dolby Headphone impulse files files from that site but that is only 5.1 and not 7.1. (The foobar DH wrapper also only supports 5.1)

Hi!

Could you share whatever you made for EQ-APO? I'm curious how it sounds.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #27
I think a much simpler (in comparison!) method would be to setup the PC with a systemwide VST Host e.g. using Virtual Audio Cable and VSTHost, then simply use the Dolby Headphone VST adapter plugin.

Virtual Audio Cable or VB-Audio Cable
http://software.muzychenko.net/eng/vac.htm http://vb-audio.pagesperso-orange.fr/Cable/

VSTHost
http://www.hermannseib.com/english/vsthost.htm

Dolby Headphone VST wrapper
https://sites.google.com/site/tastymousakas/

This would let you apply Dolby Headphone and many, many more interesting operations besides, e.g.:

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #28

Hi!

Could you share whatever you made for EQ-APO? I'm curious how it sounds.

The settings for the EQ-APO are in reply 21.  You just must take one of the wav files and seperate it into the single speaker channels.   But for more than stereo you need a soundcard that allows you to choose 5.1 or 7.1 in the windows settings! Otherwise EQ-APO will only have stereo input!

If you just want to check how it sounds you also can use the method described in the headfi thread.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #29
I think a much simpler (in comparison!) method would be to setup the PC with a systemwide VST Host e.g. using Virtual Audio Cable and VSTHost, then simply use the Dolby Headphone VST adapter plugin.

This would let you apply Dolby Headphone and many, many more interesting operations besides, e.g.:


I always had troubles with the VST host to achieve 5.1 or 7.1 input with the free virtual audiocables.  Also you have a noticeable audio delay.  For me the setup of the VST host is  more difficult.
The EQ-APO does realtime convolution without any noticeable delay and the setup is not very difficult.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #30
I always had troubles with the VST host to achieve 5.1 or 7.1 input with the free virtual audiocables.  Also you have a noticeable audio delay.  For me the setup of the VST host is  more difficult.
The EQ-APO does realtime convolution without any noticeable delay and the setup is not very difficult.

It's worth paying to get Virtual Audio Cable which has 7.1 inputs and outputs.  No noticeable audio delay when using ASIO4ALL to interface the cables.

EQ-APO just doesn't do everything I want my sound system to do (bass management, multiband dynamic compression... :D )

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #31
The settings for the EQ-APO are in reply 21.  You just must take one of the wav files and seperate it into the single speaker channels.   But for more than stereo you need a soundcard that allows you to choose 5.1 or 7.1 in the windows settings! Otherwise EQ-APO will only have stereo input!

If you just want to check how it sounds you also can use the method described in the headfi thread.
I thought you'd end up with a DSP plugin of sorts for EQ APO.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #32
VB-Audio has VAC software even as donation ware (for less than Myzenko's and also more useable) as like the Voicemeeter Banana.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #33
I have sampled some impulses and produced a convolver here, but it's only code and untrimmed stereo impulses. The included sample_trim.c reduces them to their smallest sizes and converts them to a C include header. The included convolver uses either the included KissFFT, or may use your own supplied FFTW 3. The included dh2.c converts assumed 32 bit floating point wav files to a raw 32 bit floating point dump file, to demonstrate how to use the data and convolver.

Technically, this is should be legal, since I did sample the plug-in myself, using my own supplied input, so the impulse results belong to me.

You may note that the DH plug-in produced pure silence for the LFE channel in all cases. This may be intentional, or it may be due to a bug in foo_dsp_dolbyhph.

I welcome other impulse sets and ideas for this, assembled in a similar way, to a table of impulses. Further coding considerations include adding a FIR resampler to handle non-exact sample rates, and picking the rates from the tables based on (input_rate >= table_rate), and the loop should stop before testing the last item on the table, since all frequencies less than the second to last item should fall to the lowest item. The input will then be resampled to match the impulse. Conversely, it may be possible instead to resample the selected impulse to the rate of the input data, producing a set of longer impulses, but no longer requiring a constant resampler stage on the processing.

In my own testing, on my Retina 5K iMac with Core i7 4790K, the KissFFT code performed at about 31x real time on 44100Hz content, while the FFTW code on an AVX machine performed 77.93x real time. This may be improvable by vectorizing the complex math loop that sits between the forward and reverse FFT process that makes up the convolution of each channel.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #34
@kode54
Hi! Are you working on a virtual surround plugin for foobar2000?

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #35
...
In my own testing, on my Retina 5K iMac with Core i7 4790K, the KissFFT code performed at about 31x real time on 44100Hz content, while the FFTW code on an AVX machine performed 77.93x real time. This may be improvable by vectorizing the complex math loop that sits between the forward and reverse FFT process that makes up the convolution of each channel.

Have you already looked this new DSP library? https://github.com/kfrlib/kfr

 

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #36
Looks like quite a complex bit of code. And I don't see any way to use the univector type with a runtime defined vector size, rather than a compile time template parameter.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #37
Hi!
By omitting the second template parameter you'll get univector with runtime defined size and all the member functions and constructors from std::vector.

Code: [Select]
univector<double> v1(100);   // runtime
univector<double, 100> v2;   // compile-time
univector<double, 0> v3(v2); // takes data() and size() from any vector-like class (similar to array_view from the future C++ standards)

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #38
I ask, because if I consider writing a kfr based convolver, I would need to initialize them at runtime, likely using assign() or similar.

This is also at a disadvantage if I ever want to use it with foobar2000, since this level of templating is apparently unsupported by Visual Studio.


Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #40
https://github.com/anthonix/ffts/blob/master/src/codegen.c

This looks like it is not only GNU/Clang only code generation, but Unix only memory protection handling. It could probably be ported if I wanted to, though.


Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #42
However, for a library that doesn't need that codegen nonsense, there is a FFT library around that is heavily optimized using SSE/AVX intrinsics instead.

https://github.com/Themaister/muFFT

The author has also done a GPU based FFT library in some form, but I guess thats too experimental for some.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #43
Not to mention introduces a lot of latency for something where you have to move the data across the bus to the GPU and back again. I assume that GPU library is mainly for use with image processing.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #44
Few years ago I used to run DH with MPCHC with the help of ffdshow. It was not system wide and worked only in MPCHC. I also tried method with virtual audio cable, but was not working for me, lots of cracks.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #45
Hi!

It looks like someone made a pack of all commercial sound virtualization methods for Equalizer APO. (Which includes Dolby headphone.)



Also in the meanwhile (a while ago) they uploaded near-field HRIRs.
Though I don't know of anyone transforming them to be compatible with Equalizer APO.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #46
VB-Audio has VAC software even as donation ware (for less than Myzenko's and also more useable) as like the Voicemeeter Banana.

Yes Its right, VB-Audio just like Voicemeeter and supports all audio interface: MME, Direct-X, KS, WaveRT, WASAPI, and ASIO to connect audio pro DAW or musical instrument.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #47
Though a different beast, as I'm a happy bunny with foobar's Meier Crossfeed plugin (though still, not having it for all applications on my PC is a real bore) I haven't any inclination to try this, but I wonder if anyone here has heard/used the 4front Headphone plugin, as an alternative to DH, which, though slightly deprecated, more or less promises similar results.

Listen to the music, not the media.
Qualidade em MP3

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #48

Also in the meanwhile (a while ago) they uploaded near-field HRIRs.
Though I don't know of anyone transforming them to be compatible with Equalizer APO.

I have done that already some time ago.
Here is a link to my OneDrive folder:
https://1drv.ms/f/s!AnbO8YLUAW6Jh1XaISDxGiV5Mlym
There are some impulse responses included that can be used with EQ-APO.  I have written a short manual for the correct setup. That is also included.

Re: Is there a way to get Dolby Headphone system-wide on any PC?

Reply #49
I have done that already some time ago.
Here is a link to my OneDrive folder:
https://1drv.ms/f/s!AnbO8YLUAW6Jh1XaISDxGiV5Mlym
There are some impulse responses included that can be used with EQ-APO.  I have written a short manual for the correct setup. That is also included.
Thanks, I had a look. But I'm confused by the need for additional software.

If I extract the files in the appropriate folder and use this (based on the help file) do I get what I supposed to, by commenting/uncommenting the convolution lines?

They sound about right to me. The sounds have a spatial effect it seems.

Quote
#Common preamp
Preamp: 8 dB
#  L=Left ; R=Right C=Center; SUB=LFE; SL=Left Surround; RL=Rigth Surround, RL=Rear Left;
RR=Rear Right
#Create virtual speaker channels
    Copy: L0=L R1=L  L1=R  R0=R C1=C C2=C SUB0=SUB SUB1=SUB SL0=SL SR1=SL SL1=SR
SR0=SR RL0=RL RR1=RL RL1=RR RR0=RR 
#Mute Input Channels
    Copy: L=0 R=0 C=0 SUB=0 RL=0 RR=0 SL=0 SR=0
#virtual channels that are filtered
     Channel: L0 R1 L1 R0   SL0 SR1 RL0 RR1 C1 C2 SUB0 SUB1 SL0 SR1  SL1 SR0 RL0 RR1 RL1
RR0
#Folder of Convolution files complete folder name  or if files in config "\...."
Convolution: convolution\BRIRs\CR7_KU_ROTM_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\CR1_KU_ROTM_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\SBS_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\BBC_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\SSR_HRIR_CIRC360_NF150_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\SSR_HRIR_CIRC360_NF100_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\SSR_HRIR_CIRC360_NF075_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\SSR_HRIR_CIRC360_NF050_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\SSR_HRIR_CIRC360_NF025_(L_R_C_LFE_LS_RS_LB_RB).wav
# Convolution: convolution\BRIRs\BBCRD_(L_R_C_LFE_LS_RS_LB_RB).wav
 # Copy the virtual speaker channels to Left & Right Headphone Channel
Copy: L=L0+L1+C1+SL0+SL1+RL0+RL1   R=R1+R0+C2+SR1+SR0+RR1+RR0

Can you explain the filenames? (I suppose the ones with NF are the near-field ones, but even this is a guess, and what's the 025-150 number) Which is the closest to the standardized room for 5.1-7.1 speaker setups?

Is this pack superset of the old pack, but this time with separate headphone filters? (I never understood why the files were headphone specific, now I'm starting to suspect.)

Update:
I get a pretty annoying crackle when I start or stop playing anything. In foobar, my video player, browser, whatever. It's already going on my nerves....
What might be wrong?

 
SimplePortal 1.0.0 RC1 © 2008-2019