πŸŽ™ Beamforming ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π° Π½Π° Linux β€” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

πŸŽ™ Beamforming ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π° Π½Π° Linux β€” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽ Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ„ΠΈΡ‡ΠΈ ΠΈΠ· Windows, Π½Π° ASUS UX3405MA Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΡƒΠ³ΠΎΠ» ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π°Β» β€” наТимаСшь ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Ρ…Π²Π°Ρ‚Π° Π·Π²ΡƒΠΊΠ°. Π’ Linux Π½Ρƒ Π²Ρ‹ поняли :)

Π’Π΅Ρ…Π½ΠΈΡ‡ΠΊΠ°: Π’ UX3405MA стоит массив ΠΈΠ· Π΄Π²ΡƒΡ… Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ΠΎΠ² (DMIC) свСрху ΠΊΡ€Ρ‹ΡˆΠΊΠΈ, Π³Π΄Π΅ Π²Π΅Π±ΠΊΠ° (алСлуя, догадались Π½Π΅ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ ΠΊΡƒΠ»Π΅Ρ€Π°!). ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Ρ‡Π΅Ρ€Π΅Π· Intel SOF (Sound Open Firmware) β€” DSP. SOF содСрТит ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TDFB (Time-Domain Fixed Beamformer) β€” ΠΎΠ½ матСматичСски ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ сигналы ΠΎΠ±ΠΎΠΈΡ… ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ΠΎΠ² ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ фокусируСт Π·Π°Ρ…Π²Π°Ρ‚ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. ВсСго 13 ΡƒΠ³Π»ΠΎΠ² ΠΎΡ‚ -90Β° Π΄ΠΎ +90Β° с шагом 15Β°, Π½ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ просто 0Β° Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ прямо ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ.

ΠŸΠΎΠ½ΡΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρ„ΠΈΡ‡Π° Ρƒ мСня ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Π°ΠΊ:
amixer -D hw:sofhdadsp controls | grep -i tdfb
Если Π²ΠΈΠ΄ΠΈΡ‚Π΅ Dmic0 Capture TDFB beam switch ΠΈ Dmic0 Capture TDFB angle set enum β€” всё Π΅ΡΡ‚ΡŒ.

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡƒΡ‡Π°:

amixer -D hw:sofhdadsp sset "Dmic0 Capture TDFB beam switch" on Π˜Π›Π˜ off
amixer -D hw:sofhdadsp sset "Dmic0 Capture TDFB angle set enum" "0"

Π­Ρ„Ρ„Π΅ΠΊΡ‚ Π²ΠΈΠ΄Π΅Π½ сразу Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ Π·Π²ΡƒΠΊΠ° (Π²ΠΈΠ΄Π΅ΠΎ :)

0:00
/0:33

Π•Ρ‰Ρ‘ Π½Π°ΡˆΡ‘Π» встроСнный компрСссор ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π° Ρ‚Π°ΠΌ ΠΆΠ΅!
amixer -D hw:sofhdadsp sset "Dmic0 Capture DRC switch" on Π˜Π›Π˜ off
Π§Ρ‚ΠΎ Π΅Ρ‰Ρ‘ ΠΈ "ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚" Π·Π²ΡƒΠΊ со Π΄Π½Π°

Ну ΠΈ для Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½ΠΎΡΡ‚ΠΈ - Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° beamforming ΡˆΠ»Ρ‘Ρ‚ XF86Launch5 (это для Niri), Π° Ρ‚Π°ΠΊ Π² Gnome горячих кастом сдСлал. А Π²ΠΎΡ‚ LED Π½Π°ΡˆΡ‘Π» Π±Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ Π² /sys/kernel/debug/asus-nb-wmi/ ΠΏΠΎ dev_id ΠΏΠΎΠΊΠ° Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΠ° Π½Π΅ ΠΌΠΎΡ€Π³Π½ΡƒΠ»Π°. Оказался 262171.

Π˜Ρ‚ΠΎΠ³ β€” скрипт-Ρ‚ΠΎΠ³Π»Π΅Ρ€: Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ TDFB + DRC ΠΊΠΎΠΌΠΏΡ€Π΅ΡΡΠΈΡŽ ΠΈ Π»Π°ΠΌΠΏΠΎΡ‡ΠΊΡƒ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ:

πŸ‘‰ Gist со скриптом

@toxblh_linux