実践Linux                 TOPへ  Raspberry pi目次へ

Raspberry Piで遊ぶ  音を鳴らす編    2015年2月


●音の基本設定
【調査】
$ amixer controls
出力先設定はnumid=3、音量設定はnumid=1等であることがわかる。(変化するので注意)

【出力先設定】
現在の設定を調べる $ amixer cget numid=3
アナログ出力を優先する場合 $ amixer cset numid=3 1
HDMIを優先する場合 $ amixer cset numid=3 2
自動 $ amixer cset numid=3 0

【音量の設定】
現在の設定を調べる
$ amixer cget numid=1
numid=1,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
: values=-1725 ← 音量
; | dBscale-min=-102.39dB,step=0.01dB,mute=1
音量の設定
$ amixer cset numid=1 95%
numid=1,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0
: values=-130 ← ここが変わっている
| dBscale-min=-102.39dB,step=0.01dB,mute=1

【設定を保存】
設定を再起動してもそのままの設定になるようにします。
$ alsactl store

【USB Audio】
USB Audioを使う場合は、USB接続の優先度をあげる設定をしておくと便利
(USB Audioがhw:0,0となり、aplayなどで-Dオプションを付けなくても使えるようになる)
音関連モジュールの優先度を確認します。
cat /proc/asound/modules
---------------
0 snd_bcm2835
1 snd_usb_audio
---------------
となっていれば、内蔵オーディオが優先されているので、USBで接続したものの優先度をあげる設定が必要。
/etc/modprobe.d/alsa-base.confを編集
options snd-usb-audio index=-2をコメントアウト。すると、USB Audioが最優先となる。
再起動。

●ヘッドフォンジャック
出力をアナログ(=ヘッドフォンジャック)に固定(通常、これはやらなくても大丈夫)
$ amixer cset numid=3 1

wavファイルの再生を試してみます。
$ aplay /usr/share/sounds/alsa/Rear_Center.wav  (デフォルトは-D hw:0,0)
$ aplay -D hw:1,0 /usr/share/sounds/alsa/Rear_Center.wav  カードとデバイス指定が必要な場合
これで音が鳴ればOKです。

カード、デバイスを調べるには
# aplay -l
# ls -l /proc/asound
# cat /proc/asound/cards

●USBヘッドフォン
# dmesg | grep Audio
USB Audio Deviceが表示されれば、認識されている。
# lsusb

前述のとおり、USB接続の優先度をあげる設定をしておくと便利。
/etc/modprobe.d/alsa-base.confを編集
options snd-usb-audio index=-2をコメントアウト。
再起動。

wavテスト
$ aplay /usr/share/sounds/alsa/Rear_Center.wav
$ aplay -D hw:1,0 /usr/share/sounds/alsa/Rear_Center.wav  hw:0,0でない場合、カードとデバイス指定

●録音(マイクはUSB)
マイクが認識されているか確認
lsusbやarecord -lでデバイスが認識されているか確かめる。
# lsusb
# arecord -l

前述のとおり、USB接続の優先度をあげる設定をしておく。

録音マイクの感度を最大にするには、
# amixer sset Mic 100%  (ただし、音がわれてしまうので50%ぐらいがよいかも)

録音は以下のように、フォーマットにS16_LEを付けます。
# arecord -f S16_LE test.wav
~/(ホーム)に保存される。


●インターネットラジオを聴く
【ネットラジオ対応の軽量プレーヤーMPDの導入】
MPDは、音楽再生サーバーで多数のファイル形式をサポートしている上に、ネットワーク経由のサウンドストリームの再生もサポートしています。

MPDのインストール
# apt-get update
# apt-get install mpd mpc

MPDの設定ファイル /etc/mpd.conf
13 music_directory "/var/lib/mpd/music"
20 playlist_directory "/var/lib/mpd/playlists"

82 bind_to_address "localhost"

200 audio_output {
   type "alsa"
   name "My ALSA Device"
   device "hw:0,0" # optional
   format "44100:16:2" # optional
   mixer_device "default" # optional
   mixer_control "PCM" # optional
   mixer_index "0" # optional
   }

/etc/mpd.confを編集
82 bind_to_address "127.0.0.1"     bind_to_address "localhost"はコメントアウト
  bind_to_address "192.168.7.199"

200 audio_output {
   type "alsa"
   name "USB Audio Device"
   device "hw:0,0"    ←"card,device"
   }

カード、デバイスを調べる(/etc/mpd.conf編集のとき)
# aplay -l
# ls -l /proc/asound
# cat /proc/asound/cards

自動起動は停止にしておく
# chkconfig --list  一覧
# chkconfig mpd off

手動起動・停止
# service mpd start
# service mpd stop

【ネットラジオを聴く】
ネットラジオ局を集めたプレイリストを作成する
.m3u ファイルを作成する
$ mpc save radioとすると、デフォルトで /var/lib/mpd/playlists/radio.m3u ができる。
/var/lib/mpd/playlists 以下に適当な名前の .m3u ファイルを自分で作成してもよい。

ラジオ局を集めたプレイリストを作成する。
http://www.shoutcast.com/等より、データを入手して、以下のように編集。
/var/lib/mpd/playlists/radio.m3u
 # ABC Piano
 http://listen.radionomy.com/ABC-Piano
 # Barock Music
 http://listen.radionomy.com/Barock-Music
 ...
ファイルの所有者を変更しておく。
# chown mpd:audio /var/lib/mpd/playlists/radio.m3u

ネットラジオを聴く
既存のプレイリストをクリア
$ mpc clear
プレイリストをロード
$ mpc load radio
プレイリストの中身を確認
$ mpc playlist
再生
$ mpc play
次を再生
$ mpc next
停止
$ mpc stop

【音楽ファイルを聴く】
/var/lib/mpd/music/に楽曲ファイルを置く(mp3ファイル等)
楽曲ファイルをmpdに登録
$ mpc clear
$ mpc update  (/var/lib/mpd/music/の中身を新たに読み込む)
$ mpc listall  確認
$ mpc add test01.mp3  1曲だけ登録
$ mpc listall | mpc add  まとめて登録
$ mpc playlist  プレイリストの中身を確認
再生
$ mpc play
$ mpc next
$ mpc stop

【ボリューム】
音量を100%にする。
# amixer set PCM 100%



TOPへ  Raspberry pi目次へ