Archive for the ‘Linux’ Category

先日、JACK(Linuxのサウンドシステムの一つ)のプラグインのPEQ(パラメトリック・イコライザ, 実際にはCalf Studio Gearの12バンドイコライザ、以下"EQ12")をなるべく少なく使って補正ができないものかと思った。何度もいじるのは面倒ではあったのだが、興味はあるのでちょこちょこ試してみたら、できそうな気がしたので、さっき本格的に測定・調整した。そうしたら、予想外にいい結果が得られた。何かの間違いではないかと思うほどだ。

鍵は、EQ12の"Lowshelf"というフィルタを使ってみたことだ。これは、指定した周波数以下を一定量増減できるフィルタである(下図左側の階段状の部分)。今使っているグライコ(DEQ2496)では、ある範囲の中低域を平坦に下げているので、それを代用できそうな気がしたのだ。ただ、実際には下限までずっと下げている訳ではないので、Lowshelfだと超低域のレベルが減少するおそれがあった。それでも、試しに設定してみた。

更に、もう一つの挑戦として、ある程度の差は許容して、PEQの数を極限まで減らして、音の劣化を減らそうとした。というのは、DEQ2496でPEQを多用すると音が悪くなった(耳が詰まる感じ)からである。この時は時間がないのとマイクを設置するのが面倒なので、音をマイクから取らず、ライン出力と入力を直結して特性を測り、DEQ2496のものに近づくようにした。結局、LowshelfとPEQ 1個(右、86Hz)だけで実現できたのだが、どうも信じられなかった。ただ、聴いた感じでは大きな問題はなかった。

試しに作った最小構成のPEQ

そしてさっき、細かく測定・調整したのだが、驚くほどすんなり完成してしまった。10回未満の調整で問題ない特性になり、それをDEQ2496と比較したら、(55Hz付近の谷の深さを除いて)ほとんど差がなかった。55Hzの深さの違いは、Lowshelfで一律に落とした影響だろう。

DEQ2496と比較 (灰: DEQ2496-LR; 黒: PEQ-LR; 青: PEQ-L; 赤: PEQ-R)

意外だったのは、直結して測った特性(イコライザ自体の特性)には差があったことだ(まあ、Lowshelfとグライコで設定した特性は違うのだから、当然ではあるが)。

直結して測った特性の比較 (水色: DEQ-L; オレンジ: DEQ-R; 青: PEQ-L; 赤: PEQ-R)

結局、測定して得られた特性を見てグライコで細かく調整して「補正」しようとしても無駄な、「手強い」領域(部屋の特性のせいか、音量を下げても下がらず、上げても上がらない)があるようだ。

なお、最終的にPEQは2個しか使っていないので、使うイコライザを12バンドから5バンドのもの(EQ5)に換え(設定値を移植した)て、更にシンプルになった。こんなにシンプルなら、音の劣化(フィルタによる位相の変化や歪みの増加が関係しているのではないか)が少ないことが期待できる。

作ったPEQの設定を5バンドイコライザに移植

ただ、聴いた感じだと、DEQ2496とは少し違う気がする(PEQ特有の、耳が詰まる感じが少しある)が、今朝からずっと(DEQ2496に戻しても)そうなので、今日は耳の調子が悪いのかも知れない。しばらく試してみたいと思う。

前にも書いたが、今のスピーカーの設置場所(出窓)の特性が意外に素直(低域が少し強いだけ)なことに驚く(実際には、下げても下がらない箇所は共鳴しているのだろうから、「素直」とは言えない気もする)。これなら、グライコじゃなくても、普通のトーンコントロール(しかもバスのみ)でも代用できそうなくらいだ。今までの、細かい調整の苦労は何だったのかとすら思える。

それから、DEQ2496のPEQでもLowshelfフィルタに近いものが実現できそうなので、あとで試してみたい。

そして、ソフトでの処理だと、さまざまな種類の仮想的なエフェクタを気軽に「取っ替え引っ替え」でき(ダウンロードすれば、いくらでも追加できる)、それらの接続も自由に変えられ、調整も楽で設定の保存も容易で、すごく便利なので、DACを買う気が盛り返しそうな気配がする。が、実際には、DACを新たに買わなくたって、DEQ2496の内蔵のを使えばいいのだ。だから、ソフトでプロトタイプを作って効果を検証し、可能なものはDEQ2496に移植するのが良さそうだ。それが一番安価で安定だ。

難なくDEQ2496に移植できた。PEQにLowshelfモードがあるようだ。そして、直結での測定結果はほとんど同じ特性になった。プロ用機材に共通の機能・仕様(この場合、イコライザのカーブ)は結構あるのかも知れない。

グライコ(DEQ2496)に移植 (水色: ソフト-L; オレンジ:ソフト-R; 青: DEQ2496-L; 赤:DEQ2496-R)

ちょっと聴いた感じもいいので、しばらくこれで試す。(23:37)

今思い付いたのだが、ソフトのイコライザで55Hzが少し深くなっている件を解消するには、Lowshelfでなく、幅広いPEQ(中心が150Hz付近)を使えば何とかなりそうだ。あとで試そう。(5/20 0時)

今回は細かい調整に苦労したが、できた。使用したPEQは、左が1個(200Hz)、右が2個(79.6, 200Hz)と少なく、補正量も5dB前後だが、特性は以前とほぼ同じにできた。上で気に入らなかった55Hzは、もちろん問題ない。

上段(L+R): 緑: 今回(PEQのみ); 灰: オリジナル(GEQ+PEQ); 中段(L, R): 青: L; 赤: R; 下段(直結(=補正量)): 青: L; 赤: R

150Hz付近の山を調整しなかったので少し大きくなっているが、+4dB程度で自分の許容範囲内なので、PEQを増やすよりは良い思ってそのままにした。聴いた感じは全く問題なく、耳が詰まる感じもない。ソフトと本物のイコライザでは、微妙な特性の違いがあるのかも知れない。「本物」といっても、内部はDSPで、やっぱりプログラムでできているのだが。

余談: 実は、この前に作った設定は、例の440Hzの山を調整しなかったせいか、ピアノの特定の音(モーツァルト ピアノ協奏曲 第18番 第1楽章の始め)が強く聞こえたので、PEQの位置や強さを修正した。

なお、補正量はオリジナル(GEQ+PEQ)とは概形は似ているものの、細かいところは結構違う。補正が効かない・無意味な領域が多いようだ。

補正量の比較 (水色: オリジナル-L; 青: 今回-L; ピンク: オリジナル-R; 赤: 今回-R)

という訳で、まさに「悟りの境地」とでも言うようなシンプルの極みに達し、イコライザの断舎離ができた。しかも、何も買わずw、ソフトも変えずに済んだ。補正量のグラフなんてすごくすっきりしたから、(聴いても分からないけど)音質も良くなったのではないだろうか? 最終的には、DEQ2496の機能の1/10くらいしか使っていない(GEQなんて全然使ってない)が、あれをここまでしゃぶりつくした人も少ないのではないだろうか。

それにしても惜しいのは、部屋の構造によってできていると思われる、60Hzと600Hzの谷だ。どうにかして解消できないものかと、つくづく思う。(5/20 10:42)

 

PS. 測定に使った、マザーボードのサウンドインタフェース(Realtek)は、意外に特性がいい。というのは、間違ってイコライザを入れずに直結して測定したら、約20Hzから15kHzで平坦だったのだ(もちろん、特に入力がそうでなかったら、ここまでの測定や調整は全部無意味になる)。

オンボードのサウンドインタフェース(Realtek)の特性

入出力のアナログ回路が、それなりにちゃんと作られていることが分かる。もちろん、専用の機器に比べてノイズや歪は多いのだろうが、普通にスピーカーで聴くのには充分なんじゃないかと思った。たぶん、屋外で聴く数十万円のポータブルDAC+アンプなんかよりはずっといいだろうw まったくASUS(ボードのメーカー)は侮れないな。(5/20 10:43)

PS2. その後、問題の60Hzの谷を解消・改善できないか検討したのだが、無理そうな感じだ。まず、原因が分からない。部屋を引き戸で半分に仕切ってもほとんど変化がなかったので、縦方向ではないようだ。また、横にあるクローゼットの扉を開閉しても変化がないので、横方向でもない。

だから、おそらく上下方向の定在波だと思う。シミュレーションすると、スピーカーの位置や聴く場所を変えればいいことは分かるのだが、いい場所がない。上下に動かすにしても、50cmから1mくらい動かさないと変化がなさそうだが、そんなに動かすのは無理だ。

だから、打つ手はない。ただ、いくつかいいことに気付いた。どういう訳か、左右で谷になる周波数が10Hz近く違うので、60Hzの音が完全に出なくなる訳ではなく、その付近では片チャネルは何とか出ているのだろう(谷の重なる58Hzが最悪なポイントだ)。そして、低音は方向感が鈍いので、不自然には聞こえないのではないのではないか。

また、谷はシャープだが、最悪なポイントがピンポイントで一つの音になっているのではなく、ある程度の幅で音になっているはずだし(ここによれば、12音音階では、60Hz付近の音は約3Hz刻みのようだ)、楽器には倍音成分もあるから、その音が弱くはなるが、完全に聞こえなくなる訳ではないのではないかと推測する。

そもそも、60Hzの音を聞いてみると、すごく低くて単体では使われそうもない音のような気がするから、実害はなさそうであるw

一方、場所が変わって500-700Hzの広い谷は、ピアノの鍵盤でいうと51(シ)-57(ファ)番、真ん中辺りのよく使われる場所で、影響のある音の数も多く、実害がありそうなので、何とかしたくなってきた。(5/21 14:29)

  •   0
  •   0

先日、どうしてもスリープ(サスペンド)後の復帰がうまくできなくて、諦めた(と書いた)JACK(Linuxのサウンドシステムの一つ)だが、実はしつこく継続していた。暇なのと、興味があったのと、(理論的には)できないはずはないと確信していたのと、PC(Linux)ごときに降参するのが嫌だったのである。

厭きずに検索していたら、2つほど有効そうな情報が書かれたページが見つかり、そのうち1つがビンゴだった。

僕の問題は、長時間のスリープ後の復帰時に、JACKのサーバとクライアント(例: 制御プログラム、音楽プレーヤー、イコライザ)との接続が切れてしまって回復せず、音が出なくなるということだった。上のページは、それを解決する策を(僕の期待とは違っていたが)実に簡潔に(基本部分はたった2行で)示していた。

ポイントは、スリープ前にJACK制御プログラム(qjackctl)経由でJACKのサーバを停め、復帰時にqjackctl経由で開始することだ。(おそらく、復帰時に停めて再開させるのでも充分だろう)。

試したところ、復帰後もJACKで再生できるようになった。が、それでも完全ではなく、以下のような問題があった。

  • サーバを停めるせいか、JACKのクライアントからサーバへの接続は自動的には再開しないことがほとんどなので、駄目なクライアント(例: イコライザ)を再起動するなどの処理が要る。
    • これに関連して、gmusicbrowser(GMB)がスリープ時にエラーダイアログを出すのが鬱陶しい(それでも再生はできるようだ)。
  • 同様に、JACK関連の設定(例: alsa_outによるJACKからALSAへの転送)も消えてしまうので、再設定が要る。

それで、スリープ時と復帰時に必要な処理を追加して、復帰後にもうまく再生できるようになった。ただし、GMBは余り再起動したくなく、すぐにエラーダイアログを消すこともできないから、ひとまずPulseAudioに音を出す設定にし、JACKに転送するようにした。正式に使う時は対処が要る(ただ、PulseAudio経由での問題は音が出るまでの遅延が大きくなる程度だし、聴いてみて音質の劣化は感じられないので、そのままでも大丈夫そうな気がする)。

対処したところ、以前あったいろいろな問題(例: 復帰後に接続(パッチベイの結線)が回復しない)も解決した。

ただ、個人的には、サーバへの接続なんて自動的に回復すべきだと思っているから、この対処は気に入らない。それで、qjackctlやJACKサーバの設定を調べたが、関係するものはなかった。おそらく、クライアントの設定の問題なのだろうが、すべてのクライアントの設定なりプログラムを直すのは無理だから、仕方ないのだろう。

晴れてJACKが使える(=ソフトでグライコを実現できる)ようになり、今日までの数日間、グライコの代わりの外付けDAC(それもPC内に入れたいと思っていた)は何を買おうか迷ったのだが、結局、買わないことにした。というのは、そもそも、DACを内蔵した本物のグライコ(DEQ2496)がちゃんと動いていて、音にだって満足しているのに、わざわざ別の物に替える必要がないからだ。新しい物を買うのは楽しいが、やっぱり、手段を目的にするのは良くないと思う(それでも、買いたい気分が-90dBくらい残ってそうだw)。

あと、今の低価格DACは中国や台湾のものがほとんどで、確かに性能も外見も悪くない感じではあるのだが、紹介の文章が胡散臭い(→ : 性能を向上させたと書いている割には仕様をどこにも記載しておらず、最も重要な電源(本人もその重要性を力説している)を添付も別売りもしておらず、なぜかブログで、おまけにケバい!)し、(アンプの話ではあるが)危ういトラブルが結構あるし、中の配線がしょぼかったりするのも、(60dBくらい)買う気をそいだ原因だ。今はUSB接続のみの物がほとんどになってしまい、光接続対応のものの選択肢が少ないのは残念だ。

余談: 「昔処分してしまった小さいDAC(Styleaudio CARAT-TOPAZ Signature)があれば、気軽に試せたのに」と今になって思うが、まあ仕方ない。

それで、今は以下のような結論・方針でいる(途中経過を省略しているので、論理が飛躍している)。

  • JACKの(グライコでなく)PEQだけで補正ができるか、その結果がグライコより良いか調べる。: JACKのPEQ(Calfのイコライザ)は各PEQを合成した補正量がグラフで見えるので、見えないグライコのPEQよりも補正結果が変になる可能性が低くなり、少ないPEQで補正できるのなら、その方が音が良くなる可能性があると思ったので。
  • 上がOKなら、グライコからJACKでの補正に切り換える。
  • そして、特性の測定を楽にするため、内蔵のサウンドカードを買う。: JACKとREW(特性測定プログラム)でサウンドデバイスを共用する場合、測定ごとに入力を設定し直す必要があるので、内蔵のオーディオを測定専用にして、その手間を省きたいため。
  • 外部DACは、グライコが壊れたら購入を検討する。

今朝、測定用の内蔵サウンドカードも不要になりそうなことが分かった。オンボードのサウンドデバイス(Realtek)を使っているのだが、それは、入出力が光とアナログの2系統ずつあるので、REWが使う入力デバイス(アナログ)とJACKに割り当てる入力デバイスを変えればいいのだ。基本的に、JACKでは録音しないので、JACKに光を割り当てた。すると、REWでの測定のたびに入力デバイスを設定し直す必要がなくなり、何回でも測定できた。それが分かる直前まで、ちょっと思い付いて、USB接続のオーディオインタフェース(こんなの)を物色していたというのに。トレビアン! (5/18 19:18)

(5/18 22:14 わずかに加筆・修正)

  •   0
  •   0

昨日の投稿でちょっと書いた、音質調整(正確には、再生系の特性の補正)のためのグライコ(DEQ2496)をソフトで代替する件の見通しが立った(と思ったのだが、結論は追記を参照のこと)。

昨日、軽い気持ちで始めたのだが、さまざまな困難(というか、分からないこと)があった。でも、検索と先人の業績のおかげで、やりたかったことが概ねできることが分かった。

要求事項

  • DEQ2496と同等のイコライジング(31バンド、左右独立)をPCのソフトで行う。
  • イコライジングした音(スピーカー用)としていない音(ヘッドフォン用)を同時に別々に出力できる。
  • プレーヤーソフトgmusicbrowser(GMB)だけでなく、他の普通のアプリやOSの音も出せるようにしたい。

試行錯誤の内容(概略)

  • グライコ探し
    •  Linuxのグライコを検索して出て来た、以下のソフトは、バンド数が足りなかったり、左右独立でないので、使えないことが分かった。
      • Pulse Audio Equalizer, alsaequal, mbeq (swh-plugins), PulseEffects, CAPS audio plugin suite, Jamin
    • GMBのイコライザ(実際にはgstreamerのイコライザ)を改造して拡張するのは、特性測定時に測定ソフト(REW)の音をイコライジングできないので不採用とした。
    • Calf studio gearのイコライザは、30バンド・左右独立で、DEQ2496と同等なので、候補にした。
    • zam-pluginsのサイトには、31バンド・左右独立のイコライザ(ZamGEQ31X2)が書いてあるが、実際のパッケージには入っていないので却下した。
  • Calf studio gear (以下Calf)を動かす。
    • Calfが動くJACK(Linuxのサウンドシステムの一種)で音を出すのにとても手こずった。結局、デフォルトのデバイスでなく、明示的に光デジタル出力を指定すれば良かった。
    • 音の経路(例: スピーカーに出す前にグライコを通す)を指定するのも難しかった。qjackctlには「パッチベイ」という配線のような機能があるのだが、どういう訳か、使っているうちに設定を無視して直結し、イコライジングした音としていない音が重なってしまうので、使うのを諦めてjack-plumbingというコマンドを使った。この機能はありそうだと思っていたのだが、実際にはどうすればいいか分からなかったのだが、コマンド名から、もしやと思った。
  • イコライザを設定して、音を聴いてみる。
    • DEQ2496とは若干周波数やゲイン(音量)の刻みが違っていたが、正式に使う時に微調整することにし、おおまかな値をCalfのイコライザ(Equalizer 30 band)に設定した。
    • おそらく、各バンドのフィルタの特性はDEQ2496とは異なるので、実際の微調整は必須だと思う。
    • 聴いた感じでは、特に問題はなく、聞き慣れた普通の音が出ている。
  • OSや通常のプログラムの音も出力できるようにする。
    • pulseaudio-module-jackというモジュールを使い、標準のPulseAudio(Linuxのサウンドシステムの一種)に出る音がJACKに出せるようになり、ブラウザ(Vivaldi)の音が出た。
  •  2系統独立出力できるようにする。
    • チップ自体に機能があるので、ドライバを何とかすれば2系統出力できそうだからと、ダメモトでRealtekのサイトのLinuxドライバを入れたら、音が出なくなった(古い物を無理にインストールしたせいだろう)。バックアップからドライバを戻して復旧した。
    • 実際には、ドライバ自体は独立出力に対応しているので、alsa_outというプログラムにアナログ出力を受け持たせて、それに、以下のように音源を分岐して入れるようにして、イコライジングしない音も出るようにした。
      • 音源 → イコライザ → 光出力
      •   └→ アナログ出力
  • qjackctlが使いにくい問題への対処
    • JACKの制御のためにqjackctlが要るので、JACKは止めてALSA(もう一種のLinuxのサウンドシステム)にしたかったが、CalfはALSAでは使えず、他に要求を満たすイコライザがないので諦めた。
    • qjackctl以外のプログラム(Cadence)を試したが、もっと使えない(設定が保存できない?)ものだったので、諦めた。(5/8 7:21 追記:設定保存のメニューはないが、保存できているようだ)
    • qjackctlに指定できる、サーバ起動後の実行スクリプトが今一つまともに動かないので、上記に書いてきた機能を実現するためのいろいろな処理を行う起動用スクリプトを作って、そこからqjackctlを起動することにした。
  • その他
    • JACKは、位置づけとしては、WindowsのASIOのようなもののようだ。
    • 恐ろしいことに、JACKの試行錯誤中はOSすら不安定になった。今後は大丈夫か、ちょっと心配だ。
    • 複数のサンプルレートには対応しないようだ。設定していないサンプリングレートでも変換するから聞けないことはないが、本当は切り替えて欲しい。が、CD(44.1kHz)さえちゃんと聴ければ、とりあえずは問題ない。おそらく、いろいろな音をミックスして出すポリシーなのだろう(まあ、それが普通だ)。
    • イコライジングをソフトで行うため、CPU負荷は上がった。Calfのプロセスは、15%前後のCPU使用率となり、load averageは1前後になっていることが多い。ただ、全体的なCPU使用率(前述の使用率とは測っているプログラムが異なる)は4%未満なので、大きな問題はないのかも知れない。
    • なぜかOS(正確にはThunderbird)の音がJACKから出ないので、今後の課題だ。→ PulseAudioの「出力装置」の設定でJACKを「代替として設定」(右のチェックボックスをクリック)したら出るようになった。「代替」というのは、デフォルトのことだろうか? (17:59)

設定・操作画面

JACKで音質調整+2系統独立出力を実現した。(左上から時計回りに、JACKの制御(qjackctl)、音の経路設定(qjackctl)、30バンドグライコ(Calf)、Calfの制御)

30バンドグライコと音の経路設定は、なかなかの見物だ。

今後の予定

  • 複数のサンプルレートを自動で切り替えできないか、調べる。
  • 安定性を確認する。また、音質の異常や音飛びなどがないかを確認する。
  • 録音(入力)にも対応させる。(特性を測定する時)
  • DEQ2496でのイコライジングを止めるのか、熟考する(今は、興味を除いては、止めることに特段のメリットはないので、DEQ2496の故障時のバックアップや故障後の代替手段に位置付けるのがいいように思う)。
  • 実際の特性を測って、イコライザを調整する。

知らなかったものを試した結果、やりたかったことができて結構おもしろかったけど、疲れた。そんな訳で、あっという間に連休が終わりそうだ。。。

(19:39追記) モーツァルトのピアノ協奏曲23番を聴いていて、何となく音が悪い(元と違う: わずかに響きが違う感じなのと、ピアノの音がほんの少し平板的に聞こえた)気がして、気のせいなのか、イコライザの特性の差のせいかと思っていたのだが、ふとDEQ2496のパネルのLEDを見たら、思わぬ落とし穴を発見してしまった。DEQ2496はグライコだけでなく、数点だけPEQ(パラメトリックイコライザー)も掛けていたのだ。

だから、ソフトでDEQ2496を代替できるのはもう少し先だ。もちろん、CalfにはPEQもあるだろうから、不可能ではないだろう。が、やっぱり、そこまでしてやる気はなくなって来たというのが、正直なところだ。という訳で、この投稿の最後は、

To be continued?

(5/7 4:21追記) スリープからの復帰後に音が出なくなっていた。jack-plumbingが処理に失敗して、音の接続ができなくなっているようだ。jack-plumbingを再起動しても直らない。JACKのサーバが異常になったのだろうか。

これでは使い物にならないので、JACKは諦める。DEQ2496が壊れたら、その時に改めて考えよう。

(5/7 10:35追記) 結局、その後スリープからの復帰の問題にはまってしまった。この問題が解決したかは分からないが、GMBの出力が勝手に接続される問題は解決できた。勝手に接続するのはGMBのようで、再生をストップした後で再度再生する時に、デフォルトの出力先("system")に接続している感じだ。それで、qjackctlのパッチベイの設定で、systemの入力を「排他的」にすると、一つの出力(ここではCalfの出力)しかから接続されないようになって、勝手に接続されなくなる。

なお、qjackctlのパッチベイを使うことにした理由は、jack-plumbingがスリープに対応していないからではないかと思ったからだ。

また、alsa_outはJACKサーバが起動していない場合、勝手にサーバを起動するため、余計なサーバ(jackd)が起動していたことが分かった。本当のJACKサーバは今はjackdbusのようで、これはqjackctlが起動するので、alsa_outはqjackctlの後で起動するようにした。これもスリープに関係しているのではないかと予想(期待)している。

なお、昨夜、PEQも仮に設定してみた。しかし、音の違いは良く分からなかった。違いを判別するには、測定してみる必要がありそうだ。

(5/8 6:25追記) その後、興味本位で特性を測定したくなってしまって、連休の最終日を潰してしまった。

測定にはマイクの音を入力する必要があるのだが、測定ソフトREWがJACKに対応していないので、手こずった。最初に試した時は、うまくいったと思って測定したら、やけにいい特性が出て、「実はグライコは要らなかった??」と思い掛けたのだが、それは科学的でないし、実際、聴いたら音が良くなかったので、何かおかしいと思って調べたら、雑音(内部的なハウリング?)を録音していたようだった。

結局、JACKがオーディオインタフェースを専有するために、REW(標準サウンド(ALSAかPulseAudio)を使用)が録音できなくなっていたのが原因だった。もう一枚オーディオインタフェースがあれば楽だったのだが、ないので試行錯誤した。いろいろ調べて、JACKの制御プログラムをqjackctlでなくCadenceにし、JACKでは出力だけするように設定すればいいことが分かった。ただし、REWが何かおかしいようで、測定のたびに入力を設定し直す(一旦別のに設定して戻す)必要があった。

それでようやく測定ができた。結果としては、暫定的な設定で大きな問題はなかったが、右が少しずれていたのでグライコとPEQを微調整した。なお、PEQは必要だった(左右別のグラフを見ると分かる: 左: 80Hz付近、右: 150Hz付近に山がある)ので、Calfの"Equalizer 5 band"(これはグライコでなく、PEQ)を使用した。

調整前の特性は以下のとおり:

調整後の特性は以下のとおり:

左右一緒だと、調整前後の差は分からない。なお、左の220Hz辺りが強いことに気付かなくて調整しなかったのだが、本当に使う時に調整しようと思う。

結論としては、Linuxのソフト(JACKとプラグイン)でグライコ(DEQ2496)を完全に代替できる。ただし、使うためにはさまざまな面倒があるうえ、前述のように、JACKにはスリープの問題(今、別のプログラム(Cadence)を試している)があるので、当たり前のことながら、(技術的興味や物減らしへの熱意は別として、)DEQが使えるのなら使った方がいいだろう。

補足: 物減らしの面では、今はDEQのDACを使っているので、仮にDEQをなくしたとしたら、別の、ある程度良いDACが要るので、あまりメリットはない。それどころか、新しい物を買うという点で言語道断だ。だから、この方式は、DEQが壊れた時だけ意味がある。

PS. JACKのスリープからの復帰で再生できなくなる問題は、Cadenceでも駄目だった。JACKのサーバとの通信ができなくなるようだ。いくら技術的におもしろくたって、こんなに出来が悪いのでは、使い物にならない。よくこれを「プロ用」と言えると思う。これで、完全に諦めることができた。(5/8 19:55)

  •   0
  •   0

毎年恒例の、オーディオ再生系(部屋も含む)の特性の確認。

去年Linuxに移行したので、今回はちょっとしたトラブルがあった。移行した時、それまで使っていた測定ソフトSpeaker WorkshopがWine(LinuxでWindowsのソフトを動かせる(かも知れないw)ソフト)で動くことを確認していたつもりだったのだが、実際には、音の再生がまともにできず(再生が短時間で終わってしまう)、測定できなかった。仮想環境(VirtualBox)のWindows 7で動かしても駄目だった。

それで、慌てて代替ソフトを探したら、ありがたいことに、すぐにいいものが見つかった。Room EQ Wizard (REW)というソフトだ。去年は結構探しても見つからなかった気がするのだが、今回は"Speaker Workshop alternative"で検索したのが良かったようだ。

REWはSpeaker Workshopの10倍はいい感じだ。使いやすいし、機能も豊富だし、安定している。

Room EQ Wizardの測定結果の画面

実は、今日はだるくてやる気がなかったので、ソフトを見付けて動くのが分かったら終わりにしようと思っていたのだが、余りにいい感じなので測定までしてしまった。

その結果、問題がない(前回から大きな変化がない)ことが分かった。以下に、グライコ(DEQ2496)で調整後のスピーカー出力(左右同時再生)の特性の測定結果を示す。

使用したソフトの違いにより、今回はスイープ信号で、前回と前々回はM系列の擬似雑音で特性を測定している。また、今回は1/12oct(オクターブ)の、前回と前々回は1/6octの平滑化をした。今回は、グラフが0dB付近になるように数十dB下げた。なお、前回との比較図は、グラフィックソフト(gimp2)で前回の縦横のスケールを調整して重ねて作成した。

なぜか、前回より若干特性が良くなった感じだ。具体的には、低域(40-60Hz)のレベルが4dB程度上がり、55Hzの谷もその分浅くなっている。比較図には載せなかったが、前々回に近い感じだ。マイクの位置の違いによるのか、部屋の条件が変わったのか分からないが、まあ、良い分には問題ない。

なお、今回は鋭い谷がいくつかある(150, 320Hz付近)が、平滑化の違いによるものではないか。それから、500-600Hzの谷はいつも深さが変動するので、余り気にしていない。

一行でまとめると、

60Hz〜20kHzで±5dB、40Hz〜20kHzでも-10,+5dB

と、なかなかいいと思う。逆に、低音や高音なんて、そんなにちゃんと出ているのかとさえ思う。余談だが、測定している時、測定が終わったと思って画面を見ると、実際には超高音(10kHz以上?)がまだ出ていて、もはやそんな音はかすかにも聴こえず、ハイレゾなんて全く不要なことを実感させられる。。。

なお、REWを使う時には、いくつかのコツがあるようだ。

  • デフォルトのサウンド(Preferences→Soundcard)設定では音が入出力できなかったので、試行錯誤したところ、出力も入力も"default [default]"にするとうまく行った。紛らわしいが、これはREWのデフォルト("Default Device")とは異なり、Linuxのデフォルトという意味なのだろう。
  • 最初はマイクからの入力ができなかったが、上記の設定や、マイクの接続端子(マイク/ライン)やPulseAudioのミキサーの設定(設定→プロファイル)を変えていたら、なぜかうまく行くようになった。

 

参考: システム構成(前回からの変更点のみ)

  • 周波数特性測定プログラム: Room EQ Wizard V5.18
  • OS: Linux Mint 18.1
  •   0
  •   0

1週間くらい前、なぜかPCのファン(その時はCPUファンと思ったが、実際にはケースファンだった)の音が少しうるさくなった。Linuxでは、マザーボードメーカー(ASUS)製のファンの回転数制御などをするプログラム(AI Suite II)は動かないので、BIOSの機能に任せていたのだが、それが良くないのか、BIOSの設定がおかしくなったのか、あるいは、暖かくなってエアコンをつけなくなって聞こえやすくなったのか、CPU負荷が高いせいなのか、原因は不明だった。

それで、Linuxに移行する時から、Linuxのfancontrolコマンドでファン回転数の制御をしたかったので、試してみることにした。実は、移行検討時にも試していたのだが、ファンの回転数が取得できなかったので諦めていた。今回、更に検索したら、Linuxの起動オプションの設定(/etc/default/grub: GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax": 以下、"LAX")で取得できるようになることが分かったので、試したら取得できるようになった。ケースファン(その時は、CPUファンと思い込んでいた)が確かに1000rpm程度で回転していて、少し速かった。

しかし、そこからが謎だらけで大変だった。試したことを全部書くのは煩雑なので、主要なことだけを書くことにする。

散々苦労した末、fancontrolコマンドがなんとか動くようになって、CPU温度に追従してCPUファンの回転数が変化するようになった。

ただ、fancontrolの設定について調べているうちに、実は、マザーボードのチップ(SuperIO, NCT6776)には、ファンの回転数制御をする機能があることが分かった。BIOSはその機能でファンの制御をしているようだ。

それで、fancontrolはシステム負荷が非常に高かったりプログラムが異常終了した場合には、正常にファンが制御されなくなって、最悪の場合には熱でCPUが破損する可能性があるので、SuperIOの機能を使いたくなった。その時、Linuxから設定変更できれば、BIOSの設定画面を出すために再起動しなくて済むので便利だと思った。

ところが、マザーボードの残念な仕様のために、Linuxから設定を変更することが不可能なことが分かった。その仕様というのは、SuperIOからはCPU温度が取得できない(正確には、CPUTINに値は出るが、90℃などと異常な値になる。また、デジタル入力(PECIなど)はデータが取れない)ことだ。ハード的に接続されてないのか、Linuxからファン回転数を取得できる設定にしたために取得できなくなったのかは分からない。おそらく、CPUTINは前者、デジタル入力は後者だと思う。

試しに、LAXを解除して、SuperIOからCPU温度が取得できるか試したが、できなかった。それどころか、LinuxでSuperIOから取得できる情報が何もなくなってしまったから、SuperIOにアクセスするにはLAXが必要なのだろう。

それで、fancontrolを使うか、(今までと同じ)SuperIOの機能を使うかの選択となり、安全のために後者を選んだ。そして、詳しくは分からないが、LAXには危険な副作用があるとのことなので、無効にすることにした。

結局、それまでと何も変わらない結果になったのだが、なぜか、以前と同様、ファンの音がほとんど聞こえなくなった。

結局、うるさかった原因は、その時たまたまCPU負荷が高かった(ウイルススキャンをしていた)ためか、何かの拍子にBIOSの設定が変わってしまったかなのだろう。

諦め切れないものはあるのだが、ASUSのマザーボードのSuperIOで正しいCPU温度を取得することはできないというのが定説なので、まあ、諦めるしかないのだろう。

このマザーボード(P8H67-V)は気に入っているのだが、今になって思わぬ欠点が見つかってしまった。まあ、WindowsでなくLinuxを動かしても、ハード(SuperIO)が勝手にファン回転数制御をしてくれて、それでまったく問題ない(過熱しないし、うるさくもない)のだから、まあ、多くを望むべきでもなかろう。

(4/26 5:14追記) その後、やはりファンがうるさい気がするので、fancontrolを使うことにした。すると、ケースファンの回転数が約1200rpmから約800rpmに下がり、本当に静かになった。

fancontrolはSuperIO以外の温度も使って制御できるから、SuperIOでCPU温度を取得することができなくても使える。私は、以下のように、coretempというモジュールのtemp1_inputを使う設定にした。

  • hwmon1= coretemp-isa-0000
  • hwmon2= nct6776-isa-0290
  • CPUファン (hwmon2/pwm2) ← hwmon1/temp1_input
  • ケースファン (hwmon2/pwm1) ← hwmon2/temp1_input

(4/26 6:02追記) 更に調べたら分かってしまった! このマザーボードでは、CPU温度はSuperIO(NCT6776)のPECI Agent 0に入っているようだ。PECI Agent 0の温度はcoretempと異なる場合があるので、マザーボードの温度だと思い込んでいたのだが、ベンチマークで負荷を掛けるとcoretempと同じになるので、CPU温度であろう。実際、NCT6775シリーズのドライバのページにもそのように書いてある。

それで、再び、fancontrolを使うのを止めて、NCT6776のファン制御機能を設定するスクリプトを作り、OS起動時に実行するようにした。BIOSのデフォルトで問題なく設定されていたはずなのだが(実際、CPUファンについては正しい設定がされているようだ)、いつからかおかしくなってしまったようだ。以下に、設定値(僕の場合の例)を書く。

  • CPUファン (/sys/class/hwmon/hwmon2/pwm2*)
    • 温度源(pwm2_temp_sel): 7 (temp7_input, "PECI Agent 0")
    • 制御モード(pwm2_enable): 5 (Smart Fan IV)
    • 余裕温度(pwm2_temp_tolerance): 10000 (10℃)
    • 最低(ファン回転開始)温度(pwm2_auto_point1_temp): 30000 (30℃)
    • 最低(ファン回転開始)PWM(pwm2_auto_point1_pwm): 35000 (35℃)
    • 最高(限界)温度(pwm2_auto_point[2-5]_temp): 70000 (70℃)
    • 最高温度でのファンPWM(pwm2_auto_point[2-5]_pwm): 255
  • ケースファン (/sys/class/hwmon/hwmon2/pwm1*)
    • 温度源: 1 (temp1_input, "SYSTIN")
    • 制御モード: 5 (Smart Fan IV)
    • 余裕温度: 7℃
    • 最低(ファン回転開始)温度: 20℃
    • 最低(ファン回転開始)PWM: 95
    • 最高(限界)温度: 55℃
    • 最高温度でのファンPWM: 255

また、この設定は(ドライバの既知の問題のために)スリープからの復帰後に解除されてしまうので、復帰時に再設定するようにもした。

これで、システムの負荷が高い場合やfancontrolの異常終了時にCPUが過熱して破損するのを防げるし、余計なプロセスを動かさなくて済む。

※LAXを入れると、Xfce4のパネルウィジェットmulti-load-ngのCPU温度がおかしくなってしまうのは直らないので諦めることにし、別のプラグインで出すことにした。

安心していたら、スリープからの復帰後に、PECI Agent 0の温度が低いままになってしまうことが分かった。チップの設定が変わってしまうのだろうか。やっぱり、ちょっと残念なボードだ。。。 (4/26 6:42)

これも分かった。NCT6776のドライバがスリープに対応していないようなので、復帰後にmodprobeコマンドで再ロードするようにしたら直った。これで解決か!? そして、残念だったのはLinuxだったようだ。(4/26 7:18)

確認のため、ベンチマークソフト(sysbench)でCPUに負荷を掛けてCPUの温度を上げたら、ちゃんとCPUファンの回転数も上がった(下図の赤丸部分が、負荷を掛けた期間)。なお、CPU温度は55℃程度まで上がり、ファンの回転数は1300rpm程度まで上がった。 (4/26 7:53)

 

参考: 私のマザーボード(ASUS P8H67-V)での温度・ファンセンサ・ファン制御設定の内容一覧 (推定を含む)

coretemp-isa-0000 (/sys/class/hwmon/hwmon1):

  • temp1 (Physical id 0): CPU温度
  • temp[2-5] (Core 0-3): CPUコア1-4の温度

nct6776-isa-0290 (/sys/class/hwmon/hwmon2):

  • fan1: ケースファン回転数
  • fan2: CPUファン回転数
  • fan3: 電源ファン回転数
  • temp1 (SYSTIN): マザーボード温度
  • temp7 (PECI Agent 0): CPU温度
  • pwm1: ケースファンの制御設定
  • pwm2: CPUファンの制御設定

※nct6776-isa-0290のtemp2 (CPUTIN)、temp3 (AUXTIN)、pwm3は未接続と思われる。

(2017/4/27 4:47記)

PS. Linuxには、thermaldというちゃんとしたプログラムもある。これは、基本的にはCPUの周波数を調整して過熱を防ぐものらしい。が、それ以外に、設定すればファンも使えるようだ。だが、設定が面倒なせいなのか、検索してもこれを使っている例は出て来ず、fancontrolの例ばかりだった。そもそも、上述のように、僕のマザーボードにはファンを制御できるチップ(NCT6776)が載っているので、わざわざ設定して使うまでもないだろう。 (2017/4/27 7:28)

PS2. ケースには、もう一組、前面(HDDの前)にファンが2個ある(HDDファンと呼んでいる)。以前は、ケースファンと同じ系統の端子("Chasis fan 2")につないでいたが、この設定をしたら回転数が下がってHDDの温度が数度高目になるため、電源ファン(PWR fan)端子に接続している。この端子は回転数の調整ができないが、そもそも、SuperIOの機能ではHDD温度で調整することはできないので、諦めた。

なお、ファン端子に直結すると回転数が1500rpm前後と高過ぎて、ちょっとうるさいので、昔買った抵抗を入れて調整した。100Ωだと遅過ぎで、50Ωでも遅目なので、50Ωを2本並列にして25Ωにしたら、少し高目(900rpm程度)ではあるが、HDD温度が下がり、うるさくなくていい感じになった。(4/29 17:22)

  •   0
  •   1

PCのHDDをSeagateに交換して見事に失敗した件。その後、今まで問題なかったから暫定的に使うことにしたものの、「壊れる」という悪評が余りにも高くていつ壊れるか分からないSeagate ST3000DM001を使い続けるのは気分が悪いのと、会社関係で溜まったストレス解消を兼ねて(多くの人が、当座は必要でない物を買ってしまうのは、こういう気分なのかと想像する)、最初の候補だった、HGSTの3TB HDD 0S03663 (HDN724030ALE640)を試すことにした。

このドライブは全然値動きがなく、ちょっと期待していた年度末の安売りもなく、ずっと約1.4万円のままだった。前にも書いたが、Amazonは梱包が良くないという評判なので、ツクモに注文した(もちろん、梱包はちゃんとしていた)。売れているようで、2016年11月製造の物が届いた。届いた昨夜から作業を始め、今日の昼前に終わった。不良チェックに約6時間、約1.8TBのデータの移行(コピー)に約4時間掛かった。

交換する際、元々使っていたWDの3TB HDDとWindowsの時に使っていた東芝の256GB SSDを外し、主要なドライブ(ADataのSSDと今回交換したHGST)の配線が短くなるように、配置を改善した(相変わらず配線は雑然としているが、僕には解決は難しい。逆に、曲線を描く銀色のケーブルは、自動車の排気管のようでかっこいいではないかw)。ケース内、特にドライブ周辺には埃がたくさんだった。フィルタがあっても余り効果がないのか、フィルタがあるからあれだけで済んでいるのか。

HGSTは(元々IBMのストレージ部門だったから)いいイメージも評判も経験もあったのだが、数年前にWDに吸収されてしまったし、この製品は一部にうるさいとか発熱するとか言われていたので心配はあったが、今のところ問題はない。WDに吸収されても、独立した部門として頑張っているのだろうか。

動作音は全く問題ない。静かで、回転音もシーク音(ヘッドが動く音)も聞こえない。当然だが、Seagateの問題だった「ビープ音」は、起動時にも平常時にもしない。だから、一番重要な、音楽を聴くのに全く問題はない(もちろん、音楽再生に何も問題はなかった)。

アイドル時の温度は、古いHGST (HDS5C3030ALA630)より1-2℃高め(室温が22.4℃の時、32℃。この時、古いHGSTは30℃)で、高負荷時は、元のSeagate ST3000DM001より5-6℃程度高い42℃(室温22.5℃)程度だった(一時的にファンの風が当たらない位置に置いていたので、より高くなったのかも知れない)。どちらも大きな問題ではない。

(4/11 6:58追記) しばらく使った時点でアイドル時の温度を比較すると、古いHGSTより大体2℃くらい高いことが分かった。下図は過去24時間の温度変化である。 /dev/sdbが今回交換したHGST、/dev/sdcが古いHGSTである。また、/dev/sdaはADataのSSDである。

今回交換したHGSTの平均温度(Avg.)は、古いHGSTより2.2℃ほど高い。なお、古いHGSTに比べて温度変化が少ないのは、温度センサの時間・温度分解能の違いによるのかも知れない。

アクセス速度はなぜか遅目だった。書き込み速度は約100MB/sで、古いHGSTの半分、返品したSeagate ST3000VX002と同程度だった。実用には全く問題ないが、古いHGSTはかなり優秀だったのだろうか、何か設定があるのか、ファイルシステムの違い(ext4とNTFS)が関係しているのだろうか。読み出し速度はキャッシュの影響か、測定不能だった(数GB/sと、異常に高い値が出た)。なお、Seagateと違って、書き込み速度測定中に音飛びは起こらなかったので、感心した。

これから何が起こるかは分からないが、今のところは、最初の無難な案にしておけば、Seagateでの失敗はなかったということになる。世の中はこういうことが多いから、「おもしろくないこと」や「定番」が蔓延するのだろうが、ここはみんなに挑戦心を持って欲しい。

これで、メインのHDDは数年間は安心だろう。あとは、ビデオを入れている古いHGST(6年物!)がいつ壊れるかだが、まあ、当面は問題ないだろう(これは「神風」のように全く非論理的な期待で、我ながら馬鹿かと思うw)。

 

余談: HDDの箱にクラウドバックアップの広告が入っていたのだが、「3GB無料」という売り文句には目を疑った。3TBのドライブを買った人に3GB(1000分の1!!)のバックアップって、悪い冗談だろうか。一体、何を入れろというのだ。最初は"3TB"かと思ったくらいだ。せめて1TBくらいにすればいいものを、やる気がないのだろうか。

  •   0
  •   0

いや、そんなに大したことではない。PCのHDDを交換する件で紆余曲折し、構成や製品を決めて注文したのが、さっき届いたのだ。

当初は、全部のHDD(3台)を交換する必要があると思っていたので、新しいのを2台買って全部で3万円以上掛かる予定だった。が、良く考えて、ビデオ用のHDDは全く問題がなく、ほとんど使わないし、バックアップはあるし、壊れた場合に復旧に時間が掛かっても問題ないので、壊れるまで(あと2年くらい?)使うことにした。

それで、買うのは1台で良くなった。容量は4TBが要ると思っていたのだが、良く考えたら3TBでいいことが分かった。

製品の候補は以下だった。全部、サーバー(NAS)用の3TB品である。

  • HGST 0S03663: 約1.4万円
  • WD WD30EFRX: 約1.2万円
  • Seagate ST3000VN007: 約1.1万円

いろいろなレビューや口コミを読んだのだが、お互いに相反・矛盾していたので、とても迷った。経験上、HGSTはいい物だというのは分かっていたのだが、現在はWD傘下なので、どうも怪しい気がする。実際、回転数が7200rpmと高速のせいか、熱いとかうるさいとかいう悪評がある。ただ、Backblaze社の2016年版のレポートでは、故障率が他社(WD、Seagate、東芝)の1/3以下と良い。が、それも本当に信用できるのか、怪しい。

それでWDにも傾いたのだが、Backblazeのレポートでは一番故障率が高かったし、例のタイマー(ヘッドを頻繁にアンロードする)を仕掛けているのが嫌だったので、却下した。

残ったSeagateは悪評が高いし、僕の中でも悪いイメージなのだが、良く考えてみると、使っていて壊れたことはない。ファームウェアに問題があって交換したことがあったのと、サポートがひどかった程度だ。今使っている悪評の高い製品(ST3000DM001)ですら壊れていない。そして、回転数が5900rpmと少し低いせいなのか、熱さとか騒音についての評判は良さそうだった。

それで、一昨日はHGSTが候補だったのだが、昨日はSeagateになった。更に、Amazonを見ていたら、容量の同じ別製品(ST3000VX002)が約8800円と安かったので、それを注文した。監視カメラ用だが、24時間の連続動作を想定しているので、デスクトップPC用には充分だと考えた(Backblazeは、サーバー用でもデスクトップ用でも故障率は変わらないという見解で、実際にデスクトップ用をサーバーに使っているが、異論が多いので、本当のところは良くわからない)。

まあ、HDDは機械製品なので、結局は賭けなのだと思う。壊れる時は壊れるけど、大丈夫な物がほとんどなのだろう。故障率が高い製品・メーカーはあるが、実際に手元に来た物が壊れるかどうかは「運」ではないだろうか。僕は、今までHDDが壊れた経験はほとんどないし、この5-10年は全くない気がする。

という訳で、いろいろな賭けをしたおかげで、3万円以上だった見積もりが1万円未満になった。届いたHDDをPCに繫いだら無事認識できて、今はbadblocksというコマンドで不良ブロックのチェック中である。このチェックは、昔と違って実際には余り意味がないような気がするのだが、もし初期不良があったら交換してもらいたいので、やっている。あと3時間くらい掛かりそうだ。チェックが終わったら、データの移行を始めるつもりだ。

感想は、今のところは全く問題なく、うまく行った感じだ。騒音は(エアコンや音楽のせいか)動いているのが分からないほど静かだし、熱に関しても、不良チェックで2時間くらい酷使しても35℃くらいまでしか上がっていない(室温: 23℃)。なお、ケースを開放しておくと、通風が悪いためにHDDの温度が上がってしまうので、今は中に仮置きしている。

あと、どういう訳か、AmazonはHDDの梱包がひどいという苦情が多かったので、これにするまでは別の会社に注文するつもりだったのだが、この製品が安いのはAmazonだけなので、別のものを一緒に頼んだ。すると、目論見通り、いつもの空間たっぷりの梱包で届いた。実際には、HDDのヘッドは非稼働時には安全な位置にあるので、落下とかすごく激しい振動とか踏み潰しのようなひどいことがない限り、簡易な梱包で問題ないと思う。それに、いつもの梱包だって、ビニールで底面に固定されているので、振動には無力だ。

余談だが、この製品は2014年頃に発売された物で、箱のラベルが何となく古ぼけていたので、「何年間も倉庫に眠っていた古い物?」と心配したのだが、本体ラベルのDate欄には、"16"で始まる2016年らしき番号が書いてあったので、ちょっと安心した。それから、Amazonの製品ページでは、ラベルは綺麗なブルーだったのだが、実際には上のような色気ないものだった。まあ、ラベルで信頼性や性能が決まるわけではないので、問題ない。

製造年について: 調べたら、Dateの先頭の2桁("16")は確かに製造年を示しているが、7月開始の「会計年度」のため、僕のは2015年10月製造のようだ。1年半くらい倉庫で寝ていたようだが、その程度なら問題ないし、ちゃんと動いているので良しとする。(3/25 10:43)

ディスクのチェック結果は問題なく、(当然ながら)不良ブロックは全くなかった。それでデータの移行を始めたのだが、コピーに時間が掛かるのは仕方ないものの、Windowsからの移行の時にシンボリックリンク(Windowsの「ショートカット」と類似のもの)を多用したため、予想外に手間が掛かることが分かった。手を抜くと、いつかはそのツケを払うことになるようだ。。。 (3/24 7:15)

ファイルのコピーとシンボリックリンクの修正が終わり、ひとまずHDD交換は完了だ。いくつか気付いた点を書く。

  • 新HDDの温度は低目で、室温が15℃程度の場合、コピー中でも35℃程度までしか上がらなかった。また、アイドル時の温度は約25℃(室温: 約20℃)。ちなみに、前から使っているHGSTは約29℃、SSDは約23℃で、温度だけなら長持ちしそうな予感がする。
  • NTFS中の未解決シンボリックリンクがコピー時に空のファイルになってしまったので、スクリプトで修正した。
  • 使用しなくなったHDDを接続しないと、起動に失敗するようになった。 ← HDDのマウント時(/etc/fstab)に通常のデバイス名(例: "/dev/sdb")を指定すると駄目なようだ。ブートローダーやLinuxの以前の設定とデバイス名が変わったためか。 → デバイス名でなくUUIDを指定したら直った。 (→ 参照) 今までは大丈夫だったのだが・・・
  • 起動時・使用中に、時々、小さく短いビープ音が鳴るようになったのだが、原因不明。どこから出ているのか(新しいHDD)?? 2004年にあった、HGSTのHDDから猫の鳴き声が聞こえる現象と同類?
  • 現在の新HDDの使用量: 約1.8TB (69%), 空き: 約870GB。ここには音楽、写真、ドキュメントを入れるのだが、CDだったら千枚は入るから、HDDが壊れるまでに容量が不足する心配はないだろう。
  • HDDには関係ないが、言語を英語(LANG=C)にしてThunderbirdを起動したら、名前が日本語のローカルフォルダが扱えなくなってしまった。フォルダ名を英語にすれば直ったが、いつもながら出来が悪い。

(2017/3/25 8:06, 9:58, 11:17)

HDDに特別な高速性は求めていないのだが、興味があったので、新しいHDDの速度を測定してみた。Windowsのように安直なツールはないようなので、ちょっと調べて、ddコマンドで1Gバイトのアクセス速度を測った。他のディスク(ADataのSSDと日立(HGSTになる前)のHDD)でも測定した。

書き込み (コマンド: dd if=/dev/zero of=テストファイル名 bs=1G count=1 oflag=dsync)

  • AData SSD (SX900): 687 MB/s
  • Seagate HDD (ST3000VX002): 106 MB/s
  • 日立 HDD (HDS5C3030ALA630): 157 MB/s

読み出し (コマンド: dd of=/dev/null if=テストファイル名 bs=1G count=1 oflag=dsync)

  • AData SSD: 773 MB/s
  • Seagate HDD: 807MB/s
  • 日立 HDD: 659 MB/s

※上記はそれぞれ1-2回しか測定していないし、他のプロセスも停めていないので、あくまでも目安である。

意外にも、Seagateの書き込みは日立より遅かった。実用には充分なので問題はないのだが、理由が知りたいと思った。回転数はどちらも同等(5400-5900rpm)で、日立は3GbpsのSATAインタフェースで接続されている(Seagateは6Gbps)し、ファイルシステムはNTFSなので(Seagateはext4)、日立の方が遅くなってもいいのに不思議だ。やっぱり、昔の日立は前身のIBMの成果が残っていて優秀だったのかも知れない。それから、HDDではSATAインタフェースの速度を高速にしても、(特に書き込み速度に関しては)余り意味がなさそうだ。

なお、Seagateには音楽ファイルが入っているので、書き込み速度測定中に音飛びが発生した。 (3/25 14:47)

その後、「ビープ音」(→ 同様の音)が全く消えない(約5-10分に1回鳴る。HDDを使用していない時に鳴ることが多い感じ)ので調べたら、Seagateには限らないが結構あることのようだ。しかも、Seagateには(口コミ投稿の件数が)多い感じだ。どうも、中のメカが動く時に音が出るらしい。正常に動いているならいいのではあるが、そのうち壊れるという話も読んだし、普通の動作音でないために音楽の邪魔になるのが耐えられない。

そんな訳でAmazonに返品を希望して承認されたので、今、再びデータの移動をしようとしている。まるで流浪の民だ。

別のに買い換えるとしたら、もうHGSTしか残っていないのだが、高いうえに熱や音の点では賭けになる。なので、一時的な退避先に使おうとしている「前のSeagateをそのまま使い続ければいいのでは?」という気もして来た。

やっぱり、客観的なデータを信じて論理的な考えをする方がいいようだ。今回は、詰めのところ(「壊れる時は壊れるけど、(略)実際に手元に来た物が壊れるかどうかは「運」ではないだろうか。僕は、今までHDDが壊れた経験は(略)」)で、今まで壊れていなかった経験を自分に都合良く解釈してしまったのが敗因だった。その例では、

実際に手元に来た物が壊れるかどうかは故障率に比例するのではないだろうか。今まで壊れたことがなかったのは運が良かっただけで、全く今後の保証にはならないのだから、少しでも故障率が低い製品を選ぶべきだ。

と考えるべきだった。

それにしても、こんなに評判が悪いのに会社が存続できているSeagateには、逆に感心する。 (3/26 11:18)

意外に早くSeagateから回答が来た。ビープ音は電源容量の過不足("insufficient or excess power supply")から来るので、接続を変えてみろとのことだが、そもそも、「電源が過剰」であることなんて判定できるのだろうか? 電圧が高いという意味か。 いずれにしても、電源容量は充分足りている(少し前まで、1台多くのHDDを使っていて問題なかった)し、そんなに頻繁に鳴るということは、電源がかなり不安定だということだが、PCは全く問題なく動いているので、あり得ない。不安定なのは、HDD内部の電源回路なのではないか。それに、回答が来る前に指示と同じことをやって改善しなかったから、効果はない。

これは、サポートが問題の原因や状況を把握しておらず、この後何度もやりとりをしてようやく理解され、最後は解決策はない(仕様など)とか、(分からないから)こっちの環境の問題に帰着させられるという、良くあるイライラさせられるパターンのようだ。 こんなのに付き合って疲れるのはごめんなので、もちろん返事はしない。 (3/26 22:05, 3/27 7:32)

 

届いて5日目にST3000VX002を返品 (2017/3/27 7:28追加)

  •   0
  •   0

Linux Mintのデスクトップ環境は、Xfceを概ね過不足なく使っているのだが、ひとつ使いにくいことがある。ウインドウのサイズ変更をする時、ウインドウの端をマウスで掴んでドラッグするのだが、掴む領域(枠)が余りにも狭いのだ(調べたら3画素(ドット)だった)。その範囲(図中、青と赤色の部分)にマウスを入れて掴むのは結構神経を遣うし、手や眼が疲れる。

設定で広くしようと思ったのだが、設定マネージャー(Windowsのコントロールパネルに相当する)にはないので検索したら、なかなか面倒だった。Xfce(のウインドウマネージャ、xfwm4)は、ウインドウの端を画像(xpm)で描画しているので、枠を太くするには、その画像を修正する必要がある。そして、その画像はウインドウの各場所用に何個もあるのだ。左上、左、左下、下・・・といった具合で、10個くらい修正した。xpmは画像ではあるのだが、中身はテキストで記述されているので、修正はエディタでできた。

枠の幅が広いほど使いやすくなるが、見た目がかっこ悪く(スタイリッシュでなく)なってしまうので(例: 幅が9画素の場合)、試行錯誤して7画素でちょうどいい感じになった。また、Mint-Xでは、枠の色は暗い色(影を表しているのだろう)と明るい色の2色が使われているのだが、暗い色を増やすのも、明るい色だけを増やすのも今一つだったので、その間に中間的な明るさの色を入れた。画素数の配分は、暗、中、明をそれぞれ1, 2, 4画素にした。

今改めて見ると、昔のMacOS 8とか9を思い出させる気がする。おもしろいことに、Windows 7はどうなっているか、全く思い出せない(検索する気もしない)。仕事で散々使っているのだが、全然興味がない・好きじゃないようだ。いずれにしても、あれは全然美しくないだろう。

実は、この方法でも調整できない部分がある。ウインドウ上部の枠(図中、青色の部分)だ。ここはタイトル領域と枠が同じ画像になっているせいなのか、画像の高さを広げてもマウスで掴める部分は広がらなかった(もし広げられるようにするとしたら、ウインドウマネージャに画像認識機能が要りそうだ)。調整方法を検索した時に見つかったページでも、この部分に関しては さらっと何も書かれていなかった(僕が読み飛ばしたのかも知れない)。きっと、プログラム中に固定的に書いてあるのだろう。Xfceの問題点なのではないだろうか。

それにしても、いまだにアナクロ的に、こういうパーツを画像ファイルから持って来て描画する理由やメリットが分からない。これでは、ディスプレイの画素密度(分解能)が変わったら、見た目や使い勝手が全然違ってしまう。プログラムで描画すれば、いつも同じにできるし自由に設定変更できるのに。Xfceは軽量なのが売りだから、あえてそうしていないのかも知れないが、そんなに重いのだろうか。重いのなら、一度描画したものを画像にしてキャッシュすればいいと思う。

まあ、いずれにしても、いつも使う左・下・右の部分が太くなって大分使いやすくなったので、良しとした。

以下、実際に調整してみて分かった、細かいことを書く。

  • 調整する画像は、/usr/share/themes/(テーマ名)/xfwm4/left-active.xpmなどであるが、テーマによっては、存在しない場合がある。この場合は、そのテーマの元になっているテーマのものを調整する。
    • 例: Mint-X-Sandの場合には、Mint-Xのものを調整する。
  • 画像(xpm)を変更後、xfwm4 --replace & を実行すると反映されるが、&を忘れるとひどいことになってしまう。それを防ぐ、もっと手軽な方法がある。 Xfce Theme Manager(パッケージ名: xfce-theme-manager)のWindow Bordersに使用可能なテーマ名が表示されるので、それを選択すれば、即座に枠だけに反映される。
  • システムのxpmを調整する代わりに、自分のホームディレクトリに調整したものを置くこともできる。~/.themes/(テーマ名)/xfwm4である。この場合、テーマ名は自分で適宜設定する。
    • 例: Mint-X-Wide
  • どうしてか、Xfce Theme Managerにプレビューが2個出たり、プレビューが出なくなってしまう場合があるが、xpmが正しければ正常に動作するので、気にする必要はない。

(3/21 7:40 加筆・修正)

PS. 書こうと思っていて書くのを忘れていた。ちょっとしたことだが、これに前後してもう一個カスタマイズをした。ウインドウのタイトルバーの右端に並ぶボタンは、僕の使っているテーマでは最小化(_)の右に閉じる(×)ボタンがあるのだが、2つの間隔が狭いので、たまに、最小化を押そうと思って閉じるを押してしまうことがある。

それで、ボタンの間隔は変更できないようなので(こういう場合は、なかなか不自由な環境だ)、2つの間に無害なボタン(メニュー(▼))を入れた。そうすれば、手が滑って最小化の隣を押してしまってもメニューが出るだけなので、被害はない。

これをやる時、昔のMac(今はどうなっているか覚えていないし、知りたくもない)のように、閉じるを左端に置くことも考えた。それなら間違いようがない。が、それでは余りにも標準から離れてしまって、他のLinix Mintも揃えないと使いづらくなるし、何となく、作った人の意図を踏みにじるような気がしたので止めた(まあ、こんなボタン配置にした時点で、既に踏みにじっている気はするが)。

余談: UIだったか、機械の操作系の配置だったか、「安全な物と危険な物は隣(近く)に置かない」というルールがあった気がする。これは本当に重要だと思う。そういう点では、このテーマを作った人は、アフォだと思う。もちろん、メニューに「フォーマット」と「取り出し」が並ぶ窓社なんて、アフォの集団だ。

↑訂正: Mint-Xのデフォルト設定では、最小化と閉じるボタンの間に最大化があるので、上記のルールは守られていた。アフォだったのは、自分で最大化ボタンを取り除いたのを忘れて偉そうなことを書いた僕だった。(3/21 19:25)

それから、「最大化(□)」という、僕にとっては邪悪の権化とか無用の長物としか言いようがないボタンは表示しないことにしているw

Xfceのウインドウのボタンの設定

(2017/3/20 13:52)

  •   0
  •   0

検索しても見つからなかったので、Linux関係のメモを(かなりニッチかも)。

1. [Linux Mint 18] デジタルカメラをUSB接続した時に、自動起動コマンドが重複起動する場合の対処

現象: 設定マネージャーの「リムーバブルドライブとメディア」の「カメラ」で「接続されたら写真を取り込む」をOnにしている時、デジタルカメラをUSB接続すると、自動起動設定したコマンドが2回(以上)起動されてしまう。

原因: 不明

対処: (関連する設定は他になく、)Mint側では対処不可なようなので、自動起動させるコマンド(自作)側で対処した。

1. 設定: コマンドにデバイス名を渡すようにする。デバイス名は%dで指定できる。

例: /home/user/bin/import-images.sh "%d"

2. コマンド側: 2回目(以降)の起動ではデバイス名が渡されない(例の場合、引数がない)ので、その場合は何もしないで終了するようにする。

備考: コマンドが自作のものでない場合も、一旦、スクリプト(デバイス名の有無をチェックし、デバイス名が指定されていたら、本来のプログラムを起動する)を起動するようにすれば、対応可能。

その後、カメラや場合によって、デバイス名が渡されて複数起動する場合があることが分かったので、起動スクリプト内でflockコマンドを使って排他制御するようにした。 (2017/4/8 追記)

2. [smartmontools] smartctlなどで、AData SX900のSMARTの属性(状態)を正しく表示させる方法

現象: smartctlやGSmartControlなどでAData SX900のSMARTを表示すると、SX900固有の属性が認識されず、デフォルトの名前と意味で表示される。 (例: #231は本来は"SSD Life Left"だが、”Temperature”となる)

原因: smartmontoolsのドライブのDB (/var/lib/smartmontools/drivedb/drivedb.h)の機種判定用のパターンが実際と異なっている(発売後にSX900の出す名前が変わった?)ため。

対処: 以下のいずれか。

a. デフォルトのDBを修正する。

"ADATA SSD S[PX]900 (64|128|256|512)GB-DL2|"の行の次に次の行を追加するか、元の行を次のように変更する。

"ADATA S[PX]900|"

b. 自分のDBを作り、smartctlなどに-Bオプションで指定する。自分のDBは、デフォルトのDBからSX900の部分(正確には"SandForce Driven SSDs"のブロック)を抜き出して、判定パターンを上のものに変更する。

 

1の解決策を見つけたおかげで、今では、デジカメを接続しただけで自動的に画像を取り込むことができるようになって便利だし、本来やりたかったことができたので、とても気分がいい。

2も同様で、今までは、GSmartControlでSX900の状態を見ると、温度(本来は残寿命)が警告になっていたりして、「使えない」ものだったのだが、これでまともになった。 更に、smartdでの状態監視も正しくできるようになったはずだ。

気になることをずっと忘れずに・諦めずにいて、考え続けたり試行錯誤したりすることは、大抵は徒労に終わるのだが、成功することもある。

  •   0
  •   0

サーバのSSL証明書をLet's encrypt(LE)にした時にThunderbirdなどが文句を言ったのは、Windows 7がLEに対応してない(LE対応の証明書が入っていない)せいだと思い込んでいたのだが、それは誤りだったことに今頃気付いた。

先日、たまたまLinux Mintのファイルマネージャでサーバと接続してみたら、やっぱり同じ警告が出たので、今日、その原因を調べてみた。すると、証明書にはサーバ自体のものと、認証局までのもの(中間証明書)の2種類があって、両方をサーバに指定する必要があったのだが、僕はサーバのものしか指定していなかったので、証明書が不完全になっていた。

そのために、ThunderbirdやLinux Mintのファイルマネージャが文句を言っていたのだ。ブラウザ(VivaldiやFirefox)はなぜか何も言わない(確認しても、「証明書は正しい」と言う)ので、問題の発見が遅れた。

それで、さっき、2つの証明書をサーバに設定したら、見事にファイルマネージャの警告が出なくなった。Thunderbirdは、最初に接続した時に警告を解除したので変化が分からないが、きっと大丈夫だろう。

それで、この問題が原因で、iPhoneがカレンダーを同期しなくなる問題が起こっていたのかも知れないとヌカ喜びしたのだが、やっぱり関係なかった。ただ、iCloudの設定を変えると、いきなりアクセスが始まるので、その辺りに鍵がありそうだ。

  •   0
  •   0