JACK en meerdere geluidskaarten

JACK kan meerdere geluidskaarten aan, als ze maar dezelfde backend gebruiken (ALSA, FFADO, OSS). Je kan verschillende kaarten instellen voor de in- en output devices maar mocht je meerdere input en/of output devices willen gebruiken, bijvoorbeeld twee verschillende geluidskaarten voor de output tbv monitoring, dan is er de mogelijkheid om dat met de tooltjes alsa_in en alsa_out te doen.

Op mijn Fedora 12 installatie werkt dat prima maar op mijn Ubuntu machines kon ik deze tooltjes niet vinden. Even Googlen en snel de oorzaak achterhaald, kennelijk vergeten ze bij Ubuntu iedere keer JACK te compileren met libsamplerate. Mocht er behoefte aan zijn dan kan ik JACK packagen met de tooltjes die afhankelijk zijn van libsamplerate, zoals alsa_in en alsa_out. Heb wel al Karmic 64-bits pakketjes geüpload.

Een programma waar het tooltje alsa_out van pas zou kunnen komen is Mixxx met JACK als Sound API. Als je Mixxx samen met JACK gebruikt kun je voor je Master en je Headphones kanalen geen verschillende geluidskaarten instellen. Maar als je nadat je JACK hebt opgestart en voordat je Mixxx opstart het volgende terminal commando opgeeft kan dat wel:

alsa_out -j cmedia -d hw:1 -c 2 &

Dit commando is uiteraard wel afhankelijk van de configuratie van je geluidskaarten. Hoe dat ingesteld is kun je oproepen met het terminal commando aplay -l:

[jeremy@werkpc ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: AD198x Analog [AD198x Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: AD198x Digital [AD198x Digital]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: default [C-Media USB Headphone Set  ], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ALSA ziet de onboard HDA Intel kaart dus als card 0 (oftewel hw:0) en het ingeplugde C-Media USB geluidskaartje als card 1 (hw:1). Nu wordt het alsa_out commando hierboven ook gelijk duidelijker, als ik dat even snel ontleed staat er eigenlijk het volgende: gebruik device (-d) hw:1 (de C-Media USB geluidskaart) met 2 kanalen (-c 2) en geef deze ‘cmedia’ als naam voor JACK (-j cmedia). Je kunt nog meer instellingen meegeven maar voor dit voorbeeld volstaat bovengenoemd commando. Wat er nu gebeurt is dat er een nieuwe JACK ‘Writable Client/Input Port’ verschijnt in QjackCtl met de naam ‘cmedia’. Als je nu Mixxx opent kun je inderdaad via Options – Preferences – Sound Hardware de verschillende geluidskaarten instellen onder ‘Master’ en ‘Headphones’. ‘Master’ zet je dan op ‘system’ (in mijn geval de onboard HDA Intel) en ‘Headphones’ op ‘cmedia’. Koptelefoon aansluiten op de C-Media stick en stereotoren op de onboard kaart, voilà, monitoring op je koptelefoon en snoeiharde deathmetalitalodisco van Giörgiö Möröder op je stereo.

Al het bovenstaande gaat op voor wat in de wandelgangen wel jack1 wordt genoemd (versie 0.116.x), jack2 (versie 1.9.x, ook wel jackdmp genoemd, mp staat voor multiple processors) heeft deze functionaliteit al ingebakken, dus dan heb je alsa_in en alsa_out niet meer nodig.

JACK en meerdere geluidskaarten

Leave a Reply

Your email address will not be published. Required fields are marked *