USB zvuková karta

Založil okam, 11. 01. 2020, 11:07:13

Předchozí téma - Další téma

okam

Dobrý den, prosím o pomoc se zvukovou kartou.
Systém Debian Buster, USB zvuková karta CM106 nefunguje vstup line-in. Pátral jsem na webu, ale řešení jsem nenašel.
Snímek obrazovky s nastavením karty?!:

a tady je část výpisu po zadání příkazu list card
* index: 5
        name: <alsa_input.usb-0d8c_USB_Sound_Device-00.analog-stereo>
        driver: <module-alsa-card.c>
        flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: SUSPENDED
        suspend cause: IDLE
        priority: 9049
        volume: front-left: 54902 /  84% / -4,61 dB,   front-right: 54902 /  84% / -4,61 dB
                balance 0,00
        base volume: 42869 /  65% / -11,06 dB
        volume steps: 65537
        muted: no
        current latency: 0,00 ms
        max rewind: 0 KiB
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 0
        linked by: 0
        configured latency: 0,00 ms; range is 0,50 .. 2000,00 ms
        card: 2 <alsa_card.usb-0d8c_USB_Sound_Device-00>
        module: 30
        properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "USB Audio"
                alsa.id = "USB Audio"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "1"
                alsa.card_name = "USB Sound Device"
                alsa.long_card_name = "USB Sound Device at usb-0000:00:14.0-2, full speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:14.0-usb-0:2:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/sound/card1"
                udev.id = "usb-0d8c_USB_Sound_Device-00"
                device.bus = "usb"
                device.vendor.id = "0d8c"
                device.vendor.name = "C-Media Electronics, Inc."
                device.product.id = "0102"
                device.product.name = "CM106 Like Sound Device"
                device.serial = "0d8c_USB_Sound_Device"
                device.string = "front:1"
                device.buffering.buffer_size = "352800"
                device.buffering.fragment_size = "176400"
                device.access_mode = "mmap+timer"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analogové stereo"
                device.description = "CM106 Like Sound Device Analogové stereo"
                alsa.mixer_name = "USB Mixer"
                alsa.components = "USB0d8c:0102"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        ports:
                analog-input-mic: Mikrofon (priority 8700, latency offset 0 usec, available: unknown)
                        properties:
                                device.icon_name = "audio-input-microphone"
                analog-input-linein: Linkový vstup (priority 8100, latency offset 0 usec, available: unknown)
                        properties:

        active port: <analog-input-linein>

vstup je ve stavu SUSPEND  nevím co s tím. Ten výpis z list card je z informací, které jsem našel na webu. Stejný dotaz se vyskytoval dvakrát. Jeden zůstal bez odpovědi v druhém stačilo přeinstalovat pulseaudio a vstup line-in začal fungovat. To jsem také udělal, ale bez výsledku. Vstup "analog-input-mic" funguje, ale "analog-input-linein" ne. Nevím si rady, pomůže prosím někdo co dělat?
děkuji

okam

nevložil se snímek obrazovky

Roman Horník

Napadlo mě, co se takhle kouknout do alsamixeru, jestli není linkovej vstup pouze ztlumenej?
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

okam


jak se vkládají obrázky?
V alsamixeru ztlumený není.

Roman Horník

Obrázek se musí odeslat na k tomu určenej server, např. https://cs.imgbb.com - tam se po odeslání zobrazí URL, který dáš mezi tagy [img] a [/img]
Teď jsem se na problémy s touhle zvukovkou díval a tam kupodivu radili to samý, co já. Jestli chceš, můžu se na to kouknout vzdáleně přes TeamViewer.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

okam

#5
Vážím si tvoji pomoci, signál na vstupu už je. Podruhé jsem instaloval pulseaudio. V alsamixeru jsem měl toto od samého začátku:

obrázek je tu, ale mám ještě jednu potíž, viz:


ve spodním okně (Test) je výstupní signál z USB karty a ve zbývajících horních (test.in.r/test.in.l) je signál snímaný na vstupu line in. Zaráží mě obrovské zpoždění signálu cca 127ms na vstupu line-in USB karty!! Dá se s tím něco dělat?
Co jsem se dočetl, tak zpoždění na zvukové kartě např. SoudBlaster stolního počítače je cca 1 až 2 ms. Tomu převodníku v USB kartě trvá tak dlouho, než to "spočítá"?

Roman Horník

#6
Jestli má velkej vnitřní buffer, asi s tím nic nepůjde, přesto koukni na:
pactl list sinks | grep -e Cíl -e Latence -e Popis -e Specifikace

Zobrazí zvukový zařízení a jejich latence, nastavený a reálný.
Latence, pokud je kapacita bufferu konstantní, by šla zkrátit změnou vzorkovací frekvence na vyšší (např. 96kHz).
Samotný nastavení je v /etc/pulse/daemon.conf:
Odkomentuj (odstraň středník) a změň následující hodnoty řádků:
default-fragments = 2
default-fragment-size-msec = 1

... tím snížíš latenci PA na minimum
default-fragments s hodnotou nižší jak 2 zneprovozní PA. Kdyby se zvuk sekal, jednu z hodnot zvyš. Platí, že jedna hodnota násobí druhou, tj. tady 2×1ms=2ms, výchozí je, tuším, 5x25ms=125ms.

A tímhle nastavíš vzorkovačku (Hz):
default-sample-rate = 96000
alternate-sample-rate = 48000


Minimálně 48kHz fungovat bude, lepší jak 44.1kHz, ale jestli to pojede na 96kHz, těžko říct. Ale můžeš zkusit 64kHz, 88.2kHz... obávám se ale, že vždycky tam nějaká latence bude. Třeba u mejch BT sluchátek se pod 51726μs nedostanu.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

okam

Tady je původní /etc/pulse/daemon.conf:
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out.  Use either ; or # for
## commenting.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

; resample-method = speex-float-1
; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; enable-lfe-remixing = no
; lfe-crossover-freq = 0

; flat-volumes = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right

; default-fragments = 4
; default-fragment-size-msec = 25

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0


Po přepisu hodnot napíšu

okam

#8
Upravený soubor:
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out.  Use either ; or # for
## commenting.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

; resample-method = speex-float-1
; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; enable-lfe-remixing = no
; lfe-crossover-freq = 0

; flat-volumes = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

; default-sample-format = s16le
; default-sample-rate = 48000
; alternate-sample-rate = 64000
; default-sample-channels = 2
; default-channel-map = front-left,front-right

; default-fragments = 2
; default-fragment-size-msec = 1

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0


a tady snímek obrazovky se spuštěným programem. Jedná se o Speaker Workshop 1.1.1 určený pro Win spuštěný ve Wine. Zdá se, že se nic nezměnilo.



Obrázky nefungují?



Fungují :)

Roman Horník

#9
Další latenci tam může dělat WINE. A to, pokud si dobře vzpomínám, používá přímo ALSu, ne PulseAudio. Ale spíš to vypadá na vlastnost zvukovky.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

okam

Jsem zpět, něco jsem nastudoval a potřeboval bych poradit a pomoct.
Jedním z řešení vysoké latence USB zvukové karty je specializovaná distribuce linuxu zaměřená na zpracování zvuku. Touto cestou se vydat nechci.
Další možností je instalace jádra "linux-image-rt-amd64" (případně dalších doplňků), které pracuje v tzv. "reálném čase" a zvukového serveru JACK. Tento server se používá spolu s "rt" jádrem u aplikací na zpracování zvuku a má významně nižší latenci oproti Pulseaudio.
A teď k té pomoci. Stačí instalovat příkazem apt-get install linux-image-rt-amd64 a nainstaluje se rt jádro, které bude třeba vybrat při zavádění systému? Nebo bude aplikován na stávající jádro patch a jádro bude mít vlastnosti "rt" jádra?
Další je instalace zvukového serveru JACK. Tady bych si to představoval tak, že budu mít možnost u aplikací na zpracování zvuku v nastavení aplikace zvolit mezi zvukovým serverem Pulseaudio a JACK. Opět stačí pouze instalovat "jackd2"? Případně další balíčky?

Děkuji za odpověď

Roman Horník

Jo, takhle se instalujou. ALE u třech ze tří strojů mi RT jádro po chvíli zamrzlo. Důvod neznám. PulseAudio Ti už v RT prioritě pravděpodobně běží, takže bych to jádrem neřešil. Jestli zpoždění dělá samotná USB zvukovka, jako že to je víc než pravděpodobný, tak Ti nepomůže ani svěcená voda (leda stroj času). Nulovou latenci ali nikdy nemůžeš mít, už proto, že nějakou vytváří sama zvukovka, třeba při kompresi zvukových dat.
Ještě můžeš zkusit přidat řádky:
tsched = no
fixed_latency_range = yes

k
default-fragments = 2
default-fragment-size-msec = 1

v /etc/pulse/daemon.conf - tyhle dva řádky máš stále zakomentovaný! Odstraň u nich středníky na začátku, jinak to nemůže mít žádnej efekt!!!
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

okam

#12
Jasně středníky! a já pořád křížky, moje chyba.
Po změně souboru toto:


# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out.  Use either ; or # for
## commenting.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

; resample-method = speex-float-1
; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; enable-lfe-remixing = no
; lfe-crossover-freq = 0

; flat-volumes = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

; default-sample-format = s16le
; default-sample-rate = 48000
; alternate-sample-rate = 88200
; default-sample-channels = 2
; default-channel-map = front-left,front-right

tsched = no
fixed_latency_range = yes
default-fragments = 2
default-fragment-size-msec = 1

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0


takže to vrátím zpět :(
Zvuk nefunguje.

Roman Horník

Po spuštění pulseaudio by se mohla zobrazit chyba. Taky může bejt ve /var/log (messages, syslog,...). Zkus zvednout default-fragment-size-msec na 10.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

okam

Zvuk nenaběhne v žádné z variant po odkomentování řádku
tsched = no
fixed_latency_range = yes
default-fragments = 2 nebo (4)
default-fragment-size-msec = 1 nebo (10) nebo (25)

ani toto:
; tsched = no
; fixed_latency_range = yes
default-fragments = 2 nebo (4)
default-fragment-size-msec = 1 nebo (10) nebo (25)