LoginSignup
0
0

raspberry pi とpcm5102をスマホでボリューム調節

Last updated at Posted at 2024-04-28

やりたい事

アンプのボリュームツマミを使わずに、スマホでボリューム調節をしたい!!
music player daemonつっこんで、スマホでmpcでボリュームコントロール!!

ウチの環境

raspberry py3にpcm5102を接続してます。pcm5102の音声出力を中華製アンプlepyに繋げてlepyとスピーカーを繋げてます。

pcm5102について

pcm5102は、ボリュームのハードウェア制御ができません。以前、volumioを使ってたので、アルバムからの選曲をスマホでカッコよく操作出来るのに、ボリュームは、アンプの場所まで行って、ツマミで調節してました。トホホホホ。

前は、もう、当然のようにあきらめたんです。でも、今回、なんか方法ありそうだよなぁって、見てたら、ありました、できました!!この喜びを共有して、書いてます。

設定

行き着くまで、試行して錯誤してメッチャ長い道のりでしたが、まとめてみると、ほんのチョチョイのチョイですね。

raspberry pi にpcm5102を接続

pcm5102を使うための設定です。

/boot/config.txt
hifiberry-dac

music player daemon インストール

このソフトはスグレモノですね。mp4も連続再生してくれます。

hottool@music:~$ sudo apt update
hottool@music:~$ sudo apt install mpd

サウンドカードの確認

全てのサウンドカードとデジタルオーディオデバイスのリストを確認します。

hottool@music:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
  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 1: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: vc4hdmi [vc4-hdmi], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
hottool@music:~ $  

alsaのソフトウェアボリューム設定

alsamixser で音声制御がこの設定をするまでは、できなかったのですが、この設定をしたらできるようになりました。

/etc/asound.conf
pcm.hifivol {
    type            softvol
    slave {
        pcm         "plughw:sndrpihifiberry"
    }
    control {
        name        "Softmaster"
        card        1
    }
}

音声出力確認

これで、スピーカーの右、左に音が出るといいんですが、

hottool@music:~ $ speaker-test -Dhifivol -c 2 -twav

speaker-test 1.2.4

Playback device is hifivol
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 8 to 131072
Period size range from 4 to 65536
Using max buffer size 131072
Periods = 4
was set period_size = 32768
was set buffer_size = 131072
 0 - Front Left
 1 - Front Right
Time per period = 0.727501
 0 - Front Left
 1 - Front Right
Time per period = 2.737099
 0 - Front Left
 1 - Front Right
Time per period = 3.407165
 0 - Front Left

ボリュームコントロール確認

alsamixer
F6キーでサウンドカードを選択したら、ボリュームコントロールできましたか?

mpdの音声出力先設定

これで、ソフトウェアでのボリュームコントロールができるようになったはずですが、mpd の設定でも、ソフトウェアで制御するようにしないといけません。audio_outputを以下のように指定しました。

/etc/mpd.conf
audio_output {
        type            "alsa"
        name            "My ALSA Device"
        device          "hifivol"   
        mixer_type      "software"  
}

mpdの再起動

設定を変えたあとに、mpd を止めて、再起動です。

hottool@music:~$ sudo systemctl stop mpd
hottool@music:~$ sudo systemctl start mpd

これでできました。

おすすめandroid mpc クライアント

私は、android で、M.A.L.P. を使ってます。MPDroidも使ってみましたが、バージョンが古いせいか、強制終了を繰り返してしまいます。

参考

ALSAとはAdvanced Linux Sound Architectureの略称で、Linuxにおける高機能なサウンドシステムを提供するためのソフトウェア群

最後に

途中まで、自身満々で記事を書いていたのですが、なんか、alsaって難しいですね。途中挙動がわからなくなり、この記事、少し自信がないです。詳しい方、ご指摘いただければ嬉しいです。そんな中途半端な記事ですが、どなたかの参考になれば嬉しいです。

次は、mpc でのプレイリストの操作など、クライアントの使い方をマスターしたら書きたいなって思っています^^;

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0