Leszakadó (?) hangkártya eszköz

 ( TCH | 2019. március 21., csütörtök - 15:08 )

Nemrégiben volt pár köröm azzal, hogy hogy lehet a PIPO X8-on Linux alatt minél egyszerűbben és olcsóbban hangot csiholni a gépből; a győztes tippet végül fdeyso kolléga adta (ezúton thx neki még egyszer), a linkelt hangkártya-és-hangszóró-egyben eszköz megjött és megy is Linux alatt, de nem 100% még.

A hibajelenség a következő: van egy raklap (44100 Hz-es, 16-bites, mono) wav-unk, amiket le szeretnék játszatni aplay-jel. Azonban ezek egy része egyszerűen leszakítja a hangkártyát (nem tudok hirtelen jobb szót rá). A jelenség reprodukálható, mindig ugyanazok működnek és mindig ugyanazok nem. Néztem hosszt és méretet, de semmi összefüggés nem volt a leszakadás és ezek közt. Megpróbáltam sox-szal átkonvertálni a hangokat 44100.16-ról 22050.8-ra, de nem hozott változást: ugyanazok a hangok akasztották le, átkonvertálás után is.

Az aplay kimenete egy nem működő wav-nál:

$ aplay hangok/szemelyes_info.wav
Playing WAVE 'hangok/szemelyes_info.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
underrun!!! (at least 469.723 ms long)
aplay: xrun:1602: xrun: prepare error: Broken pipe

Megpróbáltam neki buffer-time, ill. buffer-size értékeket állítgatni, de teljesen eredménytelen volt, illetve annyi változás történt, hogy az underrun és broken pipe üzenetek eltűntek, de a hanglejátszás ugyanúgy megszakadt.

Megpróbáltam mpv-vel is lejátszani:

$ mpv hangok/szemelyes_info.wav
Playing: hangok/szemelyes_info.wav
(+) Audio --aid=1 (pcm_s16le)
Failed to create secure directory (/home/tesztuser/.config/pulse): Permission denied
AO: [alsa] 48000Hz mono 1ch s16
A: 00:00:00 / 00:00:01 (16%)
[ao/alsa] Device lost, trying to recover...
[ao/alsa] pcm prepare error: File descriptor in bad state
[ao/alsa] pcm prepare error: File descriptor in bad state
[ao/alsa] pcm close error: No such device
Failed to create secure directory (/home/tesztuser/.config/pulse): Permission denied
ALSA lib pcm_hw.c:1713:(_snd_pcm_hw_open) Invalid value for card
[ao/alsa] Playback open error: No such file or directory
[ao/oss] Can't open audio device /dev/dsp: No such file or directory
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
[ao/jack] cannot open server
Failed to create secure directory (/home/tesztuser/.config/pulse): Permission denied
ALSA lib pcm_hw.c:1713:(_snd_pcm_hw_open) Invalid value for card
ALSA lib pcm_hw.c:1713:(_snd_pcm_hw_open) Invalid value for card
couldn't open play stream: No such file or directory
[ao/sndio] can't open sndio default
[ao] Failed to initialize audio driver 'sndio'
Could not open/initialize audio device -> no sound.
Audio: no audio
: 00:00:00 / 00:00:01 (17%)

Exiting... (Interrupted by error)

Valaki találkozott már ilyennel? Esetleg valakinek van valami ötlete, hogy mi lehet a baj?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Elég sok program képtelen mono hangot lejátszani. Ebbe az irányba keresgélj.
Ez csak egy ötlet, ami lehet téves is.

Dehát a hangok kb. felét lejáttsza az aplay és mind mono... Azonfelül az mpv ugyanezt csinálja.

orulok, hogy nalad is mukodik, amit en rendeltem az tolem most jo messze van, de a "hibas" hangfileokat ha megosztod velunk, lehet valaki kiszurja bennuk a hibat, vagy mas eszkozzel is hibat produkal

Hát itt az egyik, amelyik rossz: http://oscomp.hu/depot/lange.wav

Kicsit sok ott a hibaüzenet. Csak egy works for me-t tudok mondani. 5.0.3-as kernellel, 12.2-es pulseaudio-val, 1.1.8-as alsa-lib-bel megy hiba nélkül. Próbáltam az aplay (alsa 1.1.8), play (sox 14.4.2.0), mpv 0.29.1, ffplay (ffmpeg 4.0.3), vlc 3.0.6, paplay (pulseaudio 12.2), parole 1.0.1 parancsokkal, de mindegyik hibátlanul lejátszotta.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ezzel a hangkártyával?

Asztali gépen nekem is megy; az egész topic arról szólt, hogy azzal a hangkártyával nem tudom lejátszatni az adott wav-okat. (Ez egyébként egy OOB Devuan 2, 4.9-es kernel, 1.1.3-as ALSA. A pulse nincs felrakva, de nem is kell, mert az aplay az ALSA-ra támaszkodik.)

Amivel nem boldogul, azt mindjárt indításkor köpi ki, vagy valamennyit lejátszik belőle?

Utóbbi. Pár tized - esetleg század - másodpercig megy a hang, aztán fail.

Akkor annak kellene utánajárni, hogy az adott "breakpointok" közvetlen közelében mi a közös.
Azt sem tartom kizárhatónak, hogy bizonyos helyzetekben akkorára nőhet a pillanatnyi tápigény, hogy azért esik le a buszról

Fú, de tudsz. :)))
Levettem a hangerőt 85%-ra és meggyógyult az összes hang. Big thx!

Ez azért durva hiba volt!

Mármint kinek a részéről?

A kicikinaiak reszeről, nalunk a tavolsag miatt egy aktiv tapos usb hub-ban van, ami tud 2A el tölteni, nem gondoltam, volna, hogy ez segit....

Hát én se... Viszont Ákos (a főnököm), mikor mondtam neki, hogy ezt ki nem fogja találni, hogy mi volt a megoldás, akkor kb. 10 másodperc találgatás után eljutott a jelszintig... Mondom, de jó vagy, ez két napja miért nem jutott eszedbe? :D

Ákos főnököd olvassa a HUP-ot ezek szerint :-)

"Mert értek a kutyákhoz."

Azt mondta volna. :)

Gondoltam rá, akartam is írni, de munkahelyen nem HUP-ozok jellemzően. Ott vált gyanússá, amikor írtad, hogy alacsonyabb mintavételi frekvencia esetén is csinálja. A file teljesen más, de a dinamika profilja lényegében azonos, így a terhelés miatti brown out reset kapcsán detach lesz, s megáll az élet.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Mindig tanul az ember. Így utólag persze már logikus, de én még nem futottam bele olyan hangkártyába, amit szoftveresen le lehetett annyira terhelni, hogy leszakadjon, így ez nem valószínű, hogy eszembe jutott volna. Max. ha kínomban elkezdek neki véletlenszerűen hangokat generálni (nem fehér zajra gondoltam) és kiszúrom, hogy a hangosabbak akasztják le, de ez lutri.

Na jó, de itt a hangvégfokon keresztül a hangszóró táplálkozik abból az 5 V, 500 mA-ből, ami van. A kábelek ellenállása miatt rosszabb a helyzet. Hatásfokkal, mindennel együtt van 2.5 W-unk. Ezért szoktam kínosan feszengeni a boltban, amikor látok csak USB 2.0-ról működő PC-s hangfalakat, és mindenféle 6 W, meg még ennél is gorombább számok vannak ráírva.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ez még rendben is lenne. Olyan, mint a vásári óriáskígyó: A fejétől a farkáig öt méter, a farkától a fejéig hét méter, összesen tizenhét méter.

Én csak arra vagyok kíváncsi, hogy zoftveresen hogyan lehet megterhelni? Mongyuk a 20dkg-os zoftver súly helyett 1kg-os zoftver súly rárakásával, vagy másként? Mert az szabálytalan! ;)

A valóságban meg a hangcsipek 0dB-hez tartozó kimenő feszültsége pontosan definiált. Ehhez még tudjuk a terhelést is. Ennek alapján még a süket is ki tudja számolni a szükséges erősítést, mondjuk 130% kimenő teljesítményhez. Ekkor az a szerencse ér minket, hogy még ha megszakadunk sem lehet az előre kitaláltnál nagyobb teljesítményt kiadni.

Tudományosan összegezve a fenti ismereteket: Zoftveresen nem lehet kiakasztani egy hangkártyát, hanem a szükségesnél kisebb a tápegység.
De ez már korábban is kiderült.

Ha ezt úgy méreteznék, hogy full range-re vezérelve vegyen fel mondjuk 2.4 W-ot, akkor nyafognának a vevők, hogy mi ez a halk, suttogó bigyó ekkora dobozban.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Igazad van, de én - mint az már kiderült korábban - nem vagyok annyira otthon az analóg elektrotechnikában; ha szembekerülök egy ilyen jelenséggel, rögtön a szoftverben fogom keresni a hibát, nem a hangszóróban. A mostani Linuxokat ismerve nem is ok nélkül. :( (No flame, csak ezen a nyamvadt PIPO-n is úgy kellett összeszenvedni az egészet, miközben a ringyóztíz meg gond nélkül viszi az összes HW-t. Csak hát arra meg már képtelenség bármit építeni; az esetleges áramszünet után a bootba esetlegesen (1:5) belefagyó Linux még mindig jobb, mint a gépet ütemezett feladatból is letiltott frissítések ellenére is juszt lefrissítő és újraindító, rossz esetben tönkreverő windózápdét...)

Amúgy beszéltem én már erről.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ezen kár felhúzni magadat. Ráadásul nekünk úgy is jó, ha halkabban szól, mert csak időnként kell lejátszania egy rövid, digitalizált beszédet és ennyi; ez egy munkaidőterminálba kellett, nem zenét hallgatni.

Csak tippeltem, nem képzeltem, hogy ennyivel megúszod:)
Arra gondoltam, hogy spórolós alapon trehányul tervezhetik az ilyesmibe a tartalékot, szinusszal kipróbálva elég is lesz, aztán bejön valami dúsabb spektrum, aztán kihúzza a konnektorból..

Nem baj, bejött. :)
Hát ehhez én nem nagyon értek, de ha az a tipp, hogy a tápigény nagy, akkor nyilván az első, hogy csökkentem a szükséges teljesítményt, azaz leveszem a hangerőt. Sic erat. :)

+1

Grat! :)


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE