First of all thanks for a great program. I use it every day on my desktop computer, and I love it. I recently got a new Dell Latitude E5410. It has a built-in IDT 92HD81 audio controller. When I issue the -sct switch with mpxplay, it detects the card as IHD: Intel PCH (80863B56) IDT (111D7605) (max 192kHz/32bit?/8ch). However, if I try to play a file, no sound is produced, but the spectrum analyser moves and the current time is incrementing correctly. It seems as of the volume is down. Adjusting the volume using mpxplay controls has no effect. Any help would be greatly appreciated. Thanks.
Sorry, known (probably BIOS) problem, I cannot do anything with it…
The primary problem is that, maybe only Mpxplay uses this general way to control Intel HDA chips,
and most of the BIOS/motherboard manufacturers don't care with this general software compatibility…
The secondary problem, that my Intel HDA chips work properly, so I cannot debug the "bug"…
I have run your test version of mpxplay. Below is the output. I have also noticed that after running mpxplay, the volume of my PC-speaker is reduced to zero. The PC-speaker output on my laptop is via the same speakers as the sound card output. Hence, I suspect that it is controlled by the sound card hardware. Could it be that mpxplay does not set the volume properly?
IHD board type: Intel PCH (80863B56)
codec vendor id:111D7605
outcaps:80027F7F incaps:00270300 afgsubnodes:25 anid:10
node:10 cons: 3 wc:00400583 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:11 cons: 3 wc:00400581 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:12 cons: 3 wc:00400583 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:13 cons: 3 wc:00400501 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:14 cons: 3 wc:00400583 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:15 cons: 3 wc:00400583 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:16 cons: 1 wc:00400500 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:17 cons: 0 wc:00400483 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:18 cons: 1 wc:00F00503 t:15 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:19 cons: 0 wc:000D0C05 t: 0 aoc:80027F7F ot: 4 sf:00000000 st:127 of:127
node:20 cons: 0 wc:000D0C05 t: 0 aoc:80027F7F ot: 4 sf:00000000 st:127 of:127
node:21 cons: 1 wc:001D0541 t: 1 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:22 cons: 1 wc:001D0541 t: 1 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:23 cons: 7 wc:00300D0D t: 3 aoc:80050F00 ot: 4 sf:00000000 st:15 of: 0
node:24 cons: 7 wc:00300D0D t: 3 aoc:80050F00 ot: 4 sf:00000000 st:15 of: 0
node:25 cons: 3 wc:00300501 t: 3 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:26 cons: 1 wc:00200500 t: 2 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:27 cons: 6 wc:0020050B t: 2 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:28 cons: 1 wc:0030050D t: 3 aoc:80051F1F ot: 4 sf:00000000 st:31 of:31
node:29 cons: 0 wc:0004061D t: 0 aoc:80000000 ot: 4 sf:000E05E0 st: 0 of: 0
node:30 cons: 0 wc:0004061D t: 0 aoc:80000000 ot: 4 sf:000E05E0 st: 0 of: 0
node:31 cons: 1 wc:00400781 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:32 cons: 1 wc:00400781 t: 4 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
node:33 cons: 0 wc:0070000C t: 7 aoc:80170303 ot: 4 sf:00000000 st: 3 of: 3
node:34 cons: 0 wc:00F00000 t:15 aoc:00000000 ot: 0 sf:00000000 st: 0 of: 0
dac0:19 dac1:0 out0:14 out1:11 vol0:19 vol1:0
snd_ihd_mixer_init end with success
setup_periods: dmasize:32768 periods:8 prsize:4096
setup_periods: dmasize:32768 periods:8 prsize:4096
Lets' try to find the bug in small steps…
I've uploaded a new test version to http://www.freewebtown.com/mpxplay/test/test.htm
It's a alfa 20110330 DOS32A version. Please try it!
(the correction is only that, the program doesn't set/modify the vol1:0 register)
btw. Did you try different -scv values? Like -scv 0, -scv 1, -scv 10, -scv 50, -scv 90.
Also try this, if the above version still doesn't want to work.
I have a similar problem with Mpxplay and IHDA on my HP laptop. I get no sound from the laptop's internal speaker (only one speaker), but if I connect external speakers to the headphone output, there is sound. Neither the latest test version, nor the -scv option values bring any change.
Maybe I've missed something in the lines at Deniska too? None of the outputs work or only the PC-speaker?
So, the program connects to the speaker output only if it doesn't find line-out jack. And usually there is line-out jack.
SC_INTHD.C -> snd_hda_parse_output()
But I've never tested this…
1.Mpxplay cannot detect that you've plugged in something to line-out or headphone-out, so if the speaker is initialized, then - probably - it always will sound. Other users maybe won't like this…
2. To implement a new setting to initialize the speaker-out only, without hacking/breaking my general mixer structures, it's not easy…
I'll think on it…
I understand, but I think that a run-time option for choosing between line-out output and internal speaker output
would be more than welcome in case of laptops . Personally I don't like at all to use headphones. Good luck!
I have tried the new version. There appears to be no difference. I have tried changing the volume using -scv option as well as ALT+. and ALT+,. Still no sound. Again, after exiting Mpxplay, issuing a beep through a traditional PC-speaker does not produce a sound. I have PC-speaker drivers for QuickView and the DSS mp3 player. They play well before Mpxplay is run. The headphones output jack also has no output (I'm not sure if this is the same as Line-Out though).
Deniska: sorry, currently I have no more idea, why doesn't give your machine sound. Without the "wrong" hardware I don't see what can be the problem…
Khusraw: I've uploaded a newer test version, use -scc 1 command-line option to use/initialize the pc-speaker (I haven't tested it).
I just tried the new test version with "-scc 1" command-line option, and unfortunately it doesn't work. It seems to behave the same as without the option, i.e. the laptop's internal speaker remains silent, whilst if I connect external speakers to the headphone-out there is (excellent) sound.
I will make a new debug version (at the end of April only, because currently I have no alive DOS partition), which will display more informations about the nodes. Maybe there's no pc-speaker output node at all by default (and I cannot build a new node-structure, because it's hardware dependant). Or the AC_JACK_SPEAKER definition in the source doesn't mean the pc-speaker output.
btw. most of my IHD code is only "copy and paste" from ALSA, I don't know the Intel HDA specification, and I have no time to look deep inside it…
No problem. I am not even sure if ALSA manages to enable successfully internal speaker output on that laptop , as I have no Linux installed and I read in the past many complains about such ALSA issues (though I don't know if they are still actual). As time permits, I shall play myself with the code in snd_hda_parse_output() to see if I can make it work.
Thanks for your efforts to try to get this to work. I had a look at the ALSA website. Apparently my audio controller IDT 92HD81 is supported… Maybe the bug is in their drivers.
I found some time today and I did some tests. My laptop has two output devices: Speaker (0x01) and HP Out (0x02). If HP Out is initialized correctly and works as expected, the Speaker output initialization fails somewhere, and it behaves as left mute. Which is the cause of the failure unfortunately I still cannot tell. The best I could do would be to read the specs for the codec I have and with luck to find how to solve my particular problem, but this could also mean a lot of debugging without the promise of success. Shall keep trying in my spare time though, if no other choice. But in the end I think that the best solution would be for you, in case you will find the needed time, to update the driver to the newest ALSA's one, keeping also the relevant information from their patch_xxx.c files. After all that I read on various boards my impression is that these HDA cards have a lot of quirks , every codec with its issues and peculiarities.
I've uploaded a newer test version (20110401), because I've missed some things. Maybe there's no change on the output (at -scc 1), but you can try it. The source is also there.
btw. I said that the used general HDA handling is not so popular, maybe hw manufacturers don't care with it too much, but the ALSA developers also don't, because most of the HDA compatible chips are handled by lower level (direct) access in ALSA, not with this general API… I will surely not add these low level patch_xxx files to Mpxplay…
Unfortunately 20110401 doesn't work also, and HP Out output is still enabled with -scc 1 option (I don't know if this is what you intend). As I told earlier, it seems to me that the solution is codec specific.In case you can recommend a Linux LiveCD having the latest ALSA builds, I will be able to tell if it works with ALSA or not.
I tested a Linux LiveCD having ALSA 1.0.23, and it works as expected. So it is not an ALSA problem, at least not from 1.0.23 on.