SVX日記
2016-12-04(Sun) お風呂mp3スピーカVer.1.0完成
一昨日、予想よりも早くPAM8403使用D級ステレオアンプモジュールが届いたので、昨日に製作を再開したものの、作業中に風邪でダウンし、今日にズレこんでの製作である。
アンプはボリュームのつまみの取り付け位置の裏への設置となる。ボリュームのつまみは以前に直したがその後にまた壊れたヘッドフォンからサルベージしての再利用。レトロっぽくでダサいのがイイ。
回路図は前回の設計のまま。その後、ステレオ→モノラル化する場合、抵抗を入れたほうがいいとか、電源ラインと信号ラインは分けて一点アースにしたほうがいいとか、新たな知見を得たが、今回はそのままで。でも、ノイズは十分に気にならない程度に収まった。
一発で期待する動作をしたが、一応、スピーカを増設すればステレオでも鳴らせるよう、設定を変えられるようになっているので、それを試してみたところ、右が鳴らず、それで信号線のRとGを逆に配線していることに気づいた。左だけだと割と普通に鳴っていたので気づかないところであった。あぶないあぶない。
2016-12-12(Mon) 絶望した! 改めてkoboに絶望した!
しばらく前、親父が「kobo touchが壊れた」というので、オークションで、ほぼ未使用のkobo touchを探して購入してやったのだが、渡す前にセットアップを代行してやると固まってしまい、使いものにならない。
ファクトリーリセットすると、普通に動作するようになるので、現象を切り分けていくと「初期セットアップ後、最新のファームウェアが当たった後に再起動」すると「画面が2回点滅した後に沈黙」する症状に至ることがわかった。終いにはシリアルコンソールまでつないで調べたが、問題はnickelの起動後っぽく、調べようもない。
いまどき、kobo touchという初代機ということもあろうが、ネット上に類似の情報が多くないこともあり「特定のリビジョンの端末でのみ、最新のファームウェアが適切に動作しない」という状況と考えられるが、楽天のサポートに報告しても「同様の事例の報告はない、こっちの端末は問題ない、おまえの端末の問題だから新しいのを買え」を繰り返すだけ……不当にアカBANされたような気分だ。
幸いというか、初期セットアップ後、最新のファームウェアが当たる前に、コンテンツをダウンロードできるタイミングがあるので、ダウンロード完了後にネット接続を解除すれば、普通に本が読める。親父はそれほど多数の本を買っておらず、購入した本はすべて読めるので、今後はネット接続するな、として渡しておいた。
改めて楽天のサポートに「最新のファームウェアを回避すれば普通に使えるのだが、新たに本が買えない。新しい端末を買えというが、この状況で、対抗のKindleでなく、継続してkoboを買う利点があれば教えろ」と問い合わせたところ、クーポンが多数あるよ、とアドバイスされた。
まぁ、ほぼ想定した通り、モラルの低い企業らしいアホな対応であった。というわけで、その後はアドバイスに従い、クーポンだけ活用し、既に購入してある本を消化する毎日なのであった。やはり、最初から楽天に係ったことが間違いだったのだ。あぁ、すべてのkoboを係る前に消し去りたい。すべての宇宙、過去と未来のすべてのkoboを、この手で。
2016-12-13(Tue) Kindleに乗り換える
というわけで、ずっとAmazonがセールを開催するタイミングを待っていたところ「サイバーマンデー」というセールが始まり、Kindleの特売が始まったので購入してみることにした。プライムには入っていないので、同僚に代行で購入してもらう形で、だが。
上位モデルのPaperwhiteも考えなかったわけではないが、まずは味見のつもりで、3480円と最安の無印のキャンペーン情報つきモデルの白い方を選択。使ってみて概ね気に入ったら、次のセールで上位の端末を買うことも検討してみようかなと。
で、入手したので勝手にレビュー。基本的には、長らく使っているkobo gloと比較しての印象である。まずは、届いたら、半分充電されていて、すぐに電源が入る状態であった。マイクロUSBコネクタ、電源LED、電源スイッチ、すべてが下側にあるのが新鮮。なにげに、リセットスイッチ(細いもので押すやつ)がないのに不安を感じてしまった……が、それはkobo gloのクソに発症させられたPTSDのせいだと言える。なにせ、概ね日に1回は押す必要がある堂々たるクソっぷりなのだから無理もない。
よくPaperwhiteと比較して「暗い」といわれる無印のKindleであるが、kobo gloとほぼ同じ程度だった。気になるはずもない。さすがに解像度が低いのは仕方ないが、小説の場合、文字を大きくして読む分には大差ないし、マンガですら普通に読む分には問題ない。フロントライトはないが、普段は使わないので、これも別に問題ない。
で、クソkoboとの一番の違いはレスポンスと安定性。ソフトウェアキーボードでサクサクと入力できる。当たり前のことのようだが、クソkoboはサクサク入力するとポロポロと取りこぼすので、画面に文字が出現するのを確認してから、次の文字を入力するクセがつき、検索などする気にもならないレベルなのである。
また、クソkoboは、なにかというとすぐに固まりやがるので、端末でストアにアクセスすることなど考えたこともなかったが、Kindleなら気兼ねなく自然にアクセスできるのに驚く。これをスゴいというべきなのか……もしかして、脱北者が味わった気分とは、こういう感じなのかもしれない。
ちなみに、今回はキャンペーン情報つきモデルを選択したので、どれだけウザいものなのかと恐れていたが、個人的にはまったく気になるレベルではなかった。普通に、次に買う時もキャンペーン情報つきモデルでいいと思える。
ちょうど、先日Bluetoothヘッドフォンを買ったので、シャレで「VoiceViewスクリーンリーダ」という、声でKindleの操作をナビゲートする機能、というのを試してみたら、普通にできてしまった。日本語非対応ということだが、こんなことができるなら、mp3プレーヤとしても使えるようにしてもらえるといいんだがな。
結局、Kindleを買ってから、すっかりkoboを使う気が失せてしまった。無料のお試し本を探すのには、koboのサイトのが見慣れているので、それで探してはAmazon側でポチり出す始末。むー、これからもkoboの中の未読の本を読まなきゃならんと思うと苦痛だなぁ。
と、とりあえずひととおり遊んだところで、前面パネルをバキバキと外してみた。ヘンに粘着テープで止めてあるが、割とグイグイと引っ張っても、パネルは曲がったりせず、無事に取り外すことができた。とはいえ、今回はシリアルコンソールを取り付けるつもりはあまりなく、ストラップを取り付けたいところなのだが……あれ、いつ買ったか覚えていないのだが、手持ちのトルクス(ヘクスローブ)レンチのセットの一番小さなサイズが、合った……ような……。
2016-12-14(Wed) デスクトップPC用スピーカ製作中
ここのところ、これとか、これとか、これとか、スピーカばかり作っている気がするが、さらにもうひとつ作るのであった。PC環境の変更により、それまで使っていた自作のプチスピーカの出力レベルが下がってしまい、もう少しだけマトモな音が楽しめるようにするためだ。
とはいえ、あまり大げさなものにしたくない、ということで、ちょっと前にこのスピーカを手配していたのだが、届いてみると想像以上に小さくて見当がハズれた。スピーカってエンクロージャを作るのが面倒なんだよなぁ……と、そこで突然にひらめいた。ミュージックスタンドのスピーカを流用してしまえばいいではないか。結構、いい音を出していた記憶がある。
どうやってパッケージングしたものか、ちょっと悩む。例によって、PAM8403使用D級ステレオアンプモジュールを使うので、ごく小さな「板状領域」があればそれで済むのだが……と、結局、単3電池x3の電池ボックスの1本分に詰め込むことにし、それでうまくいった。もちろん、残りの2本分には、アンプの電源として単3電池が入る。
ちなみにこのスピーカ、片側のリード線は赤と黒なのだが、もう片側のリードが黄と白で、プラスとマイナスの極性がわからない。「スピーカ極性 調べ方」としてググったところ、電池をつないで動きを見ろとあるが、直流を流すのはあまり気分が良くない。鳴らしてみてもいいんだが……と、ここでいい方法を思いついた。スピーカのプラスとマイナスにテスタをつなぎ、電圧を計測しつつ、コーンを指で少し押しこむのだ。電磁誘導で発電され、テスタに電圧として検出される。
指で押して「一瞬マイナス→戻ってプラス」になったら、テスタの赤がつながっている側がスピーカのプラスだ。この方法だと、電池をつなぐ方法では動きの見えづらいツイータも容易に調べられるのではないかと思う(たぶん)。もちろん、あまり強くコーンを押すのはよろしくないので注意だが。
というわけで、結線して、早速、音を出して聴いてみた……うーむ、こんなに低音が出てなかったかな、という感じ。元来のアンプでは、低音を増強するチューニングでもが施されていたのだろうか。まぁ、聴ければいいという程度なら、十分過ぎるほどの音ではあるが。
ちなみに、購入してから1年近いのでいまさらではあるが、gootのワイヤーストリッパYS-2は素晴らしい。今回のスピーカに直付けの極細ケーブルもキッチリとストリッピングしてくれた。それほどマジメに「使う穴」を選んでいるわけではないが、ほぼ失敗したことがない。冗談みたいに期待どおりの仕事をしてくれる。作業効率が大幅にアップするので、これはお勧めである。
2016-12-17(Sat) デスクトップPC用スピーカ完成、Kindleにストラップを装着
先日、回路的には完成したものの、どうやって設置したものかと、やや思案しつつ、ディスプレイの左右に設置することにしたのであった。PCのスピーカと言えば、やはり往年のX68k用ディスプレイCZ-613Dのイメージが浮かぶのだ。不恰好といえばその通りかもしれないが、音源の配置場所としてはベストであることに間違いない。
直接にディスプレイの脇にくっつけるのもアレなので、手持ちの木材を利用することにした。白木の色は目に眩しいので、手持ちのつや消しブラックのスプレーでササッと塗装し、木材の両端にぶら下げるようにくっつけ、ディスプレイの上に載せる。アンプは右のスピーカの上あたりにくっつけ、右手で容易に電源のオンオフとボリュームの調整ができるようにした。オレンジの電源ランプもいい感じ。
さて、既に主に無料のマンガを読むために使い倒しているKindleだが、いつまでも前面パネルを外したままというのもみっともないので、サッサとストラップをつけて前面パネルを元に戻すことにした。
2016-12-23(Fri) Re:明るいポスト
約4年前に製作した郵便ポストの内部の照明だが、光ったり光らなかったり、調子が悪くなってきた。どうも、LEDの根本のハンダが剥がれたり、電池ボックスが錆びたりしているのが原因らしい。そりゃ、ありあわせの部品で適当に作っただけのアイテムだもんなぁ。4年も持てば御の字か。
単4x3の電池ボックスの在庫がないので、しばし考えこんだが、以前、電池の一点アースを実現すべく購入しておいた、単4用の電池ホルダ(片側10円)と、なんとなく購入してあった単5サイズで12Vのアルカリ電池(5本で200円)を組み合わせて電源とすることにした。ちょうどいいサイズの基板の切れ端も見つかった。
2016-12-26(Mon) ブラックニッカブレンダーズスピリット増殖
先日、ゲットしたブラックニッカブレンダーズスピリットを空けてしまった。んが、コレ、かなり気に入ってしまった。なにげに、注ぐときにワクワクすんだよね。
半ばまで呑んだ辺りで、Amazonで高騰しているのを見て、もう何本か買っておけばよかった、などと思った矢先、近所のスーパーに1本だけ売れ残っているのを見つけた。瞬時に確保。
基本、限定酒は気に入ったところで呑めなくなるとアホらしいとかいいながら、何やってんだって話だが、ウマいモンはウマい。まぁ、置いといて悪くなるものでもないしな。
2016-12-29(Thu) mp3のタグの文字化けをなんとかする
ここのところ、起き抜けと、寝しなに、ミニコンポで音楽のある生活を送っている。基本的にDLNAサーバに放り込んでから聴いているのだが、いまだ手持ちのCDのすべてを放り込めていない。とはいえ、以前に自作したflacのタグ編集ツールにより、放り込み作業自体はとても快適に進められている。
最近の問題はmp3だ。過去に借りたCDなどをmp3化したものが少しあるのだが、既存のタグを修正したいのに、できないのだ。いや、厳密にはLinuxにはid3v2というタグ編集ツールがあるのだが、それでタグ付けすると日本語が文字化けしてしまうのだ。
・mp3のタグはID3と呼ばれる
・ID3には、v1とv2がある
・ID3v1は固定長で128バイト、ファイル末尾に位置、文字エンコーディングの規定なし
・ID3v2は可変長で、ファイル先頭に位置
・ID3v2には、ID3v2.2、ID3v2.3、ID3v2.4がある
・ID3v2.2は、UTF-16が使用可能
・ID3v2.3は、UTF-16が使用可能、ID3v2.2と互換性がないが、最も普及している
・ID3v2.4は、UTF-8も使用可能、普及していないらしい
ID3v2からは、規格上キチンと日本語に対応しているはずなのだが、なぜか文字化けしてしまう。id3v2というタグ編集ツールの問題を疑い、適当に日本語を付与し、バイナリダンプしてみると、中身はUTF-8で記録されている。パッと見、ヘンではない。
なるほど、ID3v2.4だから、コンポ側が対応していないせいで文字化けしているのか、と思ったら、ID3ヘッダはID3v2.3を示していた。その場合、UTF-16である必要がある。ダメじゃん。つまり、アレだ。元が海外のツールだから、文字エンコーディングに関してロクにテストしておらず、バグっている、というわけなのだな。
どうも、何をやってもダメそうなので、ソースコードを修正してやろうかとも思ったのだが、Cを読むのがダルい。Rubyのライブラリがあるらしいので、自作しようと思ったが、ライブラリの導入が面倒くさそう。うーむ、ID3v2.2の仕様書をちょっと見た限りでは、さほど複雑そうでもないので、ぜんぶ自分で実装してしまうか。
やりたいことは、既存のmp3ファイルの存在するフォルダから、曲目リストを作成することと、修正した曲目リストから、既存のmp3ファイルのタグを付け直すこと。実は、前者は「mget」、後者は「tagmp3」として既に完成しているので、そいつが呼んでいるバグ付きの「id3v2」と、ほぼ同等の動作をしバグのない「mp3id3」というツールを実装すればいい。
というわけで実装完了。実は、手持ちのmp3の多くは、WindowsのiTunesでエンコードしたものがほとんどであり、それらのタグはID3v2.2で記録されていたので、その読み出しにも対応させた。ID長などが変わっていてマジで互換性がない。まぁ、策定から時間が経っているとはいえ、先が見えないアホが規格を作るとアホなことになるという見本だな、これは。
$ ls -l
-rw-r--r-- 1 user user 725343 6月 9 2007 '1-01 サーカスの来た日.mp3'
-rw-r--r-- 1 user user 3788568 6月 9 2007 '1-02 サンフランシスコ.mp3'
-rw-r--r-- 1 user user 4763695 6月 9 2007 '1-03 踊るダメ人間.mp3'
-rw-r--r-- 1 user user 3712079 6月 9 2007 '1-04 日本印度化計画.mp3'
-rw-r--r-- 1 user user 1421263 6月 9 2007 '1-05 じーさんはいい塩梅.mp3'
-rw-r--r-- 1 user user 2800086 6月 9 2007 '1-06 マタンゴ.mp3'
-rw-r--r-- 1 user user 3972468 6月 9 2007 '1-07 詩人オウムの世界.mp3'
-rw-r--r-- 1 user user 3472591 6月 9 2007 '1-08 元祖高木ブー伝説.mp3'
-rw-r--r-- 1 user user 4807150 6月 9 2007 '1-09 生きてあげようかな.mp3'
-rw-r--r-- 1 user user 4565577 6月 9 2007 '1-10 サボテンとバントライン.mp3'
-rw-r--r-- 1 user user 5641380 6月 9 2007 '1-11 これでいいのだ.mp3'
-rw-r--r-- 1 user user 4562279 6月 9 2007 '1-12 僕の宗教へようこそ ~Welcome to my religi.mp3'
-rw-r--r-- 1 user user 4863974 6月 9 2007 '1-13 キノコパワー.mp3'
-rw-r--r-- 1 user user 5333356 6月 9 2007 '1-14 戦え! 何を!_ 人生を!.mp3'
-rw-r--r-- 1 user user 6772376 6月 9 2007 '1-15 月とテブクロ.mp3'
$ mget . > .info
$ viorg .info
$ diff .info.org .info
1c1
< _ALBUM_: 復活究極ベスト "大公式" [Disc 1]
---
> _ALBUM_: 81:復活究極ベスト "大公式" [Disc 1]
4c4
< _GENRE_: (9)
---
> _GENRE_: Rock
$ cat .info | tagmp3
$ mp3id3 -l *.mp3
id3v2 tag info for 1-01 サーカスの来た日.mp3:
TPE1: 筋肉少女帯
TALB: 81:復活究極ベスト 大公式 [Disc 1]
TIT2: 01:サーカスの来た日
TCON: Rock
TYER: 1989
TRCK: 1/15
id3v2 tag info for 1-02 サンフランシスコ.mp3:
TPE1: 筋肉少女帯
TALB: 81:復活究極ベスト 大公式 [Disc 1]
TIT2: 02:サンフランシスコ
TCON: Rock
TYER: 1989
TRCK: 2/15
:
$ rm -f *.org
$ find . -name "*.mp3" | sort | sed "s/^/mpg123 \"/" | sed "s/$/\"/" | sh
Playing MPEG stream 1 of 1: 1-01 サーカスの来た日.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
Title: 01:サーカスの来た日 Artist: 筋肉少女帯
Album: 81:復活究極ベスト 大公式 [Disc 1]
Year: 1989 Genre: Rock
:
パッケージを置いておく。
「cget」は、先の「mget」と似ているが、ローカルのmp3ファイルからではなく、CDのトラック情報を元に、外部のCDのデータベース「gracenote」から曲目リストを得るもの。ただし、利用にはgracenoteの開発者登録が必要で、あらかじめcget.confにクライアントIDを設定しておく必要がある。
$ cget > .info
$ cat .info
_#TOC_: 150 12165 42912 97717 108597 154367 178877 215317 245492
_ALBUM_: データイースト・ゲーム・ミュージック
_ARTIST_: Data East
_GENRE_: Soundtrack
カルノフ
チェルノブ -戦う人間発電所-
サイコニクス・オスカー
ダーウィン 4078 (アレンジ・バージョン)
スーパー・リアル・ダーウィン
ヘビー・バレル
ポケット・ギャル
ワンダー・プラネット
$ cdparanoia -B
cdparanoia III release 10.2 (September 11, 2008)
Ripping from sector 0 (track 1 [0:00.00])
to sector 245341 (track 8 [6:42.24])
outputting to track01.cdda.wav
(== PROGRESS == [ | 012014 00 ] == :^D * ==)
:
Done.
$ eject
$ flac -8 *
flac 1.3.1, Copyright (C) 2000-2009 Josh Coalson, 2011-2014 Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
track01.cdda.wav: wrote 16148406 bytes, ratio=0.571
:
rm -f *.tag; metaflac --list *.flac | grep -i comment | less
$ viorg .info
$ diff .info.org .info
3,5c3,6
< _ALBUM_: データイースト・ゲーム・ミュージック
< _ARTIST_: Data East
< _GENRE_: Soundtrack
---
> _ALBUM_: 01:データイースト・ゲーム・ミュージック
> _ARTIST_: DATA EAST
> _DATE_: 1988
> _GENRE_: Game Music
$ cat .info | tagflac
余談だが、ちょっと前に「ギャラクティックストーム」というタイトーのゲームのサウンドトラックを購入した。作曲はダライアスやニンジャウォリアーズのOGR氏だし、やたらネット上の評価も高いのだが、未プレイのゲームの曲ってのもなぁ、と躊躇していた。んが、Amazonでmp3形式で配信しているのを知り、先日、製作したPC用スピーカで試聴してみると、意表を突く節回しが心地よく、未プレイであることなどどうでもよくなってしまった。
以前のAmazonのmp3配信は、妙な形式でのダウンロードを強要され、mp3を取り出すのにひと手間が必要だったような気がするが、今はシンプルにzipでまとめられたmp3をダウンロードできるし、ブラウザで直接に聴くことまでできて、なにひとつ不満はない。これに上記の「既存のmp3ファイルのタグを付け直せるツール」が加わったことで、最強の環境になったと言えよう。
もうひとついうと「ギャラクティックストーム」の「オリジナルサウンドトラック」の購入は、アレンジ盤である「ギャラクティックストーム~瞳の記憶~」の購入の布石だったりする。なにせ、似たような位置関係にある「メタルブラック」のアレンジ盤である「メタルブラック-The-First-」は、気がつくともう10年以上も聴いているお気に入りだったりするからな……のだが、なぜかAmazonでは配信されていない。
moraでなら配信されているのだが……aac形式なんだよなぁ。いや、別にaacでもいいんだが、それは、次に「aacのタグの付け直しツール」も作らねばならんということを意味するわけで……とほほ。
2016-12-30(Fri) うるう秒を回避する
んが、毎度のようにLinuxOSが、何かと(パニック、ストール、CPU100%などを)やらかしてしまうのも事実であり、GoogleやAmazonが前後数時間の1秒を微妙に延ばして回避するというのは、もっともクールな回避方法だったりする。
そういう自分はどうするのかというと、単にntpサーバを止めることで、対処するのであった。問題は、うるう秒の発生「当日(厳密には時差の関係で12月31日の午前9時以降)」に、上位のntpサーバから「うるう秒があるよ」というLIビットが通知され、それを受け取ったntpサーバがLinux kernelに通知され、kernelが誤動作することで起こる。ならば、最初からLIビットを受け取らなければいいのだ。
その場合、正月明けにntpサーバを再起動するまで、時刻が1秒進んだ状態となり、再起動後には、ポンと1秒戻ることになるが、ウチでは1秒の狂いや1秒の時刻戻りが影響するような微妙なアプリは走らせていないので、それでいいのである。
さらに自宅のntpサーバも停止しなければならない……って、自宅に何台あるんだ? デスクトップPC、サーバほかの物理マシン以外に、OpenStack上の仮想マシン、ラズベリーパイ……あ、借りてるVPSもあったっけ。のべ11台。そのほかにもありそうだが、まぁいいや。
#ssh root@localhost systemctl stop chronyd
#ssh root@******* systemctl stop ntpd.service
#ssh root@******** systemctl stop ntpd.service
#ssh root@****** systemctl stop chronyd
#ssh root@***** systemctl stop chronyd
#ssh root@**** systemctl stop chronyd
#ssh root@**** systemctl stop chronyd
#ssh root@******** systemctl stop chronyd
#ssh root@********* systemctl stop chronyd
#ssh root@******* systemctl stop chronyd
#ssh root@******* systemctl stop chronyd
#ssh root@localhost systemctl start chronyd
#ssh root@******* systemctl start ntpd.service
#ssh root@******** systemctl start ntpd.service
#ssh root@****** systemctl start chronyd
#ssh root@***** systemctl start chronyd
#ssh root@**** systemctl start chronyd
#ssh root@**** systemctl start chronyd
#ssh root@******** systemctl start chronyd
#ssh root@********* systemctl start chronyd
#ssh root@******* systemctl start chronyd
#ssh root@******* systemctl start chronyd
ssh root@localhost chronyc sources
ssh root@******* ntpq -p
ssh root@******** ntpq -p
ssh root@****** chronyc sources
ssh root@***** chronyc sources
ssh root@**** chronyc sources
ssh root@**** chronyc sources
ssh root@******** chronyc sources
ssh root@********* chronyc sources
ssh root@******* chronyc sources
ssh root@******* chronyc sources