SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|

2005-04-21(Thu) HDDレコーダ、90%ウロウロ症候群

  今日はオイラの後任の方が着任されたので歓迎会だ。オイラにしては珍しい呑み会。特にネタになるような事件はなかったので、今日も適当に思いついたネタを書くコトにする。

  以前にも少し書いたが、ウチにはLinuxによる自宅サーバがある。立ち上げたのは2002年の4月頃だから、もう丸3年になるか。最初の2年はAthlon-700MのRedHat7.2、それからPenIII-1GのDebianにハードごとリプレースして現在に至る。

  最初は「ADSLによるLinuxインターネットサーバー構築ガイド」という本を買ってきて、いわれるままに設定した記憶がある。ちょうどLinuxに興味があったし、職場でSolarisを使っていたので、そんなに苦もなく立ち上げることができた。しかし、立ち上げてしばらくして、疑問に思うのだ。

  「自宅サーバを立ち上げてナニが面白いのか!?」

  DNSを設定して、メールサーバを立ち上げ、ウェブサーバを立ち上げて……で? ナニ? ナンナニョ? ナニがウレピーの? ってコトだ。そんなのプロバイダの基本サービスではないか。なにも自宅で24時間電源を入れ、電気代をかけてまでしてするコトではない。そりゃ、独自ドメインでメールが受け取れたり、ウェブでCGIが自由に使えたりという利点はあるが、そんなのたいした利点でもないだろう。

  で、それに対するオイラの回答は「サービスを自分で作ってしまえ!!」だ。その結果、ウチのサーバには既に使っていない機能を含めて、思いつく限りの機能が実装されている。

・メールが着信するとメロディが鳴る

テガッキーという文字電話からの手書きメールを送ると、画像変換して一般の携帯に転送

・ヤフー天気予報を外部液晶表示器に出力

・検索キーによるテレビ欄の検索、番組情報メール機能

・CGIによるmp3ジュークボックス+FMモジュレータ(電源制御あり)

・CGIグループウェア(スケジューラ、チャット、ニュース、文書共有)

・CGIリモートブックマーク

・ラジオ英語を予約録音

・テレビ番組を予約録画(ケーブルチューナのチャンネルもサーバが替える)

・DVDからHDD、VideoCDへのリッピング機能

・ウェブサーバ、メールサーバ

  画像の説明

  さらに、まだ構想に留まっているが、家の玄関の開け閉めログ+防犯カメラ機能や、天気予報をプロッタに出力させたりとか、音声認識によってテレビのチャンネルを替えたりとか、付加したい機能はまだたんまりある。

  しかし、なんといっても予約録画機能が一番の自慢だろうか。番組はmjpegで録画後、自動的にVideoCDに焼けるmpeg1形式に再エンコードされ、完了すると報告メールが送られるようになっている。mpeg1は1.5M程度のビットレートであるから、ノートPCでメディアプレーヤを開けば、無線LAN経由で寝っ転がりながら視聴するコトができるのもポイントが高い。画質は決してよくはないが、観る分には十分だし、CD-Rに焼けば一般のDVDプレーヤで再生するコトもできるのだ。sshでリモートアクセスすれば、外から番組録画も可能だ。個人的にはかなり満足している。

  ただ、問題なのはHDDの容量。ウチのサーバは120GBのHDD2台で以下のようなソフトウェアRAIDを組んでいる。

/bootRAID-1120M
/RAID-11G
/tmpRAID-08G
/varRAID-11G
/usrRAID-13G
/homeRAID-115G
/video088G
/video188G

  これからわかるように、ビデオのデータは重要性が低いのでRAIDで二重化していない。よって、176GB程度の容量が確保されている。mpeg1は30分で300Mだから、176GBすべてをビデオに使えば300時間弱。しかしこれは決して多くないのだ。気がつくと、ディスク使用率が90%になっていたりするからだ。

  んが、この現象はなにも自作録画PCに限った現象ではない。常にディスク使用率が90%程度にキープされてしまう現象、名づけて「90%ウロウロ症候群」は、かなり多くのHDD録画機器を持っているユーザの持病なのである……といったところで、本題に入る前に長くなってしまったので、後日につづくのである。ベベン。


2006-04-21(Fri) 工作は休み

  呑んで、呑んで、呑まれて、寝る。


2016-04-21(Thu) 甦るラジカセの想い出


2017-04-21(Fri) お風呂スピーカステレオ化

  Bluetoothスピーカ化してから、ホームプロジェクタのスピーカとしても活躍し始めた、自作のお風呂スピーカだが、そうなるとモノラルでなくステレオで鳴らしたくなってくる。

  もともと、ステレオに対応する仕組みは仕込んであったので、有線接続用のフタにスピーカケーブル接続用のプッシュターミナルを増設したらそれで工作は完了。内部結線を少し挿し替えればすべての音源(mp3/Bluetooth/有線)がステレオ化する。

  画像の説明

  同じユニットのスピーカは用意していないので、昔作ったタッパースピーカをつないでみたが、さほど違和感はない。ちゃんとステレオで鳴った。よっしゃよっしゃ。

  朝風呂でラジオ英会話。休日の長風呂でラジオドラマ。作業の合間に音楽。ホームプロジェクタの音響。腰痛体操の音楽。と、気がつけば常に部屋の中を持ち歩いているといって過言ではない。

  ある程度以上のデキで自作できると、仕上がったブツのコンセプトが100%自分向きなだけに、愛着が止まらない。自作の醍醐味だなぁ。


2018-04-21(Sat) ロードスター、カウル・グリル外し

  先日、内気循環の際に通過するダストフィルタに、不織布系のフィルタを追加してみたが、今度は外気の取り入れ口に、不織布系のフィルタを追加するという定番チューニングをやってみた。やっぱり、ほとんどオープンで走っているので、まったく意味がないのだが、まぁ、それは「やってみたかった」ということで。

  画像の説明

  例によって、作業手順について整備書で確認する。外気の取り入れ口の枠は「サイド・カウル・グリル」その上のカバーは「カウル・グリル」という名称だ。細かい部品までちゃんと名前があるのはいいが、名前を聞いてもピンとこない。

  実は以前、カウル・グリルを取り外そうと、ネジを外してみたのだが、防水のゴムが外し方がわからず、アッサリと断念していたのであった。

  整備書には、防水のゴムは「ウェザストリップ」という名称であり、カウル・グリルに「クリップ」で固定されていること、クリップの形状、数、位置までキッチリ書いてある。これなら試行錯誤せず、ジェントルに外すことができる。

  とかいいつつ、整備書には、カウル・グリルの取り外しの前には「ワイパー・アーム」と「ウオッシャ・ホース」を外すよう指示があるのだが、これは守っていない。んが、カウル・グリルの取り付けは割と緩いので、ちょっと角度を工夫すれば、知恵の輪の要領でズラすことができた。今回の目的にはこれで十分。

  外気の取り入れ口が露出したところで、その枠であるサイド・カウル・グリルを外す。左右の「ファスナ」を内装剥がしで外したまではよかったが、うっかりと外気の取り入れ口の周囲である「ダッシュ・アッパ・パネル」の上にファスナを置いてしまい、転がって排水溝の中に入ってしまった……真っ青。

  幸運にも入り込んだのは、上から見える浅い場所だったので、慌てて逆作用ピンセットの先に両面テープをくっつけて救出に成功したが、奥まで入ってしまったら極めて気分の悪い状況になるところであった。

  一安心したところで、不織布系のフィルタを18x12cmに切って、車両側に両面テープで貼り付けた。後は順に、サイド・カウル・グリル、カウル・グリルを元通りにするだけ。作業完了。

  画像の説明

  午後からは、徳山ダムへ。どん詰まりの駐車場で「牙」を装着してみる。シャレのつもりだったが、ちょっと小悪魔っぽくていいかもw。


2019-04-21(Sun) アクセラ、エバポレータ消臭&給油口デカール施工


2020-04-21(Tue) PulseAudioでBGM付きリモート呑み会に

  リモートお茶会も、リモート呑み会も楽しく実行できたのだが、ひとつだけ物足りなかったことが、BGMを流せないことだった。Zoomにはサウンドの共有機能があるのだが、音声がブツブツと切れてしまう症状が、どちらの会でも出てしまい、音楽として楽しむことができないレベルであった。

  まぁ、別にBGMが必須というわけではないのだが、以前、アニソンのサビのメドレー動画を肴に酒を呑んだのが意外と楽しかったのだよな。それに、BGMは基本的に流しっぱなしにするので、会話の流れで「おっ。この曲さぁ…」みたいに会話が弾む材料になるのも期待できる。無理矢理やるなら、実際に部屋に曲を流し、マイクから入力するという方法もあろうが、やはりそれでは音質の低下は激しいであろう。

  しかし、よく考えれば、Linuxのデスクトップ環境では、ずいぶん前からPulseAudioというソフトウェアミキサが標準となっている。そいつを使えば、Zoomに渡す前のマイク音声にBGMをミキシングすることくらい、できそうなもんだ。しかし、そもそも自分はPCのサウンド機構に非常に疎い。ひとつ、これを機にガッツリと勉強してみるか。

  というわけで、ガッツリ勉強して、ガッツリ理解したつもりになった。なので、覚え書きも兼ねて、ガッツリと解説してみることにする。

  まず、ウチのメインマシンであるノートパソコンの起動時の状態を図示すると、以下のようになる。ThinkPadA285をドッキングステーションに載せ、デスクトップ化した状態だ。

  画像の説明

  この状態だと2系統のサウンド入出力ハードウェアが存在することが読み取れる。ひとつは上側のドッキングステーションの機構だ。出入口はステレオ出力+マイク入力の4極の3.5mmジャックである。「ドック output monitor」というのが気になるが、それを無視すれば、非常に単純明快である。

  もうひとつが下側のノートPC本体の機構だ。出入口は同じくステレオ出力+マイク入力の4極の3.5mmジャックであるが、そこに挿入していない場合、ビルトインのスピーカと、ビルトインのマイクが有効になるのだ。やはり「本体output monitor」を無視すれば、非常によくある構図である。

  このように2系統のサウンドが存在していても、通常はどこか1箇所から入出力すればいいわけで、そのためにデフォルト入力と、デフォルト出力というものが設定できる。必ずしも、どちらかの系統に統一する必要はないが、現状、入出力とも本体側に設定してあり、ふたつの★はそれを示している。

  この状態は、PulseAudioのpacmdコマンドにより、以下のように確認することができる。

$ pacmd list-sources | grep -E "index:|name:|description"
    index: 0
	name: <alsa_output.usb-Generic_ThinkPad_Dock_USB_Audio-00.analog-stereo.monitor>
		device.description = "Monitor of ThinkPad Dock USB Audio アナログステレオ"
    index: 1
	name: <alsa_input.usb-Generic_ThinkPad_Dock_USB_Audio-00.analog-stereo>
		device.description = "ThinkPad Dock USB Audio アナログステレオ"
    index: 2
	name: <alsa_output.pci-0000_04_00.6.analog-stereo.monitor>
		device.description = "Monitor of Family 17h (Models 10h-1fh) HD Audio Controller アナログステレオ"
  * index: 3
	name: <alsa_input.pci-0000_04_00.6.analog-stereo>
		device.description = "Family 17h (Models 10h-1fh) HD Audio Controller アナログステレオ"
$ pacmd list-sinks   | grep -E "index:|name:|description"
    index: 0
	name: <alsa_output.usb-Generic_ThinkPad_Dock_USB_Audio-00.analog-stereo>
		device.description = "ThinkPad Dock USB Audio アナログステレオ"
  * index: 1
	name: <alsa_output.pci-0000_04_00.6.analog-stereo>
		device.description = "Family 17h (Models 10h-1fh) HD Audio Controller アナログステレオ"

  さて、ここで録音アプリケーションや、再生アプリケーションを実行すると、以下のようになる。

  画像の説明

  録音アプリケーションは、デフォルト入力からの音声をファイルに記録する。再生アプリケーション、いわゆるメディアプレーヤは、mp3ファイルなどの楽曲をデフォルト出力で演奏するわけだ。

  そして、昨今よくあるリモート会議ソフトウェアを実行すると、以下のようになる。

  画像の説明

  一般にウェブカメラを接続するのが常であり、それには音声入力用のマイクも備わっている場合が多いが、通常はそれでなく、ヘッドセットを使うことだろう。今回は、本体のジャックにヘッドセットをつないだ想定である。リモート会議ソフトウェアによってはソフト側で、入出力ポートを選ぶこともできるだろうが、通常はデフォルト入力と、デフォルト出力が選択され、その両方を同時に使うことになる。自分の発言はヘッドセットのマイクを通じてネットの向こうの相手へ、相手の発言はネットからヘッドセットを通じて耳へ、というわけである。

  さて、問題はここからなのだが、それに先立って、普段、歌の練習に使っているPCMレコーダ「DR-05X」をUSB接続してみる。先代の「DR-05」との違いのひとつが、この「PCとつなぐとサウンドデバイスになる」という点なのであった。一体、どんな時に使うのかと思っていたのだが、こういう時に使うのである。で、接続すると以下のようになる。

  画像の説明

  図のスペースの問題で、本体の機構はカットしたが、ちょうど入れ替わる形になった。つまり、USB接続をしているのものの、機構上は同じものということである。

  その上で何をしたいかというと、自分の発言にメディアプレーヤの出力するBGMを混ぜ、ネットの向こうの相手へ送りたいわけだ。シンプルに考えると、図のようになるわけだが、このようなことはできない。ではどうするか。ヌルデバイスの登場である。

  一番下にあるのがヌルデバイス。この追加は、何らかの物理的なデバイスを接続するわけではなく、以下のようなコマンドひとつでできる。

pacmd load-module module-null-sink sink_name=null.music

  今回は、BGMを流すのに使うということで「null.music」という名前を付けたが、ヌルデバイスがどんなものかというと、出力側の「null.music」に出力した音声が、入力側の「null.music.monitor」から出てくるので、それを入力に利用できる、というものである。そう。先ほどから気になっていた「xxxx.monitor」というのは、いずれも対応する出力先のデバイスに出力した音声を入力に利用できる、モニタデバイスというものなのだ。つまり、YouTubeを再生しながら、その音声をデジタル録音したりすることに使えるわけだ。

  しかし、それを使うためには、もうひとつ重要な概念がある。ループバックだ。ループバックとは、入力を出力に結びつけるものだ。ヌルデバイスには、出力がないので、ループバックで入力を別の出力に結びつける以外の使いみちはない。そして、結びつける際、ひとつの入力を複数の出力に結びつけてもいいし、複数の入力をひとつの出力に結びつけてもいい、というルールがある。そうだ、これだ、欲しかったのは。

  そして、一気に状況は加速する。さらに「null.mic_music」というヌルデバイスを追加し、ループバックでマイクの入力とメディアプレーヤの入力を、同じヌルデバイスに結びつけてやる。その上で、そのヌルデバイスのモニタデバイスの出力をリモート会議ソフトウェアに送ってやるのだ。つまり、以下のようになる。

  画像の説明

  これで一応の完成だ。各デバイスは、すべて音量調整が可能なので、発言とBGMの音量は、お好みに調整可能である。

  これを行うためのコマンドが以下。

# 「null.music」「null.mic_music」というヌルデバイスを追加する
pacmd load-module module-null-sink sink_name=null.music     sink_properties=device.description='Null_Music_Output'
pacmd load-module module-null-sink sink_name=null.mic_music sink_properties=device.description='Null_Mic_Music_Output'
# sourceとsinkの名前を知るために一覧を出力
pacmd list-sources | grep -E "index:|name:|description"
pacmd list-sinks   | grep -E "index:|name:|description"
# PCMレコーダからの音声とメディアプレーヤからのBGMを「null.mic_music」にミキシング
pacmd load-module module-loopback source=alsa_input.usb-TEAC_Corporation_TASCAM_DR_Series-00.analog-stereo sink=null.mic_music
pacmd load-module module-loopback source=null.music.monitor                                                sink=null.mic_music
# メディアプレーヤの出力は「null.music」へ、Zoomへの入力は「null.mic_music.monitor」から
pacmd set-default-sink   null.music
pacmd set-default-source null.mic_music.monitor

  しかし、もうひとつ問題がある。肝心の自分が音楽を聴けないことだ。Zoomは自分の発声をフィードバックしない。だから、音楽は自分用にもミキシングしてやる必要がある。

  最後はオマケだが、相手が聴いている音がどんなものなのかを、モニタできるようにもしてみる。そしてそれは、通常Zoomで使うヘッドホンではなく、別のヘッドホンから出力させる。最終的には、以下のようになる。

  画像の説明

  これを行うためのコマンドが以下。

pacmd load-module module-loopback source=null.music.monitor     sink=alsa_output.usb-TEAC_Corporation_TASCAM_DR_Series-00.analog-stereo
pacmd load-module module-loopback source=null.mic_music.monitor sink=alsa_output.usb-Generic_ThinkPad_Dock_USB_Audio-00.analog-stereo

  PulseAudioについて勉強するまでは、こんな複雑なことが実現できるなんて、予想にもしなかった。しかも、非常に単純なルールの組み合わせによって、である。確かに、この概念を理解するのはちょっと大変ではあるが、この概念を考えついたやつは頭いいなぁ。