イヤホンを集め終わった気がするのでイヤホンについて語る

先日、オーダーしたカスタムIEMが届いた。

カスタムIEMというと、最高音質を求めて購入している方が多いと勝手に思っているが、私はそうではない。自分専用のイヤホンとして買った面も大きい。しかも、大好きなキャラをイメージしたカラーである。

nmzfish.hatenablog.com

ここらでイヤホン集めが一段落した気がする。ここで、私がイヤホンに対して思っていることや、欲しい機種などについて語る。

リスニング環境

ここまでイヤホンの話しかしていないが、ヘッドホンも所持している。現在所持しているのはHD650のみだが、HD598も半年ほど所持していた。ちなみに、下記のイヤホンたちを買う前から所持している。

MDR-EX800STは4年前、ER-4Sは3年前に購入した。IE40PROは今年の6月頃、A3Hは先日届いた。全ての機種において、リケーブルの類には手を出していない。ER-4Sは、プラグ付近で一度断線したので、NONUNAGA Labsのプラグ(NLP-01B)に交換してある。

ヘッドホン

PC(foobar2000)→HP-A4→RCAケーブル→自作アンプ→HD650

 

プレイヤー

DP-X1

イヤホン

MDR-EX800ST

ER-4S

IE40PRO

A3H

色んなイヤホンを聴いて感じたこと

f:id:nmzfish:20190918225727j:plain

IE40PRO

最近はイヤホンを試聴する機会が多かった。主にミドルからハイエンドまでの機種を試聴した。同じドライバー構成でも音が違う機種もあり、イヤホンは大変個性豊かである。最新の機種、人気の機種を試聴したことで、私が所持しているイヤホンに対する理解も深まった。その結果、イヤホン全体に対する法則のようなものを持つようになった。それらを述べる。

ダイナミック型は空気を逃がす穴が開いていないと低域が支配的になる

MDR-EX800ST、IE40PRO、A3Hには、空気を逃がすための穴が開いている。MDR-EX800STは側面、IE40PROは側面ロゴマーク横、A3Hは側面上部にある。MDR-EX800STとIE40PROは、ダイナミック1基にしては低域の量感が少なく、中高域もクリアな音質である。フラットなチューニングで目立ちすぎる帯域はない。要因は、空気が適度に逃げるので、篭らないためだと考えられる。また、逃げる空気の量が多いと、低域の量感も少なくなる。MDR-EX800STは、穴に金属のメッシュフィルターが取り付けられており、単純な穴に見えるIE40PROに比べると、逃げる空気の量は少ないと推測される*1。低域の量感も、MDR-EX800STの方がIE40PROよりも多い。また、上記には述べていないが、完全ワイヤレスイヤホンのAnker Soundcore Liberty AirとNeoを使用していた*2。どちらもダイナミック1基であるが、ブーミーでない低域とクリアな中高域が魅力である。これらもやはり、空気を逃がすための穴が開いている。

BA型は密閉して耳の奥で鳴らさないと低域の量感が少なくなる

これはER-4Sで感じた。ER-4Sは、BAドライバーを1基のみ搭載している。音の傾向としては原音に忠実で、繊細でフラットな機種である。最大の特徴は、標準でついている三段キノコイヤーチップである。これのお陰で、ドライバーが耳の奥まで入り、空気の漏れを完全に遮断し、BA特有のただでさえ薄い低域が減衰するのを防いでいる。本来、BAドライバー1基のみでは低域の量感が不足するが、ER-4Sの低域は、輪郭がくっきりとして、ウッドベースの弦の振動まで繊細に表現しつつ、ボリュームがある。ちなみに、「入っちゃいけないとこまで入れる」つもりで奥まで突っ込まないと本領を発揮しない。

しかし、上記で述べたのはフルレンジBA1基の機種に限る。マルチドライバー機の低域用BAは標準的なイヤーチップでもそこそこの表現力があるように感じた。中高域用BAに関しては、三段キノコでなくてもしっかり鳴っている。

雑談

f:id:nmzfish:20190918233837j:plain

DP-X1

タイトルから「イヤホンを集め終わった」と書いてあるが、試聴したせいで気になっている機種がある。それは、IER-M7とIE400PROである。これらは金が降ってきたら即買う。

まず、IER-M7は、音の密度がすさまじい。音の傾向は完全にフラット。目立つ帯域もなければ不足する帯域もない。音場も広く、横の分離感が大変優れている。大抵のマルチBA機種は、各帯域のドライバーが好き勝手に音を出し、煩雑な印象を受ける。低域のドライバーは微妙に中域も出しているし、完全に分離できていないからだと考えられる。しかし、IER-M7は、メーカー公式サイトにある周波数特性のイメージ図のように、ウーファー1基、フルレンジが2基、トゥイーターが1基載っている。帯域を分離させずに重ねることで、各ドライバーがそれぞれ鳴っているような煩雑な印象が無い。

桑原:本機では主に中音域用に2つのフルレンジBAを割り当てており、片方はウーファーと協力しつつグルーヴ感を高め、もう一方にはトゥイーターとうまく混ざりあって高音をきれいに出すという役割を持たせています。 

www.sony.jp

IE400PROは、位置的にはIE40PROの上位機種に当たると思う。IE40PROよりも低域にフォーカスが当たっている。しかし、低域はブーミーでなく、あくまでも重量感や押しが強いという程度。ボワつきがなく、くっきりとディテールを描き出す。ロックやメタルが非常に気持ちよく聴ける。他の帯域に関してはIE40PROと大した差は感じなかった。高域がIE40PROよりも出ていたように感じたが、私は高域に関しては刺さらなくて主張が激しくなければいいので特に気にならなかった。IE40PROを少し重厚にすればIE400PROになる。音の傾向もHD650にも似ている。しかし、フラットと言うには少々重心が低い。ジャンルを選ぶ機種だと感じた。ちなみに、IE500PROも視聴した。あまりパッとしない音だったこと以外あまり覚えていないのだが、無理に音場を広くしたようなイメージで、密度感がそんなに無かった気がする。

 

最後に、私のイヤホンの持ち歩き方を紹介する。AAWのイヤホンケースに、MDR-EX800ST、ER-4S、IE40PRO、A3Hを、ZERO AUDIOのクリップでそれぞれ巻いて固定した状態で入れている。個別にケースに入れると取り出しが面倒だが、仕切りつきの大きなケースだと鞄でスペースをとるので、これが一番ちょうどいい。イヤホン4つだと少々窮屈だが、取り出すのに苦労するほどではない。よほどケーブルが太くて長かったりしない限り、イヤホンは4つが限界だと思われる。

www.e-earphone.jp

www.e-earphone.jp

*1:ボディ容積、ドライバーサイズ等にも影響されると考えられるので一概には言えない

*2:Airが壊れたので現在進行形でNeoを使用している

宮国朱璃をイメージしたカスタムIEMが届いた

6月中旬に、eイヤホンでカスタムIEMをオーダーした。それが先日届いた。オーダー時に納期は約4カ月と聞いていたが、実際は約2カ月半だった。Twitterで調べてみると2カ月くらいで届いた人もいるようなので、そろそろ来ると思っていた。

カスタムIEMとは、自らの耳と同じ形をしたイヤホンである。耳型を採取し、それと同じ形の筐体にスピーカーユニットを組み込んで作製される。主にミュージシャンやサウンドエンジニアがモニタリングに使用するものだが、私のような一般人もオーダーすることができる。カスタムIEMは、オーダー時に色などを自由に設定できる。ちなみに、西野カナはデコっている。仕事道具として割り切っている方もいるだろうが、性格が表れる部分でもあると思うのでぜひ確認してみて欲しい。

私がオーダーしたカスタムIEMのメーカーと型番はAAW A3H」である。同メーカーのA3HユニバーサルやA3Hの試聴機を試聴した際に、ハイブリッドにも関わらず、自然な音場感とそこそこフラットなチューニングに心惹かれた。また、値段も手ごろなのがいい。eイヤホンでは54,900円である。耳型採取が5000円ほどだったので、合計約6万円である。耳型採取は約15分で終わるが、電話予約ができないため、担当者が不在だと行えない。カスタムIEMのオーダー自体は、型番と色、ロゴの位置等が決まっていれば書類に書き込むだけなので10分もかからない。

私は、FitEar Ayaのような真っ黒のボディにも憧れたが、オタクなので推しをイメージしたカラーにすることにした。高級な機種になると、画像をそのまま貼り付けることもできるので、痛カスタムIEMも作成できる。

ちなみに、私の推しは宮国朱璃(以下朱璃ちゃん)だ。彼女は「千の刃濤、桃花染の皇姫」の登場人物の中で一番可愛くてメインヒロインである。

千の刃濤、桃花染の皇姫 通常版 - PSVita

千の刃濤、桃花染の皇姫 通常版 - PSVita

メインヒロインであり、作品で一番可愛い朱璃ちゃんをイメージしたカラーにすることは決まった。A3Hは、ボディフェイスプレートカナルの3か所を決められたカラーから選択できる。また、左右を別々のカラーにできる。フェイスプレートは、装着した際に耳の外部に露出している部分である。カナルは、外耳道まで入る部分であり、通常のイヤホンで言うイヤーチップの部分に当たる。ボディは、それ以外全てなので最も体積が大きい。朱璃ちゃんはツーサイドアップのピンクのロングヘアーが特徴的だが、かといって上記の3か所を全てピンクにするのは違うと感じた。つまり、最も体積の大きなボディは髪のピンク色にし、フェイスプレートとカナルは髪色以外にしたい。

まず、カナルは目の色であるパープルにすることにした。フェイスプレートは、服の色にしたいのだが、ここで、問題が起きる。朱璃ちゃんは、様々な服装をする。よく着用している服だけでも、制服、私服、呪装具がある*1

f:id:nmzfish:20190911001205j:plain

「千の刃濤、桃花染の皇姫」より、制服の朱璃ちゃん

f:id:nmzfish:20190911001250j:plain

「千の刃濤、桃花染の皇姫」より、私服の朱璃ちゃん

f:id:nmzfish:20190911001330j:plain

「千の刃濤、桃花染の皇姫」より、呪装具の朱璃ちゃん

このように、制服は白、私服は赤、呪装具は赤と白で、これといった朱璃ちゃんの服の色が決められない。そこで、「右chは私服の朱璃ちゃん」「左chは緋彌之命」をイメージしたカラーにすることにした。

実際の構成はこうだ。

右ch

フェイスプレート:レッド

ボディ:ピンク

カナル:クリアパープル

左ch

フェイスプレート:クリアパープル

ボディ:ピンク

カナル:クリアパープル

 

実機がこちら

見事に耳にスッポリとハマる。装着が難しいくらいピッタリ耳の形をしている。初めてshure掛けのIEMを買ったとき*2も、装着にはかなりてこずった記憶があるが、カスタムIEMはまず装着方法が分からない。本記事を執筆時、到着から2日が経過しているが、未だに何となく押し込んでハメて何となく耳から引っぺがしている状態である。

色々と言いたいこともあるが、大満足である。

簡単にレビューをする。

A3Hユニバーサルと試聴機のA3Hはイヤーチップがついているため、実機の方が密閉性が高く、もう少し低域が出ると思っていた。実機を聴いてみて、A3HユニバーサルやA3Hの試聴機よりも低域が出ている。量感が多いというより、近い。試聴機はフラットに感じたが、実機は低域にフォーカスが当たっている。最低域の存在感がかなりある。音場はそんなに広くなく、分離感もあまり感じられない。音の粒が全体的に大きくて迫力はあるが、繊細さに欠ける。しかし、ボヤけた印象はなく、解像感はそこそこ。メタル系は気持ちよく聴けるが、他のジャンルについては少し微妙な印象。

ハイブリッド機を数機種試聴したが、ダイナミックとBAが同じ帯域を再生していて、同じ音が違う鳴り方で聴こえる不自然さが全く受け付けなかった。しかし、A3Hはダイナミック1基、中域BA1基、高域BA1基のハイブリッド構成だが、その不自然な感じが無い。今までEX800ST、ER-4S、IE40PROと、シングル機を聴いてきた。しかも、モニター用途のフラットな機種である。私の耳はこれらの機種に慣れているため、A3Hは低域寄りではあるものの、フラットでシンプルな音作りであると思う。

*1:水着や浴衣も着ていたが、登場回数は少ないので除外した

*2:SE315

ハト派とタカ派の安定的な比率をC言語で求める

先日、「利己的な遺伝子」を読み終えた。
利己的に振舞う遺伝子が遺伝子プール中に数を増やしていくことが、多くの例から述べられている。他の個体に対して利益を与える行為ですら、自分に返ってくる利益として利己的な行いなのだ。

利己的な遺伝子 40周年記念版

利己的な遺伝子 40周年記念版

また、以前、最も基本的な戦略であるハト派タカ派の比率について記事を書いた。
nmzfish.hatenablog.com
この記事では、ハト派タカ派の比率が50対50の場合の平均得点について述べた。本記事では、両者の平均得点が等しくなる比率、つまり、安定的な比率を求めるプログラムをC言語で書く*1
早速だが、書いたプログラムを以下に示す。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int GetRandom(int min, int max);

int A,B;
int bird[1000] = {};

int main(void){

    int i,j,pattern;
    int hato_hato = 0;
    int hato_taka = 0;
    int taka_taka = 0;
    int taka_all = 500;
    float taka_total,hato_total = 0;
    float taka_average,hato_average = 0;
    
    for(j = 0; j < 100; j++){
  
        for(i = 0; i < 1000000; i++){

            A = GetRandom(0, 999); 
            B = GetRandom(0, 999);

            if(A <= taka_all && B <= taka_all){
                pattern = 0;
            }

            if((A <= taka_all && B > taka_all) || (B <= taka_all && A > taka_all)){
                pattern = 1;
           }

            if(A >= taka_all && B >= taka_all){
                pattern = 2;
            }

            switch(pattern){
                case 0:
                    if(GetRandom(0, 1) == 0){
                        bird[A] -= 100;
                        bird[B] += 50;
                        taka_taka++;    
	       }
                    else{
                        bird[A] += 50;
                        bird[B] -= 100;
                        taka_taka++;
                    }
                break;

                case 1:
                    if(A <= taka_all){
                        bird[A] += 50;
                        hato_taka++;
                    }
                    if(B <= taka_all){
                        bird[B] += 50;
                        hato_taka++;
                    }
                    break;

                case 2:
                    if(GetRandom(0, 1)  == 0){
                        bird[A] += 40;
                        bird[B] -= 10;
                        hato_hato++;
                    }
                    else{
                        bird[A] -= 10;
                        bird[B] += 40;
                        hato_hato++;
                }
                    break;
            }//switch
        }//for(i)

        for(i = 0; i <= taka_all; i++){
            taka_total += bird[i];
            bird[i] = 0;
        }

        for(i = (taka_all + 1); i <= 999; i++){
            hato_total += bird[i];
            bird[i] = 0;
        }

        taka_average = taka_total / (taka_all * 1000 * 2);
        hato_average = hato_total / ((1000 - taka_all) * 1000 * 2);

        taka_total = 0;
        hato_total = 0;

        printf("average of taka equal %f\n",taka_average);
        printf("average of hato equal %f\n",hato_average);
        printf("taka all equal %d\n",taka_all);
        printf("\n");
        printf("taka-taka =%d\n",taka_taka);
        printf("hato-taka =%d\n",hato_taka);
        printf("hato-hato =%d\n",hato_hato);

        if(hato_average < taka_average){
            taka_all++;
        }
        else{
            taka_all--;
        }

    }//for(j)

    printf("taka_all = %d\n",taka_all);

    return 0;
}

int GetRandom(int max, int min){

    static int flag;

    if(flag == 0){
        srand((unsigned int)time(NULL));
        flag = 1;
    }

    return min + (int)(rand() * (max - min + 1.0) / (1.0 + RAND_MAX));
}

前回の記事からの大きな変更点のみ説明する。

ハト派タカ派の比率をより正確に求めるため、鳥の数は1000羽とした。

int bird[1000] = {};

前回の記事では乱数を生成し、偶数か奇数かでタカ派ハト派を決定していた。今回は、タカ派の数を決めておき、その数字以下の番号の鳥をタカ派とした。

int taka_all = 500;

対戦形態の判別のための条件式は、以下のようにした。AとBに0~999までの乱数を格納し、それぞれの番号をtaka_allの数と比較することにより、ハト派タカ派が判別できる。

            A = GetRandom(0, 999); 
            B = GetRandom(0, 999);

            if(A <= taka_all && B <= taka_all){
                pattern = 0;
            }

            if((A <= taka_all && B > taka_all) || (B <= taka_all && A > taka_all)){
                pattern = 1;
           }

            if(A >= taka_all && B >= taka_all){
                pattern = 2;
            }

forループの最後で、ハト派タカ派の1戦辺りの平均得点を計算する。その結果より、タカ派の方が平均得点が高ければタカ派の数が増える。

       if(hato_average < taka_average){
            taka_all++;
        }
        else{
            taka_all--;
        }

jを条件としたforループはタカ派の数を変化させるループである。また、iを条件としたforループは対戦回数である。ループ回数は1000000回であり、鳥が1000羽いることから、それぞれの鳥は2000回対戦を行う。

    for(j = 0; j < 100; j++){
  
        for(i = 0; i < 1000000; i++){

出力は以下のようになった。ハト派タカ派のそれぞれの1戦辺りの平均得点は約6.20~6.30である*2タカ派の数が583であることから、タカ派の全体に対する比率は約12分の7である。これは著者が計算した結果と等しい。

f:id:nmzfish:20190826174418j:plain
出力

私たちが用いている任意の得点システムから計算してみると、安定した比率は、ハト派が一二分の五、タカ派が一二分の七となることがわかる。

*1:簡単な数学の知識を用いれば紙とペンだけで求めることもできる

*2:期待値