JVC HA-FX850

結局、イヤホンを買った。

対抗馬は、SONY XBA-H3。
ただ、解像感の高い出力デバイスとしては、ULTRASONE Edition8を持っているので、今回は敢えて異なる性格付けのJVC HA-FX850を選択した。

特徴は『美しい響きと自然な音の広がりを実現する』と謳っている、ウッド素材を使ったハウジングや出力ユニットの構造。

ファーストインプレッション:

イヤホンなのに音場の拡がりを感じる。
謳い文句通り、音場の拡がりはこのイヤホンの最大の特徴。
低音寄りの性格。音の輪郭を際立たせるような解像感の高さは感じない。
高音寄りじゃないので、音の刺さりはない。

追及する人向きとしてはイージーリスニング向けかもしれないが、落ち着いてオーディオ聞く人向けにも悪くない感じがする。

Edition8が演奏者を目前に前のめりで聴いている感じだとすると、FX850は後ろ寄りの席でゆっくり落ち着いて聴いている感じ。

悪いところ:

低音寄りのせいか煌びやか・華やかさといった印象は薄い。

MP3でポップスなど聞いた際には中高音(特に中音部)が若干埋もれ気味に聞こえる。ただこの設定が音の余韻を生んでいて、結果として優れた拡がりを感じる印象になっているようにも思うので、短所と決めつけることはできない..

音が落ち着くまで辛抱して..(50~200時間くらいか、そのくらい使ってみて)印象がどう変わるかで本評価したい。

 

個人的には、値段分の価値はあると思う。(実売で3万弱)
ただこれは嗜好品としての評価で、実用一点張りの人から見ると値段ほどの価値がないという評価もありそうな(というより、実際そういう評価も見かけた)イヤホン。

オールラウンダーではない性格付けなのは確かなようだが、JVCといえばオーディオ派好みなメーカーイメージなのでこの性格付けは、自分には充分うなづけるものだった。

自分の場合、DSDでアナログ系の音源を聞く目的メインで、だいたいこんな評価。

【補足】

ハウジング(本体の筒)前後の取り付けパーツに開放口が空いているので音漏れはそれなりにある。(もしかしたら本体自体が鳴っているかもしれないが)
電車など音漏れを気にする場所では、音量に気を使った方が良い。

【蛇足..】

全くそのつもりではなかったけど、ふと思いついてDARIUS(ゲーム音楽)を聞いてみたら低音と音場具合がいい感じにマッチしてしまった。
普段、高音寄りのリファレンス系ばかりで聴いていたので凄く新鮮。

その後、FX1100を購入

 生産完了品をAmazonでタイムセール中だったので…
 確かFX850を購入した当時FX1100は出ていなかったけど、もし両方出てたらFX1100を買ってたと思う。
 違いは比較記事に散々書かれている通り、中高音の繊細さ。低音部分は、寧ろ感覚的には若干弱まっているようにも感じるが健在。

 バランスケーブル利用中なので、左右の分離は(アンバランスに比較して)良好。
 ※onso iect_03_bl4m というお試し価格帯のケーブル。NW-WM1Aにて再生。少し高音で刺さる感じの音が混じることはある。

 両方並んでいたら、迷わずFX1100だと思った。

DSDコンテンツのポータブル環境での再生には

DSDダイレクト再生可能なポータブルアンプ(DAC含む)は必須として、それ以外に最低限ヘッドホン(またはイヤホン)にも相応のグレードのものが必要です。

音がちゃんと復元できなければハイレゾの意味がないという話で、テレビがデジタル化された時に最低限1440×900のテレビ買わなきゃ(Blu-rayも観るならフルHDで)って話と同じです。

なんですけど。
自分の場合…普段使いのイヤホンが SONY XBA-3SLで、これでは流石に低音~高音まで全然足りないとしか言いようがない結果に..データ自体には、低音には体を震わすような音圧、高音には微細な空気の震えまで感じさせる繊細さがあったとしても、まったく再現できません。

得意分野は、ジャズ、フォーク、クラッシック系。
管楽器や弦楽器に艶のある音を求める人だと、CDの音が少し無味乾燥に感じるのではないかと。
アナログレコードを聞いた人などは、DSDの音を聞いてレコードっぽいという人も居ますし、CDに比べるとぐっと暖かめの柔らかい音が出ます。

DSDダイレクト再生はとにかく雰囲気があるので、そこそこのヘッドホンを使って聞くのがお勧めです。(電気屋さんの試聴コーナーで、DSDダイレクト再生機とそこそこのお値段(3~5万くらい)のヘッドホンを聞きつつ、普段使っているイヤホンなどに差し替えて聞き比べてみると一発で判ると思います。)

…問題は圧倒的にコンテンツが不足している点。
もっと潤沢に良質なコンテンツが聴けるようになるといいのにな~、と思います。

最近またハイレゾなんかで盛り上がる気配もありますし、レコード回帰ブーム的なものもあるようです。
この勢いでDSDも盛り上がったらなぁ、と思う次第。

そして自分も、ポータブル環境用になんか適当なイヤホンを探さないと..

MayaAPIやコマンドはThreadSafeじゃなかった。という..

そもそもは、UIでなんか処理している最中にいつでも止めたい。なんとかしてよ!
..という話で、とりあえず処理をスレッド化するかーってやってみたところ~

とか出る始末。

って、記述でもアウト。
コマンドはフラグ次第で即例外出る始末..MayaAPI(OpenMaya)の場合、例外は出ないけど保証はできないぜ..ってことみたい。
ググってみると、こんな話題を見つけた。

そんなわけで、スレッドセーフに出来ないなら『メインスレッドに任せればいいじゃな~い!』..って、結論だった。ナイスだよ, ナイスだよ stev..

結論的には、なんか無理やり対応できなくはないけど..そこまでして必要?って結果になりそうだなぁ..

結局、プログレスバーコマンドに頼ることにしました..
動作イメージは下記のような感じ。(なんかprogressbarが別スレッドみたいな書き方に見えるけど、単にGUIと別のモジュールで、生成タイミングが違うとか、途中で進捗増やしたりESC押し下げチェックしてるタイミングがあるよ、って言いたいだけで(progressbarの内側は知らんけど)スクリプト実装的にはシングルスレッドです..スンマソン)

動作イメージ1 動作イメージ2

改めて図を見たら、進捗+1, +2.. +n っておかしいです..
『+』って書くなら全部1で良かったというか、むしろ『+』が要らなかった..orz

その後

 Mayaのヘルプにこんな記述を見つけた。現状ではPythonがスレッド対応できないのですね、、、
 Python スレッド化と Maya

PySideで何かの実行を停止させたい時など..

GUIの処理とは別に裏で動く『スレッド』を実行させてやれば、停止も意外と簡単に実現する。

PySide Signals and Slots with QThread example

ぜんぜん簡単じゃないよ!と思うかもしれないけど、手続き的なことはそんなに多くないのでキモを覚えればできるハズ。

大枠では、2つのことを行う。

  1. スレッド実行されるクラスの実装
  2. 上記スレッドクラスを走らせたり止めたりする実装

1は、PySide.QtCore.QThreadクラスを継承した自分用のクラスの定義と、スレッド実行したい実装の追加。

2は、1で作ったクラスを startしたり、止めたりする(run関数もしくはrun関数から呼ばれた処理先で、run関数を抜けるような処理を書いておくことで結果的に処理が止まる)実装の追加。

細かいことは、参考サイトを動かしながら確認するのがいい。

 

【補足】

ひとつだけ気を付けたいのは、スレッド実行中にまたスレッドを開始するような動作を書かないように気を付けること。

処理が走っている最中にstart呼び出しが抑止されていれば問題ないが、もし二重に呼び出すと、既に走っている処理と新しく走る処理がバッティングして思いもよらない動作を起こす..

並列で幾つも走らせる処理を書くつもりがない限り、二重呼び出しが起きないように抑止処理を書いているか確認しておきたい。

【補足2】

スレッドのイメージ。

シングルスレッドの場合、1つの仕事をわき目もしないで淡々とこなす。
その間、他のことは何もして貰えない..(最初からして貰うように伝えてあれば別。)

スレッドイメージ1

対するのが、マルチスレッド。
この場合、スレッドを新たに追加して、別々に作業をお願いすることが出来る。

スレッドイメージ2

 

今回の場合、GUIの処理とは別にもうひとつスレッドを立てて、そこに裏で勝手に実行させたい処理(1単位処理ごとに、停止指示のチェックもする)を渡すようにした。

スレッドイメージ3

スレッドは裏で勝手にという事もできるが、1つの処理を分担して複数のスレッドで同時並行して処理させる場合にも使える。
ただその場合、処理がバッティングしないように処理内容やタイミングをスケジューリングする必要が出てくるので、プログラムの難易度はちょっと高くなる。

以上。けして良い説明ではないな~と思うので、もっと普通の説明は以下のサイトなど参照してみてください..orz
連載.NETマルチスレッド・プログラミング入門:第1回

発振回路

・発振回路 めも。

>なにするもの?
デジタル回路の場合、回路を駆動させるのに必要な”クロック”を発生させる回路。
より正確に一定間隔の信号を発信する目的で、水晶発振子を利用したものがある。

>クロック?
メトロノームのように一定の周期で、電圧を高い状態と低い状態に出力(=信号発生)したもの。
俗に、矩形波と呼ばれる信号が典型的。
(クロック)http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF
(矩形波)http://ja.wikipedia.org/wiki/%E7%9F%A9%E5%BD%A2%E6%B3%A2

>水晶発振子?
時計などでよく利用される一定の周波数で精度の高い発振をする電子部品。(→受動素子)
単体では電子回路に必要なクロックを発振しないので発振回路が用いられる。
(水晶振動子)http://ja.wikipedia.org/wiki/%E6%B0%B4%E6%99%B6%E6%8C%AF%E5%8B%95%E5%AD%90

>で、どんな回路?
(参考)
google:
https://www.google.co.jp/?gws_rd=ssl#q=%E7%99%BA%E6%8C%AF%E5%9B%9E%E8%B7%AF
https://www.google.co.jp/search?q=%E7%99%BA%E6%8C%AF%E5%9B%9E%E8%B7%AF&biw=1445&bih=859&tbm=isch&tbo=u&source=univ&sa=X&ei=aHEXVNKFOI3s8AWTl4GQBA&sqi=2&ved=0CC4QsAQ

発振回路 いろいろ:
http://www1.s-cat.ne.jp/kiyoshi/m_basic/ba_osc.htm
http://sudoteck.way-nifty.com/blog/2010/06/74hcu-bbbe.html
http://room.noritan.org/myrobot/015-technical.html
http://electronics.stackexchange.com/questions/49251/how-to-connect-a-crystal-oscillator-to-generate-square-wave

シェア基板
https://oshpark.com/shared_projects/7kdpRCK0

気になったブログ記事

第69回 まだ、聴いたことのない音楽「吉祥寺 Sound Cafe dzumi (サウンド カフェ ズミ)」~音楽の聴ける店へ行こう~その3

■「吉祥寺 Sound Cafe dzumi (サウンド カフェ ズミ)」

こんなお店があるんだな

とか思ってたら、こんなのも出来るらしい..レコード回帰フィーバー中?

QUATTRO LABO 今秋、吉祥寺にオープン!

DSDは1bit量子化(PDM..パルス密度変調方式)という方式を使うらしい..

めも。

アナログ→デジタル変換方式としてのΔΣ

この方式、敢えて言葉で説明してみます。超ざっくり概念ですが、もしかしたら図より解りやすかも…

アナログ信号をVppの真ん中のスレッシュでえいやで0/1(1bit)に変換する。当然猛烈な量子化誤差が発生する(ほっといたらサイン波が矩形波になっちゃう)。
そのままにはしておけないので、変換した0か1のアナログ値(Vppの最小と最大)と、変換前のサンプル信号のアナログ値としての差分(つまり量子化誤差)を、次のサンプル値からアナログ値として引く(大きすぎた分はマイナス、小さすぎた分はプラスすることになる)。その値をまた0/1化する。その0or1のアナログ値と本来のサンプル値の誤差をまた次のサンプル値に還元する…
これを繰り返すと、マクロで見ると帳尻が合う。というか、帳尻が合うくらい高速サンプリングする。

みんなDSDを聴いている

RMEとDSD

【備考】

ハイレゾ・テストデータ

lockした法線のチェック

MFnMesh.isNormalLocked 関数でlock状態を判定できる。
自分はpymel使っていないので、以下のような感じになる。

OutputWindowの方にログを出力したい

デフォルトではprint文の結果はスクリプトログに反映されるが、これをOutputWindowの方にしたい場合は以下のように書くことで可能。
⇒参考サイト

ただ完全に置き換わってしまうので、元に戻すには元の値を控えておく必要がある。

もしくは、最初から別の関数にするか。

あくまでprint文を使いたい場合は、こんな感じ?(ついでに、引数複数個にも対応してみた)

import maya.mel 使えばよくね?って話もあるかもですが..w

例外を上げる場合

下記のように書いて、Exceptionオブジェクトを例外で呼び出し元に返す必要がある。

ただ、日本語はうまく呼び出し元に返すことが出来ないので、下記のようなコードは書かない方が良い。
メッセージは、英文で書くべし。

どうしても、日本語文字列を返さないといけない場合は下記のページのように、Exceptionクラス内の変数に埋め込むような方法が必要。
Python » 2.7.3 Documentation »The Python Tutorial » 8. Errors and Exceptions

pointOnPolyでfaceにコンストレインしても原点から動かない時は

結論的に書くと、map1にUVが設定されていない場合に発生する。

このような場合には..
map1にUVを設定してやると、ちゃんとface上にlocatorが移動することが確認できる。

調べた感じでは、map1以外にUV設定されていてもpointOnPolyはそこを見ていないようなので、map1にUVを設定する必要がある。
pointOnPoly_problem

deformer, tweakノードについて

Deformerノードを調査していて、いろいろ気付いたことなどをメモ。


【deformerによる変形結果の伝播イメージ】

connectionWithDeform_1


【tweakノードの存在意義】

connectionWithDeform_2


【隠れノード:groupParts, groupIdノード】
※グレーのコネクションは編集できないと思っていたが、Mayaのモードを変更すると編集可能だった。

connectionWithDeform_3


ちなみにsmoothBindを行うと bindPoseノードが別途追加される。
Mayaのヘルプにもある通り、『スキンを変形させない唯一のポーズ』を記録したノード。

ここで記録したポーズを基準として、変化があった量に応じて変形を行うのがdeformerノードの処理。