音楽に関する環境設定
音楽CDの再生、リッピング、エンコーディングなどの環境を構築します。
準備するもの
- カーネルのサウンドサポート
- 再生用ソフト
- リッパー
- エンコーダー
- その他
カーネルの設定
linuxに音楽を再生させるには、まず、カーネルがサウンド機能をサポートしていなければなりません。
su
password:******
cd /usr/src/linux
make menuconfig
を実行して、
Device Drivers ---> Sound ---> Sound card support
をカーネルに組み込みます。
次に、ALSAが必要です。
カーネルのソースツリーに組み込まれているものと、ALSAプロジェクトから入手できるもののどちらでも構いません。
ソースツリーに組み込まれているものを利用する場合、カーネルに組み込んでしまうことができます。その場合、モジュール関係の設定が不要になる(と思う)ので、少し楽ができます。
また、自分のマシンのサウンドチップが良く分からない場合、ドライバを全部カーネルに組み込んでしまえばなんとかなることもあります。
ただし、今回は別途入手してインストールします。
まず、上記の設定をしたカーネルをビルドしてインストールします。
カーネルをビルドしたコンパイラとモジュールをビルドしたコンパイラが違うものだと、カーネルが吹き飛ぶことがあるので、既にサウンド機能を組み込んである人も、念のために再度makeすることをお勧めします。
次に、ALSAプロジェクトから必要なファイルを入手します。
Driver、Library、OSSCompatLib、Firmware、Utilityの順にインストールします。Toolsは、あってもなくても構いません。
Driverは./cofigure --with-cards=hogehogeとすることでmakeするドライバを限定できます。これによりmakeに必要な時間を大幅に短縮できます。
このオプションをいれておかないと、ドライバを全部makeします。
無駄に時間とディスク領域を消費する以外には害はないので、あまり固く考える必要はありません。
それぞれ、make installまで終ったら、/etc/modules.confを書き換えます。
plamoでは、あらかじめ詳細な雛型が用意されているので、使用するモジュールさえ分かっていれば、10秒で設定完了です。
私の環境では
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-ymfpci
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
のようになります。
各行の#を取り除いて、alias snd-card-0の後ろに適切なモジュール名を記入するだけです。
2.6系列を利用している人は、最後に
generate-modprobe.conf>/etc/modprobe.conf
を実行します。
command not foundになってしまう場合は、module-init-toolsのインストールが必要です。
これで、一応のインストールは終りですが、このままではmuteされているので、うんともすんともいいません。
そこで、ボリュームの設定が必要です。
alsamixer
と入力して、設定します。
mボタンでミュートの解除、カーソルキーの上下でボリュームの上下を設定できます。
必要な設定が終ったら、ESCで終了できます。
最後に、
alsactl store
と入力して、設定を保存します。
ボリュームの情報は/etcに保存されるので、特権ユーザで実行して下さい。
最後の作業を忘れると、起動するたびにボリュームの設定が必要になります。
注意しましょう。
再生用のソフト
linuxで音楽再生といえばxmmsです。
他にもいろいろあるのですが、これが一番無難だと思います。
インストールは./configure、make、make installのいつもの手順で完了します。
ogg vorbisとかflacとかmikmodも、あらかじめ入れておくと再生可能になります。
さて、これでxmmsのインストールは完了なのですが、多くの場合、これだけでは音楽CDを再生できないと思います。
その理由は、ls -l /dev/hdcをしてみると分かります。
ls -l /dev/hdc
brw-r----- 1 root disk 22, 0 5月 8日 1995年 hdc
これを見れば一目瞭然。
所有者であるrootか、diskグループに属するユーザでないと読めない、ということです。
対処法は、chmod 644か、usermod -G disk mynameかです。
デバイスのパーミッションが640になっていることには何か理由があるような気がするので、後者をお勧めしておきます。
コマンドを実行したら、cat /etc/groupを実行してdiskグループに自分のユーザ名が追加されていることを確認しましょう。
その他のxmmsの設定は、xmmsの窓を右クリックしてあらわれるメニューから、設定を選ぶと、いろいろ変更できます。
CDDBの検索なども、入力プラグインの設定項目の中にあります。
試してみて下さい。
リッパー、エンコーダの前に、著作権に関する簡単な考察
リッピングとかエンコーディングとかの話題になると、著作権が気になりますが、きちんと買ったCDをリップしてエンコードするだけなら何の問題もありません。
おそらく、レンタルのCDでも問題無いはずです。
その理由は、このサイトを見ると分かると思うのですが、レンタルの料金には著作権料が含まれているからです。
レンタル料金はユーザ(私たちのことです)がコピーすることを念頭において設定された、ということらしいので、堂々とリップしましょう。
ただし、リップして作成したデータの利用方法によっては著作権侵害になるので、注意しましょう。
現在のiTunesが実現する程度の共有は許されている(現にアップルは著作権侵害で捜査されたり賠償を命じられたりしていません)ので、その範囲で楽しみましょう
その範囲を越えて共有を実現したい、という人は、それなりの覚悟でやって下さい。
本サイトは、「その範囲」を越える共有方法については、いかなる情報提供もしません。
あしからず。
リッピング
さて、権利関係に問題が無いことを確認したら、リッピングです。
これもcdparanoiaを使うのが楽だと思います。
入手できるソースの日付は結構古いので、そのままではコンパイルできないかもしれません。
gcc -O20 -ffast-math -fsigned-char -finline-functions -c scan_devices.c
In file included from scan_devices.c:20:
utils.h: In function `cderror':
utils.h:115: error: label at end of compound statement
utils.h: In function `cdmessage':
utils.h:130: error: label at end of compound statement
utils.h: In function `idperror':
utils.h:172: error: label at end of compound statement
utils.h: In function `idmessage':
utils.h:208: error: label at end of compound statement
make[2]: *** [scan_devices.o] エラー 1
のようなエラーが出る場合、interface/utils.hを若干修正する必要があります。
といっても、switch-case文のラベルがあってもstatementがない、というエラーなので、それぞれ、default:の次の行に
break;
を追加するだけです。
CXXFLAGSあたりを設定すれば、ソースを書き換えなくても大丈夫なのかも知れません。
ソースの書き換えは絶対にいやだという人は、その線でいろいろ試してみて下さい。
makeが終ったら、make installを実行して、早速何かをリッピングしましょう。
cdromに何か適当なCDを入れて、
cdparanoia -v 1-
を実行します。
しばらくして、cdda.wavという巨大なファイルが出来上がっていれば成功です。
エンコーダ
mp3エンコーダでlinuxでも走るもの、というと、lameと午後のこ〜だぐらいしか知りません。
午後のこ〜だはlameをベースに、より高速に処理できるように改造したものです。
両者ともオプションが豊富なので、厳密に比較できるかどうか分からないのですが、ちょっと試した感じでは三倍位速くなります。
シャア専用ですね。
lameを(おそらく午後のこ〜だも)コンパイルするにはnasmが必要です。
入手してインストールしておきましょう。
あとは、configure、make、make installで大丈夫なはずです。
その他
ここまでできればCDに関して一通りのことができるようになっているはずです。
しかし、このままでは若干使いにくいこともあります。
そこで、便利なツールをいれることにしましょう。
その名もripです。まんまです。
これは、CDDBからデータを拾ってきて、リップして、エンコードしてくれる、便利なツールです。
ただし、日本語のアーティスト名や曲名は期待しない方がいいです。
上記のサイトからパッケージをダウンロードして、展開すると、そこに実行ファイルがあります。perlスクリプトなので、コンパイルする必要はありません。
そのripという名前のファイルを/usr/binあたりにmvするだけです。
ただ、パッケージの中に入っているCDDB_get-1.66とMP3-Info-0.91は、インストールしないときちんと動きません。
それぞれ展開してできたディレクトリに移動して
perl Makefile.PL
make
su
password:******
make install
を実行します。
あ、当然ながら、perlが必要なので、ない人はインストールしましょう。
以上の作業が完了したら
cd
mkdir Music
rip -l -m Music
と実行することで、$HOME/Music以下にmp3ファイルが出来上がります。
ついでに、m3uプレイリストもできるので、これをxmmsに読み込ませれば、CDに納められていた順に演奏させることができます。
また、-Pオプションをつけておくと、エンコードの終った曲からxmmsに演奏させることができます。 |