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/audiophile-usbmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/zh_TW/sound/cards/audiophile-usbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/it_IT/sound/cards/audiophile-usbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ja_JP/sound/cards/audiophile-usbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ko_KR/sound/cards/audiophile-usbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/sp_SP/sound/cards/audiophile-usbmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h8Guide to using M-Audio Audiophile USB with ALSA and Jackh]h8Guide to using M-Audio Audiophile USB with ALSA and Jack}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhH/var/lib/git/docbuild/linux/Documentation/sound/cards/audiophile-usb.rsthKubh paragraph)}(hv1.5h]hv1.5}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h-Thibault Le Meur h](hThibault Le Meur <}(hhhhhNhNubh reference)}(hThibault.LeMeur@supelec.frh]hThibault.LeMeur@supelec.fr}(hhhhhNhNubah}(h]h ]h"]h$]h&]refuri!mailto:Thibault.LeMeur@supelec.fruh1hhhubh>}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h\This document is a guide to using the M-Audio Audiophile USB (tm) device with ALSA and JACK.h]h\This document is a guide to using the M-Audio Audiophile USB (tm) device with ALSA and JACK.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(hHistoryh]hHistory}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh bullet_list)}(hhh](h list_item)}(hv1.4 - Thibault Le Meur (2007-07-11) - Added Low Endianness nature of 16bits-modes found by Hakan Lennestal - Modifying document structure h](h)}(h$v1.4 - Thibault Le Meur (2007-07-11)h]h$v1.4 - Thibault Le Meur (2007-07-11)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj )}(hhh](j)}(hfAdded Low Endianness nature of 16bits-modes found by Hakan Lennestal h]h)}(hfAdded Low Endianness nature of 16bits-modes found by Hakan Lennestal h](hFAdded Low Endianness nature of 16bits-modes found by Hakan Lennestal <}(hj*hhhNhNubh)}(hHakan.Lennestal@brfsodrahamn.seh]hHakan.Lennestal@brfsodrahamn.se}(hj2hhhNhNubah}(h]h ]h"]h$]h&]refuri&mailto:Hakan.Lennestal@brfsodrahamn.seuh1hhj*ubh>}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj&ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hModifying document structure h]h)}(hModifying document structureh]hModifying document structure}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjRubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]bullet-uh1j hhhKhjubeh}(h]h ]h"]h$]h&]uh1jhj hhhNhNubj)}(hDv1.5 - Thibault Le Meur (2007-07-12) - Added AC3/DTS passthru info h]h)}(hBv1.5 - Thibault Le Meur (2007-07-12) - Added AC3/DTS passthru infoh]hBv1.5 - Thibault Le Meur (2007-07-12) - Added AC3/DTS passthru info}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjxubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubeh}(h]h ]h"]h$]h&]jp*uh1j hhhKhhhhubeh}(h]historyah ]h"]historyah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h&Audiophile USB Specs and correct usageh]h&Audiophile USB Specs and correct usage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h]This part is a reminder of important facts about the functions and limitations of the device.h]h]This part is a reminder of important facts about the functions and limitations of the device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h4The device has 4 audio interfaces, and 2 MIDI ports:h]h4The device has 4 audio interfaces, and 2 MIDI ports:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh block_quote)}(hX7* Analog Stereo Input (Ai) - This port supports 2 pairs of line-level audio inputs (1/4" TS and RCA) - When the 1/4" TS (jack) connectors are connected, the RCA connectors are disabled * Analog Stereo Output (Ao) * Digital Stereo Input (Di) * Digital Stereo Output (Do) * Midi In (Mi) * Midi Out (Mo) h]j )}(hhh](j)}(hAnalog Stereo Input (Ai) - This port supports 2 pairs of line-level audio inputs (1/4" TS and RCA) - When the 1/4" TS (jack) connectors are connected, the RCA connectors are disabled h](h)}(hAnalog Stereo Input (Ai)h]hAnalog Stereo Input (Ai)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubj )}(hhh](j)}(hGThis port supports 2 pairs of line-level audio inputs (1/4" TS and RCA)h]h)}(hjh]hIThis port supports 2 pairs of line-level audio inputs (1/4” TS and RCA)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hRWhen the 1/4" TS (jack) connectors are connected, the RCA connectors are disabled h]h)}(hQWhen the 1/4" TS (jack) connectors are connected, the RCA connectors are disabledh]hSWhen the 1/4” TS (jack) connectors are connected, the RCA connectors are disabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1j hhhK#hjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hAnalog Stereo Output (Ao)h]h)}(hj'h]hAnalog Stereo Output (Ao)}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hj%ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hDigital Stereo Input (Di)h]h)}(hj>h]hDigital Stereo Input (Di)}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hj<ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hDigital Stereo Output (Do)h]h)}(hjUh]hDigital Stereo Output (Do)}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjSubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h Midi In (Mi)h]h)}(hjlh]h Midi In (Mi)}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hMidi Out (Mo) h]h)}(h Midi Out (Mo)h]h Midi Out (Mo)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjuh1j hhhK!hjubah}(h]h ]h"]h$]h&]uh1jhhhK!hjhhubh)}(h7The internal DAC/ADC has the following characteristics:h]h7The internal DAC/ADC has the following characteristics:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjhhubj )}(hhh](j)}(hsample depth of 16 or 24 bitsh]h)}(hjh]hsample depth of 16 or 24 bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hsample rate from 8kHz to 96kHzh]h)}(hjh]hsample rate from 8kHz to 96kHz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hCTwo interfaces can't use different sample depths at the same time. h]h)}(hBTwo interfaces can't use different sample depths at the same time.h]hDTwo interfaces can’t use different sample depths at the same time.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jpjuh1j hhhK/hjhhubhdefinition_list)}(hhh]hdefinition_list_item)}(hMoreover, the Audiophile USB documentation gives the following Warning: Please exit any audio application running before switching between bit depths h](hterm)}(hGMoreover, the Audiophile USB documentation gives the following Warning:h]hGMoreover, the Audiophile USB documentation gives the following Warning:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK4hj ubh definition)}(hhh]h)}(hMPlease exit any audio application running before switching between bit depthsh]hMPlease exit any audio application running before switching between bit depths}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhhhK4hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hDue to the USB 1.1 bandwidth limitation, a limited number of interfaces can be activated at the same time depending on the audio mode selected:h]hDue to the USB 1.1 bandwidth limitation, a limited number of interfaces can be activated at the same time depending on the audio mode selected:}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjhhubj)}(hX0* 16-bit/48kHz ==> 4 channels in + 4 channels out - Ai+Ao+Di+Do * 24-bit/48kHz ==> 4 channels in + 2 channels out, or 2 channels in + 4 channels out - Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Do * 24-bit/96kHz ==> 2 channels in _or_ 2 channels out (half duplex only) - Ai or Ao or Di or Do h]j )}(hhh](j)}(h?16-bit/48kHz ==> 4 channels in + 4 channels out - Ai+Ao+Di+Do h](h)}(h/16-bit/48kHz ==> 4 channels in + 4 channels outh]h/16-bit/48kHz ==> 4 channels in + 4 channels out}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjWubj )}(hhh]j)}(h Ai+Ao+Di+Do h]h)}(h Ai+Ao+Di+Doh]h Ai+Ao+Di+Do}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hjlubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]jpjquh1j hhhK;hjWubeh}(h]h ]h"]h$]h&]uh1jhjTubj)}(h24-bit/48kHz ==> 4 channels in + 2 channels out, or 2 channels in + 4 channels out - Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Do h](h)}(hR24-bit/48kHz ==> 4 channels in + 2 channels out, or 2 channels in + 4 channels outh]hR24-bit/48kHz ==> 4 channels in + 2 channels out, or 2 channels in + 4 channels out}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hjubj )}(hhh]j)}(h-Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Do h]h)}(h,Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Doh]h,Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Do}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jpjquh1j hhhK@hjubeh}(h]h ]h"]h$]h&]uh1jhjTubj)}(h^24-bit/96kHz ==> 2 channels in _or_ 2 channels out (half duplex only) - Ai or Ao or Di or Do h](h)}(hE24-bit/96kHz ==> 2 channels in _or_ 2 channels out (half duplex only)h]hE24-bit/96kHz ==> 2 channels in _or_ 2 channels out (half duplex only)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjubj )}(hhh]j)}(hAi or Ao or Di or Do h]h)}(hAi or Ao or Di or Doh]hAi or Ao or Di or Do}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jpjquh1j hhhKDhjubeh}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]jpjuh1j hhhK9hjPubah}(h]h ]h"]h$]h&]uh1jhhhK9hjhhubh)}(hhh](h)}(h,Important facts about the Digital interface:h]h,Important facts about the Digital interface:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKGubj)}(hX6* The Do port additionally supports surround-encoded AC-3 and DTS passthrough, though I haven't tested it under Linux - Note that in this setup only the Do interface can be enabled * Apart from recording an audio digital stream, enabling the Di port is a way to synchronize the device to an external sample clock - As a consequence, the Di port must be enable only if an active Digital source is connected - Enabling Di when no digital source is connected can result in a synchronization error (for instance sound played at an odd sample rate) h]j )}(hhh](j)}(hThe Do port additionally supports surround-encoded AC-3 and DTS passthrough, though I haven't tested it under Linux - Note that in this setup only the Do interface can be enabled h](h)}(hsThe Do port additionally supports surround-encoded AC-3 and DTS passthrough, though I haven't tested it under Linuxh]huThe Do port additionally supports surround-encoded AC-3 and DTS passthrough, though I haven’t tested it under Linux}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhj&ubj )}(hhh]j)}(h=Note that in this setup only the Do interface can be enabled h]h)}(hhj hhubh)}(hhh](h)}(h+Audiophile USB's ``device_setup`` structureh](hAudiophile USB’s }(hjhhhNhNubj])}(h``device_setup``h]h device_setup}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjubh structure}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhMBubh)}(hIf you want to understand the device_setup magic numbers for the Audiophile USB, you need some very basic understanding of binary computation. However, this is not required to use the parameter and you may skip this section.h]hIf you want to understand the device_setup magic numbers for the Audiophile USB, you need some very basic understanding of binary computation. However, this is not required to use the parameter and you may skip this section.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMDhjhhubh)}(hHThe device_setup is one byte long and its structure is the following: ::h]hEThe device_setup is one byte long and its structure is the following:}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMHhjhhubjN)}(h+---+---+---+---+---+---+---+---+ | b7| b6| b5| b4| b3| b2| b1| b0| +---+---+---+---+---+---+---+---+ | 0 | 0 | 0 | Di|24B|96K|DTS|SET| +---+---+---+---+---+---+---+---+h]h+---+---+---+---+---+---+---+---+ | b7| b6| b5| b4| b3| b2| b1| b0| +---+---+---+---+---+---+---+---+ | 0 | 0 | 0 | Di|24B|96K|DTS|SET| +---+---+---+---+---+---+---+---+}hjBsbah}(h]h ]h"]h$]h&]j]j^uh1jMhhhMKhjhhubh)}(hWhere:h]hWhere:}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhjhhubj)}(hX* b0 is the ``SET`` bit - it MUST be set if device_setup is initialized * b1 is the ``DTS`` bit - it is set only for Digital output with DTS/AC3 - this setup is not tested * b2 is the Rate selection flag - When set to ``1`` the rate range is 48.1-96kHz - Otherwise the sample rate range is 8-48kHz * b3 is the bit depth selection flag - When set to ``1`` samples are 24bits long - Otherwise they are 16bits long - Note that b2 implies b3 as the 96kHz mode is only supported for 24 bits samples * b4 is the Digital input flag - When set to ``1`` the device assumes that an active digital source is connected - You shouldn't enable Di if no source is seen on the port (this leads to synchronization issues) - b4 is implied by b2 (since only one port is enabled at a time no synch error can occur) * b5 to b7 are reserved for future uses, and must be set to ``0`` - might become Ao, Do, Ai, for b7, b6, b4 respectively h]j )}(hhh](j)}(hGb0 is the ``SET`` bit - it MUST be set if device_setup is initialized h](h)}(hb0 is the ``SET`` bith](h b0 is the }(hjihhhNhNubj])}(h``SET``h]hSET}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjiubh bit}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMShjeubj )}(hhh]j)}(h.it MUST be set if device_setup is initialized h]h)}(h-it MUST be set if device_setup is initializedh]h-it MUST be set if device_setup is initialized}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMUhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jpjquh1j hhhMUhjeubeh}(h]h ]h"]h$]h&]uh1jhjbubj)}(hcb1 is the ``DTS`` bit - it is set only for Digital output with DTS/AC3 - this setup is not tested h](h)}(hb1 is the ``DTS`` bith](h b1 is the }(hjhhhNhNubj])}(h``DTS``h]hDTS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjubh bit}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMWhjubj )}(hhh](j)}(h.it is set only for Digital output with DTS/AC3h]h)}(hjh]h.it is set only for Digital output with DTS/AC3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hthis setup is not tested h]h)}(hthis setup is not testedh]hthis setup is not tested}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMZhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1j hhhMYhjubeh}(h]h ]h"]h$]h&]uh1jhjbubj)}(h}b2 is the Rate selection flag - When set to ``1`` the rate range is 48.1-96kHz - Otherwise the sample rate range is 8-48kHz h](h)}(hb2 is the Rate selection flagh]hb2 is the Rate selection flag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM\hjubj )}(hhh](j)}(h.When set to ``1`` the rate range is 48.1-96kHzh]h)}(hj)h](h When set to }(hj+hhhNhNubj])}(h``1``h]h1}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hj+ubh the rate range is 48.1-96kHz}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM^hj'ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(h+Otherwise the sample rate range is 8-48kHz h]h)}(h*Otherwise the sample rate range is 8-48kHzh]h*Otherwise the sample rate range is 8-48kHz}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM_hjPubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]jpjquh1j hhhM^hjubeh}(h]h ]h"]h$]h&]uh1jhjbubj)}(hb3 is the bit depth selection flag - When set to ``1`` samples are 24bits long - Otherwise they are 16bits long - Note that b2 implies b3 as the 96kHz mode is only supported for 24 bits samples h](h)}(h"b3 is the bit depth selection flagh]h"b3 is the bit depth selection flag}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahjtubj )}(hhh](j)}(h)When set to ``1`` samples are 24bits longh]h)}(hjh](h When set to }(hjhhhNhNubj])}(h``1``h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjubh samples are 24bits long}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMchjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hOtherwise they are 16bits longh]h)}(hjh]hOtherwise they are 16bits long}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMdhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hPNote that b2 implies b3 as the 96kHz mode is only supported for 24 bits samples h]h)}(hONote that b2 implies b3 as the 96kHz mode is only supported for 24 bits samplesh]hONote that b2 implies b3 as the 96kHz mode is only supported for 24 bits samples}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMehjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1j hhhMchjtubeh}(h]h ]h"]h$]h&]uh1jhjbubj)}(hX2b4 is the Digital input flag - When set to ``1`` the device assumes that an active digital source is connected - You shouldn't enable Di if no source is seen on the port (this leads to synchronization issues) - b4 is implied by b2 (since only one port is enabled at a time no synch error can occur) h](h)}(hb4 is the Digital input flagh]hb4 is the Digital input flag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhjubj )}(hhh](j)}(hOWhen set to ``1`` the device assumes that an active digital source is connectedh]h)}(hOWhen set to ``1`` the device assumes that an active digital source is connectedh](h When set to }(hjhhhNhNubj])}(h``1``h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjubh> the device assumes that an active digital source is connected}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMjhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h_You shouldn't enable Di if no source is seen on the port (this leads to synchronization issues)h]h)}(h_You shouldn't enable Di if no source is seen on the port (this leads to synchronization issues)h]haYou shouldn’t enable Di if no source is seen on the port (this leads to synchronization issues)}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMlhj,ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXb4 is implied by b2 (since only one port is enabled at a time no synch error can occur) h]h)}(hWb4 is implied by b2 (since only one port is enabled at a time no synch error can occur)h]hWb4 is implied by b2 (since only one port is enabled at a time no synch error can occur)}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMnhjDubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1j hhhMjhjubeh}(h]h ]h"]h$]h&]uh1jhjbubj)}(hxb5 to b7 are reserved for future uses, and must be set to ``0`` - might become Ao, Do, Ai, for b7, b6, b4 respectively h](h)}(h?b5 to b7 are reserved for future uses, and must be set to ``0``h](h:b5 to b7 are reserved for future uses, and must be set to }(hjlhhhNhNubj])}(hd``0``h]h0}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjlubeh}(h]h ]h"]h$]h&]uh1hhhhMqhjhubj )}(hhh]j)}(h5might become Ao, Do, Ai, for b7, b6, b4 respectively h]h)}(h4might become Ao, Do, Ai, for b7, b6, b4 respectivelyh]h4might become Ao, Do, Ai, for b7, b6, b4 respectively}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMshjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jpjquh1j hhhMshjhubeh}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]jpjuh1j hhhMShj^ubah}(h]h ]h"]h$]h&]uh1jhhhMShjhhubh)}(hCaution:h]hCaution:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMuhjhhubj)}(hX* there is no check on the value you will give to device_setup - for instance choosing 0x05 (16bits 96kHz) will fail back to 0x09 since b2 implies b3. But _there_will_be_no_warning_ in /var/log/messages * Hardware constraints due to the USB bus limitation aren't checked - choosing b2 will prepare all interfaces for 24bits/96kHz but you'll only be able to use one at the same time h]j )}(hhh](j)}(hthere is no check on the value you will give to device_setup - for instance choosing 0x05 (16bits 96kHz) will fail back to 0x09 since b2 implies b3. But _there_will_be_no_warning_ in /var/log/messages h](h)}(hubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]jpjquh1j hhhMhjubeh}(h]h ]h"]h$]h&]uh1jhjohhhNhNubj)}(hoAltSettings 4 corresponds to - 16-bit depth, 8-48kHz sample mode - Asynch capture and playback (Ao,Ai,Do,Di) h](h)}(hAltSettings 4 corresponds toh]hAltSettings 4 corresponds to}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjbubj )}(hhh](j)}(h!16-bit depth, 8-48kHz sample modeh]h)}(hjyh]h!16-bit depth, 8-48kHz sample mode}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjwubah}(h]h ]h"]h$]h&]uh1jhjtubj)}(h+Asynch capture and playback (Ao,Ai,Do,Di) h]h)}(h*Asynch capture and playback (Ao,Ai,Do,Di)h]h*Asynch capture and playback (Ao,Ai,Do,Di)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]jpjquh1j hhhMhjbubeh}(h]h ]h"]h$]h&]uh1jhjohhhNhNubj)}(huAltSettings 5 corresponds to - 16-bit depth, 8-48kHz sample mode - Synch capture (Ai) and Adaptive playback (Ao,Do) h](h)}(hAltSettings 5 corresponds toh]hAltSettings 5 corresponds to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubj )}(hhh](j)}(h!16-bit depth, 8-48kHz sample modeh]h)}(hjh]h!16-bit depth, 8-48kHz sample mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h1Synch capture (Ai) and Adaptive playback (Ao,Do) h]h)}(h0Synch capture (Ai) and Adaptive playback (Ao,Do)h]h0Synch capture (Ai) and Adaptive playback (Ao,Do)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1j hhhMhjubeh}(h]h ]h"]h$]h&]uh1jhjohhhNhNubj)}(h|AltSettings 6 corresponds to - 16-bit depth, 8-48kHz sample mode - Synch playback (Do), audio format type III IEC1937_AC-3 h](h)}(hAltSettings 6 corresponds toh]hAltSettings 6 corresponds to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubj )}(hhh](j)}(h!16-bit depth, 8-48kHz sample modeh]h)}(hjh]h!16-bit depth, 8-48kHz sample mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h8Synch playback (Do), audio format type III IEC1937_AC-3 h]h)}(h7Synch playback (Do), audio format type III IEC1937_AC-3h]h7Synch playback (Do), audio format type III IEC1937_AC-3}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjquh1j hhhMhjubeh}(h]h ]h"]h$]h&]uh1jhjohhhNhNubeh}(h]h ]h"]h$]h&]jpjuh1j hhhMhjVhhubh)}(hpIn order to ensure a correct initialization of the device, the driver *must* *know* how the device will be used:h](hFIn order to ensure a correct initialization of the device, the driver }(hjXhhhNhNubhemphasis)}(h*must*h]hmust}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjXubh }(hjXhhhNhNubja)}(h*know*h]hknow}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjXubh how the device will be used:}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjVhhubj)}(hX* if DTS is chosen, only Interface 2 with AltSet nb.6 must be registered * if 96KHz only AltSets nb.1 of each interface must be selected * if samples are using 24bits/48KHz then AltSet 2 must me used if Digital input is connected, and only AltSet nb.3 if Digital input is not connected * if samples are using 16bits/48KHz then AltSet 4 must me used if Digital input is connected, and only AltSet nb.5 if Digital input is not connected h]j )}(hhh](j)}(hFif DTS is chosen, only Interface 2 with AltSet nb.6 must be registeredh]h)}(hFif DTS is chosen, only Interface 2 with AltSet nb.6 must be registeredh]hFif DTS is chosen, only Interface 2 with AltSet nb.6 must be registered}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h=if 96KHz only AltSets nb.1 of each interface must be selectedh]h)}(hjh]h=if 96KHz only AltSets nb.1 of each interface must be selected}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hif samples are using 24bits/48KHz then AltSet 2 must me used if Digital input is connected, and only AltSet nb.3 if Digital input is not connectedh]h)}(hif samples are using 24bits/48KHz then AltSet 2 must me used if Digital input is connected, and only AltSet nb.3 if Digital input is not connectedh]hif samples are using 24bits/48KHz then AltSet 2 must me used if Digital input is connected, and only AltSet nb.3 if Digital input is not connected}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hif samples are using 16bits/48KHz then AltSet 4 must me used if Digital input is connected, and only AltSet nb.5 if Digital input is not connected h]h)}(hif samples are using 16bits/48KHz then AltSet 4 must me used if Digital input is connected, and only AltSet nb.5 if Digital input is not connectedh]hif samples are using 16bits/48KHz then AltSet 4 must me used if Digital input is connected, and only AltSet nb.5 if Digital input is not connected}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jpjuh1j hhhMhjubah}(h]h ]h"]h$]h&]uh1jhhhMhjVhhubh)}(hXWhen device_setup is given as a parameter to the snd-usb-audio module, the parse_audio_endpoints function uses a quirk called ``audiophile_skip_setting_quirk`` in order to prevent AltSettings not corresponding to device_setup from being registered in the driver.h](h~When device_setup is given as a parameter to the snd-usb-audio module, the parse_audio_endpoints function uses a quirk called }(hjhhhNhNubj])}(h!``audiophile_skip_setting_quirk``h]haudiophile_skip_setting_quirk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjubhg in order to prevent AltSettings not corresponding to device_setup from being registered in the driver.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjVhhubeh}(h]*usb-implementation-details-for-this-deviceah ]h"]*usb implementation details for this deviceah$]h&]uh1hhj hhhhhMubeh}(h]technical-details-for-hackersah ]h"]technical details for hackersah$]h&]uh1hhjChhhhhM<ubeh}(h]$audiophile-usb-audio-support-in-alsaah ]h"]$audiophile usb audio support in alsaah$]h&]uh1hhhhhhhhKdubh)}(hhh](h)}(hAudiophile USB and Jack supporth]hAudiophile USB and Jack support}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hhhhhMubh)}(hEThis section deals with support of the Audiophile USB device in Jack.h]hEThis section deals with support of the Audiophile USB device in Jack.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj6hhubh)}(hCThere are 2 main potential issues when using Jackd with the device:h]hCThere are 2 main potential issues when using Jackd with the device:}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj6hhubj )}(hhh](j)}(h.support for Big-Endian devices in 24-bit modesh]h)}(hjhh]h.support for Big-Endian devices in 24-bit modes}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjfubah}(h]h ]h"]h$]h&]uh1jhjchhhhhNubj)}(h"support for 4-in / 4-out channels h]h)}(h!support for 4-in / 4-out channelsh]h!support for 4-in / 4-out channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj}ubah}(h]h ]h"]h$]h&]uh1jhjchhhhhNubeh}(h]h ]h"]h$]h&]jpjuh1j hhhMhj6hhubh)}(hhh](h)}(hDirect support in Jackdh]hDirect support in Jackd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hXJack supports big endian devices only in recent versions (thanks to Andreas Steinmetz for his first big-endian patch). I can't remember exactly when this support was released into jackd, let's just say that with jackd version 0.103.0 it's almost ok (just a small bug is affecting 16bits Big-Endian devices, but since you've read carefully the above paragraphs, you're now using kernel >= 2.6.23 and your 16bits devices are now Little Endians ;-) ).h]hXJack supports big endian devices only in recent versions (thanks to Andreas Steinmetz for his first big-endian patch). I can’t remember exactly when this support was released into jackd, let’s just say that with jackd version 0.103.0 it’s almost ok (just a small bug is affecting 16bits Big-Endian devices, but since you’ve read carefully the above paragraphs, you’re now using kernel >= 2.6.23 and your 16bits devices are now Little Endians ;-) ).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXYou can run jackd with the following command for playback with Ao and record with Ai: ::h]hUYou can run jackd with the following command for playback with Ao and record with Ai:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubjN)}(h8% jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1h]h8% jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1}hjsbah}(h]h ]h"]h$]h&]j]j^uh1jMhhhMhjhhubeh}(h]direct-support-in-jackdah ]h"]direct support in jackdah$]h&]uh1hhj6hhhhhMubh)}(hhh](h)}(hUsing Alsa plughwh]hUsing Alsa plughw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hcIf you don't have a recent Jackd installed, you can downgrade to using the Alsa ``plug`` converter.h](hRIf you don’t have a recent Jackd installed, you can downgrade to using the Alsa }(hjhhhNhNubj])}(h``plug``h]hplug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hjubh converter.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hjFor instance here is one way to run Jack with 2 playback channels on Ao and 2 capture channels from Ai: ::h]hgFor instance here is one way to run Jack with 2 playback channels on Ao and 2 capture channels from Ai:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubjN)}(h>% jackd -R -dalsa -dplughw:1 -r48000 -p256 -n2 -D -Cplughw:1,1h]h>% jackd -R -dalsa -dplughw:1 -r48000 -p256 -n2 -D -Cplughw:1,1}hjsbah}(h]h ]h"]h$]h&]j]j^uh1jMhhhMhjhhubj)}(hhh]j)}(hXHowever you may see the following warning message: You appear to be using the ALSA software "plug" layer, probably a result of using the "default" ALSA device. This is less efficient than it could be. Consider using a hardware device instead rather than using the plug layer. h](j)}(h2However you may see the following warning message:h]h2However you may see the following warning message:}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhMhj.ubj)}(hhh]h)}(hYou appear to be using the ALSA software "plug" layer, probably a result of using the "default" ALSA device. This is less efficient than it could be. Consider using a hardware device instead rather than using the plug layer.h]hYou appear to be using the ALSA software “plug” layer, probably a result of using the “default” ALSA device. This is less efficient than it could be. Consider using a hardware device instead rather than using the plug layer.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj@ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhhhMhj+ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]using-alsa-plughwah ]h"]using alsa plughwah$]h&]uh1hhj6hhhhhMubh)}(hhh](h)}(h0Getting 2 input and/or output interfaces in Jackh]h0Getting 2 input and/or output interfaces in Jack}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhhhhhM ubh)}(h|As you can see, starting the Jack server this way will only enable 1 stereo input (Di or Ai) and 1 stereo output (Ao or Do).h]h|As you can see, starting the Jack server this way will only enable 1 stereo input (Di or Ai) and 1 stereo output (Ao or Do).}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjkhhubh)}(h*This is due to the following restrictions:h]h*This is due to the following restrictions:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjkhhubj )}(hhh](j)}(hGJack can only open one capture device and one playback device at a timeh]h)}(hjh]hGJack can only open one capture device and one playback device at a time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h`The Audiophile USB is seen as 2 (or three) Alsa devices: hw:1,0, hw:1,1 (and optionally hw:1,2) h]h)}(h_The Audiophile USB is seen as 2 (or three) Alsa devices: hw:1,0, hw:1,1 (and optionally hw:1,2)h]h_The Audiophile USB is seen as 2 (or three) Alsa devices: hw:1,0, hw:1,1 (and optionally hw:1,2)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jpjuh1j hhhMhjkhhubh)}(hIf you want to get Ai+Di and/or Ao+Do support with Jack, you would need to combine the Alsa devices into one logical "complex" device.h]hIf you want to get Ai+Di and/or Ao+Do support with Jack, you would need to combine the Alsa devices into one logical “complex” device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjkhhubh)}(hIf you want to give it a try, I recommend reading the information from this page: http://www.sound-man.co.uk/linuxaudio/ice1712multi.html It is related to another device (ice1712) but can be adapted to suit the Audiophile USB.h](hRIf you want to give it a try, I recommend reading the information from this page: }(hjhhhNhNubh)}(h7http://www.sound-man.co.uk/linuxaudio/ice1712multi.htmlh]h7http://www.sound-man.co.uk/linuxaudio/ice1712multi.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubhY It is related to another device (ice1712) but can be adapted to suit the Audiophile USB.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjkhhubh)}(hMEnabling multiple Audiophile USB interfaces for Jackd will certainly require:h]hMEnabling multiple Audiophile USB interfaces for Jackd will certainly require:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjkhhubj )}(hhh](j)}(hPMaking sure your Jackd version has the MMAP_COMPLEX patch (see the ice1712 page)h]h)}(hjh]hPMaking sure your Jackd version has the MMAP_COMPLEX patch (see the ice1712 page)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubj)}(hM(maybe) patching the alsa-lib/src/pcm/pcm_multi.c file (see the ice1712 page)h]h)}(hj)h]hM(maybe) patching the alsa-lib/src/pcm/pcm_multi.c file (see the ice1712 page)}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj'ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubj)}(hOdefine a multi device (combination of hw:1,0 and hw:1,1) in your .asoundrc fileh]h)}(hOdefine a multi device (combination of hw:1,0 and hw:1,1) in your .asoundrc fileh]hOdefine a multi device (combination of hw:1,0 and hw:1,1) in your .asoundrc file}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hj>ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubj)}(hstart jackd with this device h]h)}(hstart jackd with this deviceh]hstart jackd with this device}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM#hjVubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubeh}(h]h ]h"]h$]h&]jpjuh1j hhhMhjkhhubh)}(hsI had no success in testing this for now, if you have any success with this kind of setup, please drop me an email.h]hsI had no success in testing this for now, if you have any success with this kind of setup, please drop me an email.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hjkhhubeh}(h]0getting-2-input-and-or-output-interfaces-in-jackah ]h"]0getting 2 input and/or output interfaces in jackah$]h&]uh1hhj6hhhhhM ubeh}(h]audiophile-usb-and-jack-supportah ]h"]audiophile usb and jack supportah$]h&]uh1hhhhhhhhMubeh}(h]8guide-to-using-m-audio-audiophile-usb-with-alsa-and-jackah ]h"]8guide to using m-audio audiophile usb with alsa and jackah$]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_handlerjerror_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}(jjjjjjjjj@j=j3j0jjj j jjjq jn jz jw j@ j= j j j j j+j(jSjPj#j jjjjjhjejju nametypes}(jjjjj@j3jj jjq jz j@ j j j+jSj#jjjhjuh}(jhjhjjjjj=jj0jCjjvj jjj8jn jjw jt j= j} j jC j j j(j jPjj jVjj6jjjejjjku footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages](hsystem_message)}(hhh]h)}(hfPossible title underline, too short for the title. Treating it as ordinary text because it's so short.h]hhPossible title underline, too short for the title. Treating it as ordinary text because it’s so short.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!ubah}(h]h ]h"]h$]h&]levelKtypeINFOlineMsourcehuh1jhj} hhhhhMubj )}(hhh]h)}(hfPossible title underline, too short for the title. Treating it as ordinary text because it's so short.h]hhPossible title underline, too short for the title. Treating it as ordinary text because it’s so short.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=ubah}(h]h ]h"]h$]h&]levelKtypej:lineMIsourcehuh1jhjhhhhhMIubetransform_messages] transformerN include_log] decorationNhhub.