Para ter som multicanal no Mac OS basta entrar em
Aplicativos - Utilitários - Configuração Áudio e MIDI e criar um
dispositivo agregado com 3 (5.1) ou 4 saídas (7.1)

O problema é que com a maioria dos codecs a VoodooHDA ativa apenas uma saída. Isso acontece porque o codec tem vários nodes com mesmo
Default Association, variando a
Sequence.
Para fazer um dump do seu codec use o comando
getDump (obtido no
tópico oficial da VoodooHDA).
Exemplo:
Code:
nid 17 0x02214030 as 3 seq 0 Headphones Jack jack 1 loc 2 color Green misc 0
nid 18 0x01014010 as 1 seq 0 Line-out Jack jack 1 loc 1 color Green misc 0
nid 19 0x511711f0 as 15 seq 0 Speaker None jack 7 loc 17 color Black misc 1
nid 20 0x02a1902e as 2 seq 14 Microphone Jack jack 1 loc 2 color Pink misc 0
nid 21 0x01813021 as 2 seq 1 Line-in Jack jack 1 loc 1 color Blue misc 0
nid 22 0x01011012 as 1 seq 2 Line-out Jack jack 1 loc 1 color Black misc 0
nid 23 0x01a19020 as 2 seq 0 Microphone Jack jack 1 loc 1 color Pink misc 0
nid 24 0x99331122 as 2 seq 2 CD Fixed jack 3 loc 25 color Black misc 1
nid 27 0x0145f1a0 as 10 seq 0 SPDIF-out Jack jack 5 loc 1 color Other misc 1
nid 28 0x41c5f160 as 6 seq 0 SPDIF-in None jack 5 loc 1 color Other misc 1
nid 36 0x01016011 as 1 seq 1 Line-out Jack jack 1 loc 1 color Orange misc 0
nid 37 0x01012014 as 1 seq 4 Line-out Jack jack 1 loc 1 color Grey misc 0
O
PinDefault é composto por 8 caracteres hex
Code:
0x01011012
|||||||+- Sequence
||||||+-- Default Association
|||||+--- Misc
||||+---- Color
|||+----- Connection Type
||+------ Default Device
|+------- Location
+-------- Port Connectivity
Mais informações
viewtopic.php?f=2&t=180A Apple não usa saída analógica multicanal, então precisamos botar um Default Association diferente para cada line-out (coloque o primeiro valor disponível). Sequence fica sempre zero.
Para mudar esses valores, incluímos
NodesToPatch no arquivo Info.plist da VoodooHDA, por exemplo:
Code:
<key>NodesToPatch</key>
<array>
<dict>
<key>Codec</key>
<integer>0</integer> <!-- endereço do codec ("Probing codec #0" no getDump) -->
<key>Config</key>
<string>0x01011070</string> <!-- novo PinDefault -->
<key>Node</key>
<integer>22</integer> <!-- número do node (nid) -->
</dict>
</array>
Como editar o Info.plist
viewtopic.php?f=3&t=69Em alguns casos também é necessário ajustar a
Port Connectivity. No caso de
jacks os bits 6 e 7 devem ser zero, então qualquer valor maior que 1 no char 7 do PinDefault indica que o node está desativado (você verá "Disabling pin nid X due to None connectivity" no getDump).

Isso também vale para entradas, então se você não vê microfones ou line-in nas preferências de som, pode usar o mesmo método para ativar as entradas.

O único caso em que se usa o mesmo Default Association em dois nodes é quando se deseja detecção automática, por exemplo line-out (green rear) e headphones (green front)
Code:
nid 17 0x0221401f as 1 seq 15 Headphones Jack jack 1 loc 2 color Green misc 0
nid 18 0x01014010 as 1 seq 0 Line-out Jack jack 1 loc 1 color Green misc 0
O principal (line-out ou speaker) fica com Sequence
0 e o headphones (auto-detect) com Sequence
f.
Se a sua placa tem apenas uma line-out você pode alterar as entradas line-in e mic traseiras para line-out e ter áudio 5.1, para isso basta mudar o byte
Default Device desses nodes para
zero.
Antes
Code:
nid 24 0x01a19830 as 3 seq 0 Microphone Jack jack 1 loc 1 color Pink misc 8
nid 26 0x01813050 as 5 seq 0 Line-in Jack jack 1 loc 1 color Blue misc 0
Depois
Code:
nid 24 0x01019830 as 3 seq 0 Line-out Jack jack 1 loc 1 color Pink misc 8
nid 26 0x01013050 as 5 seq 0 Line-out Jack jack 1 loc 1 color Blue misc 0