abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:22 | Nová verze

    Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.

    Ladislav Hagara | Komentářů: 2
    včera 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

    Ladislav Hagara | Komentářů: 1
    včera 20:22 | Nová verze

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | Nová verze

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    28.4. 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    28.4. 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    28.4. 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 7
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 883 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Je libo ekvalizér přímo v ALSA?

    24.5.2008 12:13 | Přečteno: 3517× | Linux | Výběrový blog | poslední úprava: 24.5.2008 12:14

    Dnes ráno jsem si říkal jestli je to možné, a ono je, a ani to není nijak pracné. Má to jen jedno malé ale – zátěž procesoru.

    Takže na notebooku, kam tento nápad byl primárně mířen, moc uplatnění mít nakonec nebude. Alespoň jsem si udělal nějaké tabulky no downmix surround do sterea :)

    Co budeme potřebovat:

  • textový editor, těm otrlejším postačí cat :-D
  • zvukovou kartu a reproduktory či sluchátka
  • funkční ALSA, čím novější tím lepší, rozhodně aby uměla používat ladspa pluginy
  • ladspa plugin „Multiband EQ“, je v knihovně mbeq_1197.so, v Arch Linuxu balíček swh-plugins
  • přehrávač který mixuje do ALSA a umí nastavit ALSA device, třeba Amarok, Audacious, MPlayer…
  • nějakou tu hudbu, na které to budeme ladit, já jsem použil album Charango od Morcheeby
  • sluch, tady je to relativní
  • Co je cílem

    Kvalitní zvuková karta s kvalitní aparaturou a kvalitním zdrojem (což není mp3 s bitovým tokem 96 kbps) ekvalizér nepotřebuje, ale pokud máte nějaké šumítko, tak můžete posílit středy, nebo třeba já jsem chtěl trochu výrazněji vykreslit basy u sluchátek.

    Trocha teorie

    Ladspa je rozhraní pro pluginy zpracovávající zvuk. Dostupné pluginy umí skoro všechno co vás napadne upmix, downmix, zdroj bílého šumu, oscilátor, zesilovač… (už jsem v blogu psal o frekvenčních filtech). Ladspa využívá třeba gstreamer, nebo Audacious. Kdyby něco chybělo, tak si to můžete napsat :-D. Kromě toho lze ladspa používat přímo v ALSA (wow). Celá konfigurace se ukládá do ~/.asoundrc pro uživatele, nebo /etc/asound.conf pro systém.

    OK, dem na to

    Nejprve uvedu kompletní konfiguraci a pak si to rozebereme :).

    
    
    pcm.eq{
      type            ladspa
      slave.pcm       default
      channels        2
      plugins {
        0 {     
          id                      1197
          policy                   duplicate
          input.bindings.0        "Input"
          utput.bindings.0        "Output"
          input {
    # range -30~70    #50Hz 100Hz 156Hz 220Hz 311Hz 440Hz  622Hz 880Hz 1250Hz 1750Hz 2500Hz 3500Hz 5000Hz 10000Hz 20000Hz
            controls [  2    3     4     3     2      2     2     1      1     -1     -2     -2     -2     -2      -2 ]
          }
        }
      }
    }
    
    pcm.stereo {
      type            plug
      slave.pcm       eq
    }
    
    nadefinovali jsme PCM zařízení „stereo“, vstup do ekvalizátoru a „eg“, které má výstup napojen na výchozí (default) zařízení ALSA. Zařízení eq hostuje plugin ladspa s identifikátorem 1197, což je plugin Multiband EQ. Politika je nastavena na „duplicate“, tedy opakovat pro všechny kanály, máme nastaveno, že zařízení má dva.

    Teď už by měl ekvalizátor fungovat, ověřit to můžete například příkazem

    speaker-test -twav -c2 -Dstereo
    

    měl by být znát rozdíl od zařízení default

    speaker-test -twav -c2 -Ddefault
    

    pokud rozdíl neslyšíte poštelujte si nastavení v poli „controls“.

    Ekvalizér tedy funguje a nezbývá nic jiného, než nastavit zařízení stereo jako výchozí v přehrávači a začít ladit nastavení. Pozor po změně nastavení je potřeba přehrávač vypnout (většinou nestačí stop, protože po play se neinicializuje zvukový sýstup), aby si načetl znovu nastavení, proto se bude hodit něco do konzole :).

    Něco na přilepšenou

    Jak jsem naznačil, ekvalizér sice funguje, ale má za následek určité zvyšení zátěže CPU a u notebboku to znamená kratší čas běhu na baterii. Tak jsem si alespoň nadefinoval zařízení pro downmix :).

    ~/.asoundrc

    pcm.eq{
      type          ladspa
      slave.pcm     default
      channels      2
      plugins  {
        0 {
          id        1197
          policy    duplicate
          input.bindings.0  "Input"
          utput.bindings.0  "Output"
          input {
    # range -30~70    #50Hz 100Hz 156Hz 220Hz 311Hz 440Hz  622Hz 880Hz 1250Hz 1750Hz 2500Hz 3500Hz 5000Hz 10000Hz 20000Hz
            controls [  2    3     4     3     2      2     2     1      1     -1     -2     -2     -2     -2      -2 ]
          }
        }
      }
    }
    
    pcm.stereo {
      type       plug
      slave.pcm  eq
    }
    
    pcm.!surround40 {
      type       route
      slave.pcm  stereo
      slave.channels  2
      ttable {
        0.0  1
        0.1  0.1
        1.1  1
        1.0  0.1
        2.0  0.8
        2.1  0.1
        3.1  0.8
        3.0  0.1
      }
    }
    
    pcm.!surround41 {
      type       route
      slave.pcm  stereo
      slave.channels  2
      ttable {
        0.0  1
        0.1  0.1
        1.1  1
        1.0  0.1
        2.0  0.8
        2.1  0.1
        3.1  0.8
        3.0  0.1
        4.0  0.5
        4.0  0.5
      }
    }
    
    pcm.!surround50 {
      type       route
      slave.pcm  stereo
      slave.channels  2
      ttable {
        0.0  1
        0.1  0.1
        1.1  1
        1.0  0.1
        2.0  0.8
        2.1  0.1
        3.1  0.8
        3.0  0.1
        4.0  0.5
        4.1  0.5
      }
    }
    
    pcm.!surround51 {
      type       route
      slave.pcm  stereo
      slave.channels  2
      ttable {
        0.0  1
        0.1  0.1
        1.1  1
        1.0  0.1
        2.0  0.8
        2.1  0.1
        3.1  0.8
        3.0  0.1
        4.0  0.5
        4.1  0.5
        5.0  0.5
        5.1  0.5
      }
    }
    
    pcm.!surround71 {
      type       route
      slave.pcm  stereo
      slave.channels  2
      ttable {
        0.0  1
        0.1  0.1
        1.1  1
        1.0  0.1
        2.0  0.8
        2.1  0.1
        3.1  0.8
        3.0  0.1
        4.0  0.5
        4.1  0.5
        5.0  0.5
        5.1  0.5
        6.0  1
        7.1  1
      }
    }
    
    
           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    belisarivs avatar 24.5.2008 13:26 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Jak je to horke s tou zatezi CPU?
    IRC is just multiplayer notepad.
    vogo avatar 24.5.2008 13:34 vogo | skóre: 34 | blog: "Skládat papír"
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    na noťasu s dvoujádrem Intel T2130 to dělá 10% při taktu 798 MHz…
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
    belisarivs avatar 24.5.2008 14:17 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Tak to je dost.
    IRC is just multiplayer notepad.
    vogo avatar 24.5.2008 14:20 vogo | skóre: 34 | blog: "Skládat papír"
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    no je to stejně jako ekvalizer v amaroku, audacious je na tom o trošičku lépe, na výdrži baterky to ubere z 3.5 hodin 0.25 hodiny…
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
    25.5.2008 00:26 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Ahoj, mam dotaz, ktery az tak nesouvisi s tvym zapiskem, ale i tak to zkusim... ;-)

    Co kdybych chtel z PC udelat ekvalizer? To znamena pouzit alsu a ladspa plugin, ale nechtel bych, aby to ovlivnovalo jen zvuk z userspace (pres libalsa), ale i to, co leze z line-in apod...

    Nevedel bys (nebo nekdo) nahodou?
    25.5.2008 18:41 Kvakor
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Pokud zvukova karta umi full fuplex (dnes temer vsechny), tak to neni problem, staci nahravat a hned posilat na vystup (napr. pres Sox). Pamatuju, jak jsem kdysi davno na SB16 zkousel DOSovy programek, co dokazal delat ruzne efekty se zvukem diky duplexnimu provozu (SB16 byla jedna z prvnich beznych zvukovych karet pro PC, co to umela), i kdyz tenkrat jen jednoduche efekty typu echo ci zpozdeni, protoze vic by tehdejsi procesy nezvadaly).

    A pozdeji jsem videl podobne reseni delane pro karty zalozene na Emu10k (SB Live! a Audigy), ktere ale to same delaly hardwarove (Emu10k je vlastne signalovy procesor). Jednoduchy ekvalizer (petipasmovy, myslim) se dokonce vyskytuje jako jeden z prikladu v balicku s emu-dspmgr, ale nevim, jestli to je pouzitelne i pro Alsu (emu-dspmgr je, pokud vim, jen pro OSS driver). Alsa ma v sobe v ovladaci pro emu10k1 defaultne dvoupasmovy ekvalizer, i kdyz neni nic moc.

    Osobne bych ale PC k podobnemu ucelu nepouzival, ve srovnani se spotrebou klasickeho (tj. analogoveho ci postaveneho na specializovanych DSP) ekvalizeru je spotreba PC primo desiva, nehlede na mozne problemy s rusenim. A kdyz uz, tak pomoci prave nejake karty s Emu10k, diky ktere by to zvladl i nejaky opravdu slaby stroj (napr. neco usporneho jako VIA Epia), protoze by pouze nastavoval vlastnosti onoho ekvalizeru, samotne vypocxty by delal chip na zvukove karte.
    25.5.2008 20:55 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Diky za tipy, myslenka hnat data pres userspace tam a zase zpatky se mi moc nezamlouva, ale asi to jinak nepujde :-(.

    Jinak, co potrebuji neni ekvalizer, ale kompresor (kvuli televizi - nebavi me porad snizovat a zvysovat hlasitost). Na PC jsem to chtel delat proto, ze je proste pobliz ;-). Jinak, pokud byste vedel o nejake HW alternative, budu vdecen za kazdou radu...
    Josef Kufner avatar 26.5.2008 09:18 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Uděláš líp, když televizi vypneš úplně ;-)
    Hello world ! Segmentation fault (core dumped)
    26.5.2008 09:38 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Userspace jsou i pluginy do alsy. Obecně se nedoporučuje dělat takové vychytávky v kernel spacu, tam patří jen ovladače a nejnezbytnější infrastruktura. Každá chybka vede k pádu, blbě se do debuguje, musí se hlídat velikost použité paměti, atd.

    Overhead vytažení do userspacu je minimální.
    26.5.2008 09:41 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Ještě k té TV. Chce to vyzkoušet, ale kolečko zvukovka in - kompresor - zvukovka out bude mít nějakou latency. Pokud nelze zpozdit obraz (u TV asi problém), může být i malá latence na dialozích znát. Ale třeba se dostaneš na dobrá čísla.
    26.5.2008 09:46 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Uff, samozřejmě latenci, už jsem z té angličtiny zblblý :)
    26.5.2008 10:59 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    zpoždění ;)
    26.5.2008 14:47 Kvakor
    Rozbalit Rozbalit vše Re: Je libo ekvalizér přímo v ALSA?
    Jinak, co potrebuji neni ekvalizer, ale kompresor (kvuli televizi - nebavi me porad snizovat a zvysovat hlasitost).
    Navod na omezovac hlasitosti jsem videl kdysi v nejakem casopise, je to celkem jednoduce zapojeni, ktere funguje jako zesilovac se ziskem rizenym napetim, ktere se ziskava integraci vstupniho signalu. Myslim, ze tam byly jen 4 OZ v jednom pouzdre a pak uz jen odpory a kondenzatory, plus jeden stabilizator (7809, myslim). Jedina nevyhoda je, ze a) je pak treba externi zesilovac (zisk tohohle "zesilovace" je totiz pouze v intervalu 0-1) a b) nejspis to kvuli integrujicimu charakteru vstupu ma urcite nejakou nenulovou latenci, leda ze charakteritika predelala z PI na PID.

    Osobne problem s vyssi hlasitosti reklam v televizi resim tlacitkem Mute, pripadne nahranim celeho poradu a preskakovanim casti, ktere nechci ...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.