[MEGOLDVA] Nyamvadt hang má' megin'

Fórumok

Üdv!

Szokásos csomagfrissítés, emberi beszéd megint nincs többé. Ez nem először fordul elő, de most plusz nehezítés, hogy semmilyen korábbi megoldás sem javította meg. Szóval a hang tökéletes, hangkártya mod betöltve, amixer látja, stb. szól minden jól, kivéve az emberi beszédet, na az nem van.

Próbáltam:
1. /var/lib/alsa/asound.state visszaállítása egy korábban jól működő konfigra, majd alsactl restore
2. kínomban már telepítettem, majd eltávolítottam a pulseaudio-t is (korábban, volt, hogy ez segített), de hiába, továbbra sincs emberi beszéd, csak zene és effektek
3. néztem a beállításokban, próbáltam a dbvalue-t állítani, hogy ne legyen túlvezérelve, semmi.

A jelenlegi konfigom:

state.Generic_1 {
	control.1 {
		iface MIXER
		name 'Master Playback Volume'
		value.0 87
		value.1 87
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 87'
			dbmin -6525
			dbmax 0
			dbvalue.0 -2080
			dbvalue.1 -2080
		}
	}
	control.2 {
		iface MIXER
		name 'Master Playback Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.3 {
		iface MIXER
		name 'Capture Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 63'
			dbmin -1725
			dbmax 3000
			dbvalue.0 -1725
			dbvalue.1 -1725
		}
	}
	control.4 {
		iface MIXER
		name 'Capture Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.5 {
		iface MIXER
		name 'Mic Boost Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 3'
			dbmin 0
			dbmax 3000
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.6 {
		iface MIXER
		name 'Internal Mic Boost Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 3'
			dbmin 0
			dbmax 3000
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.7 {
		iface CARD
		name 'Mic Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.8 {
		iface CARD
		name 'Internal Mic Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.9 {
		iface CARD
		name 'Front Headphone Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.10 {
		iface PCM
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.11 {
		iface PCM
		name 'Capture Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.12 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 255
		value.1 255
		comment {
			access 'read write user'
			type INTEGER
			count 2
			range '0 - 255'
			tlv '0000000100000008ffffec1400000014'
			dbmin -5100
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.13 {
		iface MIXER
		name 'Digital Capture Volume'
		value.0 120
		value.1 120
		comment {
			access 'read write user'
			type INTEGER
			count 2
			range '0 - 120'
			tlv '0000000100000008fffff44800000032'
			dbmin -3000
			dbmax 3000
			dbvalue.0 3000
			dbvalue.1 3000
		}
	}
	control.14 {
		iface MIXER
		name Pre-Amp
		value.0 1
		value.1 1
		comment {
			access 'read write user'
			type INTEGER
			count 2
			range '0 - 5'
			tlv '0000000100000008fffffe0c000001f4'
			dbmin -500
			dbmax 2000
			dbvalue.0 0
			dbvalue.1 0
		}
	}
}
state.Generic {
	control.1 {
		iface CARD
		name 'HDMI/DP,pcm=3 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.2 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.3 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.4 {
		iface MIXER
		name 'IEC958 Playback Default'
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.5 {
		iface MIXER
		name 'IEC958 Playback Switch'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.6 {
		iface PCM
		device 3
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.7 {
		iface CARD
		name 'HDMI/DP,pcm=7 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.8 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 1
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.9 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 1
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.10 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 1
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.11 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 1
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.12 {
		iface PCM
		device 7
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.13 {
		iface CARD
		name 'HDMI/DP,pcm=8 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.14 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 2
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.15 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 2
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.16 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 2
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.17 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 2
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.18 {
		iface PCM
		device 8
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.19 {
		iface CARD
		name 'HDMI/DP,pcm=9 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.20 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 3
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.21 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 3
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.22 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 3
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.23 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 3
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.24 {
		iface PCM
		device 9
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.25 {
		iface PCM
		device 3
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.26 {
		iface PCM
		device 7
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.27 {
		iface PCM
		device 8
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
	control.28 {
		iface PCM
		device 9
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		value.6 0
		value.7 0
		comment {
			access 'read write'
			type INTEGER
			count 8
			range '0 - 36'
		}
	}
}

Bárkinek bármi ötlete, mit nézzek meg, vagy próbáljak? Rohadtul idegesítő, hogy frissítés után random elkúródik mindig valami. Ez a minden hang jó, csak emberi beszéd nincs sem először jött elő...

Nagyon, nagyon hálás lennék bármiféle javalatért, mert a gyerekekkel néznénk karácsonyi meséket, és emiatt most nem tudunk, úgyhogy kész katasztrófa. Előre is köszönöm!

Nem az ALSA volt a ludas, hanem a libasound.

Hozzászólások

De mi a forrása az emberi beszédnek illetve a zenének? Ha megnézel yt-os videót amiben van zene meg beszéd is, akkor a zenét hallod a beszédet meg nem? Nehéz elképzelni!

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

Az a jack nem véletlenül egy kombinált fejhallgató-mikrofon ki-bemenet?

Ha igen, annak kétféle inkompatibilis bekötése lehet.

A régi (aka Nokiás), a dugó hegyétől indulva: bal-jobb-mikrofon-föld.

A másik, amit később kb mindenki használt: bal-jobb-föld-mikrofon.

Elméletileg ha sima sztereo dugót dugsz bele, akkor rövidrezárja a mikrofont a földdel mindkét bekötés esetén. A mikrofonbemenet nagyimpedanciás, annak mindegy; a sztereo hangkimenet meg normálisan működni fog. Viszont ha nem érintkezik jól, akkor lehet, hogy a bal és jobbcsatorna földjének jobb híján pont mikrofonbemenetet próbálja használni. Mivel az nagyimpedanciás, kb mintha ott sem lenne. A közös földpont lebegve marad, így a jobb-bal csatorna közötti különbségi jelet fogod hallani. A beszéd az esetek többségében középre van mixelve, ezért a különbségi jelben alig-alig, legfeljebb valami távoli visszhangként hallatszik valami belőle.

Régóta vágyok én, az androidok mezonkincsére már!

A beszéd az esetek többségében középre van mixelve, ezért a különbségi jelben alig-alig, legfeljebb valami távoli visszhangként hallatszik valami belőle.

Pontosan ez a jelenség, amit leírtál, annyi kivétellel, hogy nem hw okozta (a jackes leírásod nagyon tanulságos, kösz!), hanem valamilyen obskurus libasound konfig (tippre félrekonfolódott a visszhangszűrő vagy valami ilyesmi lehet a háttérben).

Amúgy írd már le lécci mi ez a gép. Egy desktop, egy notebook, egy tablet, esetleg egy raspberrypi vagy hasonló SBC? Mi a típusa?

És mit választasz kimenetnek? A HDMI-t? És utána a monitor alakítja analóggá? Vagy teljesen máshogy van?

Enélkül az alsa konfigot is elég nehéz értelmezni.

Régóta vágyok én, az androidok mezonkincsére már!

Az emberi beszéd alatt mit értünk, milyen bemeneti forrást?

Miről beszélsz? Bármi próbál meg emberi beszédet lejátszani, az nem megy. Mint említettem volt, se játék, se filmjetszó, se semmi.

Mert nem hinném, hogy magától betolna egy beszéd szűrőt a hangrendszer

Pedig pontosan így fest.

hacsak nincs ilyen plugin.

Tudtommal nincs, legalábbis én biztos nem raktam fel ilyesmit. Most direkt leszedtem az alsa-plugins nevű csomagot, semmi változás. Lsmod kimenetben sincs semmi gyanús. Mire keressek?

>Bármi próbál meg emberi beszédet lejátszani, az nem megy.

Ez elég hihetetlen, főleg ha nincs valami plugin/szűrő bekapcsolva... Lévén az a frekitartomány kiesése más hangoknál is eléggé hallható lenne.

Egy live rendszert próbálj ki légy szíves, hogy szűkítsük a kört, mert lehet tényleg a fizikai hardware vagy setup kattant meg valahol.

Viszont ha live rendszer alatt jó, akkor lehet onnan kimásolni a működő beállításokat, vagy, ráhúzni a live rendszerre a telepített rendszer hangbeállításait, és fülelni mikor mászik el.

De most akkor Live rendszer, meg a másik gépről átmásolás nem ugyan az. Miért kevered? Bootolj be USB-ről valamit pl. Ubuntut és csekkold le hangot! Jó lenne eljutni oda, h legalabb sikerüljön valahogy produkálni a beszédhangot az adott hardveren! Értem h korábbán működött vele, de most nem működik. 

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

Ezt én se tudom elképzelni azóta sem. Nyitott pedig pár hónapja egy ugyanilyen topikot, ugyanezzel a hibajelenséggel, én már akkor is tanácstalanul álltam előtte. Emlékeim szerint valami fázisgond volt, de nekem még akkor is hihetetlennek tűnik, hogy akkor zene legyen, de csak a beszédhang hibáddzon. Egyszerűen én még nem pipáltam ilyet, pedig a PC-s ipart kb. 35 éve nyomom, a hangkártyás részét 30 éve. Semelyik OS alatt nem láttam ilyet, hogy ilyen furcsa hibája legyen a hangnak, hogy csak emberi beszéd ne hallatsszon.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

a beszéd sokszor középről jön, mint a mono. A hangszerek meg sokszor el vannak tolva jobbra, ballra kicsit.

Így ha valami furcsa térhangzás vagy más bug miatt a stereo egyik fele átfordul (vagy fázist késik), akkor kioltja a középen lévő dolgokat. De ahogy látom ezt írták neki múltkor is.

Vagy simán rossz a jack aljzat vagy a füles és összezár olyan pólusokat, amit nem kéne.

Az is okozhat furcsaságokat, ha a headset kimenetre nem hozzá való kimenet + mikrofon y kábelt dug be. Van több szabvány is és rossz y kábellel is hasonló a hatás, a jobb és bal csatornát összezárja.

Mondjuk az lehet, hogy valami hardveres vagy szoftveres bug miatt a bal és a jobb csatorna kivonódik egymásból, így ami monó a forrásban, az kioltódik, marad a zene, mint egy beépített karaoke filter...

Biztos, hogy nem hardveres, mert a frissítés előtt még jó volt. 1000%-ig biztos vagyok benne, hogy az alsa csomag frissítése állított el valamit. És egyébként is, volt már ilyen korábban is (és azelőtt, meg azóta is jó volt, szóval nem hardver).

Ami a legbosszantóbb, hogy van egy másik ugyanilyen gépem is, ugyanaz az alaplap, ugyanaz a hangkártya, ugyanaz az oprendszerverzió, ugyanaz a Linux kernel verzió, ugyanaz a kernel modul, fél óra eltéréssel ugyanakkor van frissítve, minden ugyanaz, és az meg mindig működik frissítés után is. Az egyetlen kólönbség, hogy abban csak egy kis tárhely van, nem férnek rá a filmek...

Szerintem is az lehet, hogy kioltódnak a csatornák, bármi ötlet, mit állítsak, hogy megjavuljon? Ezen a ponton nem érdekel, ha kézzel kell a hexa számokat javítanom vagy telepíteni kell valamit, bármi megoldás jöhet! (Próbáltam átmásolni a másik, jól működő gépről az asound.conf-ot, nem segített)

Másik kábel: próbáltam, nem az a gond.

Másik hw konfigról most direkt MINDENT átmásoltam: /etc/alsa, /usr/share/alsa, /var/lib/alsa. Előtte persze töröltem ezeket a könyvtárakat, nehogy plusz fájl legyen bennük. Az /usr/bin/alsactl-t pedig felülcsaptam az /usr/bin/true-val, hogy mentésnél ne írja felül a konfigot, reboot, eredeti alsactl visszarak, majd kézzel alsactl restore. Még ez sem segített.

A csomaglista és az lsmod kimenet mindkét gépen csont ugyanaz, ugyanazok a csomagok, ugyanazok a kernel modulok, az összes konfigurációs fájl is ugyanaz, és az amixer kimenete is ugyanaz.

extra/alsa-firmware 1.2.4-3 [installed]
extra/alsa-lib 1.2.10-2 [installed]
extra/alsa-plugins 1:1.2.7.1-2 [installed]
extra/alsa-topology-conf 1.2.5.1-3 [installed]
extra/alsa-ucm-conf 1.2.10-2 [installed]
extra/alsa-utils 1.2.10-1 [installed]
multilib/lib32-alsa-lib 1.2.10-2 [installed]
multilib/lib32-alsa-plugins 1.2.7.1-2 [installed]
extra/libpulse 16.1-7 [installed]

illetve

lsmod|grep snd
snd_sof_amd_vangogh    16384  0
snd_sof_amd_rembrandt    16384  0
snd_sof_amd_renoir     16384  0
snd_sof_amd_acp        69632  3 snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_sof_amd_renoir
snd_sof_pci            24576  3 snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_sof_amd_renoir
snd_sof_xtensa_dsp     16384  1 snd_sof_amd_acp
snd_sof               425984  2 snd_sof_amd_acp,snd_sof_pci
snd_hda_codec_realtek   196608  1
snd_sof_utils          16384  1 snd_sof
snd_hda_codec_generic   114688  1 snd_hda_codec_realtek
snd_soc_core          458752  1 snd_sof
snd_hda_codec_hdmi     94208  1
snd_compress           28672  1 snd_soc_core
ac97_bus               12288  1 snd_soc_core
snd_hda_intel          65536  1
snd_pcm_dmaengine      16384  1 snd_soc_core
snd_intel_dspcfg       40960  2 snd_hda_intel,snd_sof
snd_pci_ps             28672  0
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
snd_rpl_pci_acp6x      16384  0
snd_hda_codec         225280  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_acp_pci            12288  0
snd_acp_legacy_common    16384  1 snd_acp_pci
ledtrig_audio          12288  2 snd_hda_codec_generic,asus_wmi
snd_hda_core          151552  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_pci_acp6x          20480  0
snd_hwdep              20480  1 snd_hda_codec
snd_pci_acp5x          16384  0
snd_pcm               204800  12 snd_sof_amd_acp,snd_hda_codec_hdmi,snd_pci_acp6x,snd_hda_intel,snd_hda_codec,snd_sof,snd_compress,snd_soc_core,snd_sof_utils,snd_hda_core,snd_pci_ps,snd_pcm_dmaengine
snd_rn_pci_acp3x       24576  0
snd_acp_config         16384  8 snd_rn_pci_acp3x,snd_pci_acp6x,snd_pci_acp5x,snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_acp_pci,snd_pci_ps,snd_sof_amd_renoir
snd_timer              53248  1 snd_pcm
snd_soc_acpi           16384  2 snd_sof_amd_acp,snd_acp_config
snd                   155648  13 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_sof,snd_timer,snd_compress,snd_soc_core,snd_pcm
snd_pci_acp3x          16384  0
soundcore              16384  1 snd

Ez is pont ugyanaz (a modulok sorrendje itt-ott más, de ugyanazok vannak betöltve).

Simple mixer control 'Master',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [on]
  Front Right: Playback 87 [100%] [0.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 255 [100%] [0.00dB]
  Front Right: Playback 255 [100%] [0.00dB]
Simple mixer control 'Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 63
  Front Left: Capture 0 [0%] [-17.25dB] [on]
  Front Right: Capture 0 [0%] [-17.25dB] [on]
Simple mixer control 'Digital',0
  Capabilities: cvolume
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 120
  Front Left: Capture 60 [50%] [0.00dB]
  Front Right: Capture 60 [50%] [0.00dB]
Simple mixer control 'Internal Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]

Mit nézzek még???

Ilyen hibánál azt is érdemes megnézni, hogy min hallgatod, mert lehet hogy a gépből még jól jön ki, de a kontaktos fülhallgatón, tévén, hangrendszeren már elromlik. Szóval azokat is megvizsgálnám / áramtalanítanám / cserélgetném...

Oké, találtam egy különbséget.

Annál, ahol működik, a /proc/asound/devices fájlban szerepel egy "1: : sequencer" sor, és a /proc/asound/seq mappa nem üres, bár a clients-t leszámítva csak üres fájlok vannak benne;
míg annál a gépnél, ahol rossz, ez a sor hiányzik a devices-ből és a mappa létezik ugyan, de üres, nincs benne egyetlen fájl sem (üresfájlok se).

Mi ez a sequencer, és miért hiányzik az egyik gépen, mikor a konfig ugyanaz? A /lib/modules/*/kernel/sound alatt ugyanazok a modulok szerepelnek "seq"-val a nevükben.

./core/seq
./core/seq/oss
./core/seq/oss/snd-seq-oss.ko.zst
./core/seq/snd-seq-dummy.ko.zst
./core/seq/snd-seq.ko.zst
./core/seq/snd-seq-midi-emul.ko.zst
./core/seq/snd-seq-midi-event.ko.zst
./core/seq/snd-seq-midi.ko.zst
./core/seq/snd-seq-ump-client.ko.zst
./core/seq/snd-seq-virmidi.ko.zst
./core/snd-seq-device.ko.zst

Ebben (sincs) eltérés. Miért töltődik be a sequencer mégis az egyik gépen, míg a másikon nem? És okozhatja ez a problémát?

A tökömbe már! Kézzel betöltöttem az snd-seq-dummy modult (a másikon is be van töltve):

snd_seq_dummy          12288  0
snd_seq               131072  1 snd_seq_dummy
snd_seq_device         16384  1 snd_seq
snd_timer              53248  2 snd_seq,snd_pcm
snd                   155648  15 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_sof,snd_timer,snd_compress,snd_soc_core,snd_pcm

Most már a két /proc/asound is stimmel, de még mindig ugyanaz, nincs emberi hang!

Milyen oprendszert használsz? Linux disztribúció van néhány...

Amúgy meg filmnézéshez elég lenne egy VM-ben futtatott másik oprendszer, ha a hardvered egyébként jó. Kb. 15 perc alatt megvagy, a gyerekek örülnek, a hibát meg majd orvoslod később.

Milyen oprendszert használsz?

Nem tök mindegy, ha egyértelműen az alsa van elkúródva? Az mindenhol ugyanaz. Egyébként Arch.

Amúgy meg filmnézéshez elég lenne egy VM-ben futtatott másik oprendszer

Hogy oldaná már meg ez a problémát??? A VM kiemente is pont ugyanazon az elkúrt alsa modulon megy keresztül! Egyébként van fent Bugbuntu VM-ben, kipróbáltam, hátha, de ugyanaz (nyilván). Teljesen mindegy, mi küldi a hangot az alsa bufferbe, mert a baj az alsa-val van.

Kb. 15 perc alatt megvagy, a gyerekek örülnek, a hibát meg majd orvoslod később.

Átraktam scp-vel a filmet (egy-egy SD vagy max 720p még pont ráfér, csak macera, hogy másolni kell, meg egyszerre csak egy film lehet fent) a jól működőre, azon ment a lejátszás.

A problémát ettől függetlenül MEG KELL oldani. Ha megelégedtem volna ezzel a másolgatós megoldással, nem nyitok topikot!

Az miért oldaná meg a problémát? Nincs mentésem a korábbi alsa konfigról, de nem is számít, mert hiába csapom felül egy jól működő konfiggal, továbbra sem jó.

Egész biztos valami rejtett beállításról van szó, ami nem jelenik meg semmilyen kimenetben. (Biztos van ilyen, konkrétan tudok egyről. Az /etc/modprobe.d-ben például "index=1" paramétert kell megadni, hogy ne a (nemlétező) HDMI-re küldje a kimenetet, hanem a jack-re, viszont ez SEHOL sem jelenik meg, legalábbis én nem láttam semelyik kimenetben.)

nem mindegy, mert archon valsz valami nagyon új, nagyon instabil kernelt használsz. Minden distro szokott patchaket rakni a vanila kernelre és azokkal a módosításokkal fordítani, kiadni saját rendszer alá változatot belőle.

Nézted azt a fájlt, amit mútkor kellett hekkelned? Frissítéskor van hogy felülcsap konfig fájlokat is.

Péládul 6.4-es kernelnél panaszkodtak 6.3.9 után
https://bbs.archlinux.org/viewtopic.php?id=287068

Bár azt tán 6.5 alatt javították

nem mindegy, mert archon valsz valami nagyon új, nagyon instabil kernelt használsz.

De, mindegy. Akkor most mégegyszer leírom. Van két gép, azonos hardver, azonos oprendszer, azonos kernel, azonos alsa modulok, azonos alsa config, azonos /proc/asound tartalom. Az egyik jó, a másik nem. Tehát NEM instabil kernel vagy hw driver probléma. És különben is, egészen a ma reggeli frissítésig jó volt!

Nézted azt a fájlt, amit mútkor kellett hekkelned? Frissítéskor van hogy felülcsap konfig fájlokat is.

Nem, minek néztem volna? ...nemcsak hogy néztem, de letöröltem az ÖSSZES alsa konfigfájlt, és átmásoltam mindet a működő gépről. Ugyanaz, nem oldotta meg.

Péládul 6.4-es kernelnél panaszkodtak 6.3.9 után

Csakhogy itt 6.6 van, mindkét gépen (konkrétan 6.6.8-arch1-1 a legutóbbi frissítés óta). A modulok is mind ugyanazok, kivéve, hogy a hibás gépen reboot után az snd-seq-dummy nem töltődik be, de insmod után tényleg minden ugyanaz már.

Nem tök mindegy, ha egyértelműen az alsa van elkúródva?

Nem.

 

A VM kiemente is pont ugyanazon az elkúrt alsa modulon megy keresztül!

Nem, ha PCI passthrough-t használsz.

 

A problémát ettől függetlenül MEG KELL oldani.

Senki nem mondta, hogy nem kell megoldani, írtam, hogy majd megoldod később.

Egyébként pendrive-ról is bootolhatnál egy másik Linux disztrót, hogy azzal tesztelj, csak ahhoz (is) nyugodtabbnak kellene lenned.

Nem, ha PCI passthrough-t használsz.

Nem hiszem, hogy a VB-n lenne ilyen bekonfigolva.

Senki nem mondta, hogy nem kell megoldani, írtam, hogy majd megoldod később.

Én meg arra utaltam, hogy most van az a később. A tűzoltás már megvolt, most már konkrétan orvosolni kéne. (A tűzoltáshoz nem nyitnék topikot...)

Egyébként pendrive-ról is bootolhatnál egy másik Linux disztrót, hogy azzal tesztelj, csak ahhoz (is) nyugodtabbnak kellene lenned.

És az miért is lenne jó? Az sw konfig 100% megegyezik egy ugyanilyen vason működő konfiggal, és különben is, a probléma határozottan a csomagfrissítést követően jött elő, korábban nem volt baj vele. Tehát a gond az, hogy alsa beállított valamit, amire a jelek szerint nincs kihatással az alsa konfigfájl.

Hiába bootolnék pendrive-ról, az ezt nem oldaná meg, de még csak közelebb sem vinne a megoldáshoz. Merthát mit tudnék csinálni a pendrive-os Linux-on? Lekérni az alsa beállításokat, pont ugyanúgy, mint ahogy a másik jól működő gépen tettem? Vagy mire gondoltál?

Ez nem hit kérdése. Egy kattintás...

https://i.imgur.com/6TwlErh.png

Ennek az opciónak az égadta világon semmi köze a PCI passthrough-hoz. Ez arra szolgál, hogy a nevesített címtereket támogató processzorokon a VM memórialapjait a host CPU kezelje (nem összekeverve a saját lapjaival), ahelyett, hogy a szoftveresen kéne emulálni a guest lapozását. Magyarán arra való, hogy a guest memórialeképezését is hardveresen a host MMU-ja végezze.

A PCI (legalábbis nem a legacy IO címes, hanem a modernebb PCIe) megosztáshoz a host és guest között valószínűleg inkább ezt kell implementálni, de ezt nem tudom, hogy tudja-e a VB egyáltalán, de ha tudja is, én tutira nem konfoltam be sehol se, szóval egész biztos nincs engedélyezve semmiféle PCI passthrough.

LOL

Elég régóta használok virtualizációt, szükségem volt már erre a funkcióra párszor. :)

 

VirtualBox esetén:

https://docs.oracle.com/en/virtualization/virtualbox/6.0/admin/nested-v…

This feature enables the passthrough of hardware virtualization functions to the guest VM.

 

VMware Workstation Pro esetén:

https://docs.vmware.com/en/VMware-Workstation-Pro/17/com.vmware.ws.usin…

Virtualize IOMMU (IO memory management unit)

Select this feature to provide the Intel Virtualization Technology for Directed I/O for virtual machines.

Továbbra sem látom, hogy az általad linkelt oldalak akár egy szó erejéig is a PCI passthrough-ról beszélnek. Ott az van leírva, hogy, idézem
"That means that you can install a hypervisor, such as Oracle VM VirtualBox, Oracle VM Server or KVM, on an Oracle VM VirtualBox guest. You can then create and run VMs within the guest VM."

Megjegyzem, ahhoz, hogy a PCI-t direktben megossza a host a guest-el, speciális kernelre is szükség van, ami támogatja a host-guest megosztott MMIO-t (általam linkelt doksi), ilyen ha létezik, a gyakorlatban gondolom speckó dkms modulokat jelent. Varázsolhatsz akármit a VB felületén, ha nincs meg hozzá a host kernelben a támogatás...

A VMWare esetén a doksi szintén kifejezetten VIOMMU-ról beszél, ahogy én is, és nem pedig Intel VTx-ről, AMD V-ről.

Ha meg nem volt, akkor probalj audacityvel sima szinuszokat eloallitani:

  • Csak jobb, csak bal, majd fazishelyesen es ellenfazisban a ketoldalon.
  • Mindezt tobb frekvencian

Ezzel kiszurheted a kulonbozo frekik hibait es a mono-sztereo hulyesegeket.

Nincs ilyen fájl. Egyébként megnéztem, nincs a .config alatt semmi, aminek a nevében szerepelne az alsa, asound vagy snd, szóval elvileg nincs user specifikus konfig. A pulse-t is alaposan kipucoltam a próba után.

Viszont van fejlemény! Kipróbáltam a fentebb javasolt dolgot: gyártottam három sztereó wav-ot, az elsőben csak bal csatorna van, a jobb csatorna csupa nulla, a másodikban a bal csatorna csupa nulla és a jobb nem, míg a harmadikban pontosan ugyanaz van mindkét csatornán.

Eredmény: az első kettő jó, a harmadik viszont néma kuss az mplayer-rel. Kíváncsiságból kipróbáltam a nanoalsa példaprogramjával is lejátszani (ez egy függvénykönyvtár, amit embedded rendszerekhez írtam az asound kiváltására), és láss csodát, működött mindhárom wav esetén!

Szóval maga az alsa valójában rendben van, és ha direktben a kernel alsa bufferébe küldöm a mintát, akkor minden szól, ahogy kell! Ellenben ha a hanglejátszás a libasound-on keresztül megy (amit minden általam korábban kipróbált program használ), akkor valamiért kioltódnak a csatornák, és emiatt nincs beszéd se.

Tehát a hiba nem is egészen az alsa-ban van, az önmagában tök jól működik, hanem a probléma az asound libben (vagy annak valamelyik .so-jában) keresendő. Így már érthető, hogy a két gépen csontugyanaz az alsa konfig és mégis más az eredemény. Most keresek asound konfigokat, de lehet, hogy csak újratelepítem.

Az mplayer direktben hasznalja az ALSA-t, vagy pulsen keresztul?

/etc/pulse/daemon.conf

; enable-remixing = yes
; remixing-use-all-sink-channels = yes

; default-sample-channels = 2
; default-channel-map = front-left,front-right

Nincsenek felulbiralva? Nekem az egesz file default, minden kikommentezve.

 

$HOME puslse beallitasok jok (felteve, ha hasznalod)? Nekem ilyen:

default sink
alsa_output.pci-0000_07_00.4.analog-stereo

default source
alsa_input.pci-0000_07_00.4.analog-stereo

 

Az mplayer direktben hasznalja az ALSA-t, vagy pulsen keresztul?

Egyik sem. Pulse csak egy próba erejéig volt fent, aztán le is gyaktam a pékbe, mert utálom, az mplayer pedig nem direktben ír az alsa kernel bufferekbe, hanem libasound-ot használ:

$ ldd /usr/bin/mplayer | grep asound
	libasound.so.2 => /usr/lib/libasound.so.2 (0x00007fe6415ef000)
$

Legalábbis az a verzió így lett fordítva, amit a disztróm felrak.

A /etc/alsa/*.conf fileok tuti rendben?

*upmix.conf, *vdownmix.conf fileokban nincs valami elkeverve?

pcm.upmix {
       @args [ SLAVE CHANNELS DELAY ]
       @args.SLAVE {
               type string
               default "plug:hw"
       }
       @args.CHANNELS {
               type integer
               default 6
       }
       @args.DELAY {
               type integer
               default 0
       }
       type upmix
       channels $CHANNELS
       delay $DELAY
       slave.pcm $SLAVE
       hint {
               show {
                       @func refer
                       name defaults.namehint.basic
               }
               description "Plugin for channel upmix (4,6,8)"
       }
}
pcm.vdownmix {
        @args [ SLAVE CHANNELS DELAY ]
        @args.SLAVE {
                type string
                default "plug:hw"
        }
        @args.CHANNELS {
                type integer
                default 6
        }
        @args.DELAY {
                type integer
                default 0
        }
        type vdownmix
        slave.pcm $SLAVE
        hint {
                show {
                        @func refer
                        name defaults.namehint.basic
                }
                description "Plugin for channel downmix (stereo) with a simple spacialization"
        }
}

 

Szerintem igen, mind gyári, és miután ezek symlinkek, valamint az /usr/share/alsa-t is átmásoltam egy biztosan jól működő gépről, ezekkel nincs probléma. (Igen, bitre az a tartalmuk, amit írtál.)

De mint említettem volt, már kinyomoztam, hogy a libasound a ludas, az konfigolódott félre, nem az alsa. Direktben a kernel alsa interface-ét (/dev/snd/* + ioctl) használva minden jó.

:popcorn: Mikor is jön el a linuxdesktopéve?

Az majd akkor jön el, ha a kolléga hajlandó lesz leírni a disztrót, verziókat, pontos hangkimenetet, meg végrehajtja azokat a hibakizáró lépéseket, amit ajánlottak, másik füles, másik lejátszó.

Mert azért eléggé gányol a kolléga, Pulseaudio-t eltávolította, mindenféle ALSA konfigfájllal mókolt, verziók is lehetnek elavultak, sok tényezős, hogy mi ment félre. A desktopéve mainstream disztróknál ez nem probléma, mert kellően frissek, meg már Pipewire-t használnak.

X aktás esetek minden rendszeren vannak, Windowson és Mac-en is.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Az majd akkor jön el, ha a kolléga hajlandó lesz leírni a disztrót, verziókat, pontos hangkimenetet,

Nem tudom, miről beszélsz. Leírtam a disztrót is, a pontos verziókat is, és a hangkimenetet is körbeírtam, hogy mi a baj vele.

meg végrehajtja azokat a hibakizáró lépéseket, amit ajánlottak, másik füles, másik lejátszó.

Kezdem azt hinni, baj van az olvasásértési képességeddel. Ezt MIND megtettem. (Már azelőtt, hogy javasolták volna, BTW.)

Mert azért eléggé gányol a kolléga, Pulseaudio-t eltávolította, mindenféle ALSA konfigfájllal mókolt, verziók is lehetnek elavultak

Határozottan az a véleményem, hogy tanulj meg olvasni. A pulseaudio-t nem eltávolítottam, hanem fent sem volt (csak teszt erejéig raktam fel, mikor már nem működött), ALSA konfigokkal NEM mókoltam, hanem átmásoltam egy jól működő gépről őket, a verziók pedig annyira elavultak, hogy mindjárt a legeslegelső posztot úgy kezdtem, hogy "a rendszerfrissítést követően"...

Nem találom hová írtad. A hangkimeneteket valóban írtad, abban megkövetem magam, a többit nem látom. Disztró és verziók lennének fontosak.

Bár a hangkimenetnél nem írtad, hogy a sok közül melyiket akarod használni.

Ezt egyébként nem is értem, hogy a libasound konfigja hogy mehetett félre. Itt az az esetkör állt elő, hogy annyira rojtosra gányoltad a rendszert, hogy már a beállítások is teljesen el vannak hányva. Azért is lenne a disztró fontos, hátha a csomagkezelővel a konfigokat újra lehetne generálni default-ra. Disztró/ág/tól függ, hogy erre mi a parancs.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Eljött már az. Én ott látom a problémát, hogy nincs tudatosítva a felhasználókban, hogy "testing/unstable" rendszereket használnak. Még sok tapasztalt felhasználónak sem esik ez le. Én szoptam már a linux-al eleget, aztán rájöttem, hogy nem kötelező szopni. Az a gond, hogy a mainstream disztrók felültetik az embert egy testing ágra, de ezt nem nagyon reklámozzák. Mikor ez tudatosult bennem, rájöttem hogy az ubuntu vonal számomra kuka, az arch vonal pedig szintén. Mivel a distrók 90%-a ezekre épül, ezeket elfelejthettem. Aztán rájöttem, hogy kb. választhatok a Debian, Opensuse, és a Slackware közül. Kiválasztottam egyet, stabil ablakkezelővel, és azóta nincs probléma.

Én ott látom a problémát, hogy nincs tudatosítva a felhasználókban, hogy "testing/unstable" rendszereket használnak.

Én meg ott látom a problémát, hogy a tisztelt kollégák nem tudnak olvasni. Pontosan ugyanaz a vas, ugyanaz a rendszer, ugyanaz a kernel az egyik gépen működik, a másikon nem. Ha a testing/unstable release-el lenne baj, akkor egyiken se menne, hisz ugyanaz a vas.

Nem mellesleg időközben azt is kinyomoztam, hogy a libasound a ludas, az konfigurálódott félre az egyik gépen.

"Én meg ott látom a problémát, hogy a tisztelt kollégák nem tudnak olvasni. Pontosan ugyanaz a vas, ugyanaz a rendszer, ugyanaz a kernel az egyik gépen működik, a másikon nem. Ha a testing/unstable release-el lenne baj, akkor egyiken se menne, hisz ugyanaz a vas.

Nem mellesleg időközben azt is kinyomoztam, hogy a libasound a ludas, az konfigurálódott félre az egyik gépen."

 

Na de akkor a logikádat követve vagy mind a két "ugyanazon vason" "félrekonfigurálódott" volna a libasound, vagy egyiken se. (Vagy esetleg az egyikbe beleköltözött az AI télapó egyik kisAIördöge, vagy valami olyan történt amit soha nem nevezünk a nevén!!4!)

Hogy ki tud olvasni és ki nem, azt nem az én tisztem eldönteni, bár kétségtelen, hogy sok igazságod is van, csak azon csodálkozom picit, hogy számodra ez újdonság itt. ;)

Így. Múltkor valami egzotikusabb arch alapú distrós kollégánál elléggé kakas áldozás teliholdkor élmény volt egy usb donglet beüzemelni, ami ubuntu lts alatt 3 egyszerű parancs volt (plusz dell driver csomag is van rá a stabilabb rendszerekhez, ha az alap nem lenne jó)

Nem értek egyet. Sok éve használok rolling, testing, unstable disztrókat, és összességében semmivel több probléma nincs velük, mint a stable/LTS kiadásokkal. Gikszer előfordul bármelyikkel, ez nem a testing miatt van, hanem a komplexitása akkora a mai rendszereknek, hogy törvényszerű előbb-utóbb belefutni valamibe.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

:popcorn: Mikor is jön el a linuxdesktopéve?

Majd ha elkezd tudatosulni az emberekben, hogy a "mainstream" oprendszerek már nem különböznek semmiben a kémszoftverektől, elárasztják a felhasználóikat reklámokkal, és ok nélkül folyton újabb és újabb hardver vásárlására kényeríti őket... Ja, várjunk csak...

Szerkesztve: 2023. 12. 30., szo – 11:22

Köszönöm azoknak, akik segíteni próbáltak, és nemcsak kaffogtak meg a posztok elolvasása nélkül ideböfögtek!

A gond nem az alsa-val volt, a kernel alsa interface-ét direktben használva (/dev/snd/* + ioctl) minden jó. A gond a libasound-al volt. Az /etc/asound.conf fájlt törölve és újraindítva nem oldódott meg a probléma, de a pluginjait kézzel kitörölve, alsactl-t true-ra rakva, /var/lib/alsa/asound.state-t felülírva a másik gépről, majd újraindítás, alsactl visszarak és alsactl restore-al kézzel betöltve a state-t már minden jó.

vissza fog térni majd legközelebb is valószínűleg, mert eléggé követhetetlenül variálod a rendszeredet.

Érdemes lenne például telepített csomaglistát generálni mindkét gépen és össze diffelni őket. Ha valóban két egyforma hw és szoftver környezet lenne, akkor nem valószínű, hogy mindig ugyanazon a gépen könfigurálódik el magától... 

vissza fog térni majd legközelebb is valószínűleg, mert eléggé követhetetlenül variálod a rendszeredet.

Mi nem volt követhető?

Érdemes lenne például telepített csomaglistát generálni mindkét gépen és össze diffelni őket.

Amit tudnál, ha olvasnál, hogy megtettem. Sőt, nemcsak a csomaglistát, hanem az lsmod kimeneteket is diffeltem.

Ha valóban két egyforma hw és szoftver környezet lenne, akkor nem valószínű, hogy mindig ugyanazon a gépen könfigurálódik el magától...

Dehogynem. A nagyobb tárhelyű gépen több program van, de ettől még a kernel és az alapcsomagok és a konfigfájlok pont ugyanazok. A baj nem ezzel van, hanem azzal, hogy finoman szólva az asound egy f0s.

Bizonyítás:

Rosszul van megtervezve
Azt különösebben nem kell magyarázni, miért baj, hogy az alsa-t matató asound.conf miért nem az /etc/alsa mappába került, hanem csak úgy be lett hányva az /etc-be.

Ráadásul nem determinisztikus a működése. Próbáld csak ki: rakj mondjuk egy preamp-ot az asound.conf-ba, indítsd újra, és meg fog jelenni az alsamixer-ben. Most töröld le az /etc/asound.conf fájlt, indítsd megint újra, és láss csodát, a preamp még mindig szerepelni fog az alsamixer-ben, annak ellenére, hogy konfigurációs fájlokban híre-hamva sincs!

Magyarán simán előállítottunk egy olyan abszurd helyzetet, hogy az /etc alatti konfigurációs fájlok köszönő viszonyban sincsenek a valós futó konfigurációval, ami minden üzemeltető legrosszabb rémálma.

Rosszul is van implementálva
Ha a tervezési problémák nem lennének elegek, még a kód megvalósítása is bugos és csapnivaló minőségű. Ennek demonstrálására álljon itt egy konkrét, minimális példa:

$ cat a.c
#include <alsa/asoundlib.h>
int main(int argc, char **argv)
{
    snd_pcm_t *pcm_handle;
    snd_pcm_open(&pcm_handle, "default", SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK);
    snd_pcm_close(pcm_handle);
    return 0;
}
$ gcc a.c -o a -lasound
$ valgrind ./a
==2067== Memcheck, a memory error detector
==2067== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==2067== Using Valgrind-3.20.0 and LibVEX; rerun with -h for copyright info
==2067== Command: ./a
==2067==
--2067-- WARNING: unhandled amd64-linux syscall: 441
--2067-- You may be able to write your own handler.
--2067-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--2067-- Nevertheless we consider this a bug.  Please report
--2067-- it at http://valgrind.org/support/bug_reports.html.
==2067==
==2067== HEAP SUMMARY:
==2067==     in use at exit: 196,121 bytes in 6,029 blocks
==2067==   total heap usage: 8,746 allocs, 2,717 frees, 806,881 bytes allocated
==2067==
==2067== LEAK SUMMARY:
==2067==    definitely lost: 0 bytes in 0 blocks
==2067==    indirectly lost: 0 bytes in 0 blocks
==2067==      possibly lost: 190,715 bytes in 6,012 blocks
==2067==    still reachable: 5,406 bytes in 17 blocks
==2067==         suppressed: 0 bytes in 0 blocks
==2067== Rerun with --leak-check=full to see details of leaked memory
==2067==
==2067== For lists of detected and suppressed errors, rerun with: -s
==2067== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
$

Jól látszik, hogy semmit sem csináltunk azon kívül, hogy megnyitottuk a PCM-et meg le is zártuk egyből, mégis máris 196K-nyi memóriát memleakelt (ebből 5K csak nem lett felszabadítva, a többi konkrétan elveszett). Ezen kívül olyan rendszerhívást próbál használni, ami nincs is implementálva (ráadásul feleslegesen. A 441 az epoll_pwait2 syscall, amit nem is lenne szabad használni a /dev/snd/ alatti fájlokon, mivel az alsa interface mmap-es, és nem is poll-os interfész.)

Q.E.D.

Csak így dióhéjban... De persze könnyebb a felhasználót hibáztatni, mint beismerni, hogy az asound egy bughalmaz.

Miért szúrsz ki magaddal a közvetlen ALSA használatával? Az egy közvetlen hangkártyát hajtó driver, egy kernel interface. Feltalálták már a wireplumber és pipewire kettősét, ami mindent megold egy felsőbb rétegben, a keverést, újramintavételezést, jelszinteket, visszhang elnyomást, ha kell, alkalmazás igénye szerint alsa, pulse vagy jack interface-t kínál.

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

Egymagában az ALSA-val nem lenne baj, a probléma az, hogy már jó ideje nem elég, mert egy csomó minden dependel vagy Pulseaudio-ra, vagy Pipewire-re. Ez Gentoo-n elkerülhető, hogy az ember felveszi USE flag-nek: +alsa -pulseaudio -pipewire és úgy forgat le mindent, de normál, bináris disztrókon ez nem opció.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Az én olvasatomban a közvetlen ALSA használat azért (volt) lényeges, mert így ki tudta deríteni, hogy nem maga az ALSA alrendszer és/vagy a hardver csesződött el, hanem a sok szoftver által használt interfész - az alsa-lib valamilyen konfigja.

Miért is? Ahogy Zahy írta, a szoftveres rétegek kiitatásával egyértelművé vált, hogy a hardver és a kernel oldali dologok rendben vannak, a userspace rétegekben a hiba. Ez hogy derült volna ki az által, hogy egy újabb szoftveres réteget iktatok be? Szerintem csak rontott volna a helyzeten...

Nem hibáztatlak, hogy neked ez jött le, de nem ez állt a hátterében. Én emlékszem az előzménytopikra, be is linkeltem, újra el is olvastam. Már ott leszedte néhány hónapja ugyanilyen problémánál a Pulseaudio-t, akkor az megoldotta, és nem is került vissza a mai napig, azért volt a gépen csak ALSA.

Nekem inkább az a bajom a kollégával, hogy mindenféle beállításokba belegányol, nem érti mit csinál, nem érti mi hajtja, mi miért megoldás, így lefogadom, hogy pár hónap múltán újranyitja a topikot ugyanezzel a hibával. Pedig itt mélyebb dolog lesz megoldás a hangrendszernél. Inkább valami audiominta kellett volna, amiben nem hallatszott a beszédhang, és megfejteni miért, hány csatornás, hány csatornára lekeverve, melyik csatornán mi szól, fáziseltolódás kizárása.

Pedig én azért is követem a történetet, mert mai napig nem pipáltam még ilyet, hogy csak beszéd ne legyen az audióban, egyik forrásnál sem, minden más hallatszódjon. Egyébként az ALSA only használattal sincs gond szerintem, ha meg tudja oldani, de láthatóan nem tudja, mert nem érti a mélységeit. Én se, de én épp azért nem piszkálom ezeket a saját rendszeremen, mert 1) úgyis minden működik (ALSA, Pulseaudio, mind a Pipewire felett, + Wireplumbe, JACK is működik, beépített hangchippel és két audio DAC/interface-szel is, több gépen), nem szokott problémám lenni vele, 2) nem értek hozzá mélységében, így nem keverek bele olyan beállításba, aminél fogalmam sincs, hogy később hol fog visszaütni.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Miért szúrsz ki magaddal a közvetlen ALSA használatával?

Pontosan azért, mert nem akarok kiszúrni magammal a pulse és pipewire használatával. Minnél több réteget iktatsz be, annál könnyeben kúródnak el a dolgok. Általában sokkal jobb csak az ALSA használata, még azzal együtt is, hogy az egyik gépen az asound elmászott. (Ebbe beleértendő pl. még az is, hogy a wine csont nélkül használja, míg a pulse-al folyamatos gondjaim voltak, pl. nem volt az Angry birdsnek hangja, pedig a gyerekek mindenképp játszani akartak vele. Amitóta csak ALSA-t használok, semmi gond semmilyen wine-os játék hangjával, egyszerűen csak működik minden.)

Feltalálták már a wireplumber és pipewire kettősét, ami mindent megold egy felsőbb rétegben

Pontosan ezért nem használom, mert egy rakat felsőbb réteget tartalmaznak, ami csak még több probléma. Néha szükségem van stúdiózni, és ezekkel lehetetlen, túl nagy latency-t rak a bemenetvisszacsatolásra ez a rahedli sok szoftver réteg. Egy darabig szórakoztam velük, próbáltam konfolni őket jobbra-balra, de aztán amikor kiiktattam az összes borzadályt, és maradtam csak ALSA-n, egycsapásra minden problémám megoldódott. Azóta is így használom.

a keverést, újramintavételezést, jelszinteket, visszhang elnyomást, ha kell, alkalmazás igénye szerint alsa, pulse vagy jack interface-t kínál.

Azaz csupa olyan problémára adnak megoldást, ami nem is létezne nélkülük :-) A keverést és a különböző interface-k kezelését ugyanis az ALSA önmagában is remekül megoldja. A visszhangelnyomást meg élből tudja az Audacity, és jobb lenne, ha ezek a rétegek nem próbálkoznának ilyesmivel, mert csak elrontják, amint a mellékelt ábra mutatja.

Azért azt lássuk, hogy most egy (!) gépen elmászott az asound, de a pulse és pipewire esetében meg minden (!) gépen folyamatosan elmászott minden, elnémultak a wine programok, késett az Audacity, szóval mindent egybevéve még mindig az ALSA a kevesebb szopás.

> Néha szükségem van stúdiózni,

Hát speciel pro felhasználásra inkább a Jack javasolt. Nem jelent plusz latency-t és számos előnye van: pl. real-time időzítés, több program is használhatja egyszerre a hangkártyát, könnyű kapcsolatokat/jelutat kialakítani, sample pontos stb.  Szerintem épp az ALSA jelenti a fejlődés korlátját a linux audioban. Minden erre épül, és csak ebből lehet "főzni". Pusztán ALSA -t kész rémálom használni, a konfigolás bül-bül formanyelven történik, debuggolni sem lehet alapból. 

Érdekes thread: https://discourse.ardour.org/t/why-not-merge-jack-and-alsa/108377

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

Nem csak, hogy a JACK javasolt, hanem sok audióalkalmazás nem is támogat mást. Én is mostanában kezdtem el vele mókolni, a másik topikban átbeszélt gitár, audio interface, pluginek, MIDI, kottaszerkesztés, stb. miatt. Korábban nem használtam JACK-et, fent volt, mert valami behúzta függőségnek, de nem használtam konkrétan.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Hát igen, azok fejlesztők akik audio vonalon linuxban [is] utaznak erősen Jack kötődésúek: Paul Davis, Robin, falkTX. 
De pl Ardour is megy alsaval, talán a Carla is. Mondjuk a Gitarix asszem csak jack. 

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

Nem csak a Guitarx. A Rosegarden sem mukkant meg mással, csak Jack+Qsynth kombóval.

Pedig én örülnék legjobban, bzt-hez hasonlóan, ha nem lenne ez a sok féle audio-alrendszer, meg egymásra épülő rétegek, hanem lenne egy egyszerű kerneles hangrendszer (Linuxon ALSA, BSD-ken sndio), és menne minden azzal, fölösleges extra bloat és bonyolítás nélkül. Erről azonban max. csak álmodni lehet, mert nem reális.

Már a Pulseaudio is bloat volt, de ez a Pipewire, főleg a Wireplumberrel és pipewire-alse, pipewire-pulse, pipewire-jack extra moduljaival együttvéve iszonyat bloat. Működni működik minden, de tekintélyes memóriát megeszi a rendszer memóriafogyasztásához mérten.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Haj hát el van bonyolítva rendesen! De azért nem könnyű olyan megoldást találni, ami pro meg  otthoni felhasználó szinten is egyaránt megfelelő. És hát le a kalappal h van olyan aki azért megpróbál valami rendet vágni - akár Poettering, akár Taymans! Iszonyú feladat lehet: nem lehet felrúgni az asztalt, mert közben minden egyéb program rá van gyógyítva az eddig használt rendszerekre. Szal pipewirenak is ezért vannak mindenféle moduljai, amik mint interfacek működnek. 
Nekem amúgy alsa + jack bőven elég lenne. A pipewire fanok azt hiszik, h ez összehuzalozós gui a pipewire sajátja, és örülnek neki mint majom a farkának, és nem tudják h az is a jackből lett átszedve, ahol már időtlen idők óta létezett. 

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

A Pipewire egyébként Waylanden fontos, mert ott portálokat nyújt a Wayland biztonsági korlátozásai ellen, pl. audio/video stream megosztása esetén, meg globális gyorsbillentyűknél. X-en elvileg még el lehet lenni nélküle, de eljön majd az idő, mikor már többé nem.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

nade érted épp erről beszélek, egy sor szoftverben megvan ez a funkció, speciel a Carlat ismered, aminek nem is az összhuzalozás az elsődleges funkciója, mivel az egy audio plugin host.  Nem tudom hallottál-e pl. Ladishról - ami egy session kezelő,  Catia-ról ami egy jack patchbay? De magában qjcackctl -ben is megvan ez, meg egy sor másik programban.  

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

Továbbra sem értem, hogyha mindezt tökéletesen tudja önmagában az ALSA, akkor mi a frászkarikának iktatnék be mégegy réteget??? Semmi olyant nem soroltál fel, ami a jackaudio kizárólagos feature-e lenne, és ne tudná az ALSA is.

Szerintem épp az ALSA jelenti a fejlődés korlátját a linux audioban.

LOL! Köszönöm, hogy így megröhögtettél újév alkalmából!

Amit linkeltél, azon az oldalon egy csomó hozzá nem értő pofázik, de ha konkrétan megnézzük a jackaudio forrását, akkor egyértelmű, hogy bizony linuxon ALSA kernel interfészt használ a jackaudio is... merthogy nincs is más (az OSS-t kicsinálták már). Szóval ha az ALSA korlátozza a fejlődést, akkor beza' a jackaudio is csúnyán korlátozva vagyon! :-D

Egyébként BUÉK minden kedves HUP fórumozónak!

A linkelt oldalon, a Jack eredeti fejlesztője, illetve az Ardour fejlesztői Paul Davis, Robin Gareus társalognak. Egyikőjük sem kispályás audio programozásban. 
Hja csak ha ALSAban meg akarod oldani  több program tudjon lejátszani a hangkártyán egyszerre, akkor ezt csak pluginokon keresztül, rettenet configok szerkesztésével, minden használati esetre előzetesen elkészítve tudod elérni, jacknél meg két kattintás az egész. Bebaszna ha egy studióban azért állna minden mert épp próbálod össztákolni a configot! 

> Szóval ha az ALSA korlátozza a fejlődést, akkor beza' a jackaudio is csúnyán korlátozva vagyon

Így van, ez a probléma. Illetve minden más hangszerver is korlátozva van az ALSA miatt.  (de hát amint kiderül a linklet szálból, más platformokon sem jobb a helyzet)

REBUÉK!

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

A linkelt oldalon, a Jack eredeti fejlesztője, illetve az Ardour fejlesztői Paul Davis, Robin Gareus társalognak. Egyikőjük sem kispályás audio programozásban.

Hát, ha ezek az arcok követték el a jackaudio-t, akkor ez most végképp meggyőzött, hogy messze kerüljem el azt is, akárcsak a pulse-t.

Hja csak ha ALSAban meg akarod oldani több program tudjon lejátszani a hangkártyán egyszerre, akkor ezt csak pluginokon keresztül, rettenet configok szerkesztésével, minden használati esetre előzetesen elkészítve tudod elérni

Ez konkrétan nem igaz. Nálam tök faszán működik, hogy egyszerre több program szól, mindenféle pluginok és "rettenet config" szerkesztés nélkül is, csupán a distro által felrakott alapkonfiggal. De ezt külön ki kellett próbálnom, mert normális ember sosem akar egyszerre több programmal hangot generáltatni, soha (ha filmet nézek, csak a film hangja kell, ha játszom, akkor csak annak a játéknak a hangja kell, ha Audacity-zek, akkor meg isten ments, hogy bármi más is matassa a hangkártyát közben...).

Szóval a jack egy olyan problémára akar megoldást adni, ami soha nem is létezett; és mint kiderült, jack nélkül eddig is meg volt oldva...

> Nálam tök faszán működik

Az ALSA kizárolagosan fogja a hangkártyát és egynél több program csak úgy tud egyszerre szólni,ha azok hangját valami összemixeli elöbb és úgy adja át az ALSÁnak. Ezt csinálja Pulse, Jack, Pipewire sőt ALSÁnak is vannak erre saját pluginjei. 

> mert normális ember sosem akar egyszerre több programmal hangot generáltatni,

Ugye arra még emlékszel studió felhasználásról van szó? Mert h te jöttél azzal h "studiózni" szoktál -  jelentsen ez bármit is. 

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

normális ember sosem akar egyszerre több programmal hangot generáltatni

Mindig is tudtam, hogy nem vagyok normális, de az egy általános use case, hogy szól az online rádió bluetooth irányban a micro hifi-n, miközben böngészőből egy pár perces szöveges audio kimenettel rendelkező videót megnézek a notebook saját hangszóróján szólva.

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

Na jó, de ha van egy kernel interface, ami várja a hangmintákat egy bufferben, azt kitolja a hangkártyának, az nagyszerű, csak kevés. És értem, hogy az ALSA-nak is van userspace library-je, csak az is kevés, s ehelyett van a pipewire és a wireplumber.

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

Csak ismételni tudom magam: "Továbbra sem értem, hogyha mindezt tökéletesen tudja önmagában az ALSA, akkor mi a frászkarikának iktatnék be mégegy réteget???"
Arra még senki nem tudott nekem példát mondani, hogy mi is lenne az a "kevés" (Te sem nevezted meg!). Eddig minden általatok felsorolt feature-t csont nélkül tudja az ALSA önmagában, külön szoftverrétegek nélkül is.

Jajjj.... Sorolom:

1. nekem nincs ilyen, szóval akkor minek rakjak fel jack-et?
2. ehhez elsősorban kernel modul támogatás szükséges, szóval ha az ALSA kernel modul nem tudja, akkor a jack se. Ha pedig tudja, akkor megint, minek rakjak fel jack-et, ha megy annélkül is?
3. az utolsó hangkártyám, aminek több hardveres csatornája volt, asszem a GUS volt, és az nem tegnap volt. Mára mindenki átállt a szoftveres csatornákra, nem véletlenül.

Mindenképp kell másolni, mert a kernelbeli ALSA buffer-re nem tudsz user space-ben pointerrel hivatkozni. De tény, hogy a pulse esetén (mivel van egy közbeiktatott daemon is), eggyel többször kell átmásolni a mintákat.

(Ha nagyon technikai akarok lenni, akkor úgy történik, hogy a kernelbeli buffer-t mmap-el belapozzák a felhasználói címtérbe, és amikor fel kell tölteni, akkor meghívódik a callback, ami átmásolja az alkalmazás bufferből a bemappelt bufferbe. Ez a lépés nem hagyható ki, bármit is próbálnak varázsolni a user space oldalon.)

És pont emiatt hazugság, amit a jack állít, hogy nincs latency, mert az mindenképp van emiatt. A callback ugyanis csak akkor hívódik meg, ha buffer már teljesen kiürült, tehát bufferbeli mintaszámnyi késésben van emiatt (44100Hz és 100 mintányi buffer esetén tehát 1/441 másodpercnyi a késés).

> És pont emiatt hazugság, amit a jack állít, hogy nincs latency,

Ezt honnan vetted? Nem, Jack nem azt állítja h nincs latency. Hanem h nincs hozzáadott latency az ALSAhoz v. Coreaudiohoz képest. Illetve egészen pontosan azt mondja, hogy elhanyagolható mértékű plusz latency van. Nem kéne hazugsággal vádaskodni, amikor te nem érted meg, korábban be lett linkelve számodra, de itt van mégegyszer: https://jackaudio.org/faq/no_extra_latency.html

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

Miért valamiféle ellenségeskedésben gondolkodsz? Azt gondolom, hogy ha nem lenne szükség a pipewire-re, korábban jack-re és pulseaudio-ra, akkor azok a projectek nem jöttek volna létre, különösképp nem ekkora munkával. Fogalmam sincs, hogyan kell egyszerűen, GUI-ról alsalib felhasználásával eltérő sampling rate-tel, több fizikai hangkártyán, vagy egyet split-elve, visszhangelnyomással full duplex módon hangot átvinni két irányban, akár hálózati irányba, akár bluetooth-on, akár lokális hangkártyán, alkalmazásonként megjegyezve az állapotot, jelszintet, hardware config valósidejű változása esetén lejátszás közbeni default sink illetve source módosításával.

És ehhez nem akarok Háború és béke hosszúságú config file-t írni, hanem jó volna, ha menne magától, ahogyan ez pipewire és wireplumber esetén megy. Azt sem tudom, hogyan kapcsolódik alsa interface-hez pulse vagy jack kliens.

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

Azt gondolom, hogy ha nem lenne szükség a pipewire-re, korábban jack-re és pulseaudio-ra, akkor azok a projectek nem jöttek volna létre

Dehogynem. Ahhoz, hogy ezek a projektek létrejöjjenek, nem kell más, csak hogy pár emberke lusta legyen elolvasni az ALSA leírását. De rengeteg más példát is tudok mondani, pl. cmake, ninja, scons, ezek is mind létrejöttek, holott a make tökéletesen alkalmas minden feladat ellátására, a gcc pedig élből ki tudja generálni a szabályait a fejlécek alapján.

Hogy beszélhetsz ekkora sületlenségeket? Hallottad már azt a mondást, hogy "bölcs maradtál volna, ha csendben maradtál volna"?

1. ennek a kommentednek semmi köze nem volt sem a hangrendszerekhez, sem a make-s kommentemhez
2. az Assembly még csak nem is programozási nyelv, Te tanulatlan tuskó

A továbbiakban asszem mellőzöm a hozzászólásaid olvasását, mert ékesen bizonyítottad, hogy (finoman szólva is) tök hülye vagy a témához. Javaslom, ha nem akarod mégjobban lejáratni magad, akkor minimálisan legalább egy gugli keresést eressz meg a következő posztod írása előtt.

Szép napot és BUÉK!

Elég sokat programozok assembly-ben és C-ben, így világos, hogy az az architektúra, vagy ha úgy tetszik, a CPU nyelve. A kommunikációdon meg finomíts kérlek! Önmagában az, hogy egy kérdésben nem értünk egyet, nem ok arra, hogy agresszívvé váljon a kommunikáció. Annyi köze volt, hogy a pipewire létjogosultságát vitattad, mert ha alsa van, minden van. Az alsa egy réteggel lejjebb van, bár tudom, ahhoz is van lib, de messze nem nyújtja azokat a szolgáltatásokat, és nem olyan komfortosan, mint a pipewire. Erre írtam, hogy ezzel a megközelítéssel semmi szükség az assembly nyelveken kívül másra. Mint ahogyan a C és a magasabb szintű nyelvek is a magasabb szintű absztrakció és kényelmes, hatékony használat miatt jöttek létre, úgy a pipewire szerepe is a kényelmes hangkezelés az alsa fapadosságával szemben.

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

Abban igazad van, hogy felhasználásfüggő is (pl. valaki zenész vagy hangmérnök, vs. sima mezei felhasználó), meg koncepciótól is függ. Egy rendes alkalmazásban beállíthatónak kéne pl. lennie, hogy a hangot milyen mintavételezéssel tolja ki milyen kimenetre, ennek nem kéne, hogy a hangrendszer dolga legyen, de megértem az ellentábort is, mivel sok fejlesztő meg ezt nem implementálja rendesen a programjába, ezért inkább általánosságban megbízhatóbbnak tartják a hangrendszerre bízni. Épp így a visszhangelnyomás, azt magában a VoIP szoftverben kéne implementálni szerintem.

A hangrendszer egyébként Windows alatt is rémálom, megy a gányolás egy csomó heterogén driverrel, virtuális eszközzel, és még ez is agyonbonyolítva DirectSound-dal, DirectX gyorsítással, ASIO-val, stb.. Kicsit olyan ez, mint a nyomtatás, az is egyformán tré minden OS-en.

Szerk.: a MacOS hangrendszerét nem ismerem, de az Apple hozzáállását ismerve biztos az se egy leányálom.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Szerintem meg épp a hangrendszer dolga. Azért az elég kellemetlen volna, minden egyes alkalmazásban resamping-et, echo cancellert, meg még ki tudja, mi mindent kellene implementálni. Olyan ez, mintha nem lenne X.org, aztán minden alkalmazás egyesével renderelje kedvére a pixeleket a frame bufferbe.

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

Visszhangelnyomás - hát ez már eleve mezei felhasználó szintű problematika - abszurdnak is találom, h ezt a hangrendszer oldja meg. Vegyen már egy fejhallgatót, vagy állítsa be normálisan jelszinteket a user...De ettől eltekintve mindent is tud az ALSA. Csak hát kibaszott nyakatekerten, komplikáltan, plugineken meg segédprogramokon (pl  alsaloop) keresztül. Szal ha valakinek az a heppje, h a halálba szivatja magát az ALSA configok szerkesztésével, hát egészsége - tiszteljük formumtársaink elmebaját :-D

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

Utálom a fül- és fejhallgatókat. Ha élőben beszélek, akkor sincs rajtam ilyesmi, ha VoIP, akkor se legyen. Viszont az nagyon durva, ha némi késéssel visszahallod magad, nem tudsz arra figyelni, amit mondasz, ha a másikat hallod duplán, az is rossz, ha összegerjed az egész, az is. Szóval kell az echo cancel.

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

Na, ezt írom én is, hogy ezt ne a hangrendszer oldja meg. Oldják meg az alkalmazások, de azoknak sem kell egyénileg, mert tudnának erre valami egységesített libet használni, tehát nem azt várnám el, hogy minden egyéni fejlesztő újra találja fel a kereket. Vannak erre máris nagyon jó, C, C++, Rust, Python, stb. libek. Nem jó politika mindent a hangrendszertől várni, és az összes alkalmazás számára azt átbonyolítani, mikor a legtöbb alkalmazás nem igényel ilyet.

A másik, hogy bloat. A Pulseaudio evett 20-30 mega memória között, 64 biten. Ez a Wireplumber, Pipewire, pipewire-pulse nálam eszik 89 MiB memóriát, és még ez is túlélhető lenne, de folyton folyvást hízik is még rá. Ha valami JACK-et használ, az még ezen felül van, akkor már 100+ MiB-ról beszélünk, agyrém egy hangrendszerért.

Annyit még persze hozzá kell tenni, hogy a Pipewire már nem csak a hangról gondoskodik, de videóljátszásról, desktop-rögzítésnél, távoli asztalmegosztásnál is szerepet játszik, kicsit olyan lett, mint a systemd, hogy általános mindenes, nem csak az initrendszert látja már el az se.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

> A másik, hogy bloat.

Hát tippre: pro felhasználás során a latency döntő, annak oltárán sok minden feláldozandó.  Szal lehet h előre lefoglal erőforrásokat, h amikor majd szüksége lenne rá akkor azok egyből rendelkezésre álljanak, gyorsítandó így a folyamatot. Lehet h ez kimeríti a bloat fogalmát :-Z ?

ez t visszhang dolgot én nem tapasztalom szgépen futó Viberen egyáltalán.  Lehet h Viberbe eleve van ilyen visszahangkioltó funkció? 

"antiegalitarian, antiliberal, antidemocratic, and antipopular"

Egyetértek BehringerZoltan és Raynes kollégákkal.

Kis megjegyzés: egy stúdióprogramban, mint mondjuk az Audacity, nélkülözhetetlenek ezek a beállítások. Minden más alkalmazásnak (film- és zenelejátszó, játékok, böngésző stb.) meg ott van a lib.

Oldják meg az alkalmazások, de azoknak sem kell egyénileg, mert tudnának erre valami egységesített libet használni

Nem kell a feltételes mód, ez pont így van most is, erre van a libasound (oké, hogy a kivitelezésével akadnak problémák, de a koncepciójával alapvetően nincs baj).

Ezt meg lehet annyival fejelni, hogy vannak erre ilyen lib alternatívák, amik több rendszert is támogatnak a portolhatóság végett, mint például a portaudio vagy az SDL_Audio, szóval nem kell oprendszerspecifikusnak lennie a libnek, mégisincs szükség hozzá user space daemonokra meg a többi hülyeségre, amiket a pulse meg pipewire erőltetnek.

Először néztem egy nagyot hogy milyen bug már.......de őszintén már nem lepődök meg ilyesmin mióta megszenvedtem a "kék emberek a videókban" bugot, az nálam rendesen kiakasztott hogy egyáltalán ilyen leheteséges......

Na, olyat se pipáltam, de gondolom valami színpaletta, színtérkódolás hibája lehetett mögötte. Tipp csak.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Szerkesztve: 2024. 01. 04., cs – 13:00

follow