18c2ecf20Sopenharmony_ci================================================================= 28c2ecf20Sopenharmony_ciLow latency, multichannel audio with JACK and the emu10k1/emu10k2 38c2ecf20Sopenharmony_ci================================================================= 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ciThis document is a guide to using the emu10k1 based devices with JACK for low 68c2ecf20Sopenharmony_cilatency, multichannel recording functionality. All of my recent work to allow 78c2ecf20Sopenharmony_ciLinux users to use the full capabilities of their hardware has been inspired 88c2ecf20Sopenharmony_ciby the kX Project. Without their work I never would have discovered the true 98c2ecf20Sopenharmony_cipower of this hardware. 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci http://www.kxproject.com 128c2ecf20Sopenharmony_ci - Lee Revell, 2005.03.30 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciUntil recently, emu10k1 users on Linux did not have access to the same low 168c2ecf20Sopenharmony_cilatency, multichannel features offered by the "kX ASIO" feature of their 178c2ecf20Sopenharmony_ciWindows driver. As of ALSA 1.0.9 this is no more! 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciFor those unfamiliar with kX ASIO, this consists of 16 capture and 16 playback 208c2ecf20Sopenharmony_cichannels. With a post 2.6.9 Linux kernel, latencies down to 64 (1.33 ms) or 218c2ecf20Sopenharmony_cieven 32 (0.66ms) frames should work well. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciThe configuration is slightly more involved than on Windows, as you have to 248c2ecf20Sopenharmony_ciselect the correct device for JACK to use. Actually, for qjackctl users it's 258c2ecf20Sopenharmony_cifairly self explanatory - select Duplex, then for capture and playback select 268c2ecf20Sopenharmony_cithe multichannel devices, set the in and out channels to 16, and the sample 278c2ecf20Sopenharmony_cirate to 48000Hz. The command line looks like this: 288c2ecf20Sopenharmony_ci:: 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci /usr/local/bin/jackd -R -dalsa -r48000 -p64 -n2 -D -Chw:0,2 -Phw:0,3 -S 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciThis will give you 16 input ports and 16 output ports. 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ciThe 16 output ports map onto the 16 FX buses (or the first 16 of 64, for the 358c2ecf20Sopenharmony_ciAudigy). The mapping from FX bus to physical output is described in 368c2ecf20Sopenharmony_cisb-live-mixer.rst (or audigy-mixer.rst). 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ciThe 16 input ports are connected to the 16 physical inputs. Contrary to 398c2ecf20Sopenharmony_cipopular belief, all emu10k1 cards are multichannel cards. Which of these 408c2ecf20Sopenharmony_ciinput channels have physical inputs connected to them depends on the card 418c2ecf20Sopenharmony_cimodel. Trial and error is highly recommended; the pinout diagrams 428c2ecf20Sopenharmony_cifor the card have been reverse engineered by some enterprising kX users and are 438c2ecf20Sopenharmony_ciavailable on the internet. Meterbridge is helpful here, and the kX forums are 448c2ecf20Sopenharmony_cipacked with useful information. 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ciEach input port will either correspond to a digital (SPDIF) input, an analog 478c2ecf20Sopenharmony_ciinput, or nothing. The one exception is the SBLive! 5.1. On these devices, 488c2ecf20Sopenharmony_cithe second and third input ports are wired to the center/LFE output. You will 498c2ecf20Sopenharmony_cistill see 16 capture channels, but only 14 are available for recording inputs. 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ciThis chart, borrowed from kxfxlib/da_asio51.cpp, describes the mapping of JACK 528c2ecf20Sopenharmony_ciports to FXBUS2 (multitrack recording input) and EXTOUT (physical output) 538c2ecf20Sopenharmony_cichannels. 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ciJACK (& ASIO) mappings on 10k1 5.1 SBLive cards: 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci============== ======== ============ 588c2ecf20Sopenharmony_ciJACK Epilog FXBUS2(nr) 598c2ecf20Sopenharmony_ci============== ======== ============ 608c2ecf20Sopenharmony_cicapture_1 asio14 FXBUS2(0xe) 618c2ecf20Sopenharmony_cicapture_2 asio15 FXBUS2(0xf) 628c2ecf20Sopenharmony_cicapture_3 asio0 FXBUS2(0x0) 638c2ecf20Sopenharmony_ci~capture_4 Center EXTOUT(0x11) // mapped to by Center 648c2ecf20Sopenharmony_ci~capture_5 LFE EXTOUT(0x12) // mapped to by LFE 658c2ecf20Sopenharmony_cicapture_6 asio3 FXBUS2(0x3) 668c2ecf20Sopenharmony_cicapture_7 asio4 FXBUS2(0x4) 678c2ecf20Sopenharmony_cicapture_8 asio5 FXBUS2(0x5) 688c2ecf20Sopenharmony_cicapture_9 asio6 FXBUS2(0x6) 698c2ecf20Sopenharmony_cicapture_10 asio7 FXBUS2(0x7) 708c2ecf20Sopenharmony_cicapture_11 asio8 FXBUS2(0x8) 718c2ecf20Sopenharmony_cicapture_12 asio9 FXBUS2(0x9) 728c2ecf20Sopenharmony_cicapture_13 asio10 FXBUS2(0xa) 738c2ecf20Sopenharmony_cicapture_14 asio11 FXBUS2(0xb) 748c2ecf20Sopenharmony_cicapture_15 asio12 FXBUS2(0xc) 758c2ecf20Sopenharmony_cicapture_16 asio13 FXBUS2(0xd) 768c2ecf20Sopenharmony_ci============== ======== ============ 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ciTODO: describe use of ld10k1/qlo10k1 in conjunction with JACK 79