sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget%/translations/zh_CN/sound/cards/hdspmmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/zh_TW/sound/cards/hdspmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/it_IT/sound/cards/hdspmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ja_JP/sound/cards/hdspmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ko_KR/sound/cards/hdspmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/sp_SP/sound/cards/hdspmmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h'Software Interface ALSA-DSP MADI Driverh]h'Software Interface ALSA-DSP MADI Driver}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhh?/var/lib/git/docbuild/linux/Documentation/sound/cards/hdspm.rsthKubh paragraph)}(h0(translated from German, so no good English ;-),h]h0(translated from German, so no good English ;-),}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h2004 - winfried ritschh]h2004 - winfried ritsch}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hFull functionality has been added to the driver. Since some of the Controls and startup-options are ALSA-Standard and only the special Controls are described and discussed below.h]hFull functionality has been added to the driver. Since some of the Controls and startup-options are ALSA-Standard and only the special Controls are described and discussed below.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(hHardware functionalityh]hHardware functionality}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hAudio transmissionh]hAudio transmission}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh bullet_list)}(hhh](h list_item)}(hXnumber of channels -- depends on transmission mode The number of channels chosen is from 1..Nmax. The reason to use for a lower number of channels is only resource allocation, since unused DMA channels are disabled and less memory is allocated. So also the throughput of the PCI system can be scaled. (Only important for low performance boards). h](h)}(h3number of channels -- depends on transmission modeh]h3number of channels -- depends on transmission mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubh block_quote)}(hX'The number of channels chosen is from 1..Nmax. The reason to use for a lower number of channels is only resource allocation, since unused DMA channels are disabled and less memory is allocated. So also the throughput of the PCI system can be scaled. (Only important for low performance boards). h]h)}(hX&The number of channels chosen is from 1..Nmax. The reason to use for a lower number of channels is only resource allocation, since unused DMA channels are disabled and less memory is allocated. So also the throughput of the PCI system can be scaled. (Only important for low performance boards).h]hX&The number of channels chosen is from 1..Nmax. The reason to use for a lower number of channels is only resource allocation, since unused DMA channels are disabled and less memory is allocated. So also the throughput of the PCI system can be scaled. (Only important for low performance boards).}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhhhKhj ubeh}(h]h ]h"]h$]h&]uh1j hjhhhhhNubj )}(hSingle Speed -- 1..64 channels h]h)}(hSingle Speed -- 1..64 channelsh]hSingle Speed -- 1..64 channels}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj>ubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhKhhhhubhnote)}(h(Note: Choosing the 56channel mode for transmission or as receiver, only 56 are transmitted/received over the MADI, but all 64 channels are available for the mixer, so channel count for the driver)h]h)}(h(Note: Choosing the 56channel mode for transmission or as receiver, only 56 are transmitted/received over the MADI, but all 64 channels are available for the mixer, so channel count for the driver)h]h(Note: Choosing the 56channel mode for transmission or as receiver, only 56 are transmitted/received over the MADI, but all 64 channels are available for the mixer, so channel count for the driver)}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hj`ubah}(h]h ]h"]h$]h&]uh1j^hhhhhhhNubj)}(hhh]j )}(hDouble Speed -- 1..32 channels h]h)}(hDouble Speed -- 1..32 channelsh]hDouble Speed -- 1..32 channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hj{ubah}(h]h ]h"]h$]h&]uh1j hjxhhhhhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhK%hhhhubj_)}(hNote: Choosing the 56-channel mode for transmission/receive-mode , only 28 are transmitted/received over the MADI, but all 32 channels are available for the mixer, so channel count for the driverh]h)}(hNote: Choosing the 56-channel mode for transmission/receive-mode , only 28 are transmitted/received over the MADI, but all 32 channels are available for the mixer, so channel count for the driverh]hNote: Choosing the 56-channel mode for transmission/receive-mode , only 28 are transmitted/received over the MADI, but all 32 channels are available for the mixer, so channel count for the driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1j^hhhhhhhNubj)}(hhh]j )}(hQuad Speed -- 1..16 channels h]h)}(hQuad Speed -- 1..16 channelsh]hQuad Speed -- 1..16 channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhK.hhhhubj_)}(hChoosing the 56-channel mode for transmission/receive-mode , only 14 are transmitted/received over the MADI, but all 16 channels are available for the mixer, so channel count for the driverh]h)}(hChoosing the 56-channel mode for transmission/receive-mode , only 14 are transmitted/received over the MADI, but all 16 channels are available for the mixer, so channel count for the driverh]hChoosing the 56-channel mode for transmission/receive-mode , only 14 are transmitted/received over the MADI, but all 16 channels are available for the mixer, so channel count for the driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1j^hhhhhhhNubj)}(hhh](j )}(h@Format -- signed 32 Bit Little Endian (SNDRV_PCM_FMTBIT_S32_LE) h]h)}(h?Format -- signed 32 Bit Little Endian (SNDRV_PCM_FMTBIT_S32_LE)h]h?Format -- signed 32 Bit Little Endian (SNDRV_PCM_FMTBIT_S32_LE)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubj )}(hSample Rates -- Single Speed -- 32000, 44100, 48000 Double Speed -- 64000, 88200, 96000 (untested) Quad Speed -- 128000, 176400, 192000 (untested) h](h)}(hSample Rates --h]hSample Rates --}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjubj)}(hSingle Speed -- 32000, 44100, 48000 Double Speed -- 64000, 88200, 96000 (untested) Quad Speed -- 128000, 176400, 192000 (untested) h](h)}(h#Single Speed -- 32000, 44100, 48000h]h#Single Speed -- 32000, 44100, 48000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjubh)}(h.Double Speed -- 64000, 88200, 96000 (untested)h]h.Double Speed -- 64000, 88200, 96000 (untested)}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhhhK:hjubeh}(h]h ]h"]h$]h&]uh1j hjhhhhhNubj )}(hKaccess-mode -- MMAP (memory mapped), Not interleaved (PCM_NON-INTERLEAVED) h]h)}(hJaccess-mode -- MMAP (memory mapped), Not interleaved (PCM_NON-INTERLEAVED)h]hJaccess-mode -- MMAP (memory mapped), Not interleaved (PCM_NON-INTERLEAVED)}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjQubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubj )}(h6buffer-sizes -- 64,128,256,512,1024,2048,8192 Samples h]h)}(h5buffer-sizes -- 64,128,256,512,1024,2048,8192 Samplesh]h5buffer-sizes -- 64,128,256,512,1024,2048,8192 Samples}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjiubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubj )}(hfragments -- 2 h]h)}(hfragments -- 2h]hfragments -- 2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhjubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubj )}(hXHardware-pointer -- 2 Modi The Card supports the readout of the actual Buffer-pointer, where DMA reads/writes. Since of the bulk mode of PCI it is only 64 Byte accurate. SO it is not really usable for the ALSA-mid-level functions (here the buffer-ID gives a better result), but if MMAP is used by the application. Therefore it can be configured at load-time with the parameter precise-pointer. h](h)}(hHardware-pointer -- 2 Modih]hHardware-pointer -- 2 Modi}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhjubj)}(hXpThe Card supports the readout of the actual Buffer-pointer, where DMA reads/writes. Since of the bulk mode of PCI it is only 64 Byte accurate. SO it is not really usable for the ALSA-mid-level functions (here the buffer-ID gives a better result), but if MMAP is used by the application. Therefore it can be configured at load-time with the parameter precise-pointer. h]h)}(hXnThe Card supports the readout of the actual Buffer-pointer, where DMA reads/writes. Since of the bulk mode of PCI it is only 64 Byte accurate. SO it is not really usable for the ALSA-mid-level functions (here the buffer-ID gives a better result), but if MMAP is used by the application. Therefore it can be configured at load-time with the parameter precise-pointer.h]hXnThe Card supports the readout of the actual Buffer-pointer, where DMA reads/writes. Since of the bulk mode of PCI it is only 64 Byte accurate. SO it is not really usable for the ALSA-mid-level functions (here the buffer-ID gives a better result), but if MMAP is used by the application. Therefore it can be configured at load-time with the parameter precise-pointer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjubah}(h]h ]h"]h$]h&]uh1jhhhKIhjubeh}(h]h ]h"]h$]h&]uh1j hjhhhhhNubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhK6hhhhubhhint)}(hX1 (Hint: Experimenting I found that the pointer is maximum 64 to large never to small. So if you subtract 64 you always have a safe pointer for writing, which is used on this mode inside ALSA. In theory now you can get now a latency as low as 16 Samples, which is a quarter of the interrupt possibilities.) * Precise Pointer -- off interrupt used for pointer-calculation * Precise Pointer -- on hardware pointer used.h](j)}(hX1(Hint: Experimenting I found that the pointer is maximum 64 to large never to small. So if you subtract 64 you always have a safe pointer for writing, which is used on this mode inside ALSA. In theory now you can get now a latency as low as 16 Samples, which is a quarter of the interrupt possibilities.) h]h)}(hX0(Hint: Experimenting I found that the pointer is maximum 64 to large never to small. So if you subtract 64 you always have a safe pointer for writing, which is used on this mode inside ALSA. In theory now you can get now a latency as low as 16 Samples, which is a quarter of the interrupt possibilities.)h]hX0(Hint: Experimenting I found that the pointer is maximum 64 to large never to small. So if you subtract 64 you always have a safe pointer for writing, which is used on this mode inside ALSA. In theory now you can get now a latency as low as 16 Samples, which is a quarter of the interrupt possibilities.)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjubah}(h]h ]h"]h$]h&]uh1jhhhKShjubj)}(hhh](j )}(haPrecise Pointer -- off interrupt used for pointer-calculation h]hdefinition_list)}(hhh]hdefinition_list_item)}(h>Precise Pointer -- off interrupt used for pointer-calculation h](hterm)}(hPrecise Pointer -- offh]hPrecise Pointer -- off}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKZhjubh definition)}(hhh]h)}(h&interrupt used for pointer-calculationh]h&interrupt used for pointer-calculation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKZhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hOPrecise Pointer -- on hardware pointer used.h]j)}(hhh]j)}(h,Precise Pointer -- on hardware pointer used.h](j)}(hPrecise Pointer -- onh]hPrecise Pointer -- on}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK\hjAubj)}(hhh]h)}(hhardware pointer used.h]hhardware pointer used.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjSubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhhhK\hj>ubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhKYhjubeh}(h]h ]h"]h$]h&]uh1jhhhhhNhNubeh}(h]audio-transmissionah ]h"]audio transmissionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Controllerh]h Controller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK`ubh)}(hSince DSP-MADI-Mixer has 8152 Fader, it does not make sense to use the standard mixer-controls, since this would break most of (especially graphic) ALSA-Mixer GUIs. So Mixer control has be provided by a 2-dimensional controller using the hwdep-interface.h]hSince DSP-MADI-Mixer has 8152 Fader, it does not make sense to use the standard mixer-controls, since this would break most of (especially graphic) ALSA-Mixer GUIs. So Mixer control has be provided by a 2-dimensional controller using the hwdep-interface.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjhhubh)}(hXAlso all 128+256 Peak and RMS-Meter can be accessed via the hwdep-interface. Since it could be a performance problem always copying and converting Peak and RMS-Levels even if you just need one, I decided to export the hardware structure, so that of needed some driver-guru can implement a memory-mapping of mixer or peak-meters over ioctl, or also to do only copying and no conversion. A test-application shows the usage of the controller.h]hXAlso all 128+256 Peak and RMS-Meter can be accessed via the hwdep-interface. Since it could be a performance problem always copying and converting Peak and RMS-Levels even if you just need one, I decided to export the hardware structure, so that of needed some driver-guru can implement a memory-mapping of mixer or peak-meters over ioctl, or also to do only copying and no conversion. A test-application shows the usage of the controller.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjhhubj)}(hhh]j )}(h)Latency Controls --- not implemented !!! h]h)}(h(Latency Controls --- not implemented !!!h]h(Latency Controls --- not implemented !!!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhKphjhhubj_)}(hNote: Within the windows-driver the latency is accessible of a control-panel, but buffer-sizes are controlled with ALSA from hwparams-calls and should not be changed in run-state, I did not implement it here.h]h)}(hNote: Within the windows-driver the latency is accessible of a control-panel, but buffer-sizes are controlled with ALSA from hwparams-calls and should not be changed in run-state, I did not implement it here.h]hNote: Within the windows-driver the latency is accessible of a control-panel, but buffer-sizes are controlled with ALSA from hwparams-calls and should not be changed in run-state, I did not implement it here.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjubah}(h]h ]h"]h$]h&]uh1j^hjhhhhhNubj)}(hhh]j )}(htSystem Clock -- suspended !!!! * Name -- "System Clock Mode" * Access -- Read Write * Values -- "Master" "Slave" h](h)}(hSystem Clock -- suspended !!!!h]hSystem Clock -- suspended !!!!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjubj)}(hhh](j )}(hName -- "System Clock Mode" h]h)}(hName -- "System Clock Mode"h]hName -- “System Clock Mode”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hj&ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hValues -- "Master" "Slave" h]h)}(hValues -- "Master" "Slave"h]h"Values -- “Master” “Slave”}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj>ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhK{hjubeh}(h]h ]h"]h$]h&]uh1j hjhhhNhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhKyhjhhubj_)}(hXW!!!! This is a hardware-function but is in conflict with the Clock-source controller, which is a kind of ALSA-standard. I makes sense to set the card to a special mode (master at some frequency or slave), since even not using an Audio-application a studio should have working synchronisations setup. So use Clock-source-controller instead !!!!h]h)}(hXW!!!! This is a hardware-function but is in conflict with the Clock-source controller, which is a kind of ALSA-standard. I makes sense to set the card to a special mode (master at some frequency or slave), since even not using an Audio-application a studio should have working synchronisations setup. So use Clock-source-controller instead !!!!h]hXW!!!! This is a hardware-function but is in conflict with the Clock-source controller, which is a kind of ALSA-standard. I makes sense to set the card to a special mode (master at some frequency or slave), since even not using an Audio-application a studio should have working synchronisations setup. So use Clock-source-controller instead !!!!}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhubah}(h]h ]h"]h$]h&]uh1j^hjhhhhhNubj)}(hhh]j )}(hX|Clock Source * Name -- "Sample Clock Source" * Access -- Read Write * Values -- "AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz", "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz", "Internal 96.0 kHz" Choose between Master at a specific Frequency and so also the Speed-mode or Slave (Autosync). Also see "Preferred Sync Ref" h](h)}(h Clock Sourceh]h Clock Source}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j )}(hName -- "Sample Clock Source" h]h)}(hName -- "Sample Clock Source"h]h!Name -- “Sample Clock Source”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hX+Values -- "AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz", "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz", "Internal 96.0 kHz" Choose between Master at a specific Frequency and so also the Speed-mode or Slave (Autosync). Also see "Preferred Sync Ref" h](h)}(hValues -- "AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz", "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz", "Internal 96.0 kHz"h]hValues -- “AutoSync”, “Internal 32.0 kHz”, “Internal 44.1 kHz”, “Internal 48.0 kHz”, “Internal 64.0 kHz”, “Internal 88.2 kHz”, “Internal 96.0 kHz”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(h}Choose between Master at a specific Frequency and so also the Speed-mode or Slave (Autosync). Also see "Preferred Sync Ref" h]h)}(h|Choose between Master at a specific Frequency and so also the Speed-mode or Slave (Autosync). Also see "Preferred Sync Ref"h]hChoose between Master at a specific Frequency and so also the Speed-mode or Slave (Autosync). Also see “Preferred Sync Ref”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1j hjhhhNhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhKhjhhubhwarning)}(hu!!!! This is no pure hardware function but was implemented by ALSA by some ALSA-drivers before, so I use it also. !!!h]h)}(hu!!!! This is no pure hardware function but was implemented by ALSA by some ALSA-drivers before, so I use it also. !!!h]hu!!!! This is no pure hardware function but was implemented by ALSA by some ALSA-drivers before, so I use it also. !!!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubj)}(hhh]j )}(hXPreferred Sync Ref * Name -- "Preferred Sync Reference" * Access -- Read Write * Values -- "Word" "MADI" Within the Auto-sync-Mode the preferred Sync Source can be chosen. If it is not available another is used if possible. h](h)}(hPreferred Sync Refh]hPreferred Sync Ref}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj'ubj)}(hhh](j )}(h#Name -- "Preferred Sync Reference" h]h)}(h"Name -- "Preferred Sync Reference"h]h&Name -- “Preferred Sync Reference”}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj<ubah}(h]h ]h"]h$]h&]uh1j hj9ubj )}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjTubah}(h]h ]h"]h$]h&]uh1j hj9ubj )}(hValues -- "Word" "MADI" Within the Auto-sync-Mode the preferred Sync Source can be chosen. If it is not available another is used if possible. h](h)}(hValues -- "Word" "MADI"h]hValues -- “Word” “MADI”}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjlubj)}(hwWithin the Auto-sync-Mode the preferred Sync Source can be chosen. If it is not available another is used if possible. h]h)}(hvWithin the Auto-sync-Mode the preferred Sync Source can be chosen. If it is not available another is used if possible.h]hvWithin the Auto-sync-Mode the preferred Sync Source can be chosen. If it is not available another is used if possible.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj~ubah}(h]h ]h"]h$]h&]uh1jhhhKhjlubeh}(h]h ]h"]h$]h&]uh1j hj9ubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhKhj'ubeh}(h]h ]h"]h$]h&]uh1j hj$hhhNhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhKhjhhubj_)}(hNote: Since MADI has a much higher bit-rate than word-clock, the card should synchronise better in MADI Mode. But since the RME-PLL is very good, there are almost no problems with word-clock too. I never found a difference.h]h)}(hNote: Since MADI has a much higher bit-rate than word-clock, the card should synchronise better in MADI Mode. But since the RME-PLL is very good, there are almost no problems with word-clock too. I never found a difference.h]hNote: Since MADI has a much higher bit-rate than word-clock, the card should synchronise better in MADI Mode. But since the RME-PLL is very good, there are almost no problems with word-clock too. I never found a difference.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j^hjhhhhhNubj)}(hhh]j )}(hTX 64 channel * Name -- "TX 64 channels mode" * Access -- Read Write * Values -- 0 1 Using 64-channel-modus (1) or 56-channel-modus for MADI-transmission (0). h](h)}(h TX 64 channelh]h TX 64 channel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j )}(hName -- "TX 64 channels mode" h]h)}(hName -- "TX 64 channels mode"h]h!Name -- “TX 64 channels mode”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(htValues -- 0 1 Using 64-channel-modus (1) or 56-channel-modus for MADI-transmission (0). h](h)}(h Values -- 0 1h]h Values -- 0 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hKUsing 64-channel-modus (1) or 56-channel-modus for MADI-transmission (0). h]h)}(hIUsing 64-channel-modus (1) or 56-channel-modus for MADI-transmission (0).h]hIUsing 64-channel-modus (1) or 56-channel-modus for MADI-transmission (0).}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1j hjhhhNhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhKhjhhubj_)}(hgNote: This control is for output only. Input-mode is detected automatically from hardware sending MADI.h]h)}(hgNote: This control is for output only. Input-mode is detected automatically from hardware sending MADI.h]hgNote: This control is for output only. Input-mode is detected automatically from hardware sending MADI.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjPubah}(h]h ]h"]h$]h&]uh1j^hjhhhhhNubj)}(hhh](j )}(hClear TMS * Name -- "Clear Track Marker" * Access -- Read Write * Values -- 0 1 Don't use to lower 5 Audio-bits on AES as additional Bits. h](h)}(h Clear TMSh]h Clear TMS}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjkubj)}(hhh](j )}(hName -- "Clear Track Marker" h]h)}(hName -- "Clear Track Marker"h]h Name -- “Clear Track Marker”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hj}ubj )}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hj}ubj )}(hYValues -- 0 1 Don't use to lower 5 Audio-bits on AES as additional Bits. h](h)}(h Values -- 0 1h]h Values -- 0 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(h Here as a first value the channel-index is taken to get/set the corresponding mixer channel, where 0-63 are the input to output fader and 64-127 the playback to outputs fader. Value 0 is channel muted 0 and 32768 an amplification of 1. h](h)}(hMixerh]hMixer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j )}(hName -- "Mixer" h]h)}(hName -- "Mixer"h]hName -- “Mixer”}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj%ubah}(h]h ]h"]h$]h&]uh1j hj"ubj )}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj=ubah}(h]h ]h"]h$]h&]uh1j hj"ubj )}(hXSValues - Here as a first value the channel-index is taken to get/set the corresponding mixer channel, where 0-63 are the input to output fader and 64-127 the playback to outputs fader. Value 0 is channel muted 0 and 32768 an amplification of 1. h](h)}(h/Values - h]h/Values - }(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjUubj)}(hHere as a first value the channel-index is taken to get/set the corresponding mixer channel, where 0-63 are the input to output fader and 64-127 the playback to outputs fader. Value 0 is channel muted 0 and 32768 an amplification of 1. h]h)}(hHere as a first value the channel-index is taken to get/set the corresponding mixer channel, where 0-63 are the input to output fader and 64-127 the playback to outputs fader. Value 0 is channel muted 0 and 32768 an amplification of 1.h]hHere as a first value the channel-index is taken to get/set the corresponding mixer channel, where 0-63 are the input to output fader and 64-127 the playback to outputs fader. Value 0 is channel muted 0 and 32768 an amplification of 1.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjgubah}(h]h ]h"]h$]h&]uh1jhhhKhjUubeh}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1j hj hhhNhNubj )}(hChn 1-64 fast mixer for the ALSA-mixer utils. The diagonal of the mixer-matrix is implemented from playback to output. h](h)}(hChn 1-64h]hChn 1-64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hofast mixer for the ALSA-mixer utils. The diagonal of the mixer-matrix is implemented from playback to output. h]h)}(hmfast mixer for the ALSA-mixer utils. The diagonal of the mixer-matrix is implemented from playback to output.h]hmfast mixer for the ALSA-mixer utils. The diagonal of the mixer-matrix is implemented from playback to output.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1j hj hhhhhNubj )}(hLine Out * Name -- "Line Out" * Access -- Read Write * Values -- 0 1 Switching on and off the analog out, which has nothing to do with mixing or routing. the analog outs reflects channel 63,64. h](h)}(hLine Outh]hLine Out}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j )}(hName -- "Line Out" h]h)}(hName -- "Line Out"h]hName -- “Line Out”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hValues -- 0 1 Switching on and off the analog out, which has nothing to do with mixing or routing. the analog outs reflects channel 63,64. h](h)}(h Values -- 0 1h]h Values -- 0 1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubj)}(h~Switching on and off the analog out, which has nothing to do with mixing or routing. the analog outs reflects channel 63,64. h]h)}(h|Switching on and off the analog out, which has nothing to do with mixing or routing. the analog outs reflects channel 63,64.h]h|Switching on and off the analog out, which has nothing to do with mixing or routing. the analog outs reflects channel 63,64.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhhhMhj ubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1j hj hhhNhNubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhKhjhhubeh}(h]mixerah ]h"]mixerah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hInformation (only read access)h]hInformation (only read access)}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP hhhhhMubj)}(hhh](j )}(hmSample Rate * Name -- "System Sample Rate" * Access -- Read-only getting the sample rate. h](h)}(h Sample Rateh]h Sample Rate}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjd ubj)}(hhh](j )}(hName -- "System Sample Rate" h]h)}(hName -- "System Sample Rate"h]h Name -- “System Sample Rate”}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjy ubah}(h]h ]h"]h$]h&]uh1j hjv ubj )}(hhj ubj)}(h;MADI-Receiver is in 64 channel mode oder 56 channel mode. h]h)}(h9MADI-Receiver is in 64 channel mode oder 56 channel mode.h]h9MADI-Receiver is in 64 channel mode oder 56 channel mode.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM@hj ubah}(h]h ]h"]h$]h&]uh1jhhhM@hj ubeh}(h]h ]h"]h$]h&]uh1j hja hhhhhNubj )}(hDAB_inp --- not tested Used input for Auto-Input. h](h)}(hAB_inp --- not testedh]hAB_inp --- not tested}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChj ubj)}(hUsed input for Auto-Input. h]h)}(hUsed input for Auto-Input.h]hUsed input for Auto-Input.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhj ubah}(h]h ]h"]h$]h&]uh1jhhhMEhj ubeh}(h]h ]h"]h$]h&]uh1j hja hhhhhNubj )}(hwactual Buffer Position --- not implemented !!! this is a ALSA internal function, so no control is used !!! h](h)}(h*actual Buffer Position --- not implementedh]h*actual Buffer Position --- not implemented}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMHhj ubj)}(hB!!! this is a ALSA internal function, so no control is used !!! h]h)}(h?!!! this is a ALSA internal function, so no control is used !!!h]h?!!! this is a ALSA internal function, so no control is used !!!}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMJhj+ ubah}(h]h ]h"]h$]h&]uh1jhhhMJhj ubeh}(h]h ]h"]h$]h&]uh1j hja hhhhhNubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhM hjP hhubeh}(h]information-only-read-accessah ]h"]information (only read access)ah$]h&]uh1hhhhhhhhMubeh}(h]hardware-functionalityah ]h"]hardware functionalityah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hCalling Parameterh]hCalling Parameter}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ hhhhhMOubj)}(hhh](j )}(h{index int array (min = 1, max = 8) Index value for RME HDSPM interface. card-index within ALSA note: ALSA-standard h](h)}(h"index int array (min = 1, max = 8)h]h"index int array (min = 1, max = 8)}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhjs ubj)}(hQIndex value for RME HDSPM interface. card-index within ALSA note: ALSA-standard h](h)}(h;Index value for RME HDSPM interface. card-index within ALSAh]h;Index value for RME HDSPM interface. card-index within ALSA}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMShj ubh)}(hnote: ALSA-standardh]hnote: ALSA-standard}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMUhj ubeh}(h]h ]h"]h$]h&]uh1jhhhMShjs ubeh}(h]h ]h"]h$]h&]uh1j hjp hhhhhNubj )}(hbid string array (min = 1, max = 8) ID string for RME HDSPM interface. note: ALSA-standard h](h)}(h"id string array (min = 1, max = 8)h]h"id string array (min = 1, max = 8)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMWhj ubj)}(h8ID string for RME HDSPM interface. note: ALSA-standard h](h)}(h"ID string for RME HDSPM interface.h]h"ID string for RME HDSPM interface.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMYhj ubh)}(hnote: ALSA-standardh]hnote: ALSA-standard}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM[hj ubeh}(h]h ]h"]h$]h&]uh1jhhhMYhj ubeh}(h]h ]h"]h$]h&]uh1j hjp hhhhhNubj )}(hkenable int array (min = 1, max = 8) Enable/disable specific HDSPM sound-cards. note: ALSA-standard h](h)}(h#enable int array (min = 1, max = 8)h]h#enable int array (min = 1, max = 8)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM]hj ubj)}(h@Enable/disable specific HDSPM sound-cards. note: ALSA-standard h](h)}(h*Enable/disable specific HDSPM sound-cards.h]h*Enable/disable specific HDSPM sound-cards.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM_hj ubh)}(hnote: ALSA-standardh]hnote: ALSA-standard}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahj ubeh}(h]h ]h"]h$]h&]uh1jhhhM_hj ubeh}(h]h ]h"]h$]h&]uh1j hjp hhhhhNubj )}(hQprecise_ptr int array (min = 1, max = 8) Enable precise pointer, or disable. h](h)}(h(precise_ptr int array (min = 1, max = 8)h]h(precise_ptr int array (min = 1, max = 8)}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMchj- ubj)}(h$Enable precise pointer, or disable. h]h)}(h#Enable precise pointer, or disable.h]h#Enable precise pointer, or disable.}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMehj? ubah}(h]h ]h"]h$]h&]uh1jhhhMehj- ubeh}(h]h ]h"]h$]h&]uh1j hjp hhhhhNubeh}(h]h ]h"]h$]h&]j\j]uh1jhhhMQhj_ hhubj_)}(hLnote: Use only when the application supports this (which is a special case).h]h)}(hje h]hLnote: Use only when the application supports this (which is a special case).}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhjc ubah}(h]h ]h"]h$]h&]uh1j^hj_ hhhhhNubj)}(hhh]j )}(hdline_outs_monitor int array (min = 1, max = 8) Send playback streams to analog outs by default. h](h)}(h.line_outs_monitor int array (min = 1, max = 8)h]h.line_outs_monitor int array (min = 1, max = 8)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMjhj} ubj)}(h1Send playback streams to analog outs by default. h]h)}(h0Send playback streams to analog outs by default.h]h0Send playback streams to analog outs by default.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMlhj ubah}(h]h ]h"]h$]h&]uh1jhhhMlhj} ubeh}(h]h ]h"]h$]h&]uh1j hjz hhhhhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhMjhj_ hhubj_)}(hnote: each playback channel is mixed to the same numbered output channel (routed). This is against the ALSA-convention, where all channels have to be muted on after loading the driver, but was used before on other cards, so i historically use it again)h]h)}(hnote: each playback channel is mixed to the same numbered output channel (routed). This is against the ALSA-convention, where all channels have to be muted on after loading the driver, but was used before on other cards, so i historically use it again)h]hnote: each playback channel is mixed to the same numbered output channel (routed). This is against the ALSA-convention, where all channels have to be muted on after loading the driver, but was used before on other cards, so i historically use it again)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMohj ubah}(h]h ]h"]h$]h&]uh1j^hj_ hhhhhNubj)}(hhh]j )}(h_enable_monitor int array (min = 1, max = 8) Enable Analog Out on Channel 63/64 by default. h](h)}(h+enable_monitor int array (min = 1, max = 8)h]h+enable_monitor int array (min = 1, max = 8)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMvhj ubj)}(h/Enable Analog Out on Channel 63/64 by default. h]h)}(h.Enable Analog Out on Channel 63/64 by default.h]h.Enable Analog Out on Channel 63/64 by default.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMxhj ubah}(h]h ]h"]h$]h&]uh1jhhhMxhj ubeh}(h]h ]h"]h$]h&]uh1j hj hhhhhNubah}(h]h ]h"]h$]h&]j\j]uh1jhhhMvhj_ hhubj_)}(h9note: here the analog output is enabled (but not routed).h]h)}(hjh]h9note: here the analog output is enabled (but not routed).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM{hjubah}(h]h ]h"]h$]h&]uh1j^hj_ hhhhhNubeh}(h]calling-parameterah ]h"]calling parameterah$]h&]uh1hhhhhhhhMOubeh}(h]'software-interface-alsa-dsp-madi-driverah ]h"]'software interface alsa-dsp madi driverah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjNerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j(j%j\ jY jjjjjM jJ jT jQ j ju nametypes}(j(j\ jjjM jT j uh}(j%hjY hjhjjjJ jjQ jP jj_ u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.