• Equalizer について

    皆様、お世話になります。

    最近 Bluetooth イヤホンを購入したのですが、通常では開発者のみが使用するイヤホンのイコライザーを一般ユーザに開放し、自分の好みのイヤホンに仕立て上げるというコンセプトを売りにしているものです。
    いろんなイコライザーの設定が用意されていて、私はその中でもCool Classic とか Cool Jazz とかが好みでした。

    それで、はたと自分のオーディオ環境を振り返ってみると、そういえばイコライザーって smpd に入ってなかったなぁと思い、質問させていただこうと思った次第です。
    (プリアンプで補正すればいいじゃないという突っ込みは無しでw)

    smpd が出た当初はターゲット HW は Raspberry Pi 3 で、一台で全部をこなしていたので難しかったと思いますが、今では AoE ②となり、フロントエンド側 CPU も apu2/6 とか Raspberry Pi 5 なども使用できるようになったので、イコライザーを同時に動かしてもそんなに影響ないのではと思っております。

    alsaequal か何かをインストールするのが近道なのかと思うのですが、極力 CPU 性能を犠牲にしないため GUI はインストールされていませんし、どのようにしたらよいのかなと。。。
    例えば Windows 側でGUI設定を行うと config file 変換され、そのファイルを ssh などでフロントエンド側にコピーして alsa を restart すれば適応されるとか?。。。

    もし現在 AoE ② 環境でイコライザーを使用されている方がおられましたら、色々と教えていただきたいのですが。

    よろしくお願いいたします。

  • @mgroovy さん
    とりあえずalsaequalを作りましたのでよろしければご利用ください。

    curl -O https://udo.sakura.ne.jp/aoe/alsaequal-v0.7.1-1-x86_64.pkg.tar.zst
    

    動かすのにLADSPA_PATH=/usr/lib/ladspaのexportが必要です。
    https://aur.archlinux.org/packages/alsaequal

    alsaequalの使い方はこちらをまずご覧ください。
    https://wiki.archlinux.jp/index.php/Advanced_Linux_Sound_Architecture

  • @udosan さん

    なんか催促してしまったみたいで、すみません。

    またいつもいつもありがとうございます。
    本当に感謝です!!!

    さっそくインストールしてみます。
    でもその前にちゃんと勉強しなければ。。。

  • @udosan さん
    さっそく apu2 にインストールし、alsamixer -D equal を実行すると、今までの alsamixer で表示されていたような棒グラフ状のものが10本表示され、各周波数帯域で dB を変更できるようになりました!
    でも、まったく音に反映されないのです。。。
    alsactl store をしても変わりませんでした。

    それで alsaequal をインストールする前のイメージで立ち上げ、alsamixer で vsound の音量だけを変化させてみたのですが、こちらも音量が変わりませんでした。

    バックエンドの smpdplayer 側は USB で DAC 接続しているのですが、何か設定が不足しているところとかありましたっけ?
    長いこと vsound 周りは触ってないので忘れてしまいました。

  • @mgroovy さん
    hw:0,0がvsoundだとして、
    .asoundrcまたは/etc/asound.confにこんなのを書いた上で
    -Dでplug:plugequal(またはdefalt)に出力すれば反映します。
    あとは何から出力したいかでどこにどんな設定を書くかが決まります。環境変数も書かないといけませんし。

    ctl.equal {
     type equal;
    }
    
    pcm.plugequal {
      type equal;
      # Modify the line below if you do not
      # want to use sound card 0.
      slave.pcm "plughw:0,0";
      #by default we want to play from more sources at time:
      #slave.pcm "plug:dmix";
    }
    #pcm.equal {
      # If you do not want the equalizer to be your
      # default soundcard comment the following
      # line and uncomment the above line. (You can
      # choose it as the output device by addressing
      # it with specific apps,eg mpg123 -a equal 06.Back_In_Black.mp3)
    pcm.!default {
      type plug;
      slave.pcm plugequal;
    }
    
  • @udosan さん
    コメントありがとうございます。

    インストール手順としては、Arch Linux linux-rt-lts kernel and modules で配布されているイメージを使い、vsound, shairport-sync, spotifyd, mpd, upnpdlci をインストール後に、以下の手順で alsaequal をインストールしています。

    ちなみに、alsaequal インストールする前の時点で、alsamixer で音量調整しても変化がありませんので、ここからおかしくなっているのでは?と思った次第です。(おぼろげな記憶では raspbery pi 4 用のイメージでは、ちゃんと音量が変化していたような気が。。。)

    cd
    vi .bash_profile
    以下2行で作成
    LADSPA_PATH=/usr/lib/ladspa
    export LADSPA_PATH
    
    source ~/.bash_profile
    
    curl -O https://udo.sakura.ne.jp/aoe/alsaequal-v0.7.1-1-x86_64.pkg.tar.zst
    pacman -U alsaequal-v0.7.1-1-x86_64.pkg.tar.zst
    
    vi /etc/asound.conf
    udosan さんと同じ内容で、slave.pcm "plughw:0,0" に変更
    
    alsamixer -D equal
    
  • Equalizer についてで@mgroovyが発言 :

    ちなみに、alsaequal インストールする前の時点で、alsamixer で音量調整しても変化がありませんので、ここからおかしくなっているのでは?と思った次第です。(おぼろげな記憶では raspbery pi 4 用のイメージでは、ちゃんと音量が変化していたような気が。。。)

    alsamixer での音量調整の件ですが、大変失礼いたしました。
    今 Raspbery Pi 4B フロントでやってみたら、音量変化しませんでした。
    また udosan さん作成の Raspberry Pi 5 用イメージでも音量変化しませんでした。

    ちなみに、alsamixer -D equal の画面は以下のようなのですが、
    最初の数行の Card とか Chip の表示で間違っていそうでしょうか?

    lqqqqqqqqqqqqqqqqqqqqqqqqqqqqq AlsaMixer v1.2.11 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
    x Card: Eq10                                           F1:  Help               x
    x Chip: alsaequal                                      F2:  System information x
    x View: F3:[Playback] F4: Capture  F5: All             F6:  Select sound card  x
    x Item: 00. 31 Hz                                      Esc: Exit               x
    x                                                                              x
    x     lqqk     lqqk     lqqk     lqqk     lqqk     lqqk     lqqk     lqqk      x
    x     x  x     x  x     x  x     x  x     x  x     x  x     x  x     x  x      x
    x     x  x     x  x     x  x     x  x     x  x     x  x     x  x     x  x      x
    x     x  x     x  x     x  x     x  x     x  x     x  x     x  x     x  x       x     x  x     x  x     x  x     x  x     x  x     x  x     x  x     x  x       x     xaax     xaax     xaax     xaax     xaax     xaax     xaax     xaax       x     xaax     xaax     xaax     xaax     xaax     xaax     xaax     xaax       x     xaax     xaax     xaax     xaax     xaax     xaax     xaax     xaax       x     xaax     xaax     xaax     xaax     xaax     xaax     xaax     xaax       x     xaax     xaax     xaax     xaax     xaax     xaax     xaax     xaax       x     xaax     xaax     xaax     xaax     xaax     xaax     xaax     xaax      x
    x     xaax     xaax     xaax     xaax     xaax     xaax     xaax     xaax      x
    x     xaax     xaax     xaax     xaax     xaax     xaax     xaax     xaax      x
    x     mqqj     mqqj     mqqj     mqqj     mqqj     mqqj     mqqj     mqqj      x
    x    66<>66   66<>66   66<>66   66<>66   66<>66   66<>66   66<>66   66<>66     x
    x  <00. 31 H>01. 63 H 02. 125  03. 250  04. 500  05. 1 kH 06. 2 kH 07. 4 kH    x
    x                                                                              x
    mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
    
    
  • @mgroovy さん
    archlinuxではイコライザーを動かすためにLADSPA_PATH=/usr/lib/ladspaをユーザーおよびサービスに伝える必要があります。
    全てのユーザーに反映するには/etc/environmentに記述します。
    さらにこれはサービスには反映しないので/lib/systemd/system/mpd.serviceの[Serivce]セクションに
    Environment="LADSPA_PATH=/usr/lib/ladspa"を追記します。

    その上でmpdサービスはmpdユーザーで稼働するのでalsamixerもmpdユーザーで実行する必要があります。
    sudo -u mpd alsamixer -D equal
    です。
    spotifyは環境がないのでこれを参考にお願いします:sweat_smile:

  • @udosan さん
    またまたサポートいただきありがとうございます!!!
    なるほどです。環境変数の使い方、とても勉強になります。

    ご指摘のように /etc/enironment を設定し、一度リブートした後、ls $LADSPA_PATH を実行し、ちゃんと ls /usr/lib/ladspa が表示されることを確認し、
    /lib/systemd/system/mpd.service の [Service] に Environment="LADSPA_PATH=/usr/lib/ladspa" を追記し、systemctl restart mpd を実施した上で、sudo -u mpd alsamixer -D equal を実行したのですが、
    残念ながら同じ結果で画面上の操作が音に反映されませんでした。
    うーーん、なんでだろう。。。

    ーーー追記

    同じような感じで spotifyd と shairport-sync も実施してみましたが、起動できませんでした。(/var/lib/の下に shairport-sync や spotifyd の directory も作成してみました)

    [root@archlinux ~]# sudo -u spotifyd alsamixer -D equal
    sudo: unknown user spotifyd
    sudo: error initializing audit plugin sudoers_audit
    [root@archlinux ~]#
    [root@archlinux ~]# sudo -u shairport-sync alsamixer -D equal
    Failed to open controls file:/var/lib/shairport-sync/.alsaequal.bin.
    cannot open mixer: Operation not permitted
    [root@archlinux ~]#
    

    もうすでに私の理解の範疇を超えまくっていますので、このへんで諦めます。
    お付き合いいただきありがとうございました。

  • @mgroovy さん
    /etc/mpd.confの出力deviceは"plug:plugequal"になってますよね?

    audio_output {
            type "alsa"
            name "alsa"
            device "plug:plugequal"
            allowed_formats "*:32:*"
    }
    
  • @udosan さん
    ビンゴです!
    なるほど、mpd.conf の出力先を変更しないといけなかったのですね。
    どうもありがとうございました!!!