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) Software Interface ALSA-DSP MADI Driver 
^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) (translated from German, so no good English ;-), 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 2004 - winfried ritsch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) Full functionality has been added to the driver. Since some of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) the Controls and startup-options  are ALSA-Standard and only the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) special Controls are described and discussed below.
^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) Hardware functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) ======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)    
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) Audio transmission
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) ------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) * number of channels --  depends on transmission mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 		The number of channels chosen is from 1..Nmax. The reason to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 		use for a lower number of channels is only resource allocation,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 		since unused DMA channels are disabled and less memory is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 		allocated. So also the throughput of the PCI system can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 		scaled. (Only important for low performance boards).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) * Single Speed -- 1..64 channels 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 		 (Note: Choosing the 56channel mode for transmission or as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 		 receiver, only 56 are transmitted/received over the MADI, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 		 all 64 channels are available for the mixer, so channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 		 for the driver)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) * Double Speed -- 1..32 channels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 		 Note: Choosing the 56-channel mode for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 		 transmission/receive-mode , only 28 are transmitted/received
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 		 over the MADI, but all 32 channels are available for the mixer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 		 so channel count for the driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) * Quad Speed -- 1..16 channels 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 		 Choosing the 56-channel mode for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 		 transmission/receive-mode , only 14 are transmitted/received
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 		 over the MADI, but all 16 channels are available for the mixer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 		 so channel count for the driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) * Format -- signed 32 Bit Little Endian (SNDRV_PCM_FMTBIT_S32_LE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) * Sample Rates --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)        Single Speed -- 32000, 44100, 48000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)        Double Speed -- 64000, 88200, 96000 (untested)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)        Quad Speed -- 128000, 176400, 192000 (untested)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) * access-mode -- MMAP (memory mapped), Not interleaved (PCM_NON-INTERLEAVED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) * buffer-sizes -- 64,128,256,512,1024,2048,8192 Samples
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) * fragments -- 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) * Hardware-pointer -- 2 Modi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 		 The Card supports the readout of the actual Buffer-pointer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 		 where DMA reads/writes. Since of the bulk mode of PCI it is only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 		 64 Byte accurate. SO it is not really usable for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 		 ALSA-mid-level functions (here the buffer-ID gives a better
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 		 result), but if MMAP is used by the application. Therefore it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 		 can be configured at load-time with the parameter
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 		 precise-pointer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) .. hint::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 		 (Hint: Experimenting I found that the pointer is maximum 64 to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 		 large never to small. So if you subtract 64 you always have a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 		 safe pointer for writing, which is used on this mode inside
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 		 ALSA. In theory now you can get now a latency as low as 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 		 Samples, which is a quarter of the interrupt possibilities.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)    * Precise Pointer -- off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 					interrupt used for pointer-calculation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 				
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)    * Precise Pointer -- on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 					hardware pointer used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) Controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) ----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) Since DSP-MADI-Mixer has 8152 Fader, it does not make sense to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) use the standard mixer-controls, since this would break most of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) (especially graphic) ALSA-Mixer GUIs. So Mixer control has be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) provided by a 2-dimensional controller using the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) hwdep-interface. 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) Also all 128+256 Peak and RMS-Meter can be accessed via the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) hwdep-interface. Since it could be a performance problem always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) copying and converting Peak and RMS-Levels even if you just need
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) one, I decided to export the hardware structure, so that of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) needed some driver-guru can implement a memory-mapping of mixer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) or peak-meters over ioctl, or also to do only copying and no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) conversion. A test-application shows the usage of the controller.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) * Latency Controls --- not implemented !!!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	   Note: Within the windows-driver the latency is accessible of a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	   control-panel, but buffer-sizes are controlled with ALSA from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	   hwparams-calls and should not be changed in run-state, I did not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	   implement it here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) * System Clock -- suspended !!!!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)   * Name -- "System Clock Mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)     
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)   * Values -- "Master" "Slave"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 		  !!!! This is a hardware-function but is in conflict with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 		  Clock-source controller, which is a kind of ALSA-standard. I
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 		  makes sense to set the card to a special mode (master at some
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 		  frequency or slave), since even not using an Audio-application
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 		  a studio should have working synchronisations setup. So use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 		  Clock-source-controller instead !!!!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) * Clock Source  
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)   * Name -- "Sample Clock Source"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)   * Values -- "AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)     "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)     "Internal 96.0 kHz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 		 Choose between Master at a specific Frequency and so also the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 		 Speed-mode or Slave (Autosync). Also see  "Preferred Sync Ref"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) .. warning::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)        !!!! This is no pure hardware function but was implemented by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)        ALSA by some ALSA-drivers before, so I use it also. !!!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) * Preferred Sync Ref
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)   * Name -- "Preferred Sync Reference"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)   * Values -- "Word" "MADI"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 		 Within the Auto-sync-Mode the preferred Sync Source can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 		 chosen. If it is not available another is used if possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 		 Note: Since MADI has a much higher bit-rate than word-clock, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 		 card should synchronise better in MADI Mode. But since the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 		 RME-PLL is very good, there are almost no problems with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 		 word-clock too. I never found a difference.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) * TX 64 channel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176)   * Name -- "TX 64 channels mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)   * Values -- 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 		 Using 64-channel-modus (1) or 56-channel-modus for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 		 MADI-transmission (0).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 		 Note: This control is for output only. Input-mode is detected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 		 automatically from hardware sending MADI.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) * Clear TMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)   * Name -- "Clear Track Marker"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)   * Values -- 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 		 Don't use to lower 5 Audio-bits on AES as additional Bits.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)         
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) * Safe Mode oder Auto Input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)   * Name -- "Safe Mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)   * Values -- 0 1 (default on)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 		 If on (1), then if either the optical or coaxial connection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 		 has a failure, there is a takeover to the working one, with no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 		 sample failure. Its only useful if you use the second as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 		 backup connection.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) * Input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)   * Name -- "Input Select"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)   * Values -- optical coaxial
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 		 Choosing the Input, optical or coaxial. If Safe-mode is active,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 		 this is the preferred Input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) Mixer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) -----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) * Mixer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)   * Name -- "Mixer"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)   * Values - <channel-number 0-127> <Value 0-65535>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 		 Here as a first value the channel-index is taken to get/set the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 		 corresponding mixer channel, where 0-63 are the input to output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 		 fader and 64-127 the playback to outputs fader. Value 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 		 is channel muted 0 and 32768 an amplification of  1.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) * Chn 1-64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)        fast mixer for the ALSA-mixer utils. The diagonal of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)        mixer-matrix is implemented from playback to output.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)        
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) * Line Out
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253)   * Name  -- "Line Out"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255)   * Access -- Read Write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257)   * Values -- 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 		 Switching on and off the analog out, which has nothing to do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 		 with mixing or routing. the analog outs reflects channel 63,64.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) Information (only read access)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) ------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)  
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) * Sample Rate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)   * Name -- "System Sample Rate"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270)   * Access -- Read-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 		 getting the sample rate.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) * External Rate measured
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277)   * Name -- "External Rate"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)   * Access -- Read only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 		 Should be "Autosync Rate", but Name used is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 		 ALSA-Scheme. External Sample frequency liked used on Autosync is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 		 reported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) * MADI Sync Status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)   * Name -- "MADI Sync Lock Status"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291)   * Access -- Read
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293)   * Values -- 0,1,2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295)        MADI-Input is 0=Unlocked, 1=Locked, or 2=Synced.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) * Word Clock Sync Status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300)   * Name -- "Word Clock Lock Status"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)   * Access -- Read
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)   * Values -- 0,1,2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306)        Word Clock Input is 0=Unlocked, 1=Locked, or 2=Synced.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) * AutoSync
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310)   * Name -- "AutoSync Reference"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312)   * Access -- Read
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314)   * Values -- "WordClock", "MADI", "None"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) 		 Sync-Reference is either "WordClock", "MADI" or none.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) * RX 64ch --- noch nicht implementiert
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320)        MADI-Receiver is in 64 channel mode oder 56 channel mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) * AB_inp   --- not tested 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 		 Used input for Auto-Input.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) * actual Buffer Position --- not implemented
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 	   !!! this is a ALSA internal function, so no control is used !!!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) Calling Parameter
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) * index int array (min = 1, max = 8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339)      Index value for RME HDSPM interface. card-index within ALSA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341)      note: ALSA-standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) * id string array (min = 1, max = 8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345)      ID string for RME HDSPM interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347)      note: ALSA-standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) * enable int array (min = 1, max = 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351)      Enable/disable specific HDSPM sound-cards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)      note: ALSA-standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) * precise_ptr int array (min = 1, max = 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357)      Enable precise pointer, or disable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)      note: Use only when the application supports this (which is a special case).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) * line_outs_monitor int array (min = 1, max = 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364)      Send playback streams to analog outs by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 	  note: each playback channel is mixed to the same numbered output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 	  channel (routed). This is against the ALSA-convention, where all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) 	  channels have to be muted on after loading the driver, but was
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 	  used before on other cards, so i historically use it again)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) * enable_monitor int array (min = 1, max = 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376)      Enable Analog Out on Channel 63/64 by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) .. note ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379)       note: here the analog output is enabled (but not routed).