2016年1月9日土曜日

Volumioでイコライザを使う

RaspberryPiにVolumio & SabreBerry+を導入しハイレゾ対応の音楽プレイヤーにしています。
音質はクリアでとても満足してしているのですが、聴く曲によってはもっと低音を強調してドコドコ鳴らしたいことがあります。
しかし、Volumioにはイコライザー機能が無く、他のRaspberryPi向け音楽再生用ディストリビューションでイコライザー機能があるものは見つかりませんでした。

そこで、個別にVolumioにイコライザーを導入してみました。

導入した結果、自分の環境(と耳)だと特に音の劣化も無くイコラザーが有効になっているみたいで、今の所満足しています。

参考にしたのはVolumio本家のフォーラム。
https://volumio.org/forum/equalizer-t45-10.html

1.作業概要


自分の環境でVolumioのMPD Configuration画面のAudio Outputを選択すると、3つのデバイスが表示される(DACを二つ接続した時)。
 「sndrpihifiberry」-- I2S接続のドーター基板DAC (SabreBerry)
 「DAC」    -- USB DAC (秋月 USB DAC)
 「ALSA」     -- ラズベリーパイ搭載DAC
最初、ラズベリー搭載DAC以外はALSAを使用せずに何か特殊な接続をしているのだと思っていたのですが、実際は3つのデバイス全てALSAを通して音を鳴らしていました。
ALSAを通しているのであれば、ALSAの「イコライザプラグイン」を使えるはずということで、イコライザプラグインを導入し、mpdとALSAの定義を修正します。




2.VolumioにSSHでログイン


sshクライアントで「pi@volumio.local」で接続(volumio2はvolumio@volumio.local)。
(MACはターミナルから「ssh pi@プレイヤー名.local」、 Windowsの場合はteraterm等をインストールする必要あり)
Volumioの設定画面で「Player Name」を変更している場合は「プレイヤー名.local」で接続。
ログイン時に聞かれるパスワードはデフォルトだと"raspberry"(valumio2はパスワードも「volumio」)。


3.ALSAイコライザをインストール
Volumioにログインしたら、ALSAプラグインのイコライザパッケージをインストールする。
以下コマンドを実行(aptパッケージリストを更新し、イコライザパッケージをインストール)。
sudo apt-get update
sudo apt-get install -y libasound2-plugin-equal 

4.認識しているDACを確認

以下コマンドを実行し、カード番号をメモ(後で設定するALSA定義で使用するので)。
aplay -l 

以下、出力例(今回はI2S接続しているHifiBerryにイコライザーを設定したいので、「card 0」の「0」をメモ)
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: DAC [USB Audio DAC], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 2: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

5.ALSA定義ファイル作成

Volumio標準では存在しないファイルなので、新規に作成。
以下コマンドで定義ファイルを開く。

sudo nano /etc/asound.conf  
ファイルを開いたら、以下内容を記載。
下線部の「plughw:0,0」の最初の「0」は上で調べたカード番号。
ctl.equal {
  type equal;
}
pcm.plugequal {
  type equal;
  slave.pcm "plughw:0,0";
#this is where you have to input the number of your soundcard, so card0 = plughw:0,0 - card
}
pcm.equal {
  # Or if you want the equalizer to be your
  # default soundcard uncomment the following
  # line and comment the above line.
# pcm.!default {
  type plug;
  slave.pcm plugequal;
}




6.mpd定義ファイル修正

以下コマンドで定義ファイルを開く。

sudo nano /etc/mpd.conf  
ファイルを開いたら、「audio_output」の箇所を以下内容に修正。
            <<省略>>
audio_output {
                 type           "alsa"
                 #name          "Output"
                 name           "equal"
                 #device        "hw:0,0"
                 device         "plug:plugequal"
                 mixer_control  "Master" #This is all the magic to fix the volume issue ;-)
                 mixer_device   "hw:0" #this would have to be adapted in case your soundcar
                 mixer_index    "0"
                 dop    "no"


}

この定義ファイルはVolumioのMPD Configurationの設定を変更してSaveすると上書きされるので、注意。
上書きされたら再度同じ修正をする必要がある。



7.Volumio再起動

以下コマンドを実行し、リブートする(VolumioのメニューからTurn Off - REBOOTでも可)。
sudo shutdown -r now
Volumioの環境変更はここまで。

8.イコライザ操作

イコライザの操作はイコライザプラグインに付属のコマンドで行う。
VolumioにSSH接続し、以下コマンドを実行。
sudo -u mpd alsamixer -D equal

以下画面が表示されるので、イコライザ設定を行う。
イコライザの設定はリアルタイムに反映されるので、音を鳴らしながら調整することが可能。
操作はカーソル左右でバンドを選択し、上下で強調 /減少を設定。
終了はESCキーで終了。
ターミナルのサイズが小さいと表示しきれない領域はスクロールで表示されるので、右端のバンドから更に右にカーソルを押すと隠れていた帯域も表示される。
(ちなみにターミナルの横幅を広げれば全部表示されるし、棒グラフの解像度もターミナルの高さを大きくすると詳細になる)

9.イコライザで設定した内容を保存しているファイルの場所

上記で設定したイコライザの内容は以下ファイルに保存されているので、
幾つかプリセットを持ちたいのであれば、イコライザ設定後、別名でバックアップを取得しておき、都度以下ファイルに上書きする。
/var/lib/mpd/.alsaequal.bin



0 件のコメント:

コメントを投稿

Volumioでイコライザを使う

RaspberryPiにVolumio & SabreBerry+を導入しハイレゾ対応の音楽プレイヤーにしています。 音質はクリアでとても満足してしているのですが、聴く曲によってはもっと低音を強調してドコドコ鳴らしたいことがあります。 しかし、Volumioにはイコラ...