Announcement

Collapse
No announcement yet.

Trying to make Sennheiser HD 4.50 BTNC headset to use aptx codec

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Trying to make Sennheiser HD 4.50 BTNC headset to use aptx codec

    I have wireless (Bluetooth) Sennheiser HD 4.50 BTNC headset. It's connecting via Bluetooth without any problems - Kubuntu's 19.04. Pulse Audio recognizes my hardware perfectly, and I hear sound, but the quality is noticeable worse when compared to the same headset working under Windows 10 on the same laptop.
    My first thought was, that it has to be related to audio codec. On Windows 10 I think it uses aptx. I did some research and found this page, so I have installed bluez-hcidump, then run sudo hcidump avdtp command and connected my headset to look for the configuration negotiation:

    Code:
    zibi1981@Linux:~$ sudo hcidump avdtp                
    HCI sniffer - Bluetooth packet analyzer ver 5.50
    device: hci0 snap_len: 1500 filter: 0x400
    < AVDTP(s): Discover cmd: transaction 0 nsp 0x00
    > AVDTP(s): Discover rsp: transaction 0 nsp 0x00
      ACP SEID 5 - Audio Sink
      ACP SEID 1 - Audio Sink
    < AVDTP(s): Capabilities cmd: transaction 1 nsp 0x00
      ACP SEID 5
    > AVDTP(s): Capabilities rsp: transaction 1 nsp 0x00
      Media Transport
      Media Codec - non-A2DP (aptX)
        16kHz 32kHz 44.1kHz 48kHz 
        Stereo 
    < AVDTP(s): Capabilities cmd: transaction 2 nsp 0x00
      ACP SEID 1
    > AVDTP(s): Capabilities rsp: transaction 2 nsp 0x00
      Media Transport
      Media Codec - SBC
        16kHz 32kHz 44.1kHz 48kHz 
        Mono DualChannel Stereo JointStereo 
        4 8 12 16 Blocks
        4 8 Subbands
        SNR Loudness 
        Bitpool Range 2-53
      Content Protection
        02 00 
    < AVDTP(s): Set config cmd: transaction 3 nsp 0x00
      ACP SEID 1 - INT SEID 1
      Media Transport
      Media Codec - SBC
        44.1kHz 
        JointStereo 
        16 Blocks
        8 Subbands
        Loudness 
        Bitpool Range 2-53
    > AVDTP(s): Set config rsp: transaction 3 nsp 0x00
    < AVDTP(s): Open cmd: transaction 4 nsp 0x00
      ACP SEID 1
    > AVDTP(s): Open rsp: transaction 4 nsp 0x00
    < AVDTP(s): Start cmd: transaction 5 nsp 0x00
      ACP SEID 1
    > AVDTP(s): Start rsp: transaction 5 nsp 0x00
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 0 time 0 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 1 time 896 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 2 time 1792 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 3 time 2688 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 4 time 3584 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 5 time 4480 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 6 time 5376 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 7 time 6272 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 8 time 7168 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 9 time 8064 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 10 time 8960 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 11 time 9856 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 12 time 10752 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 13 time 11648 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 14 time 12544 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 15 time 13440 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 16 time 14336 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 17 time 15232 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 18 time 16128 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 19 time 17024 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 20 time 17920 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 21 time 18816 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 22 time 19712 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 23 time 20608 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 24 time 21504 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 25 time 22400 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 26 time 23296 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 27 time 24192 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 28 time 25088 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 29 time 25984 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 30 time 26880 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 31 time 27776 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 32 time 28672 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 33 time 29568 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 34 time 30464 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 35 time 31360 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 36 time 32256 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 37 time 33152 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 38 time 34048 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 39 time 34944 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 40 time 35840 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 41 time 36736 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 42 time 37632 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 43 time 38528 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 44 time 39424 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 45 time 40320 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 46 time 41216 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 47 time 42112 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 48 time 43008 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 49 time 43904 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 50 time 44800 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 51 time 45696 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 52 time 46592 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 53 time 47488 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 54 time 48384 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 55 time 49280 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 56 time 50176 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 57 time 51072 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 58 time 51968 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 59 time 52864 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 60 time 53760 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 61 time 54656 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 62 time 55552 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 63 time 56448 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 64 time 57344 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 65 time 58240 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 66 time 59136 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 67 time 60032 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 68 time 60928 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 69 time 61824 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 70 time 62720 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 71 time 63616 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 72 time 64512 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 73 time 65408 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 74 time 66304 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 75 time 67200 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 76 time 68096 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 77 time 68992 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 78 time 69888 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 79 time 70784 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 80 time 71680 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 81 time 72576 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 82 time 73472 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 83 time 74368 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 84 time 75264 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 85 time 76160 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 86 time 77056 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 87 time 77952 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 88 time 78848 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 89 time 79744 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 90 time 80640 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 91 time 81536 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 92 time 82432 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 93 time 83328 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 94 time 84224 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 95 time 85120 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 96 time 86016 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 97 time 86912 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 98 time 87808 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 99 time 88704 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 100 time 89600 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 101 time 90496 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 102 time 91392 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 103 time 92288 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 104 time 93184 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 105 time 94080 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 106 time 94976 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 107 time 95872 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 108 time 96768 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 109 time 97664 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 110 time 98560 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 111 time 99456 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 112 time 100352 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 113 time 101248 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 114 time 102144 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 115 time 103040 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 116 time 103936 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 117 time 104832 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 118 time 105728 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 119 time 106624 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 120 time 107520 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 121 time 108416 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 122 time 109312 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 123 time 110208 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 124 time 111104 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 125 time 112000 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 126 time 112896 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 127 time 113792 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 128 time 114688 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 129 time 115584 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 130 time 116480 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 131 time 117376 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 132 time 118272 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 133 time 119168 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 134 time 120064 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 135 time 120960 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 136 time 121856 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 137 time 122752 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 138 time 123648 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 139 time 124544 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 140 time 125440 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 141 time 126336 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 142 time 127232 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 143 time 128128 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 144 time 129024 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 145 time 129920 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 146 time 130816 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 147 time 131712 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 148 time 132608 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 149 time 133504 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 150 time 134400 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 151 time 135296 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 152 time 136192 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 153 time 137088 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 154 time 137984 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 155 time 138880 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 156 time 139776 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 157 time 140672 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 158 time 141568 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 159 time 142464 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 160 time 143360 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 161 time 144256 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 162 time 145152 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 163 time 146048 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 164 time 146944 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 165 time 147840 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 166 time 148736 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 167 time 149632 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 168 time 150528 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 169 time 151424 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 170 time 152320 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 171 time 153216 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 172 time 154112 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 173 time 155008 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 174 time 155904 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 175 time 156800 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 176 time 157696 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 177 time 158592 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 178 time 159488 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 179 time 160384 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 180 time 161280 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 181 time 162176 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 182 time 163072 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 183 time 163968 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 184 time 164864 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 185 time 165760 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 186 time 166656 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 187 time 167552 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 188 time 168448 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 189 time 169344 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 190 time 170240 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 191 time 171136 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 192 time 172032 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 193 time 172928 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 194 time 173824 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 195 time 174720 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 196 time 175616 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 197 time 176512 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 198 time 177408 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 199 time 178304 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 200 time 179200 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 201 time 180096 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 202 time 180992 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 203 time 181888 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 204 time 182784 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 205 time 183680 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 206 time 184576 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 207 time 185472 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 208 time 186368 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 209 time 187264 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 210 time 188160 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 211 time 189056 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 212 time 189952 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 213 time 190848 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 214 time 191744 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 215 time 192640 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 216 time 193536 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 217 time 194432 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 218 time 195328 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 219 time 196224 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 220 time 197120 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 221 time 198016 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 222 time 198912 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 223 time 199808 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 224 time 200704 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 225 time 201600 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 226 time 202496 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 227 time 203392 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 228 time 204288 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 229 time 205184 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 230 time 206080 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 231 time 206976 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 232 time 207872 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 233 time 208768 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 234 time 209664 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 235 time 210560 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 236 time 211456 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 237 time 212352 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 238 time 213248 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 239 time 214144 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 240 time 215040 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 241 time 215936 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 242 time 216832 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 243 time 217728 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 244 time 218624 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 245 time 219520 ssrc 1
    < AVDTP(m): ver 2 cc 0 pt 1 seqn 246 time 220416 ssrc 1
    < AVDTP(s): Suspend cmd: transaction 6 nsp 0x00
      ACP SEID 1
    > AVDTP(s): Suspend rsp: transaction 6 nsp 0x00
    As on the page mentioned above, it seems to me that Pulse Audio is also using SBC codec on my system, isn't it?

    So there is this project, which "Adds Sony LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support to PulseAudio on Linux", but I'm not very familiar with compiling and installing software fro GitHub. I would also prefer to install all kind of software from a community maintained repositories to be able to update via apt-get command and not having to compile manually every time. They have packages pre-compiled for Ubuntu 18.04. and 18.10 but not for 19.04. Will they work on the newest Kubuntu 19.04.? Are those safe and working properly? Maybe anyone have some experience with this package.

    This is how it looks right now

    Code:
    zibi1981@Linux:~$ pactl list sinks | grep -e bluez -e a2dp_codec
          Nazwa: bluez_sink.00_16_94_23_65_06.a2dp_sink
          Sterownik: module-bluez5-device.c
          Źródło monitora: bluez_sink.00_16_94_23_65_06.a2dp_sink.monitor
                  device.api = "bluez"
                  bluez.path = "/org/bluez/hci0/dev_00_16_94_23_65_06"
                  bluez.class = "0x240404"
                  bluez.alias = "HD 4.50BTNC"

    #2
    It will be built against the kernel and driver stack of the specific Ubuntu release. The maintainers simply haven't gotten around to setting it up to make 19.04 packages, considering it was last updated in August


    https://github.com/EHfive/pulseaudio...s-bt/issues/52

    Comment


      #3
      So the only option for today is to compile it by myself, right?

      Comment


        #4
        yup
        .
        .

        Comment


          #5
          OK, so I'm trying to compile, but got to this stage

          Code:
          make
          Scanning dependencies of target bluez5-util
          [  7%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/bluez5-util.c.o
          [ 14%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/a2dp/a2dp_sbc.c.o
          [ 21%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/a2dp/a2dp_util.c.o
          [ 28%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/backend-ofono.c.o
          [ 35%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/backend-native.c.o
          /home/zibi1981/Kompilowane/pulseaudio-modules-bt-master/pulseaudio-modules-bt/src/modules/bluetooth/backend-native.c:36:10: fatal error: bluetooth/bluetooth.h: Nie ma takiego pliku ani katalogu
          #include <bluetooth/bluetooth.h>
                 ^~~~~~~~~~~~~~~~~~~~~~~
          compilation terminated.
          make[2]: *** [CMakeFiles/bluez5-util.dir/build.make:115: CMakeFiles/bluez5-util.dir/src/modules/bluetooth/backend-native.c.o] Błąd 1
          make[1]: *** [CMakeFiles/Makefile2:147: CMakeFiles/bluez5-util.dir/all] Błąd 2
          make: *** [Makefile:130: all] Błąd 2
          Any help?

          P.S. I found it - the missing library was libbluetooth-dev.

          P.S. 2.

          After successful compilation and installation this is how it looks

          Code:
          zibi1981@Linux:~$ pactl list sinks | grep -e bluez -e a2dp_codec
                 Nazwa: bluez_sink.00_16_94_23_65_06.a2dp_sink
                 Sterownik: module-bluez5-device.c
                 Źródło monitora: bluez_sink.00_16_94_23_65_06.a2dp_sink.monitor
                         bluetooth.a2dp_codec = "SBC"
                         device.api = "bluez"
                         bluez.path = "/org/bluez/hci0/dev_00_16_94_23_65_06"
                         bluez.class = "0x240404"
                         bluez.alias = "HD 4.50BTNC"
          So still SBC?
          Last edited by Caesar; Jun 05, 2019, 12:15 PM.

          Comment


            #6
            It seems there is much more to compile and install (beside pulseaudio-modules-bt and ldacBT) to make my headset use aptx codec. Well, I'll have to wait for packages in this PPA to be prepared for 19.04.
            I've tried to install packages prepared for 18.10, but I got this error

            Code:
            sudo add-apt-repository ppa:eh5/pulseaudio-a2dp
            [sudo] hasło użytkownika zibi1981: 
            Adds LDAC, aptX, aptX HD, AAC codecs support to PulseAudio
            package: pulseaudio-module-bluetooth
            
            HOMEPAGE: https://github.com/EHfive/pulseaudio-modules-bt
            
            libldac: https://github.com/EHfive/ldacBT
            More info: https://launchpad.net/~eh5/+archive/ubuntu/pulseaudio-a2dp
            Press [ENTER] to continue or Ctrl-c to cancel adding it.
            
            Stary:1 http://repo.steampowered.com/steam precise InRelease
            Ign.:2 http://ppa.launchpad.net/eh5/pulseaudio-a2dp/ubuntu disco InRelease                                                                                                                  
            Stary:3 http://pl.archive.ubuntu.com/ubuntu disco InRelease                                                                                                                                 
            Stary:4 http://pl.archive.ubuntu.com/ubuntu disco-updates InRelease                                                                                                                         
            Ign.:5 http://linux.dropbox.com/ubuntu cosmic InRelease                                                                                                                                     
            Stary:6 https://deb.opera.com/opera-stable stable InRelease                                                                                                                                
            Błąd:7 http://ppa.launchpad.net/eh5/pulseaudio-a2dp/ubuntu disco Release                                                                                                                   
            404  Not Found [IP: 91.189.95.83 80]
            Stary:8 https://apt.enpass.io stable InRelease                                                                                                                 
            Stary:9 http://linux.dropbox.com/ubuntu cosmic Release                                                                             
            Pobieranie:10 http://pl.archive.ubuntu.com/ubuntu disco-backports InRelease [88,8 kB] 
            Stary:11 http://security.ubuntu.com/ubuntu disco-security InRelease
            Czytanie list pakietów... Gotowe                                  
            E: The repository 'http://ppa.launchpad.net/eh5/pulseaudio-a2dp/ubuntu disco Release' does not have a Release file.
            N: Updating from such a repository can't be done securely, and is therefore disabled by default.
            N: See apt-secure(8) manpage for repository creation and user configuration details.
            EDIT

            OK, I was finally able to build pulseaudio-modules-bt and ldacBT packages from GitHub on my system using checkinstall, and now my headset is using the proper audio codec

            Code:
            achilleus@Linux:~$ pactl list | grep a2dp_codec
                       bluetooth.a2dp_codec = "aptX"
            Audio quality seems much better, but I still experience some "stuttering" from time to time, as on previous SBC codec. What could be the reason?
            Last edited by Caesar; Jun 10, 2019, 06:54 AM.

            Comment


              #7
              So I have made some research, reading and experimenting on my system to make those sound glitches gone, and found out some useful information, but still no success.

              1) First of all it seems to be some kind of problem with ALSA settings. In /etc/pulse/daemon.conf there are many settings, and I've found an information on the Web, that enabling some options could do the trick

              Code:
              resample-method = speex-float-1
              avoid-resampling = yes
              default-sample-rate = 44100
              After making this changes of course I did

              Code:
              $ pulseaudio -k
              $ pulseaudio --start
              AFAIK aptx codec is 16 bit and 44100Hz, so other setting could result in "glitches", but it didn't work. In fact some of these settings seemed to worsen the situation (more glitches), so I came to an idea, that this could be the right approach, but wrong answers.

              2) Further useful information is in the Arch Linux wiki here and here.

              A)
              The newer implementation of the PulseAudio sound server uses timer-based audio scheduling instead of the traditional, interrupt-driven approach.

              Timer-based scheduling may expose issues in some ALSA drivers. On the other hand, other drivers might be glitchy without it on, so check to see what works on your system.

              To turn timer-based scheduling off add tsched=0 in /etc/pulse/default.pa:

              Code:
              /etc/pulse/default.pa
              load-module module-udev-detect tsched=0
              That didn't help either.

              B)
              Perhaps it will help to add "options ath9k btcoex_enable = 1" to the /etc/modprobe.d/ath9k.conf (with the appropriate bluetooth adapter):

              Code:
              /etc/modprobe.d/ath9k.conf
              # possibly fix for sound glitches
              options ath9k btcoex_enable = 1
              Then restart.
              This tip also wasn't helpful.

              3) Similar tip like 2B from Ubuntu Bug reports also didn't help. The rationale behind this solution is that on Linux when WiFi and Bluetooth are on the same chip (like on my laptop), there could be some Bluetotth packet loss when WiFi is active, but I use WiFi 5Ghz al the time, and Bluetooth is 2,4GHz, and also deactivating WiFi did not resolve the problem.

              By default BT audio works fine on Ubuntu - if there is no WiFi active: Both work on the same frequency range, 2 WiFi channel is about 20 Bluetooth Channels wide and every time a WiFi package is sent bluetooth risks a packet loss.

              Creating a file named /etc/modprobe.d/bluetooth-audio.conf with the following content:

              options ath9k btcoex_enable=1 bt_ant_diversity=1

              resolves the problem and drastically increases bluetooth throughput for all other use cases (bluetooth networking that doesn't drop every time the WiFi probes something, lower latency Bluetooth HIDs.

              We should ship things in a way that they work out-of-the-box => I am all for providing this file with Ubuntu, possibly with Bluez.

              In the case of my laptop btcoex_enable=1 would already do the trick.

              Technical background:
              - https://wireless.wiki.kernel.org/en/...s/ath9k/btcoex
              - https://wiki.freebsd.org/dev/ath_hal...tennaDiversity
              Still looking for a solution and experimenting. Any help appreciated.
              Last edited by Caesar; Jun 20, 2019, 01:43 AM.

              Comment

              Working...
              X