Contribute
Register

Any fix to the Garbled/Distorted Headphone issue?

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,075
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I have alc255....

What would I have to edit in the info.plist?
Since VoodooHDA worked with the headphones ok, I used VoodooHDA and a special build of CodecCommander (the current version of CodecCommander will not load when using VoodooHDA) to determine the configuration values of the "Pin Control Widget" (with CodecCommanderClient) at each node when running VoodooHDA vs. AppleHDA. Looking at the diffs, I was able to determine that the pin control widget for 0x19 and 0x25 were not correct using AppleHDA. After adding the necessary configuration to the Codec Profile (within CodecCommander Info.plist) to set the values as seen under VoodooHDA, it works on AppleHDA also.
 
Joined
Mar 10, 2012
Messages
199
Motherboard
Dell XPS 8930
CPU
i5 8400
Graphics
UHD630+RX580
Mac
MacBook Pro
Mobile Phone
iOS
Since VoodooHDA worked with the headphones ok, I used VoodooHDA and a special build of CodecCommander (the current version of CodecCommander will not load when using VoodooHDA) to determine the configuration values of the "Pin Control Widget" (with CodecCommanderClient) at each node when running VoodooHDA vs. AppleHDA. Looking at the diffs, I was able to determine that the pin control widget for 0x19 and 0x25 were not correct using AppleHDA. After adding the necessary configuration to the Codec Profile (within CodecCommander Info.plist) to set the values as seen under VoodooHDA, it works on AppleHDA also.
Can write a brief guide for the whole procedure? It looks very useful.
 
Joined
Feb 21, 2014
Messages
50
Mac
Classic Mac
Mobile Phone
Since VoodooHDA worked with the headphones ok, I used VoodooHDA and a special build of CodecCommander (the current version of CodecCommander will not load when using VoodooHDA) to determine the configuration values of the "Pin Control Widget" (with CodecCommanderClient) at each node when running VoodooHDA vs. AppleHDA. Looking at the diffs, I was able to determine that the pin control widget for 0x19 and 0x25 were not correct using AppleHDA. After adding the necessary configuration to the Codec Profile (within CodecCommander Info.plist) to set the values as seen under VoodooHDA, it works on AppleHDA also.

I tried voodoohda whenm i first got my laptop, the headphone issue existed even then unlike you where it disappeared...., applehda is much better for me.

Are you saying I have to load in voodoohda? I have a patched alc255 applehda that works fine except for the headphone issues...
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,075
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I tried voodoohda whenm i first got my laptop, the headphone issue existed even then unlike you where it disappeared...., applehda is much better for me.
Maybe you were not using the latest VoodooHDA. I built mine from sources (then had to fix a bug to avoid a startup crash). Did you verify that VoodooHDA was being used (eg. did you look at ioreg?)?

Are you saying I have to load in voodoohda? I have a patched alc255 applehda that works fine except for the headphone issues...
I just described my process. What are the specific headphone issues?
 
Joined
Feb 21, 2014
Messages
50
Mac
Classic Mac
Mobile Phone
the issue where you have to mute one channel to get it to sound good, otherwise its garbled and noisy....

Is there anything that I can quickly modify in the info.plist?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,075
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
the issue where you have to mute one channel to get it to sound good, otherwise its garbled and noisy....

Is there anything that I can quickly modify in the info.plist?
You first need to determine which widget nodes need modification. You use CodecCommanderClient (installed as hda-verb with 'make install') to determine what needs to change. After you determine the widget node that needs to be set after sleep, you can make the necessary Info.plist changes.

I added some scripts to the repo today based on stuff that the-darkvoid provided. They are simple scripts that run hda-verb for all nodes...

Check out the repo: https://github.com/RehabMan/EAPD-Codec-Commander

Here's an overview of what I did:

- installed and got VoodooHDA to work (built from latest sources, fixed bugs, etc.)
- noticed that no headphone problem with VoodooHDA
- used widget_dump.sh to look at the widget values
- set everything back for patched AppleHDA
- verified headphones still a problem
- used widget_dump.sh to look at widget values
- compared the two dumps (VoodooHDA vs. AppleHDA dump)
- started poking around with hda-verb to set the pini widgets control
- for example, I noticed that pin widget for node 0x19 was 0 with AppleHDA, but 0x25 with VoodooHDA, so with AppleHDA (headphone problematic):
Code:
  hda-verb 0x19 SET_PIN_WIDGET_CONTROL 0x25
- tested headphones... and at that point they were working

And all that led to what is now in the checked in Info.plist for CodecCommander, Realtek ALC283 profile.

I'm not sure how you'd stumble into the right setup without having a working configuration (in my case, VoodooHDA) that you can read the HDA configuration from. It would take a lot of trial/error (or reading the HDA spec) to figure out that node 0x19 needs to be 0x25.

Maybe there is a way to read HDA pin widget control (or other settings) in Linux?

Note: I did a fair bit of reading of the Intel HDA spec.... That way I knew what an HDA verb was, what a node was, etc.
 
Joined
Mar 10, 2012
Messages
199
Motherboard
Dell XPS 8930
CPU
i5 8400
Graphics
UHD630+RX580
Mac
MacBook Pro
Mobile Phone
iOS
You first need to determine which widget nodes need modification. You use CodecCommanderClient (installed as hda-verb with 'make install') to determine what needs to change. After you determine the widget node that needs to be set after sleep, you can make the necessary Info.plist changes.

I added some scripts to the repo today based on stuff that the-darkvoid provided. They are simple scripts that run hda-verb for all nodes...

Check out the repo: https://github.com/RehabMan/EAPD-Codec-Commander

Here's an overview of what I did:

- installed and got VoodooHDA to work (built from latest sources, fixed bugs, etc.)
- noticed that no headphone problem with VoodooHDA
- used widget_dump.sh to look at the widget values
- set everything back for patched AppleHDA
- verified headphones still a problem
- used widget_dump.sh to look at widget values
- compared the two dumps (VoodooHDA vs. AppleHDA dump)
- started poking around with hda-verb to set the pini widgets control
- for example, I noticed that pin widget for node 0x19 was 0 with AppleHDA, but 0x25 with VoodooHDA, so with AppleHDA (headphone problematic):
Code:
  hda-verb 0x19 SET_PIN_WIDGET_CONTROL 0x25
- tested headphones... and at that point they were working

And all that led to what is now in the checked in Info.plist for CodecCommander, Realtek ALC283 profile.

I'm not sure how you'd stumble into the right setup without having a working configuration (in my case, VoodooHDA) that you can read the HDA configuration from. It would take a lot of trial/error (or reading the HDA spec) to figure out that node 0x19 needs to be 0x25.

Maybe there is a way to read HDA pin widget control (or other settings) in Linux?

Note: I did a fair bit of reading of the Intel HDA spec.... That way I knew what an HDA verb was, what a node was, etc.
With Voodoohda287 headphone sound quality is still poor...... T.T
 
Top