Raspberry Piで音を鳴らす
先日、念願の Raspberry Pi (以下、RasPi) を購入しました。そこで RasPi にて音を鳴らす手順を簡単にまとめます。
音を鳴らすまで
Raspbian のバージョンは 2013-09-25-wheezy-raspbian をダウンロードして使っています。(これはアップデート後の表示です)
$ uname -a Linux raspberrypi 3.10.18+ #579 Wed Nov 6 13:49:03 GMT 2013 armv6l GNU/Linux
具体的な手順は Raspberry-Pi Enable Sound - Semillero: Advanced Digital Technologies - UPB Bucaramanga, Colombia に記述してあります。元記事のコマンドを全て実行しなくても再生ができたので要点を抜粋して記述していきます。
まずはファームウェアとソフトウェアのアップデート
$ sudo apt-get update $ sudo apt-get upgrade $ sudo rpi-update
ここで一旦リブートしたほうがいいでしょう。
$ sudo reboot
ここから設定を変えていきます。/boot/config.txt を編集し、#hdmi_drive=2 の部分をアンコメントします。
$ sudo nano /boot/config.txt
... # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes hdmi_drive=2 ...
ここから環境によって手順が異なります。HDMI が接続されているとデフォルトでは HDMI を優先して音声信号を出力しますが、アナログ出力を優先する場合は
$ amixer cset numid=3 1
HDMI を優先する場合は
$ amixer cset numid=3 2
非推奨ですが自動にしたい場合は
$ amixer cset numid=3 3
とします。私の場合、HDMI から音は拾わないので 1 を選択します。このコマンドは再起動不要ですが、ここでまたリブートしておきましょう。
$ sudo reboot
再生
WAVE ファイルの再生であればすぐにテストできます。
$ aplay /usr/share/sounds/alsa/Noise.wav
正常にサウンドが再生できるならば 1 秒のノイズが再生されるはずです。
MP3、Ogg Vorbisも同様に再生可能です。追加のパッケージをインストールします。
$ sudo apt-get install mpg321 vorbis-tools
MP3 ならば mpg123 (または mpg321) コマンドで再生します。
$ mpg123 testsound.mp3
Ogg Vorbis は ogg123 コマンドです。
$ ogg123 bgm*.ogg
あまり良い比較ではありませんが、負荷率は WAVE << MP3 < Ogg Vorbis となりました。RasPi のオーバークロック無し(700MHz)でも 16bit 44.1kHz PCM な WAVE ファイルは 0.3% ほどの CPU 負荷でした(もちろん音飛びは無し)。SDカードにもよりますが、音楽を再生するだけなら全く問題ないでしょう。