moOde audio 8.1.2 CD-DA(CDプレーヤー)

CD-DA(Compact Disc Digital Audio)moOde audioにCDドライブを接続、いわゆるCDプレーヤーです。最近ではアルバム単位で聞くことも少なくなりましたが未リッピングのCDやまたリッピング済でも気まぐれにCDの音を直接聞きたいと思うことがあります。

CDドライブ


2台のドライブでテスト
IO DATA DVRP-U8NKA
IO DATA EX-BD03K
PiでUSBドライブなどを接続するにあたり問題になるのはUSBからの供給電流が不足するところにあります。実際に不足するしないはボード及びドライブによっても違います。


簡単な対策としてはスマホ充電器などからPiの空きポートに電圧(5V)を供給してやります。不要になったケーブルからUSB-Aオス-オスを作成。もう一つはUSB-AオスーマイクロBメスアダプタを作成、やはりAオス-オスとして接続。


Raspberry Pi2
電源供給なしではドライブとして認識してもCDが認識されません。モーター回転時内部の電圧降下が大きくなると思います。


Pi Zero 2W USBハブを介して接続
Zero2WではUSBポートに電圧を供給すると電源側にも廻り込みます。Pi2ではそのようなことは無くPi2が本来のUSB仕様と思います。電源側からUSBポートに供給されるため2.5インチUSB-HDD位は問題無くドライブ出来ると思います。但しドライブによってはやはり電圧降下が生じるため外部から供給が必要になるかもしれません。

CDドライブは/dev/sr0として認識。/dev/cdromはsr0へリンク
cddaの再生では/etc/udev/rules.d/*の設定は特に必要ないようです。

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 603.2M  0 rom  
$ ls -la /dev/sr0
brw-rw---- 1 root cdrom 11, 0  9月  5 18:15 /dev/sr0
$ ls -la /dev/cdrom
lrwxrwxrwx 1 root root 3  9月  5 18:15 /dev/cdrom -> sr0

プレーヤー(MPlayer)

mpd以外はmpv,mplayer,ffplay(ffmpeg)をインストールしています。cdda再生可能なプレーヤーはmpdとmplayerですが現バージョンのmpd(OS)では実用になりません(挙動怪しい)。mplayerの新規開発は停止、mpvに移行していますがデフォルトのmpvはcddaに対応していないようです。mplayerは今後もしばらくは新OSに対応していくものと思います。
mplayer 連続再生

$ mplayer cdda://:1 -cache 2048 -nolirc 1

トラックを指定して再生(トラック5)

$ mplayer cdda://5:1 -cache 2048 -nolirc 1

オプション
:1 で CDROM の速度が低くなり安定して回転してノイズが減ります。(see MPlayer-ArchWiki)
-cache 2048 :1024では不足
-nolirc 1 赤外線リモコンなし

CD-DA MPlayer

simul_cd.py.20220905
PLAYで連続再生、トラック番号を指定(トラック再生)のシンプルなプレーヤー
グリーンボタンはxterm上で実行、PLAY(黄色)はxtermなし静かに実行


CD-DA再生中はCD-DAロゴを表示
/var/www/html/img/cdda.jpg
pulse.php.20220905

トラックを指定して実行すると再生開始前に以下のメッセージを表示しますが問題ありません。
Cache empty, consider increasing -cache and/or -cache-min. [performance issue]
再生中に表示があるとキャッシュ不足で音が途切れます。(キャッシュ設定)

mpd(リッピング)とMPlayer(CD-DA Pulseaudio)音質の違いは気にしないでCDジャケット片手に旧来のスタイルで聴くのも風情があります。

サイマルラジオ moOdeラジオ

pulse.phpから表示するmoOde radioイメージロゴをいくつか作成してみました。またラジオ局名に記号が含まれているとサイマルラジオからは正常に読み取れないので修正

pulse.phpイメージロゴ

サイマルラジオ moOde radio pulse.php imgファイル(300×60)

 

20220731 moOde radio imgファイル追加


simul.py修正(再生)

220行目付近command = a と b (記号)を文字列として認識しないのでシングルコーテーションで囲むようにします。

    # ListBOX
    for i in lb.curselection():
        a = (lb.get(i)); b = (lb.get(i));
        command = ("echo '" + a + "' | awk '{print $NF}'")
        a = (subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
        a = a.strip()
        command = ("echo '" + b + "' | grep radiko")
        b = (subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
        b = b.strip()

simul.py修正(imgロゴ vol.list)

vol.listの検索も失敗、ここは削除、置き換えをします。対象 ()&’
322行目付近以下を修正

        # moOde
        if csra == False and nhk == False:
            csv_moode = ""
            with open(radio_dir+"cfg_radio.csv", 'r') as f:
                for csvid in f:
                    if re.search(proc, csvid):
                        csv_moode = csvid
                if len(csv_moode) != 0 and len(proc) != 0:
                    st = std; stc()
                    csv_moode = csv_moode.strip()
                    command = ("echo " + csv_moode + " | awk -F',' '{print $3}'")
                    st = (subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
                else:
                    time.sleep(3)
                    st = std; stc()
                    command = ("mpc | awk 'NR==1' | awk -F':' '{print $1}'")
                    st = (subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
                # (image data,vol.list)
                st = st.strip()
                st = re.sub('\(', '', st)
                st = re.sub('\)', '', st)
                st = re.sub('&', '_', st)
                st = re.sub('\'', '', st)
                subprocess.run("echo '" + st + "' > /tmp/moode_id", shell=True)
                subprocess.run("test -e /var/www/html/img/'" + st + ".jpg' ; echo $? > /tmp/test_id", shell=True)
                stc()
        else: # pulse.php image data (1)
            f = open('/tmp/test_id','w')
            f.write('1\n')
            f.close()

simul.py修正(img_file_click)

63行目付近

# img_file
def img_file_click():
    command = ("ps ax | grep pulseaudio | grep -v grep | awk '{print $NF}'")
    pulse = (subprocess.Popen(command, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
    pulse = pulse.strip()
    if pulse == "--start":
        messagebox.showinfo('simul radio', 'PulseAudio')
    else:
        t = (subprocess.Popen("cat /tmp/test_id", stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
        t = t.strip()
        if t == "0":
            img = (subprocess.Popen("cat /tmp/moode_id", stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
            img = img.strip()
            messagebox.showinfo('simul radio', img + '.jpg')
        else:
            subprocess.run("xterm -e less /tmp/moode_id &", shell=True)

pulse.phpのimgロゴ、vol設定はサイマルラジオからPlayしたときに表示適用されます。moOde playerはサイマルラジオのPlayと連動して再生を開始、表示しますがボリュームの値は反映されません。img_fileボタンをクリックするとロゴ画像作成設定済みの場合はメッセージボックスで表示。リストボックスの表示はDR P8 Jazz (320K)ですが()の無いDR P8 Jazz 320Kになります。vol.listのラジオ局名も同じ名称を使用します。

moOde audioのラジオメニューはアルファベット順に並んでいることからサイマルラジオのfavoriteボタンやmoodeボタンをジャンル別、ラジオ局などに変更してみました。
All.Listボタン moOde radioの聴取可能な全リストをアルファベット順に(参照程度)
Uncat…ed(Uncategorized)未分類 各ボタンに振り分けた以外のリスト(大雑把)
各ボタンのリスト登録は登録したいラジオ局をフォーカス(コピー完了)登録したいリストを選択、List.Editボタンで編集。ダブルコーテーションを打つ、マウス中ボタンでペースト、ダブルコーテーションで囲む。編集終了
リストの作成次第でまた違った楽しみ方ができそうです。

サイマルラジオ らじる ラジコ

サイマルラジオ mpd向けリストです。
画像は300×300 pulse.php 300×60で作成
順次整理、追加の予定です。

サイマルラジオリスト

20220731 らじる★らじる追加

らじる★らじる

下記リストはサイマルラジオ用 moOdeにはラジオ局、URL、ロゴ画像を登録

"                                                                          --- らじる★らじる ---"
" --- 札幌 ---"
"NHK R1 札幌   https://radio-stream.nhk.jp/hls/live/2023545/nhkradiruikr1/master48k.m3u8"
"NHK FM 札幌   https://radio-stream.nhk.jp/hls/live/2023546/nhkradiruikfm/master48k.m3u8"
" --- 仙台 ---"
"NHK R1 仙台   https://radio-stream.nhk.jp/hls/live/2023543/nhkradiruhkr1/master48k.m3u8"
"NHK FM 仙台   https://radio-stream.nhk.jp/hls/live/2023544/nhkradiruhkfm/master48k.m3u8"
" --- 東京 ---"
"NHK R1 東京   https://radio-stream.nhk.jp/hls/live/2023229/nhkradiruakr1/master48k.m3u8"
"NHK FM 東京   https://radio-stream.nhk.jp/hls/live/2023507/nhkradiruakfm/master48k.m3u8"
" --- 名古屋 ---"
"NHK R1 名古屋   https://radio-stream.nhk.jp/hls/live/2023510/nhkradiruckr1/master48k.m3u8"
"NHK FM 名古屋   https://radio-stream.nhk.jp/hls/live/2023511/nhkradiruckfm/master48k.m3u8"
" --- 大阪 ---"
"NHK R1 大阪   https://radio-stream.nhk.jp/hls/live/2023508/nhkradirubkr1/master48k.m3u8"
"NHK FM 大阪   https://radio-stream.nhk.jp/hls/live/2023509/nhkradirubkfm/master48k.m3u8"
" --- 広島 ---"
"NHK R1 広島   https://radio-stream.nhk.jp/hls/live/2023512/nhkradirufkr1/master48k.m3u8"
"NHK FM 広島   https://radio-stream.nhk.jp/hls/live/2023513/nhkradirufkfm/master48k.m3u8"
" --- 松山 ---"
"NHK R1 松山   https://radio-stream.nhk.jp/hls/live/2023547/nhkradiruzkr1/master48k.m3u8"
"NHK FM 松山   https://radio-stream.nhk.jp/hls/live/2023548/nhkradiruzkfm/master48k.m3u8"
" --- 福岡 ---"
"NHK R1 福岡   https://radio-stream.nhk.jp/hls/live/2023541/nhkradirulkr1/master48k.m3u8"
"NHK FM 福岡   https://radio-stream.nhk.jp/hls/live/2023542/nhkradirulkfm/master48k.m3u8"
" --- 全国 ---"
"NHK R2 全国   https://radio-stream.nhk.jp/hls/live/2023501/nhkradiruakr2/master48k.m3u8"

サイマルラジオ radiko(関東エリア) pulse.php imgファイル(300×60)








moOde audio 8.1.2 Raspberry Pi Zero 2W

今回はRaspberry Pi Zero 2Wを無事入手できたのでmoOde audio 8.1.2をインストールしてみたいと思います。
r812は64-bit版、Legacy版(32bit)がありますがRaspberry Pi 2でも使えるようLegacy版をインストール

Raspberry Pi Zero 2W


取り敢えずピンヘッダを取り付け


I2SデバイスはGPIO 40Pに直接取り付けできます。

r812 カード作成

いつもの通りカードを作成、作成したカードにPi2(r802)で設定したパスワード関連ファイル、/var/www/html、ユーザーのホームディレクトリをコピー 以下は稼働中のPi2(r802)からマウントしたr812カードへのコピー例
パスワードファイル、/var/www/htmlをコピー、pulseaudioをインストール(/etc/pulse/default.pa設定)することでpulseaudioは復元します。
パスワード関連ファイル

$ sudo cp /etc/passwd /マウント先/etc
$ sudo cp /etc/shadow /マウント先/etc
$ sudo cp /etc/group /マウント先/etc
$ sudo cp /etc/gshadow /マウント先/etc
$ sudo cp /etc/sudoers /マウント先/etc

/var/www/html

$ sudo cp -Rp /var/www/html /マウント先/var/www

/home/pi

$ sudo cp -Rp /home/pi/* /マウント先/home/pi/

その他 dwm vncbootをコピー所定の位置に貼り付け
/usr/local/bin/dwm /etc/init.d/vncboot

アプリケーションインストール

r812カードで起動、known_hostsから削除してssh接続

$ ssh-keygen -R moode
$ ssh pi@moode

インストールした主なパッケージ(rootで実行)

# sh moode-r812-setup.txt

moode-r812-setup.txt

#!/bin/sh

echo "--- Timezone locale ---"
timedatectl set-timezone Asia/Tokyo
sed -i 5a"ja_JP.UTF-8 UTF-8" /etc/locale.gen && locale-gen
update-locale LANG=ja_JP.UTF-8

echo "--- update ---"
apt update

apt -y install vim xterm tree
apt -y install tigervnc-standalone-server tigervnc-common xbindkeys xdotool
apt -y install ranger highlight ffmpegthumbnailer surf feh
apt -y install pulseaudio pavucontrol ncmpcpp
apt -y install mpv mplayer streamlink

# pulseaudio /etc/pulse/default.pa (ネットワーク帯は自環境に適宜変更)
sed -i -e '$a load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1' /etc/pulse/default.pa
sed -i -e '$a set-default-source alsa_output.platform-soc_sound.stereo-fallback.monitor' /etc/pulse/default.pa
sed -i -e '$a set-default-sink alsa_output.platform-soc_sound.stereo-fallback' /etc/pulse/default.pa

echo "--- youtube-dl ---"
apt -y remove youtube-dl
curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl

echo "--- jp ---"
apt -y install uim uim-anthy uim-mozc uim-xim uim-gtk2.0

echo "--- themes ---"
apt -y install lxappearance gnome-accessibility-themes gnome-themes-extra

echo "--- dwm compile ---"
apt -y install libx11-dev libxinerama-dev libxft-dev

echo "--- systemctl ---"
systemctl enable vncboot

echo "--- autoremove ---"
apt -y autoremove

sh -c 'echo -n "Hit Enter key to reboot..."; read x'
reboot

tigervnc-viewer

Pi4からはtigervnc-viewerで接続します。moOdeで設定したパスワードファイル(passwd)をコピー、リネーム(moode)して適当なディレクトリに保存,オプション(-passwd)の引数として接続。コピーしたユーザーディレクトリには既にすべてのユーザー設定が含まれているので必要なアプリケーションをインストール(上記)

$ vncviewer -passwd /home/pi/.vnc/moode:1

下記画像は接続後アプリケーションを起動、並び替えたもの(dwmの取り扱い必要)
Pi4からsurfブラウザを使用している場合キャッシュが更新されない場合があります。
キャッシュを削除(rm -r ~/.surf/cache/WebKitCache)

moOde audio r802からR812へは移行できましたが登録したラジオデータがexport importで再現できるかは試していません。moOdeのラジオデータはバージョンごとに多少入れ替えがあったりURLが変更になったりするラジオ局があります。以前試した時はラジオデータが以前のバージョンのままだったため当サイトでは手作業で最新のラジオデータに登録したラジオデータをデータベースに再登録しています。(なにか方法があるのかもしれません)

Raspberry Pi Zero 2W

シングルコアのZeroはスペック的に厳しいですがRaspberry Pi 2と比較すると大きな違いはメモリとネットワークでしょうか。Pi2の1GB有線に対してZero2Wは512MB WiFiになります。個人の感想としては僅かにPi2がスムーズに動作する事もある感じもしますがmoOde audioではほとんど同じと言ってもいいかと思います。

サイマルラジオ 九州・沖縄(ListenRadio)

サイマルラジオ(ListenRadio)mpd向けリストです。
画像は300×300 pulse.php 300×60で作成
順次整理、追加の予定です。

サイマルラジオリスト

20220619 九州・沖縄リスト追加

九州・沖縄

下記リストはサイマルラジオ用 moOdeにはラジオ局、URL、ロゴ画像を登録

"                                                                          --- ListenRadio 九州 ---"
" --- 福岡県 ---"
"AIR STATION HIBIKI|エアーステーションひびき/福岡県北九州市 http://mtist.as.smartstream.ne.jp/30052/livestream/playlist.m3u8"
"ちょっくらじお/福岡県直方市 http://mtist.as.smartstream.ne.jp/30085/livestream/playlist.m3u8"
" --- 宮崎県 ---"
"FMのべおか/宮崎県延岡市 http://mtist.as.smartstream.ne.jp/30088/livestream/playlist.m3u8"
" --- 鹿児島県 ---"
"FMたつごう/鹿児島県大島郡 http://mtist.as.smartstream.ne.jp/30072/livestream/playlist.m3u8"
"あまみエフエム/鹿児島県奄美市 http://mtist.as.smartstream.ne.jp/30054/livestream/playlist.m3u8"
"せとラジ|せとうちラジオ放送/鹿児島県瀬戸内町 http://mtist.as.smartstream.ne.jp/30080/livestream/playlist.m3u8"
""
"                                                                          --- ListenRadio 沖縄 ---"
"FMいしがきサンサンラジオ/沖縄県石垣市 http://mtist.as.smartstream.ne.jp/30069/livestream/playlist.m3u8"
"FMよなばる/沖縄県島尻郡与那原町 http://mtist.as.smartstream.ne.jp/30055/livestream/playlist.m3u8"
"FMニライ/沖縄県嘉手納町 http://mtist.as.smartstream.ne.jp/30003/livestream/playlist.m3u8"
"FMぎのわん/沖縄県宜野湾市 http://mtist.as.smartstream.ne.jp/30093/livestream/playlist.m3u8"
"FMとよみ/沖縄県豊見城市 http://mtist.as.smartstream.ne.jp/30083/livestream/playlist.m3u8"
"ゆいまーるラジオ_FMうるま/沖縄県うるま市 http://mtist.as.smartstream.ne.jp/30011/livestream/playlist.m3u8"
"fm 那覇/沖縄県那覇市 http://mtist.as.smartstream.ne.jp/30068/livestream/playlist.m3u8"
"ハートFMなんじょう/沖縄県南城市 http://mtist.as.smartstream.ne.jp/30091/livestream/playlist.m3u8"
"FMやんばる/沖縄県名護市 http://mtist.as.smartstream.ne.jp/30095/livestream/playlist.m3u8"
"ぎのわんシティFM/沖縄県宜野湾市 http://mtist.as.smartstream.ne.jp/30098/livestream/playlist.m3u8"
"オキラジ・沖縄ラジオ/沖縄県沖縄市 http://mtist.as.smartstream.ne.jp/30066/livestream/playlist.m3u8"

—–

—–

—–

—–

—–

Top