Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/13/23 in all areas

  1. Hi Everyone All new laptops and OSX causing Distortion/Crackling Sound and these new laptop has combojack instead traditional seperate jacks , so fixing this requires more workaround similar as linux is doing to work natively in OSX , i remember in July 2016 Goodwin_C ask me to fix ALC298 (ALC3266) for Dell XPS 9550, after understanding how linux is doing i was able to fix this with help of hda-verb Rehabman Port of linux hda-verb , special thanks to him , so i created a custom SSDT298 to use with CodecCommander this fixed combojack and static noise from headphone , after few days we found CodecCommander is not good when Speaker changes to Headphone same when Mic changes to Line-In , then commands need to send manually bcoz CodecCommander can't understand changes on OS Level , then i took break from Hack scene in 2017 Goodwin_C found a workaround to fix this issue , so he made ALCPlugFix and implemented same command in this and it was best method to fix this issue so far and using same method till now i'm receiving lots of request to fix same issue from very long time for many codecs , so it's time to share this method so it could help you fix this easily according your codec Requirements: Download latest version of CodecCommander https://bitbucket.org/RehabMan/os-x-eapd-codec-commander/downloads/ Codec_Dump of your codec from linux use this method mention here ALCPlugFix https://github.com/goodwin/ALCPlugFix How to fix Static Noise/Distortion/Crackling issue : 1. Copy hda-verb to /usr/bin folder 2. Find Pin-ctls in you codec_dump , below is example Pin Complex Nodes for Headphone Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Control: name="Headset Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00003724: IN Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN VREF_80 Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 so Pin-ctls in headphone nodes is Pin-ctls: 0x20: IN VREF_80 3. now we have to send command to codec using hda-verb use below command in terminal for Headphone : hda-verb 0x18 SET_PIN_WIDGET_CONTROL 0x20 = (Headphones Pin-ctls: 0x20 from codecDump) Now you will notice this issue is fixed Note : usually you don't need to send command for headphone only but in few case you need to send command to Line-In, Mic or Speaker too , you can create Custom SSDT to use with CodecCommander is better approach How to fix ComboJack issue: to fix combojack you need to send additional commands to Line-In (External Microphone) nodes 1. First find out which is your Line-In (External Microphone Combojack Node) is connected to Headphone Jack , below example : codec_dump Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Control: name="Headset Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00003724: IN Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Control: name="Headphone Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0001373c: IN OUT HP EAPD Detect Vref caps: HIZ 50 GRD 80 100 EAPD 0x2: EAPD Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d there is two node 19 and node 1a , we have to use node 1a this is combojack node one jack for Headphone/Mic Node 0x19 "Headset Mic Boost Volume" Node 0x1a "Headphone Mic Boost Volume" "Headset Mic Boost Volume" = External Port (Sperate Mic Jack) "Headphone Mic Boost Volume" = ComboJack (One Jack for Headphone/Mic) 2. Find Pin-ctls in your codec_dump , below is example Pin Complex Nodes for Line-In Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Control: name="Headphone Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0001373c: IN OUT HP EAPD Detect Vref caps: HIZ 50 GRD 80 100 EAPD 0x2: EAPD Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d so Pin-ctls in line-in nodes is Pin-ctls: 0x20: IN VREF_HIZ 3. now we have to send command to codec using hda-verb use below command in terminal for Line-In (External Microphone) : hda-verb 0x1a SET_PIN_WIDGET_CONTROL 0x20 before send command you need to plug headphone in combojack , this will fix your issue but when you unplug and replug headphone again you need to send command everytime so to fix this use ALCPlufix 4. Open ALCPlufix project in Xcode , you need Xcode to build and modify source now change your node and Pin-ctls as in above image in 3 sections hda-verb 0x18 SET_PIN_WIDGET_CONTROL 0x20 (Node18 Headphone) hda-verb 0x1a SET_PIN_WIDGET_CONTROL 0x20 (Node1a Line-In) 5. Build project and copy ALCPlugFix to alc_fix folder and then run install.sh file Now you don't need to worry about switching between combojack to mic Note : for better performance you must use Custom SSDT + CodecCommander + ALCPlugfix if still combojack doesn't work for you, then you need good patch for your codec, feel free ask here PS: most of codec in my git repo using this method and working good so far https://github.com/insanelydeepak/cloverHDA-for-Mac-OS-Sierra-10.13 you can switch between commands to get best result , below are pin-ctls i have found in different codec_dumps so far , you can use any below and this will work for you Pin-ctls: 0xc0: ALC292 (ALC3232) Pin-ctls: 0x24: ALC288 (ALC3263) Pin-ctls: 0x20: ALC298 (ALC3266) Pin-ctls: 0x25: ALC255 (ALC3234) Pin-ctls: 0xc0: ALC256 (ALC3246) Pin-ctls: 0x40: ALC299 you can use this method on AppleALC, cloverHDA or DummyHDA , latest version of AppleALC has feature to send command to codecs like CodecCommander , you can modify AppleALC info.plist to stop using CodecCommander, also while using AppleALC if you need CodecCommander you must use SSDTALC.aml , otherwise AppleALC will conflict with CodecCommander latest version of CodecCommander is aware of AppleALC so you don't SSDTALC.aml at all , you can use both at same time Hope this guide could help you in fixing these issue to enjoy a good sound Regards Credits: RehabMan
    1 point
×
×
  • Create New...