^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).