Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[ALSA] some docs for the new emu10k1 multichannel functionality

Documentation
Not complete, or even spell checked, but in case I don't get a chance to
work on it again before 1.0.9, here is what i have so far. It should go
in alsa-kernel/Documentation/emu10k1-jack.txt.

Signed-off-by: Lee Revell <rlrevell@joe-job.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Lee Revell and committed by
Jaroslav Kysela
9c220a31 2b637da5

+74
+74
Documentation/sound/alsa/emu10k1-jack.txt
··· 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