About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / sound / alsa / emu10k1-jack.txt


Based on kernel version 4.9. Page generated on 2016-12-21 14:37 EST.

1	This document is a guide to using the emu10k1 based devices with JACK for low
2	latency, multichannel recording functionality.  All of my recent work to allow
3	Linux users to use the full capabilities of their hardware has been inspired 
4	by the kX Project.  Without their work I never would have discovered the true
5	power of this hardware.
6	
7		http://www.kxproject.com
8							- Lee Revell, 2005.03.30
9	
10	Low latency, multichannel audio with JACK and the emu10k1/emu10k2
11	-----------------------------------------------------------------
12	
13	Until recently, emu10k1 users on Linux did not have access to the same low
14	latency, multichannel features offered by the "kX ASIO" feature of their
15	Windows driver.  As of ALSA 1.0.9 this is no more!
16	
17	For those unfamiliar with kX ASIO, this consists of 16 capture and 16 playback
18	channels.  With a post 2.6.9 Linux kernel, latencies down to 64 (1.33 ms) or
19	even 32 (0.66ms) frames should work well.
20	
21	The configuration is slightly more involved than on Windows, as you have to
22	select the correct device for JACK to use.  Actually, for qjackctl users it's
23	fairly self explanatory - select Duplex, then for capture and playback select
24	the multichannel devices, set the in and out channels to 16, and the sample
25	rate to 48000Hz.  The command line looks like this:
26	
27	/usr/local/bin/jackd -R -dalsa -r48000 -p64 -n2 -D -Chw:0,2 -Phw:0,3 -S
28	
29	This will give you 16 input ports and 16 output ports.
30	
31	The 16 output ports map onto the 16 FX buses (or the first 16 of 64, for the
32	Audigy).  The mapping from FX bus to physical output is described in
33	SB-Live-mixer.txt (or Audigy-mixer.txt).
34	
35	The 16 input ports are connected to the 16 physical inputs.  Contrary to
36	popular belief, all emu10k1 cards are multichannel cards.  Which of these
37	input channels have physical inputs connected to them depends on the card
38	model.  Trial and error is highly recommended; the pinout diagrams
39	for the card have been reverse engineered by some enterprising kX users and are 
40	available on the internet.  Meterbridge is helpful here, and the kX forums are
41	packed with useful information.
42	
43	Each input port will either correspond to a digital (SPDIF) input, an analog
44	input, or nothing.  The one exception is the SBLive! 5.1.  On these devices,
45	the second and third input ports are wired to the center/LFE output.  You will
46	still see 16 capture channels, but only 14 are available for recording inputs.
47	
48	This chart, borrowed from kxfxlib/da_asio51.cpp, describes the mapping of JACK
49	ports to FXBUS2 (multitrack recording input) and EXTOUT (physical output)
50	channels.
51	
52	/*JACK (& ASIO) mappings on 10k1 5.1 SBLive cards:
53	--------------------------------------------
54	JACK		Epilog		FXBUS2(nr)
55	--------------------------------------------
56	capture_1	asio14		FXBUS2(0xe)
57	capture_2	asio15		FXBUS2(0xf)
58	capture_3	asio0		FXBUS2(0x0)	
59	~capture_4	Center		EXTOUT(0x11)	// mapped to by Center
60	~capture_5	LFE		EXTOUT(0x12)	// mapped to by LFE
61	capture_6	asio3		FXBUS2(0x3)
62	capture_7	asio4		FXBUS2(0x4)
63	capture_8	asio5		FXBUS2(0x5)
64	capture_9	asio6		FXBUS2(0x6)
65	capture_10	asio7		FXBUS2(0x7)
66	capture_11	asio8		FXBUS2(0x8)
67	capture_12	asio9		FXBUS2(0x9)
68	capture_13	asio10		FXBUS2(0xa)
69	capture_14	asio11		FXBUS2(0xb)
70	capture_15	asio12		FXBUS2(0xc)
71	capture_16	asio13		FXBUS2(0xd)
72	*/
73	
74	TODO: describe use of ld10k1/qlo10k1 in conjunction with JACK
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog