Jump to content

[HOW TO] Pin Config!


age_sabres18
 Share

99 posts in this topic

Recommended Posts

In my case I use:

 

Node 19 - Internal Digital Mic

Node 14 - External Mic (Right jack)

Node 12 - Line in, but it is configurable on the line out (center jack) so I can leave as Line Out or as a Line In, depends on pin config but can be software controlled with the current AppleHDA.

 

Node 13 - Internal Speakers

Node 10 - Headphones (left jack)

Node 15 - Line Out (center jack)

 

and there are two more:

node 33 - SPDIF Out (thru HDMI)

node 34 - SPDIF In (don't know thru where)

Hi macgirl!

I see you use the same nodes as me (except virtual Internal Digital Mic). Did you got AppleHDA 1.6.2 working? Did you have Input slider?

Link to comment
Share on other sites

I believe the key to getting the Internal Mic working as well as Mic Sliders is utilizing the DspFuncLib.kext in AppleHDA 1.6.2. As you can see in The Kings kext in his How To Patch AppleHDA, if you look in layouts under HDAPlatform and look at mic you can see he implemented the DspFuncLib if we can only utilize this as well we'll all be able to get the slider working.

 

I strongly believe this is the thing to do to get the slider working. I messed around with it a bit last night but couldnt get it going. Hopefully one of you can get it working and we'll all be happy campers.

Link to comment
Share on other sites

Hi macgirl!

I see you use the same nodes as me (except virtual Internal Digital Mic). Did you got AppleHDA 1.6.2 working? Did you have Input slider?

Yes I have modded 1.6.2a37 working, but also Legacy AppleHDA with Extra kexts.

 

Here they are:

FixSigmaTel_STAC9228.zip

You only need to change Pathmap and pin config to reflect your internal mic

 

@gbonilla, thanks I will begin investigation of the DspFuncLib, thanks for the hint.

Link to comment
Share on other sites

I have full working sound with two configuration (all inputs and all outputs)

Hack#1 - Realtek ALC883

Hack#3 - Sigmatel 9228

But there is a difference. In #1 I have input control sliders. In #3 - no.

I compare byte by byte all info.plist and no significant differencies found. Only nodeIDs and codecID are different. But I don't know how to compose ConfigData in HDAController. May be here?

Link to comment
Share on other sites

I have full working sound with two configuration (all inputs and all outputs)

Hack#1 - Realtek ALC883

Hack#3 - Sigmatel 9228

But there is a difference. In #1 I have input control sliders. In #3 - no.

I compare byte by byte all info.plist and no significant differencies found. Only nodeIDs and codecID are different. But I don't know how to compose ConfigData in HDAController. May be here?

 

If you're using my latest kext then you should have all the correct configdata.

Link to comment
Share on other sites

I found Input slider!

Picture_3.png

It depends on amp section at nodes 24, 25 and 26.

 

Now I want to understand how to make autodetect of outputs. 7th digit at PinDefault?

 

EDITED: No, simply join outputs into

That all! My sigmatel 9228 works with autodetect and with input sliders :D

Link to comment
Share on other sites

I found Input slider!

Picture_3.png

It depends on amp section at nodes 24, 25 and 26.

 

Now I want to understand how to make autodetect of outputs. 7th digit at PinDefault?

 

EDITED: No, simply join outputs into

That all! My sigmatel 9228 works with autodetect and with input sliders :)

Yes, it worked.

 

Very nice find, the last thing to get now is Ambient Noise Reduction.

I think it depens on SignalProcessing on inputs at Layout, in one of my tests I copied one from another layout and the DSP noise reduction appears, I cant replicate it on the external Mic tho.

 

see the code:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SoftwareDSP</key>
<dict>
	<key>DspFunction0</key>
	<dict>
		<key>FunctionInfo</key>
		<dict>
			<key>DspFuncInstance</key>
			<integer>0</integer>
			<key>DspFuncName</key>
			<string>DspNoiseReduction</string>
			<key>DspFuncProcessingIndex</key>
			<integer>0</integer>
		</dict>
		<key>ParameterInfo</key>
		<dict>
			<key>1</key>
			<integer>0</integer>
			<key>2</key>
			<integer>0</integer>
			<key>3</key>
			<integer>0</integer>
			<key>4</key>
			<integer>0</integer>
		</dict>
		<key>PatchbayInfo</key>
		<dict/>
	</dict>
	<key>DspFunction1</key>
	<dict>
		<key>FunctionInfo</key>
		<dict>
			<key>DspFuncInstance</key>
			<integer>1</integer>
			<key>DspFuncName</key>
			<string>DspGainStage</string>
			<key>DspFuncProcessingIndex</key>
			<integer>1</integer>
		</dict>
		<key>ParameterInfo</key>
		<dict>
			<key>1</key>
			<integer>0</integer>
			<key>2</key>
			<integer>1078616770</integer>
			<key>3</key>
			<integer>1078616770</integer>
		</dict>
		<key>PatchbayInfo</key>
		<dict>
			<key>InputPort0</key>
			<dict>
				<key>PortInstance</key>
				<integer>0</integer>
				<key>PortWidth</key>
				<integer>1</integer>
				<key>SourceFuncInstance</key>
				<integer>0</integer>
				<key>SourcePortIndex</key>
				<integer>0</integer>
			</dict>
			<key>InputPort1</key>
			<dict>
				<key>PortInstance</key>
				<integer>1</integer>
				<key>PortWidth</key>
				<integer>1</integer>
				<key>SourceFuncInstance</key>
				<integer>0</integer>
				<key>SourcePortIndex</key>
				<integer>1</integer>
			</dict>
		</dict>
	</dict>
	<key>DspFunction2</key>
	<dict>
		<key>FunctionInfo</key>
		<dict>
			<key>DspFuncInstance</key>
			<integer>2</integer>
			<key>DspFuncName</key>
			<string>DspEqualization</string>
			<key>DspFuncProcessingIndex</key>
			<integer>2</integer>
		</dict>
		<key>ParameterInfo</key>
		<dict>
			<key>1</key>
			<integer>0</integer>
			<key>Filter</key>
			<array>
				<dict>
					<key>2</key>
					<integer>2</integer>
					<key>3</key>
					<integer>0</integer>
					<key>4</key>
					<integer>0</integer>
					<key>5</key>
					<integer>5</integer>
					<key>6</key>
					<integer>1110558492</integer>
					<key>7</key>
					<integer>1060439283</integer>
					<key>8</key>
					<integer>-1044381696</integer>
				</dict>
				<dict>
					<key>2</key>
					<integer>2</integer>
					<key>3</key>
					<integer>1</integer>
					<key>4</key>
					<integer>0</integer>
					<key>5</key>
					<integer>4</integer>
					<key>6</key>
					<integer>1143886938</integer>
					<key>7</key>
					<integer>1058341842</integer>
					<key>8</key>
					<integer>-1093363620</integer>
				</dict>
				<dict>
					<key>2</key>
					<integer>2</integer>
					<key>3</key>
					<integer>5</integer>
					<key>4</key>
					<integer>0</integer>
					<key>5</key>
					<integer>4</integer>
					<key>6</key>
					<integer>1165224806</integer>
					<key>7</key>
					<integer>1068796443</integer>
					<key>8</key>
					<integer>-1055339134</integer>
				</dict>
				<dict>
					<key>2</key>
					<integer>2</integer>
					<key>3</key>
					<integer>15</integer>
					<key>4</key>
					<integer>0</integer>
					<key>5</key>
					<integer>6</integer>
					<key>6</key>
					<integer>1180776798</integer>
					<key>7</key>
					<integer>1060439283</integer>
					<key>8</key>
					<integer>-1045426644</integer>
				</dict>
			</array>
		</dict>
		<key>PatchbayInfo</key>
		<dict>
			<key>InputPort0</key>
			<dict>
				<key>PortInstance</key>
				<integer>0</integer>
				<key>PortWidth</key>
				<integer>1</integer>
				<key>SourceFuncInstance</key>
				<integer>1</integer>
				<key>SourcePortIndex</key>
				<integer>0</integer>
			</dict>
			<key>InputPort1</key>
			<dict>
				<key>PortInstance</key>
				<integer>1</integer>
				<key>PortWidth</key>
				<integer>1</integer>
				<key>SourceFuncInstance</key>
				<integer>1</integer>
				<key>SourcePortIndex</key>
				<integer>1</integer>
			</dict>
		</dict>
	</dict>
	<key>DspFunction3</key>
	<dict>
		<key>FunctionInfo</key>
		<dict>
			<key>DspFuncInstance</key>
			<integer>3</integer>
			<key>DspFuncName</key>
			<string>DspMultibandDRC</string>
			<key>DspFuncProcessingIndex</key>
			<integer>3</integer>
		</dict>
		<key>ParameterInfo</key>
		<dict>
			<key>1</key>
			<integer>0</integer>
			<key>Crossover</key>
			<dict>
				<key>4</key>
				<integer>1</integer>
				<key>5</key>
				<integer>0</integer>
				<key>6</key>
				<integer>1128792064</integer>
			</dict>
			<key>Limiter</key>
			<array>
				<dict>
					<key>10</key>
					<integer>-1054694750</integer>
					<key>11</key>
					<integer>1092338628</integer>
					<key>12</key>
					<integer>-1048995430</integer>
					<key>13</key>
					<integer>1067869798</integer>
					<key>14</key>
					<integer>-1027604480</integer>
					<key>15</key>
					<integer>1065353216</integer>
					<key>16</key>
					<integer>1065353216</integer>
					<key>17</key>
					<integer>1073741824</integer>
					<key>18</key>
					<integer>1122916955</integer>
					<key>19</key>
					<integer>1117579240</integer>
					<key>2</key>
					<integer>1</integer>
					<key>20</key>
					<integer>1137180672</integer>
					<key>21</key>
					<integer>0</integer>
					<key>22</key>
					<integer>0</integer>
					<key>23</key>
					<integer>1</integer>
					<key>3</key>
					<integer>0</integer>
					<key>7</key>
					<integer>0</integer>
					<key>8</key>
					<integer>0</integer>
					<key>9</key>
					<integer>-1094269236</integer>
				</dict>
			</array>
		</dict>
		<key>PatchbayInfo</key>
		<dict>
			<key>InputPort0</key>
			<dict>
				<key>PortInstance</key>
				<integer>0</integer>
				<key>PortWidth</key>
				<integer>1</integer>
				<key>SourceFuncInstance</key>
				<integer>2</integer>
				<key>SourcePortIndex</key>
				<integer>0</integer>
			</dict>
			<key>InputPort1</key>
			<dict>
				<key>PortInstance</key>
				<integer>1</integer>
				<key>PortWidth</key>
				<integer>1</integer>
				<key>SourceFuncInstance</key>
				<integer>2</integer>
				<key>SourcePortIndex</key>
				<integer>1</integer>
			</dict>
		</dict>
	</dict>
</dict>
</dict>
</plist>

Link to comment
Share on other sites

  • 4 weeks later...

Hii... i tried to install this hack on my dell studio XPS 13 but ...i cant find the "PinConfigOverrideVerbs"-tab/folder if i look up my GUID...i can find the the main folder....but there is no PinConfigOverrideVerbs folder under one of the subfolders.

Link to comment
Share on other sites

I've been working to get a headset to work with the external mic port (Dell E1405/Sigmatel 9200). It's working finally with some change on the configdata section. I want to share my experience with everyone, especially with those people with 9200 chipsets.

 

By default, exernal mic ports on Mac work as line-in ports, which means enough VREF (mic vcc, mic bias...) is not applied to the ports. This is why headsets do not work with macs I guess. I tried to solve this by putting VREF key in the pathmap section, but it didn't got working.

 

While doing some googling, I bumped into this document:

http://www.idt.com/products/getDoc.cfm?docID=18451986

 

The document has complete information of the chip (including every verb data). To apply VREF to the external mic port, I added 01070721 to the configdata section, which changes VRefSelect bit field to 1 for the node 0x10 (the external mic port). The real interesting part is that you could do anything by putting configdata. For example, you can use a headphone out port as a line-in to get two input sources at the same time. That means, you can hook up two guitars in Garageband and record at the same time.....

Link to comment
Share on other sites

  • 4 weeks later...

Bit confused here...

 

If I get the pin config data via Vista, bit-flip it and paste it into AppleHDAController is that all I need to get sound working? From reading some other threads (like the Linux Pin Config one) there's node data that has to go into AppleHDAPlatformDriver too. Is all this stored in the Vista registry entry too?

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...
  • 2 months later...
 Share

×
×
  • Create New...