domingo, 2 de junho de 2019

Melhorando a qualidade do som via bluetooth

Fala, pessoas!

Tenho uma caixa de som JBL Go 2 e ao conectar via Bluetooth ao meu notebook o som saía com péssima qualidade, parecendo o som transmitido via ligações telefônicas.

Identificando o problema

Para identificar o problema fui verificar a saída do comando pactl list sources:

Source #18
State: SUSPENDED
Name: bluez_sink.70_99_1C_04_9F_F0.headset_head_unit
Description: JBL GO 2
Driver: module-bluez5-device.c
Sample Specification: s16le 1ch 8000Hz
Channel Map: mono
Owner Module: 37
Mute: no
Volume: mono: 58982 /  90%
balance 0.00
Base Volume: 65536 / 100%
Monitor Source: bluez_sink.70_99_1C_04_9F_F0.headset_head_unit.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_VOLUME_CTRL LATENCY 
Properties:
bluetooth.protocol = "headset_head_unit"
device.intended_roles = "phone"
device.description = "JBL GO 2"
device.string = "70:99:1C:04:9F:F0"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "speaker"
bluez.path = "/org/bluez/hci0/dev_70_99_1C_04_9F_F0"
bluez.class = "0x200414"
bluez.alias = "JBL GO 2"
device.icon_name = "audio-speakers-bluetooth"
Ports:
speaker-output: Speaker (priority: 0)
Active Port: speaker-output
Formats:
pcm

Percebi que não estava sendo utilizado o perfil a2dp_sink, mas o headset_head_unit. O Advanced Audio Distribution Profile (A2DP), segundo o Wikipedia, é um perfil que define o áudio como alta qualidade (estéreo ou mono), e torna possível sua transmissão em tempo real de um dispositivo para o outro, através de uma conexão Bluetooth. Por exemplo, músicas podem ser transferidas de um telefone celular para um fone de ouvido sem fio.

O Hands-Free Profile (HFP) e o Headset Profile (HSP) são bastante parecidos, servindo basicamente para suportar os headsets e fones de ouvido Bluetooth para serem utilizados com telefones celulares.

Para identificar os perfis disponíveis, utilizei o pactl list cards:

Card #9
Name: bluez_card.70_99_1C_04_9F_F0
Driver: module-bluez5-device.c
Owner Module: 38
Properties:
        device.description = "JBL GO 2"
        device.string = "70:99:1C:04:9F:F0"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "speaker"
        bluez.path = "/org/bluez/hci0/dev_70_99_1C_04_9F_F0"
        bluez.class = "0x200414"
        bluez.alias = "JBL GO 2"
        device.icon_name = "audio-speakers-bluetooth"
Profiles:
        headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
        a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 40, available: yes)
        off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: headset_head_unit
Ports:
        speaker-output: Speaker (priority: 0, latency offset: 0 usec)
                Part of profile(s): headset_head_unit, a2dp_sink
        speaker-input: Bluetooth Input (priority: 0, latency offset: 0 usec)
                Part of profile(s): headset_head_unit

Com a lista de perfis disponíveis podemos solucionar o problema.

Solução:

No terminal, executei o comando pactl set-card-profile bluez_card.70_99_1C_04_9F_F0 a2dp_sink

Ao listar os sources novamente com pactl list sources, obtive a seguinte saída:

Source #19
State: SUSPENDED
Name: bluez_sink.70_99_1C_04_9F_F0.a2dp_sink.monitor
Description: Monitor of JBL GO 2
Driver: module-bluez5-device.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 38
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
        balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: bluez_sink.70_99_1C_04_9F_F0.a2dp_sink
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY 
Properties:
        device.description = "Monitor of JBL GO 2"
        device.class = "monitor"
        device.string = "70:99:1C:04:9F:F0"
        device.api = "bluez"
        device.bus = "bluetooth"
        device.form_factor = "speaker"
        bluez.path = "/org/bluez/hci0/dev_70_99_1C_04_9F_F0"
        bluez.class = "0x200414"
        bluez.alias = "JBL GO 2"
        device.icon_name = "audio-speakers-bluetooth"
Formats:
        pcm

Desta forma consegui fazer com que o áudio da caixa de som bluetooth saísse com a qualidade normal.

Share:

2 comentários:

  1. Caaaraa por favor, ainda tens o arquivo ax35_WIN_de.exe que solucionava o boot insistente nos notes daa hp para enviares para meu email

    ResponderExcluir
    Respostas
    1. Obrigado por comentar no blog. Cara, infelizmente não tenho mais o arquivo. Perdi junto com dois backups :-/ e na época não tinha o hábito de salvar na nuvem.

      Excluir