読者です 読者をやめる 読者になる 読者になる

頼りないニモニック

はっきりいって個人の日記レベル

Raspberry Piで音を鳴らす

Linux サウンド プログラミング RaspberryPi

f:id:nanase_t:20131108185231j:plain

先日、念願の 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カードにもよりますが、音楽を再生するだけなら全く問題ないでしょう。