IPB

Welcome Guest ( Log In | Register )

> foobar2000 General Forum Rules

This is NOT a tech support forum.
Tech support questions go to foobar2000 Tech Support forum instead.

See also: Hydrogenaudio Terms of Service.

 
Reply to this topicStart new topic
FEAT. RQ.: bypass channel to foobar audio_chunk interface, getting proper DoP in Foobar2K
Jackal29a
post Oct 9 2012, 15:00
Post #1





Group: Members
Posts: 36
Joined: 28-May 11
Member No.: 91053



Would it be possible to add an option in advanced preferences that would add a bypass channel to foobar audio_chunk interface skipping DSP chain and Volume control?

The idea is that this channel should directly deliver unchanged sound data to output device (like WASAPI or ASIO) without going into DSP and Volume Control chain. This way it will be possible to add true DoP mode without needing to resort to ASIO or WASAPI Proxies.

I've no idea about the innards of Foobar so if this is against any TOS or policy I'm sorry and please any admin move it to the bin or delete it. Ditto if it belongs in another sub forum.

Cheers
Go to the top of the page
+Quote Post
Jackal29a
post Oct 19 2012, 07:36
Post #2





Group: Members
Posts: 36
Joined: 28-May 11
Member No.: 91053



Sorry to bump but.... no one? Peter?
Go to the top of the page
+Quote Post
Peter
post Oct 19 2012, 11:58
Post #3





Group: Admin
Posts: 3269
Joined: 30-September 01
Member No.: 84



Not sure what you mean "foobar audio_chunk interface", doesn't sound like it's what I refer to by "audio_chunk".

If passing unaltered PCM stream to the device is what you want, you can already do that by setting volume to max, disabling ReplayGain and DSP. What else do you want, a single checkbox to toggle all of volume/RG/DSP with one click? Sounds like it will generate "volume control doesn't work" and "equalizer doesn't work" tech support traffic.


--------------------
This job would be great if it wasn't for the users.
Go to the top of the page
+Quote Post
Jackal29a
post Oct 19 2012, 14:42
Post #4





Group: Members
Posts: 36
Joined: 28-May 11
Member No.: 91053



Thanks Peter but it is not about PCM but rather about DSD (DoP= DSD over PCM -> DoP).

It would seem switching off Volume/RG/DSP is not enough because all kinds of visualizers (VU meter, oscilloscope, etc) will still work and interpret DoP stream as PCM data. What's needed is to add set_data_type(t_data_type data_type) method to the audio_chunk interface. So it can be called like p_chunk.set_data_type(RAW_AUDIO_DATA) for each audio_chunk of DSD sound data to request that this chunk needs to be delvered to output device unchanged and witout any processing by visualizers like VU meter and others.

The setting entry could be well hidden in advances preferences so those not in the know wouldn't mess with. Maybe name it "DoP Bitsreaming enable" or something similar.

Cheers

This post has been edited by Jackal29a: Oct 19 2012, 14:43
Go to the top of the page
+Quote Post
Peter
post Oct 19 2012, 15:05
Post #5





Group: Admin
Posts: 3269
Joined: 30-September 01
Member No.: 84



audio_chunk was specifically designed to carry PCM data only and will not be changed to carry anything else; using it to carry any data other than plain PCM is broken by design. Further than that, it cannot possibly be changed without breaking component compatibility.


--------------------
This job would be great if it wasn't for the users.
Go to the top of the page
+Quote Post
Jackal29a
post Oct 19 2012, 16:55
Post #6





Group: Members
Posts: 36
Joined: 28-May 11
Member No.: 91053



Thanks for the explanation.

Pity it is not possible, it could have been the first and only free DSD player for Windows, much like MPD in the Linux world. There are a few players out there capable of DSD (DoP or DSD over ASIO) but all are commercial products.

Cheers
Go to the top of the page
+Quote Post
kode54
post Oct 19 2012, 16:57
Post #7





Group: Admin
Posts: 4504
Joined: 15-December 02
Member No.: 4082



Likely only ASIO is capable of carrying DSD anyway. foo_input_sacd includes its own ASIO output component just for this purpose, it may even work for you.
Go to the top of the page
+Quote Post
Zao
post Oct 19 2012, 16:59
Post #8





Group: Members (Donating)
Posts: 884
Joined: 25-September 03
From: Umeċ, Sweden
Member No.: 9001



Note that visualizations are incapable of modifying the audio stream.
The way a vis works is that it occasionally asks for copies of chunks of decoded audio which it may analyze and generate awesome looks from.
The only plugins that mutate audio streams are DSPs, and if you disable all the things that Peter mentioned, nothing will be mutilated.

Now, if your problem is that visualizations are showing "the wrong thing" by not knowing that the PCM stream they get isn't PCM, well, that's a different problem, and it should not have anything to do with playback.


--------------------
Zao shang yong zao nong zao rang zao ren zao.
To, early in the morning, use a chisel to build a bathtub makes impatient people hot-tempered.
Go to the top of the page
+Quote Post
Jackal29a
post Oct 19 2012, 17:32
Post #9





Group: Members
Posts: 36
Joined: 28-May 11
Member No.: 91053



QUOTE (kode54 @ Oct 19 2012, 17:57) *
Likely only ASIO is capable of carrying DSD anyway. foo_input_sacd includes its own ASIO output component just for this purpose, it may even work for you.


foo_dsd_output does indeed work fine with ASIO compatible drivers but for WASAPI/KS ones a 2nd proxy (ASIO4All) has to be thrown in. It works but it isn't the most elegant solution (DSD decoder -> foo_dsd_asio -> ASIO4All -> WASAPI/KS driver) . When I started this thread, before learning DSD was ruled out by design, I was just wondering if something better was possible as now there are some very affordable USB->I2S+DSD adapters becoming available (there is one going for 39€ in a GB at DIYA) that allow for designing very cheap DIY universal DACs.

QUOTE (Zao @ Oct 19 2012, 17:59) *
Note that visualizations are incapable of modifying the audio stream.
The way a vis works is that it occasionally asks for copies of chunks of decoded audio which it may analyze and generate awesome looks from.
The only plugins that mutate audio streams are DSPs, and if you disable all the things that Peter mentioned, nothing will be mutilated.

Now, if your problem is that visualizations are showing "the wrong thing" by not knowing that the PCM stream they get isn't PCM, well, that's a different problem, and it should not have anything to do with playback.


Thing is, as Peter pointed out, it does not work with DoP neither on ASIO nor on WASAPI/KS, even if it looks like it should.
Go to the top of the page
+Quote Post
misha0209
post Jan 22 2014, 19:30
Post #10





Group: Members
Posts: 36
Joined: 20-June 11
Member No.: 91689



so, hi smile.gif

would like to revive this topic.
can i please, again, ask why this is not possible?
could you not create a second audio chunk that outputs PCM, and if DoP protocol is used, it also outputs a flag, that lets the entire system know that it is not PCM data that is being transported?
so no visualization, and no DSP takes place.

or is DSD not in the interest of foobar? i always saw this player as the cleanest solution possible for windows to play hires files.
i actually started a thread to inquire if Peter was wiling to implement DoP protocol in WASAPI. seems the best way to go..
Go to the top of the page
+Quote Post
mudlord
post Jan 22 2014, 21:16
Post #11





Group: Developer (Donating)
Posts: 797
Joined: 1-December 07
Member No.: 49165



what the hell.

why is visualisation important to this. the vis manager/streams just sees audio_chunks, they don't alter them in any way.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 24th April 2014 - 02:35