Discussion:
Parametry karty dźwiękowej
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Jacek
2024-01-22 16:03:37 UTC
Permalink
Pewien program którego używam, wymaga by karta dźwiękowa w kompie
pracowała z cz. próbkowania 48 kHz i dynamiką 16 bitową. Czy ktoś zechce
mnie poinstruować jak sprawdzić i ewent. zmienić te parametry (pod
linuksem Mint lub podobnym)?
heby
2024-01-22 20:34:26 UTC
Permalink
Post by Jacek
Pewien program którego używam, wymaga by karta dźwiękowa w kompie
pracowała z cz. próbkowania 48 kHz i dynamiką 16 bitową. Czy ktoś zechce
mnie poinstruować jak sprawdzić i ewent. zmienić te parametry (pod
linuksem Mint lub podobnym)?
A nie jest tak przypadkiem, że program wymaga takich *najniższych*
parametrów karty?

Częstotliwośc próbkowania i inne parametry są raczej ustawiane przez sam
program. Możesz co najwyżej mieć kiepską kartę, która ich nie osiągnie.
Co to za program, że sam nie potrafi ich ustawić?

Wydaje mi się, że współczesne karty na płytach głównych powinny dać radę
to 48/16 osiągnąć bez najmniejszego problemu, o ile wyprodukowano to w
granicach nastu lat temu.
Jacek
2024-01-23 08:51:10 UTC
Permalink
Post by heby
Post by Jacek
Pewien program którego używam, wymaga by karta dźwiękowa w kompie
pracowała z cz. próbkowania 48 kHz i dynamiką 16 bitową. Czy ktoś
zechce mnie poinstruować jak sprawdzić i ewent. zmienić te parametry
(pod linuksem Mint lub podobnym)?
A nie jest tak przypadkiem, że program wymaga takich *najniższych*
parametrów karty?
Częstotliwośc próbkowania i inne parametry są raczej ustawiane przez sam
program. Możesz co najwyżej mieć kiepską kartę, która ich nie osiągnie.
Co to za program, że sam nie potrafi ich ustawić?
Wydaje mi się, że współczesne karty na płytach głównych powinny dać radę
to 48/16 osiągnąć bez najmniejszego problemu, o ile wyprodukowano to w
granicach nastu lat temu.
To program jtdx używany w amatorskiej radiokomunikacji. A w instrukcji
obsługi napisano:
"JTDX software works with 48 kHz sampling rate and 16 bit depth audio
stream. To avoid resampling and decoding performance degradation it is
recommended to configure input and output (recording and playback) of
audio device in the operating system using this settings."
Więc najwyraźniej sam karty nie ustawia.
Jacek Marcin Jaworski
2024-01-23 19:28:43 UTC
Permalink
Post by Jacek
To program jtdx używany w amatorskiej radiokomunikacji. A w
"JTDX software works with 48 kHz sampling rate and 16 bit depth audio
stream. To avoid resampling and decoding performance degradation it is
recommended to configure input and output (recording and playback) of
audio device in the operating system using this settings."
Post by Jacek
Więc najwyraźniej sam karty nie ustawia.
Weź nie żartuj!
48KHz/16bit wy z karty jest zalecane ale nie wymagane. Bo program
wewnętrznie na takich danych pracuje. Natomiast ten cytat, tylko
uświadamia/ostrzega że w innym przypadku będzie "resampling" który się
wiąże z utratą jakości oraz z "performance degradation".
Będzie hulać nawet na pierwszym modelu Creative Sound Blaster
8bit/22,5KHz na kacie ISA! To tyle!
Zbych
2024-01-23 22:46:50 UTC
Permalink
Post by Jacek
Pewien program którego używam, wymaga by karta dźwiękowa w kompie
pracowała z cz. próbkowania 48 kHz i dynamiką 16 bitową. Czy ktoś zechce
mnie poinstruować jak sprawdzić i ewent. zmienić te parametry (pod
linuksem Mint lub podobnym)?
cat /proc/asound/card?/pcm?p/sub?/hw_params
Jacek
2024-01-24 08:24:10 UTC
Permalink
Post by Zbych
cat /proc/asound/card?/pcm?p/sub?/hw_params
Wychodzi coś takiego:

***@jacek-M19:~$ cat /proc/asound/card?/pcm?p/sub?/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 44100
buffer_size: 88200

Domyślam się że cz. próbkowania to 44,1 kHz. A co z dynamiką? Czy linia
format: S16_LE określa dynamike 16-bitową? No i jak zmienić tryb pracy
karty na 48/16?
Zbych
2024-01-25 21:04:33 UTC
Permalink
Post by Jacek
Post by Zbych
cat /proc/asound/card?/pcm?p/sub?/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 44100
buffer_size: 88200
Domyślam się że cz. próbkowania to 44,1 kHz. A co z dynamiką? Czy linia
format: S16_LE określa dynamike 16-bitową? No i jak  zmienić tryb pracy
karty na 48/16?
Zacznij od sprawdzenia co jest wspierane przez kartę, bo reszta zależy
od serwera dźwięku (pulseaudio, pipewire)

cat /proc/asound/card[0-9]/{id,codec*} | grep -i "codec\|bits\|rates"
Jacek
2024-01-26 08:43:57 UTC
Permalink
Post by Zbych
cat /proc/asound/card[0-9]/{id,codec*} | grep -i "codec\|bits\|rates"
Jak należało przypuszczać, wspiera całkiem sporo. Co ciekawe, nawet
grafika się przyznaje do dekodowania dźwięku :) Tyle że dalej nie wiem
jak w danym momencie dźwięk jest dekodowany i jak to zmienić na życzenie.

***@jacek-M19:~$ cat /proc/asound/card[0-9]/{id,codec*} | grep -i
"codec\|bits\|rates"
Codec: Realtek ALC887-VD
rates [0x5f0]: 32000 44100 48000 88200 96000 192000
bits [0xe]: 16 20 24
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
rates [0x5f0]: 32000 44100 48000 88200 96000 192000
bits [0xe]: 16 20 24
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
rates [0x5f0]: 32000 44100 48000 88200 96000 192000
bits [0xe]: 16 20 24
rates [0x560]: 44100 48000 96000 192000
bits [0xe]: 16 20 24
Codec: Nvidia GPU 51 HDMI/DP
rates [0x0]:
bits [0x0]:
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
Zbych
2024-01-27 09:22:24 UTC
Permalink
Post by Jacek
Post by Zbych
cat /proc/asound/card[0-9]/{id,codec*} | grep -i "codec\|bits\|rates"
Jak należało przypuszczać, wspiera całkiem sporo. Co ciekawe, nawet
grafika się przyznaje do dekodowania dźwięku :) Tyle że dalej nie wiem
jak w danym momencie dźwięk jest dekodowany i jak to zmienić na życzenie.
Grafika raczej będzie tylko wysyłać dźwięk do monitora. Wracając do
karty, to teraz musisz ustalić czy używasz pulseaudio czy pipewire jako
serwera dźwięku.

W konfiguracji pulsaudio w /etc/pulse/daemon.conf masz:
default-sample-rate = ......
alternate-sample-rate = ....
avoid-resampling = .....


W przypadku pipewire konfiguracja leży w /usr/share/pipewire/pipewire.conf
ale google podpowiada utworzenie konfiguracji w katalogu domowym:
~/.config/pipewire/pipewire.conf.d/pwrate.conf
i wstawienie:
{
"context.properties": {
"default.clock.rate": 48000,
"default.clock.allowed-rates": [
44100,
48000,
96000,
192000
]
}
}

A potem restart pipewire:
systemctl --user restart pipewire.service pipewire-pulse.socket
Marcin Debowski
2024-01-27 09:32:26 UTC
Permalink
Post by Zbych
Post by Jacek
Post by Zbych
cat /proc/asound/card[0-9]/{id,codec*} | grep -i "codec\|bits\|rates"
Jak należało przypuszczać, wspiera całkiem sporo. Co ciekawe, nawet
grafika się przyznaje do dekodowania dźwięku :) Tyle że dalej nie wiem
jak w danym momencie dźwięk jest dekodowany i jak to zmienić na życzenie.
Grafika raczej będzie tylko wysyłać dźwięk do monitora. Wracając do
Wystarczy np. taki dziabąg i już można dowolnie wykorzystać:
https://allegro.pl/oferta/ekstraktor-hdmi-2-0-toslink-konwerter-arc-5-1-hdcp-12432364215
--
Marcin
Jacek
2024-01-27 12:00:05 UTC
Permalink
Wracając do karty, to teraz musisz ustalić czy używasz pulseaudio czy
pipewire jako serwera dźwięku.
Jeszcze jedna sprawa. W jtdx jako źródło dźwięku można wybrać kilka
predefiniowanych możliwości. Ja używam tej która ma alsa w nazwie :)
,inne możliwości albo nie działają albo działają źle. Więc spodziewałbym
się raczej dociekań w tym kierunku aniżeli pulseaudio czy pipewire.
Zbych
2024-01-27 18:52:39 UTC
Permalink
Post by Jacek
Więc spodziewałbym
się raczej dociekań w tym kierunku aniżeli pulseaudio czy pipewire.
Nie wiem dlaczego się tego spodziewałeś. Nie jestem użytkownikiem tego
programu i nie mam pojęcia czy gada wprost z alsą, czy z serwerem dźwięku.
Inna bajka, to to, że większości programów będzie się tylko wydawało, że
gadają bezpośrednio z alsą a tak naprawdę będą gadać z jej emulatorem w
pulseaudio albo pipewire. Inaczej nie było by możliwe jednoczesne
odtwarzanie/nagrywanie dźwięku przez wiele aplikacji.
Jacek
2024-01-27 12:01:10 UTC
Permalink
Post by Zbych
Post by Jacek
Post by Zbych
cat /proc/asound/card[0-9]/{id,codec*} | grep -i "codec\|bits\|rates"
Jak należało przypuszczać, wspiera całkiem sporo. Co ciekawe, nawet
grafika się przyznaje do dekodowania dźwięku :) Tyle że dalej nie wiem
jak w danym momencie dźwięk jest dekodowany i jak to zmienić na życzenie.
Grafika raczej będzie tylko wysyłać dźwięk do monitora. Wracając do
karty, to teraz musisz ustalić czy używasz pulseaudio czy pipewire jako
serwera dźwięku.
default-sample-rate = ......
alternate-sample-rate = ....
avoid-resampling = .....
W przypadku pipewire konfiguracja leży w /usr/share/pipewire/pipewire.conf
~/.config/pipewire/pipewire.conf.d/pwrate.conf
{
  "context.properties": {
    "default.clock.rate": 48000,
    "default.clock.allowed-rates": [
      44100,
      48000,
      96000,
      192000
    ]
  }
}
systemctl --user restart pipewire.service pipewire-pulse.socket
Mam zarówno /usr/share/pipewire/pipewire.conf jak i
/etc/pulse/daemon.conf (nic na innych lokacjach), to skąd mam wiedzieć
czy ważny jest pulseaudio czy pipewire?
Zbych
2024-01-27 18:45:06 UTC
Permalink
Post by Jacek
Mam zarówno /usr/share/pipewire/pipewire.conf jak i
/etc/pulse/daemon.conf (nic na innych lokacjach), to skąd mam wiedzieć
czy ważny jest pulseaudio czy pipewire?
pactl info | grep "Server Name"
Jacek
2024-01-27 19:16:10 UTC
Permalink
Post by Zbych
Post by Jacek
Mam zarówno /usr/share/pipewire/pipewire.conf jak i
/etc/pulse/daemon.conf (nic na innych lokacjach), to skąd mam wiedzieć
czy ważny jest pulseaudio czy pipewire?
pactl info | grep "Server Name"
***@jacek-M19:~$ pactl info
Ciąg serwera: /run/user/1000/pulse/native
Wersja protokołu biblioteki: 35
Wersja protokołu serwera: 35
Czy jest lokalny: tak
Indeks klienta: 14
Rozmiar kafla: 65472
Nazwa użytkownika: jacek
Nazwa komputera: jacek-M19
Nazwa serwera: pulseaudio
Wersja serwera: 15.99.1
Domyślne określenie próbki: s16le 2 k 44100 Hz
Domyślna mapa kanałów: front-left,front-right
Domyślny odpływ: alsa_output.pci-0000_00_1b.0.analog-stereo
Domyślne źródło:
alsa_input.usb-A4_TECH_Full_HD_1080P_PC_Camera_MI1320_SOC-02.analog-stereo
Ciasteczko: 6845:59c3

Czyli ewent. sterowanie parametrami dźwięku należało by dokonywać w
/etc/pulse/daemon.conf. I w tej chwili karta działa 44100/16, dobrze to
widzę?
Ale w daemon.conf mam:

; default-sample-format = s24le
; default-sample-rate = 48000
; alternate-sample-rate = 44100

I to się nie zgadza z tym co podaje pactl.
Zbych
2024-01-27 19:20:27 UTC
Permalink
Post by Jacek
Czyli ewent. sterowanie parametrami dźwięku należało by dokonywać w
/etc/pulse/daemon.conf. I w tej chwili karta działa 44100/16, dobrze to
widzę?
; default-sample-format = s24le
; default-sample-rate = 48000
; alternate-sample-rate = 44100
I to się nie zgadza z tym co podaje pactl.
Zauważyłeś, że linie zaczynają się od średników? Są zakomentowane.
Jacek
2024-01-27 19:26:16 UTC
Permalink
Post by Zbych
Post by Jacek
Czyli ewent. sterowanie parametrami dźwięku należało by dokonywać w
/etc/pulse/daemon.conf. I w tej chwili karta działa 44100/16, dobrze
to widzę?
; default-sample-format = s24le
; default-sample-rate = 48000
; alternate-sample-rate = 44100
I to się nie zgadza z tym co podaje pactl.
Zauważyłeś, że linie zaczynają się od średników? Są zakomentowane.
Myślałem że zakomentowane są takie:
#; default-sample-format = s16le
Ale skoro te od średników też są zakomentowane, no to w tym pliku
wszystko od góry do dołu jest zakomentowane. Zatem karta pobiera
skądinąd swoje nastawy. A z wyniku pactl wychodzi że właśnie powinna
brać nastawy z tego pliku. Konfuzja :)
Zbych
2024-01-27 19:29:40 UTC
Permalink
Post by Jacek
Ale skoro te od średników też są zakomentowane, no to w tym pliku
wszystko od góry do dołu jest zakomentowane. Zatem karta pobiera
skądinąd swoje nastawy. A z wyniku pactl wychodzi że właśnie powinna
brać nastawy z tego pliku. Konfuzja :)
Po prostu je odkomentuj i uruchom ponownie komputer
Jacek
2024-01-27 21:18:06 UTC
Permalink
Post by Zbych
Post by Jacek
Ale skoro te od średników też są zakomentowane, no to w tym pliku
wszystko od góry do dołu jest zakomentowane. Zatem karta pobiera
skądinąd swoje nastawy. A z wyniku pactl wychodzi że właśnie powinna
brać nastawy z tego pliku. Konfuzja :)
Po prostu je odkomentuj i uruchom ponownie komputer
Plik daemon.conf jest tylko do odczytu, pewnie nie bez przyczyny :) No,
ale zrobiłem jak mówisz, odkomentowałem 48/16, zrestartowałem i
rzeczywiście ponowny odczyt z pactl pokazuje że zmienił się wiersz:
Domyślne określenie próbki: s16le 2 k 48000 Hz.
Sprawdzę czy to w czymkolwiek zmieni pracę jtdx-a. Dzięki za pomoc.
Jacek
2024-01-29 11:34:28 UTC
Permalink
Post by Jacek
Sprawdzę czy to w czymkolwiek zmieni pracę jtdx-a. Dzięki za pomoc.
Żeby zakończyć wątek - zmiana parametrów j.w. na 48/16 tylko pogorszyło
dekodowanie w jtdx :)

Kontynuuj czytanie narkive:
Loading...