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