気がついたらAVR wikiのサイトはどこも閉鎖されてしまったようです。(2014-04)
AVRの日本語情報として内容は多少古くなっていても基本の部分は現在でも充分通用する、AVRのバイブル的な存在だと思っています。 …read more

ニュース系の番組(解説)やトーク番組などを聴くためにPodcast newsboatを導入してみました。Podcastというとスマホのアプリを利用することが多いと思いますがRaspberryPiからはウェブブラウザまたはそう多くは無いですがパッケージが利用出来ます。
スワップ領域を設定
RaspberryPiはzero2w(512M)で設定しています。本来のmoOdeaudio(moOdePlayer)以外にもサイマルラジオなどを起動しているため今回Podcastを走らせるとメモリを喰い潰してしまいます。デフォルトのmoOdeaudioはスワップ領域を設定していないためまずはスワップ領域を設定、スタートします。
/etc/dphys-swapfile デフォルトは100Mですが取り敢えず512M
CONF_SWAPSIZE=512
systemctl enable start
$ sudo systemctl enable dphys-swapfile && sudo systemctl start dphys-swapfile
newsboat
moOde audioから利用するためには確実にpulseaudioをコントロールする必要があるため利用できるアプリケーションは限られてきます。今回は超シンプルなCLIアプリケーションのnewsboatを選択してみました。マウスも利用できませんが基本の設定や操作は非常にわかりやすいです。
$ sudo update && sudo apt install newsboat
下記例は作業ディレクトリを設定、urlを登録して実行 オプション-r で新規エピソード取得
$ newsboat -r
作業ディレクトリの設定
$ newsboatを実行すると~/にディレクトリ~/.newsboatが作成されます。raspiosからインストールされるバージョンは2.21.0です。現時点の最新バージョンは2.30でウエブ情報では~/.config以下に設定している例もあります。今後変更になるかもしれません。
moode:~ $ newsboat newsboat2.21.0を起動中… 設定を読み込み中…完了しました。 キャッシュを読み込み中…完了しました。 /home/pi/.newsboat/urlsからURLを読み込み中…完了しました。 Error: no URLs configured. Please fill the file /home/pi/.newsboat/urls with RSS feed URLs or import an OPML file.
~/.newsboat/urlsにRSS feed URLsを書き込めと言ってます。
RSS feed URLの取得
ポッドキャストランキング https://podcastranking.jp/
聴きたいコンテンツがあったらRSSで番組を購読するをクリックー>URLをコピー
~/.newsboat/urlsを新規作成、1行ずつ貼り付けていきます。
NHK TOKYOFMなどはxml形式になっています。
NHK ポッドキャスト https://www.nhk.or.jp/podcasts/
NHKのサイトからは’Podcastを登録’右クリック、リンクのアドレスをコピー
同様に~/.newsboat/urlsに貼り付け。
~/.newsboat/config
基本の設定は~/.newsboat/urlsを作成するだけですがbind-keyの追加とcolor設定を少し変更してみます。
サンプルは/usr/share/doc/newsboat以下にあります。
~/.newsboat/config
browser elinks %u bind-key h quit bind-key j next bind-key k prev bind-key l enqueue bind-key SPACE open bind-key u reload-all color background default default color listnormal white black color listnormal_unread default default color listfocus white magenta bold color listfocus_unread white magenta bold color info default black bold color article default default bold
browserはテキストブラウザのelinksを指定。chromiumは不可、w3mもサイトによってはOS自体がハングアップしてしまいます。ブラウザで何かを閲覧するというよりもハングアップしないブラウザをインストール、適用します。
$ sudo apt install elinks
bind-keyはvi likeな設定を追加しています。
設定したbind-keyは下段のメニューバーにまたヘルプにも反映されます。
ディフォルトのキーもそのまま使えます。
使いたいキーやアクションは各モードのヘルプで確認
カラーはよりシンプルに。
選択したエピソードはこのモードからe(エンキュー)すると~/.newsboat/queueに記録されます。
s(保存)は~/にテキスト形式で保存。
直接プレーヤーを起動することは無いようなのでキュー(queue)を利用することにします。
Podcast mpv Player
Podcast mpv Playerはqueueに記録されたurlをプレイリストにして再生します。
起動時はキューを空にします。
複数のエピソードを連続して再生したい場合はキューを空にしてエンキュー。最後にエンキューしたエピソードのみ再生したい時はQueue_Sボタンでプレイ。
pulseaudio
Podcast mpv Playerはpulseaudioの起動をチェックして再生します。ロゴ画像は再生に特に決まったパターンが無いようなのでxterm(geometry) + mpvでPodcast再生を判断しています。
/vae/www/html/pulse.php (一部抜粋)
// radio Img logo $station = shell_exec("ps ax | grep radiko.jp | grep -v grep | awk '{print $(NF-1)}' | awk 'NR==1' | cut -c 26-"); if ($station == NULL) { $station = shell_exec("ps ax | grep -v grep | grep mms:// | awk -F '/' '{print $(NF)}'"); } if ($station == NULL) { $station = shell_exec("ps ax | grep -v grep | grep -m 1 cdda"); if ($station == TRUE) { $station = "cdda"; } } if ($station == NULL) { $station = shell_exec("ps ax | grep -v grep | grep 'xterm -g 81x17-0+198 -e mpv --no-video'"); if ($station == TRUE) { $station = "podcast"; } } if ($pulse == TRUE) { if ($station == NULL) { sleep(0.1); $station = ('pulse'); }
起動
# Podcast newsboat def podcast(): podcast = ("ps ax | grep -v grep | grep simul_podcast.py") podcast = (subprocess.Popen(podcast, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8') podcast = podcast.strip() if not podcast: subprocess.run("~/bin/simul_podcast.py &", shell=True) time.sleep(1) subprocess.run("xterm -g 100x40+490+145 -e newsboat -r &", shell=True) icon413 = PhotoImage('~/.icons/radio/podcast.png') button413 = ttk.Button(frame1,image=icon413,command=podcast) button413.grid(row=1,column=4)
スワップ領域は現在240Mほど使われています。再起動のタイミングやもう少し増やしたほうがいいのかは様子を見ようと思います。
newsboatは基本RSSを登録、エンキューするだけの簡単操作でテレビのない当サイトにおいてPodcastは実に強力なツールと言えます。内容はまだまだ精査する必要がありますが音声系についてはほぼ全てmoOde audioに集中することが出来ました。

moodeaudio8.2.5を新規インストール。前回8.2.4で導入したJwmを少し修正してみました。
moOdeaudio8.2.5
初回の起動はパスワードファイルをコピーしている関連かmpdエラーが出ます。オーナー変更で正常動作
$ sudo chown mpd:audio /var/lib/mpd $ sudo chown mpd:audio /var/lib/mpd/playlists
8.2.5ではmoodeメニューのUIが若干変更になっているようです。
Jwm
JwmはPi4で変更した.jwmrcを元にmoodeに適用しています。 .jwmrc jwm-menu
moodeではx11-appsがインストールされているのでJwmパネルの時刻をクリックするとxclockが起動します。
oclockに変更(カラーはx11色名称が使用可。タイトルバーはdevilspie2で外している)
.jwmrc
<Clock format="%H:%M"><Button mask="123">exec:oclock -fg Lime -bg SlateGray</Button></Clock>
さて8.2.4で導入したJwmですがやはりdevilspie2による自動整列が便利なことから継続して使用することにしました。
jwmメニューのSystem Menuをクリックするとワークスペース4に移動してシステムメニューを起動(xdotool)。moode(pi)ボタンクリックでワークスペース1に移動して必要なアプリケーション起動、devilspie2を再起動して定位置に配置(uim-toolbar-gtkは手作業)
ワークスペースへの配置はdevilspie2で可能ですが気が向いたらdwmも併用することを考慮してxdotoolでマウスポインタを移動
System Menuではfehから壁紙を貼り付けています。(適当な画像を用意 background.png)
~/.fehbg
#!/bin/sh feh --no-fehbg --bg-scale '/home/pi/background.png'
system_menu.py (一部抜粋) system_menu.py
ラジオメニューのナチュレボタン(devilspie2)を修正しています。
# nature def nature(): wm = ("ps ax | grep dwm | grep -v grep | awk '{print($NF)}'") wm = (subprocess.Popen(wm, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8') wm = wm.strip() if wm == "/usr/local/bin/dwm": messagebox.showinfo('nature', 'Wm = DWM Bye!') return #subprocess.run("mpc volume 10", shell=True) #subprocess.run("mpc clear", shell=True) subprocess.run("echo '' > /tmp/moode_id", shell=True) subprocess.run("echo '1' > /tmp/test_id", shell=True) proc = ("ps ax | grep -v grep | grep devilspie2 | grep Sl") proc = (subprocess.Popen(proc, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8') proc = proc.strip() if not proc: subprocess.run("devilspie2 &", shell=True) else: subprocess.run("killall -q devilspie2 && sleep 0.5 && devilspie2 &", shell=True) icon1001 = PhotoImage(file=dir+'nature.png') button1001 = ttk.Button(frame1,image=icon1001,command=nature) button1001.grid(row=2,column=5)
ラジオデータ
moodeaudio8になってラジオマネージャーから登録したラジオ局のエクスポート、インポート機能が無くなっているようです。当サイトでは現在90サイトほどの登録があります。moodeのラジオデータはそれほど頻繁に更新があるわけでは無いのですが稀にURLの変更、また入れ替えがあったりします。国別制限などで最初から聴取不可のサイトなどもあったりしますができるだけ最新のデータに登録したラジオデータを取り込むようにしています。今回気がついたところではBBC RadioのURLが変更になっています。旧URLでも再生は可能ですがSimulラジオからはURLを変更しないとロゴ画像を表示しません。
以下当サイトで実行しているデータインポート(限りなく安全と思いますが自己責任)基本作業はsqlite3が使えれば必ずしもmoodeaudioで作業する必要は無いのですがmoodeaudioで実行したほうが効率がいいので新規インストールしたmoodeaudio8.2.5で実行。
例として8.2.4のユーザーデータを8.2.5に移行。基本作業はユーザー権限で実行、作成したmoode-sqlite3.dbを最後にroot権限でコピー実行。概略としてはユーザー登録したラジオデータは500番以降に記録されます。824のsqlite3.dbから500番以降のデータを取り出し825の最新データに追記。また登録したラジオサイトはplsファイル、ロゴ画像が作成されるので824のカードからコピー所定の位置に配置する必要があります。
ユーザー(home)にディレクトリを作成。824はカードを用意。moode-sqlite3.dbをそれぞれコピー
$ mkdir -p ~/sqlite3/moode824 $ cp /media/rootfs/var/local/www/db/moode-sqlite3.db ~/sqlite3/moode824 $ mkdir -p ~/sqlite3/moode825 $ cp /var/local/www/db/moode-sqlite3.db ~/sqlite3/moode825
エクスポート
~/sqlite3/moode824/radio-export.sh
#!/bin/sh # radio-export.sh(this file) # -- csv(old_ver) sqlite3 -csv moode-sqlite3.db "SELECT * from cfg_radio ;" > cfg_radio.csv # -- user_data(old_ver) sleep 1 cat cfg_radio.csv | awk -F "," '$1 >= 500 {print}' > cfg_radio.csv.user_data
824のカードから500番以降のデータをエクスポート(cfg_radio.csv.user_data)
$ cd ~/sqlite3/moode824 $ sh radio-export.sh $ mv cfg_radio.csv.user_data ../moode825
インポート
~/sqlite3/moode825/radio-import.sh
#!/bin/sh # radio-import.sh(this file) # -- csv(new_ver) sqlite3 -csv moode-sqlite3.db "SELECT * from cfg_radio ;" > cfg_radio.csv # -- add user_data(new_ver) sleep 1 cat cfg_radio.csv.user_data >> cfg_radio.csv
user_dataをcfg_radio.csvに追記
$ cd ~/sqlite3/moode825 $ sh radio-import.sh
moode-sqlite3.db インポート(対話モード)
$ sqlite3 moode-sqlite3.db #SQLite version 3.16.2 2017-01-06 16:32:41 #Enter ".help" for usage hints. sqlite> .separator , sqlite> delete from cfg_radio; sqlite> .mode csv sqlite> .import cfg_radio.csv cfg_radio sqlite> .exit
$ sudo cp -p /var/local/www/db/moode-sqlite3.db /var/local/www/db/moode-sqlite3.db.def $ sudo cp ./moode-sqlite3.db /var/local/www/db
sqlite3を実行すると対話モードに入ります。上記の通り実行、エラーメッセージが無ければ成功しています。
最後にsudoでコピー実行。最初にバックアップを取っておくといいでしょう。
plsファイル /var/lib/mpd/music/RADIO
logo /var/local/www/imagesw/radio-logos
200×200 80×80
/var/local/www/imagesw/radio-logos/thumbs

当サイトのRaspberry Pi 4はLXPanelの不具合がなかなか解決しないので前回moOde audioで採用したウィンドウマネージャーJWMをRaspberry Pi 4に適用してみました。
ウィンドウマネージャーJWM
ベースとなるraspiosは64bit 2022-09-06-raspios-bullseye-arm64を新規インストール。主なパッケージをインストール、環境を設定しています。
jwmをインストール (.jwmrc jwm-menu作成)
$ sudo apt install jwm $ mkdir ~/jwm $ cp -r /etc/jwm ~/ $ cp ~/jwm/system.jwmrc ~/.jwmrc $ cp ~/jwm/debian-menu ~/jwm/jwm-menu
ウィンドウマネージャーを変更
/etc/xdg/lxsession/LXDE-pi/desktop.conf 2行目mutter -> jwm
[Session] window_manager=jwm
オートログイン /etc/lightdm/lightdm.conf(126行目)
autologin-user=pi
Xは.xsessionから実行することにします。
~/.xsession (chmod 755 .xsession)
#!/bin/sh xrdb ~/.Xresources xmodmap ~/.Xmodmap fcitx & sleep 1 exec /usr/bin/jwm
再起動
パネルは下部に表示、シンプルな画面。デフォルトのLXDEはそのまま。アプリケーションがdockに対応していればパネルに格納してくれます。fcitx可能
JWM設定
raspiosにインストールされているパッケージはLXDEの一部を除いて利用可能ですがjwmではLxpanelのプラグインやメニューへのアプリケーション自動追加などは利用できません。bluetooth設定などは別途アプリケーションをインストールします。
jwmのパネルやメニューを設定。パネルは上部にロゴ変更、ページャは右側に11個配置、LXPnelのページャと比べると若干視認性が悪いので2個増やして予備に中9個を今まで同様割り当てます。
当サイトではよく使うアプリケーションはpythonメニューに大体登録済みです。jwmメニューはカテゴリを用意して新規インストールしたものや気がついたものをサクッと登録するようにします。
設定例
.jwmrc
jwm-menu
メニューのスタートは上記画像の幅を広げて新たにファイルを作成アイコンのみとしています。
アプリケーション、カテゴリアイコンは.jwmrcのアイコンパスを追加
カテゴリアイコンは視認性の良いHighContrastを設定、メジャーなアプリケーションはlabel=とicon=を同一名にすることでヒットする確率が高くなります。拡張子も必要ありません。表示しない時は適当なアイコンファイルをパスの通ったところにコピーファイル名を指定
.xsession再編集
jwmは起動時のアプリケーションスタートアップが無いので.xsessionの最後にスクリプトを走らせます。xdotiil,devilspie2を利用、位置、サイズ、ワークスペースを振り分けます。適当にsleepを入れて起動します。必要であればスクリプトファイルを複数用意してメインのスクリプトから呼び出します。最後は終わりの無いアプリケーションを実行。当サイトは最後にhtopを実行しています。htopを終了するとjwmが強制終了、ログイン画面になるので注意が必要です。
#!/bin/sh xrdb ~/.Xresources xmodmap ~/.Xmodmap xbindkeys & devilspie2 & fcitx & /usr/bin/jwm & sleep 1 exec ~/bin/startup/work.sh
スクリプトファイルは起動したいアプリケーションを並べて行きます
後述するideskもこのスクリプトから実行(.xsessionに直接書くと何故か壁紙を適用しない)
(例 $ chmod 755 work.sh)
#!/bin/sh /usr/bin/chromium-browser & sleep 10 # idesk idesk & sleep 1 # htop xterm -geometry 72x14+85+31 -e htop
今まで寸足らずのパネルも幅いっぱいになりました。メニューも登録したものだけなので非常にスッキリしています。
デスクトップアイコン、壁紙
デスクトップアイコンや壁紙は必須では無いですが全く無いと若干さみしいですね。デスクトップアイコンはpcmanfmが普通に動くので設定も可能かもしれませんがここはシンプルなideskを使うことにします。ideskは壁紙も設定可能です。
$ sudo apt install idesk
idesk
設定ファイル.ideskrcをコピー、デスクトップアイコン設定ファイル用のディレクトリ.idesktopまたideskは隠しディレクトリ(.dir)はidesk再起動時ファイルを読みに行かないのでアイコンファイル用のディレクトリidesktop(dot無し)を作成
$ mkdir ~/.idesktop $ mkdir ~/idesktop $ cp /usr/share/idesk/dot.ideskrc ~/.ideskrc $ cp /usr/share/idesk/default.lnk ~/.idesktop/
Background.SourceとBackground.FileがNoneになっているので適当なファイル名を記載します。Background.Fileが優先するようです。またマウスleftクリックはシングルクリック設定。
Background.Source: /usr/share/rpd-wallpaper/balloon.jpg Background.File: /usr/share/rpd-wallpaper/bridge.jpg Execute[0]: left singleClk
idesk デスクトップアイコン
~/.idesktop/default.lnkをコピーしてchromium.lnkを作成。アイコンは48pixを使用、サイズは調整可能
jwmメニューのrestartを実行すると画面を再描写するせいか壁紙も終了してしまいます。default.lnkは後述する壁紙ツールを実行します。
またidesk自体の起動は.xsessionから実行するスクリプトから起動
default.lnk table Icon Caption: Idesk Command: ~/bin/wallpaper.py Icon: /usr/share/idesk/folder_home.xpm Width: 40 Height: 40 X: 25 Y: 45 end chromium.lnk table Icon Caption: Chromium Command: chromium-browser Icon: /home/pi/idesktop/chromium.png Width: 40 Height: 40 X: 25 Y: 115 end
Wallpaper Select Tool
raspberry piの壁紙はDebian 7 (Wheezy)の頃からほとんど変わっていない記憶があります。そろそろ飽きも来ていることからウィンドウマネージャをjwmにしたことでLXDEの外観設定が不可になったこの機会に壁紙設定ツールを作成してみました。画像ファイルは安全と思われるサイトからダウンロードするようにします。
wallpaper.py_20230110
リストはraspiosのデフォルト画像ディレクトリ(/usr/share/rpd-wallpaper/)とHomeディレクトリ(/home/pi/画像/wallpaper/)を選択できます。リストから画像ファイルを選択GET Wallpaperボタンをクリック(./.ideskrc Background.File)を書き換えideskを再起動して適用します。rangerは選択しているディレクトリで起動、画像を確認(rangerは予め画像を表示出来るよう設定)
ブラウザからダウンロードしたファイルはReloadでリストに反映。
jwm restartで壁紙が終了したらRestartボタンでideskを再起動。
ディレクトリの移動可(多少画像ファイル数多くても整理可)
こういうのもありです!
jwm restartを繰り返しているとsurf(moode player)がいつの間にか終了していることがあります。再起動は問題無いので特に影響は無いと思います。LXDEの一部機能は使えませんが特に問題になることは無いと考えています。しばらくJwm環境で使ってみようと思います。

これまでmoOde audioにウィンドウマネージャDWMをインストールしていましたが新たにスタック型のJWMを追加してみました。vncのxstartupで選択することが出来ます。dwmは気に入っていて今後も使い続けるつもりですがもう一つの選択肢としてjwmを設定してみます。特に問題なければPi4のウィンドウマネージャにする予定。
moOde audio8.2.4をダウンロード。通常通りカードを作成インストール。
主な追加パッケージ(ファイルマネージャrangerは外しています。導入する際はpulseaudioの制御設定が必須です(過去記事どっか)
echo "--- update ---" apt update apt -y install lv vim xterm tree rename apt -y install tigervnc-standalone-server xbindkeys xdotool feh apt -y install pulseaudio pavucontrol ncmpcpp apt -y install mpv mplayer streamlink 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 fonts-ipafont fonts-ricty-diminished 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 "--- autoremove ---" apt -y autoremove
pulseaudio /etc/pulse/default.paは適宜設定追加
今までのmoode8.2.2からコピー
/etcのパスワード関連(コピーすることでwww-dataの設定不要)
/var/www/html (cp -Rp /var/www/html コピー先)
/home/pi (設定済のユーザーディレクトリ)
/etc/init.d/vncboot (# systemctl enable vncboot)
/usr/local/bin/dwm (使う場合)
/etc/fonts (インストールしたipafontなどの設定(過去記事参照)
JWM(新たにインストール、ユーザーディレクトリに.jwmrcをコピー)
$ sudo apt install jwm $ cp /etc/jwm/system.jwmrc ~/.jwmrc
~/.vnc/tigervnc.conf
$geometry = "1800x840"; $depth = 24; $desktopName = "moOde audio"; $localhost = "no";
~/.vnc/xstartup
#!/bin/sh xrdb $HOME/.Xresources export GTK_IM_MODULE='uim' export QT_IM_MODULE='uim' uim-xim & export XMODIFIERS='@im=uim' xbindkeys & devilspie2 & sleep 1 sudo killall -q pulseaudio echo "" > /tmp/moode_id echo "1" > /tmp/test_id sleep 1 ~/bin/radio_menu.py & sleep 1 uim-toolbar-gtk & sleep 3 #exec /usr/local/bin/dwm exec /usr/bin/jwm
末尾のjwm( or dwm)を有効にすることで切り替えます。
dwmを有効 Pi4から接続(パスワードはコピーしてリネーム)いつもの画面
$ vncviewer -passwd /home/db650/.vnc/moode moode:1
jwmを有効にして接続。ラジオメニュー起動(xstartupで指定)
jwmの初期設定はパネル下部、右クリックメニューのターミナルはルート(/)起点(vncserver?)になるのでパネル上部(好み)及びユーザーディレクトリに取り敢えず変更。Pi4から実行するsurfのmoOde playerもY軸を小さくするとボリューム表示が隠れるようです。正確なボリューム値はncmpcppの右上に常にリアルタイムで表示されます。Simulラジオから実行する際は混乱が無くていいですね。
~/.jwmrc
8行目 "cd ; を追記" <Program icon="terminal.png" label="Terminal">cd ; xterm</Program> 37行目 "y= -1を1" <Tray x="0" y="1" height="25" autohide="off">
ラジオメニューから各アプリケーションを実行するだけですがサイズ変更や並び替えが地味に面倒です。dwmのタグはXの仮想デスクトップとは違いますがjwmはxdotoolやdevilspie2が使えます。
$ sudo apt install devilspie2
~/.config/devilspie2/applications.lua (ファイル名は任意)
---------------------------------------------------- -- devilspie2 - Lua-based window matching utility -- ---------------------------------------------------- -- get_window_name() -- get_application_name() -- get_class_instance_name() -- pin_window() -- shade() -- minimize() -- make_always_on_top() -- set_window_workspace(1) -- undecorate_window() ----------------------------------------------------- -- Simul Radio menu if (get_window_name()=="moOde audio Simul Radio") then set_window_geometry2 (0,10,460,160) -- pin_window() -- undecorate_window() end -- htop if (get_window_name()=="htop") then set_window_geometry2 (550,20,607,145) undecorate_window() end -- Simul moOde Radio if (get_window_name()=="Simul moOde Radio") then set_window_geometry2 (550,170,607,583) undecorate_window() end -- Simul mms Radio if (get_window_name()=="Simul mms Radio") then set_window_geometry2 (3,198,460,308) undecorate_window() end -- Radiko Player if (get_window_name()=="Radiko Player") then set_window_geometry2 (3,512,460,286) undecorate_window() end -- CD MPlayer if (get_window_name()=="CD MPlayer") then set_window_geometry2 (1270,80,458,135) undecorate_window() end -- pavucontrol if (get_application_name()=="pavucontrol") then set_window_geometry2 (1220,515,560,250) end -- ncmpcpp if (get_application_name()=="ncmpcpp 0.9.2") then set_window_geometry2 (1220,240,560,250) end
起動はxstartupに記載しています。サイズ、位置はxwininfoでも確認できます。メニューから実行すると記載した位置、サイズで起動しますが最初は微妙にずれています。ラジオメニューのナチュレボタンを実行するとdevilspie2を再起動、記載した位置にピタリと行くはずです。但しncmpcppだけは1回目は認識しません。またmpd再生中も認識しません。停止中(タイトルバー ncmpcpp 0.9.2) のときのみ正常に認識動作します。
ラジオメニュー radio_menu.py
jwmは軽量、シンプルなウィンドウマネージャです。moode audio + raspberry pi2では問題無く動作すると思います。メニューは編集が必要ですが今回の用途ではほとんど必要ないと思います。編集次第ではかなり雰囲気も変わりそうです。
操作感としてはdwmがキビキビ動作しますが基本タイル型また設定はコンパイルが必要とあって敬遠する向きがあるかもしれません。いずれも非力なSBCのX環境+vncの特定用途、実験環境にはベストな選択と言えそうです。

スピーカーユニット(FE87)のチェック、サブシステム用としてRaspberry Pi 1B(Rev2)にmoOde8.2.2をインストール、I2S-DAC(TDA1543)を組んでみました。
I2S-DAC(TDA1543)
当サイトにあるTDA1543を見るとなんか刻印が違います。約10年前に購入したものですがweb上では偽物が流通しているという情報があります。現在は生産終了ということもあってか高価なところもありますが当サイトで購入した金額は5個200円と値段から言えば偽物決定と言えそうです。以前作成したDACは現在も時々入れ替えて使用していますが特に問題ありません。今回も前回同様超簡単回路で作成してみます。
カップリングコンデンサはNPコン(ノンポーラコンデンサ)を使用しています。リファレンス抵抗は決め打ちです。
以前作成したベース基板を再利用していますがP5ヘッダーに直接取り付けることでコンパクト、且つ簡単に作成できます。
moOde8.2.2
Raspberry Pi 1BにmoOde8.2.2をインストール。スペック的にX環境などは厳しいのでpulseaudioのみ追加。
mpdはmoodeplayer本来の使い方になります。
音量は能率の違いから高めに設定。メインのmoodeと区別するため/etc/hostnameをmoode1bに変更
pulseaudioは外部からの接続のみとします。使い途はそれぞれですが当サイトでは当面FE-87のチェックを想定しています。以前 Pi Zeroで確認した際はwifiネットワークがネックになっていたようです。
またいつからかは不明ですが現在のpulseaudio(/etc/pulse/default.pa)はネットワークの範囲指定だけでいいようです。(当サイトのデバイス)
例(192.168.0.0/24 = 192.168.0.0〜192.168.0.255)
/etc/pulse/default.pa load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
Pi4から音声を送るためにはPi4の~/.config/pulse/client.conf defaultserverでPi2 or Pi1Bを指定します。
radiko playerのボタンを利用してsedで末行を書き換えています。
raspberry pi 2 192.168.0.113
raspberry pi 1B 192.168.0.13
$ sed -i '$ s/192.168.*/192.168.0.13/g' ~/.config/pulse/client.conf
pulseaudioはアクセスが無いとオートキルしてしまいます。Pi2は内部でpavucontrolを起動していますがPi1Bは動かすことが出来ないのでclient.confを書き換えてからPi4からpavucontrolを起動します。ブラウザなどから動画などを切り替えながら見る際などに有効です。
本物のTDA1543は持ち合わせてないので真偽は不明ですがDACとして正常に認識、再生可能です。電源投入後最初のPLAYは比較的大きいポップ音が発生します。以降はほとんど気になりません。本物のTDA1543もオートミュート機能が無いため同様と思われます。
さて肝心のFE-87音質ですがエージングすると若干聞きやすくなりますがシ音が強調されるような傾向は変わりません。但し特定のラジオサイトまたはソースによってはかなり自然な再生音になります。やはりデジアンとSPユニットの関係と思われます。もうしばらくは遊べそうです。
GPIO7に接続しているLEDは/etc/rc.localから制御しています。点灯したら接続し頃です。
# raspi-gpio raspi-gpio set 7 op ; sleep 45 ; raspi-gpio set 7 dh exit 0
Comments