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目次へ