MoOde Audio オーディオCDをダイレクト再生する

通常はオーディオCDをリッピングしてMoOde Playerから再生していますが音飛びの確認や聴き比べで確認したいなどCDドライブからダイレクトに再生したい時があります。

環境
MoOde audio 3.1
USB-CDドライブ I・Oデータ DVRPU8NKA
UAC3552A USB-DAC
ES9023P I2S DAC

まずは予備知識として以下のページを参考にしましょう。
(音楽)AudioCDをlinuxのFileSystem(ファイルシステム)にmount(マウント)するには・・・

オーディオCDは連続したデータでファイルシステムは無いのでマウントすることはできないということですね。
曲情報はネット上のCDDBサーバーから取得。AudioTrack〇〇と表示するのはあくまでプレーヤーやファイルマネージャーなどの機能ということになります。

当サイトの環境でダイレクトに再生するには2つの方法があります。
mplayerからalsa経由のUSB-DACを利用する方法とMPDからMoOde Playerで再生する方法があります。

mplayerから再生
moodeにログインします。
mplayerのコマンドライン指定は以下のサイトを参考にしました。
Raspberry Pi でCD-ROMドライブ経由CD再生
ドライブを確認

$ dmesg | grep CD
[    5.000508] scsi 1:0:0:0: CD-ROM            MATSHITA DVD-RAM UJ8E0    1.00 PQ: 0 ANSI: 0
[   10.969691] cdrom: Uniform CD-ROM driver Revision: 3.20
[   10.976620] sr 1:0:0:0: Attached scsi CD-ROM sr0

/dev/sr0で認識されています。
CDをセットして再生

$ mplayer -quiet -ao alsa:device=hw=1.0 -cdrom-device /dev/sr0 cdda://
MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team

Playing cdda://.
Found audio CD with 6 tracks.
CD-Text (CD):

Track 1
CD-Text (track):

Detected file format: rawaudio
Selected audio codec: Uncompressed PCM [pcm]
AUDIO: 44100 Hz, 2 ch, s16le, 1411.2 kbit/100.00% (ratio: 176400->176400)
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
[AO_ALSA] Unable to find simple control 'Master',0.
Video: no video
Starting playback...

停止はCtrl+c
2局目のみ再生、3曲目から5局目まで再生はそれぞれ次のように指定します。

$ mplayer -quiet -ao alsa:device=hw=1.0 -cdrom-device /dev/sr0 cdda://2
$ mplayer -quiet -ao alsa:device=hw=1.0 -cdrom-device /dev/sr0 cdda://3-5

MoOde Playerから再生
MPDはCDDAもサポートしているのでMoOde Playerからも再生可能です。
但しCDドライブのパーミションの関係からこのままではMPCはアクセスできません。
一般ユーザーからもアクセスできるよう設定します。
デバイスの確認

$ lsusb
Bus 001 Device 006: ID 04bb:022b I-O Data Device, Inc.

CDドライブは上記のように認識されています。(ドライブによってIDは違うと思います)
/etc/udev/rules.dに99-cd.rulesを新たに作成します。

# vi /etc/udev/rules.d/99-cd.rules
ATTRS{idVendor}=="04bb", ATTRS{idProduct}=="022b", GROUP="pi",MODE="0666"

作成したら再起動

$ ls -la /dev/sr0
変更前 brw-rw---- 1 root root 11, 0  1月  1  1970 /dev/sr0

変更後 brw-rw-rw- 1 root pi 11, 0  1月  1  1970 /dev/sr0

ログインして以下のコマンドを実行

$ mpc add cdda://


プレイリストにはcdda://が追加されています。

再生すると冒頭に述べたとおりMPDは全曲1ファイルの形式で表示再生します。
MPCでトラックごとのスキップ機能が可能かは調べていません。
但し円形の進捗バーをクリックすることで任意のタイムに移動可能なのでこれで充分かなと思います。


プレイリストのcdda://は編集してBrowseに登録しておけば以降CDをセットするのみでいつでも使用可能となります。

リッピングする前に試聴したい時などにも便利ですね。

99-cd.rulesを設定する以前はちょっとした拍子にCDドライブデバイスが/dev/sr0から/dev/sr1に変わってしまうことがあったのですが設定後は/dev/sr0に固定されるようになりました。

再生はMoOde Playerからもmlayerでも問題なく再生できます。

Radiko PlayerにもCD再生とeject機能のみ追加してみました。

選曲機能は面倒そうなのでやめときました。

/var/www/html/index.php

php部
case "cdp":
     exec("nohup sel_radiko.sh > /dev/null 2>&1");
     exec("nohup mplayer -quiet -ao alsa:device=hw=1.0 -cdrom-device /dev/sr0 cdda:// > /dev/null &");
     $_SESSION['broad']="CD PLAY";
     break;
case "eject":
     exec("nohup eject > /dev/null &");
     break;

html部
<a class="btn btn-empty btn-sm btn-success" href="index.php?id=cdp">CD PLAY</a>
<a class="btn btn-empty btn-sm btn-light" href="index.php?id=eject"> Eject </a>