Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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