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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/pt_BR/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh 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}(hj$hhhNhNubah}(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).}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4ubah}(h]h ]h"]h$]h&]uh1j2hhhKhj ubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hSingle Speed -- 1..64 channels h]h)}(hSingle Speed -- 1..64 channelsh]hSingle Speed -- 1..64 channels}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjRubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhKhjhhubhnote)}(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)}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjtubah}(h]h ]h"]h$]h&]uh1jrhjhhhhhNubj)}(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%hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhK%hjhhubjs)}(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&]uh1jrhjhhhhhNubj)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhK.hjhhubjs)}(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&]uh1jrhjhhhhhNubj)}(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&]uh1jhjhhhhhNubj)}(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 --}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjubj3)}(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}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hj+ubh)}(h.Double Speed -- 64000, 88200, 96000 (untested)h]h.Double Speed -- 64000, 88200, 96000 (untested)}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj+ubeh}(h]h ]h"]h$]h&]uh1j2hhhK:hjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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)}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjeubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhj}ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hfragments -- 2 h]h)}(hfragments -- 2h]hfragments -- 2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1hhhhKFhjubj3)}(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&]uh1j2hhhKIhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jpjquh1jhhhK6hjhhubhhint)}(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](j3)}(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&]uh1j2hhhKShjubj)}(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}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhj%ubah}(h]h ]h"]h$]h&]uh1j#hjubeh}(h]h ]h"]h$]h&]uh1j hhhKZhj ubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK\hjUubj$)}(hhh]h)}(hhardware pointer used.h]hhardware pointer used.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjgubah}(h]h ]h"]h$]h&]uh1j#hjUubeh}(h]h ]h"]h$]h&]uh1j hhhK\hjRubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1jhhhKYhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubeh}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhKphjhhubjs)}(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&]uh1jrhjhhhhhNubj)}(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&]uh1hhhhKyhj ubj)}(hhh](j)}(hName -- "System Clock Mode" h]h)}(hName -- "System Clock Mode"h]hName -- “System Clock Mode”}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hj"ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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&]uh1jhjubj)}(hValues -- "Master" "Slave" h]h)}(hValues -- "Master" "Slave"h]h"Values -- “Master” “Slave”}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjRubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1jhhhK{hj ubeh}(h]h ]h"]h$]h&]uh1jhj hhhNhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhKyhjhhubjs)}(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 !!!!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj|ubah}(h]h ]h"]h$]h&]uh1jrhjhhhhhNubj)}(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&]uh1jhjubj)}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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&]uh1hhhhKhjubj3)}(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&]uh1j2hhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhKhjhhubhwarning)}(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. !!!}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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”}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjPubah}(h]h ]h"]h$]h&]uh1jhjMubj)}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjMubj)}(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”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj3)}(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&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j2hhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]jpjquh1jhhhKhj;ubeh}(h]h ]h"]h$]h&]uh1jhj8hhhNhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhKhjhhubjs)}(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&]uh1jrhjhhhhhNubj)}(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&]uh1jhjubj)}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj"ubj3)}(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).}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4ubah}(h]h ]h"]h$]h&]uh1j2hhhKhj"ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhKhjhhubjs)}(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.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjdubah}(h]h ]h"]h$]h&]uh1jrhjhhhhhNubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(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&]uh1jhjubj)}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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&]uh1hhhhKhjubj3)}(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}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubj)}(hhh](j)}(hName -- "Mixer" h]h)}(hName -- "Mixer"h]hName -- “Mixer”}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj9ubah}(h]h ]h"]h$]h&]uh1jhj6ubj)}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjQubah}(h]h ]h"]h$]h&]uh1jhj6ubj)}(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 - }(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjiubj3)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj{ubah}(h]h ]h"]h$]h&]uh1j2hhhKhjiubeh}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]jpjquh1jhhhKhj$ubeh}(h]h ]h"]h$]h&]uh1jhj!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&]uh1hhhhKhjubj3)}(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&]uh1j2hhhKhjubeh}(h]h ]h"]h$]h&]uh1jhj!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&]uh1jhjubj)}(hAccess -- Read Write h]h)}(hAccess -- Read Writeh]hAccess -- Read Write}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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 ubj3)}(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.}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj, ubah}(h]h ]h"]h$]h&]uh1j2hhhMhj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhj!hhhNhNubeh}(h]h ]h"]h$]h&]jpjquh1jhhhKhjhhubeh}(h]mixerah ]h"]mixerah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hInformation (only read access)h]hInformation (only read access)}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd hhhhhMubj)}(hhh](j)}(hmSample Rate * Name -- "System Sample Rate" * Access -- Read-only getting the sample rate. h](h)}(h Sample Rateh]h Sample Rate}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjx 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 hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhj ubj3)}(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&]uh1j2hhhM@hj ubeh}(h]h ]h"]h$]h&]uh1jhju 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 ubj3)}(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&]uh1j2hhhMEhj ubeh}(h]h ]h"]h$]h&]uh1jhju 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}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMHhj- ubj3)}(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 !!!}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMJhj? ubah}(h]h ]h"]h$]h&]uh1j2hhhMJhj- ubeh}(h]h ]h"]h$]h&]uh1jhju hhhhhNubeh}(h]h ]h"]h$]h&]jpjquh1jhhhM hjd 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}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjs 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)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhj ubj3)}(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&]uh1j2hhhMShj ubeh}(h]h ]h"]h$]h&]uh1jhj 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 ubj3)}(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&]uh1j2hhhMYhj ubeh}(h]h ]h"]h$]h&]uh1jhj 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 ubj3)}(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&]uh1j2hhhM_hj ubeh}(h]h ]h"]h$]h&]uh1jhj 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)}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMchjA ubj3)}(h$Enable precise pointer, or disable. h]h)}(h#Enable precise pointer, or disable.h]h#Enable precise pointer, or disable.}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMehjS ubah}(h]h ]h"]h$]h&]uh1j2hhhMehjA ubeh}(h]h ]h"]h$]h&]uh1jhj hhhhhNubeh}(h]h ]h"]h$]h&]jpjquh1jhhhMQhjs hhubjs)}(hLnote: Use only when the application supports this (which is a special case).h]h)}(hjy h]hLnote: Use only when the application supports this (which is a special case).}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhjw ubah}(h]h ]h"]h$]h&]uh1jrhjs 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 ubj3)}(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&]uh1j2hhhMlhj ubeh}(h]h ]h"]h$]h&]uh1jhj hhhhhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhMjhjs hhubjs)}(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&]uh1jrhjs 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 ubj3)}(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&]uh1j2hhhMxhj ubeh}(h]h ]h"]h$]h&]uh1jhj hhhhhNubah}(h]h ]h"]h$]h&]jpjquh1jhhhMvhjs hhubjs)}(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&]uh1jrhjs 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_handlerjberror_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<j9jp jm jjj j ja j^ jh je j4j1u nametypes}(j<jp jj ja jh j4uh}(j9hjm hjjj jj^ jje jd j1js 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.