Archive for the ‘日記’ Category

昨日、ニュースで、最初は「良くあるやつだ」と思って飛ばした記事があったのだが、その後暇だったので読んでみたら、「ほう」と思った。「5人に1人が「繊細さん」とカウンセラー 魔法の言葉は「とりあえず」」というもので、HSP(Highly Sensitive Person)という気質の人が居るとのこと。そして、その特徴がまさに僕に当てはまっていた。例えば、音に敏感過ぎるとか、人と長時間一緒にいると疲れるとか。。。 セルフテストで確認したら、なんと、9割近く当てはまったので、やはりそうなのだろう。

要は、HSPの人は、普通の人が気にしないような些細なことにこだわってしまう(そして疲れる)のだろう。HSPは気質であって性格ではないから、治らないとのことだ。気質と性格の違いは良く分からないが、まあ、そういうものなのだろう。HSPは5人に1人くらい居るそうだから、それほど特殊なものではないようだ。

感心したと同時に、いくつか思ったことがある。

僕は、細かいことにこだわる割には、ズボラとか雑なことが多い(それで良く失敗する)。こだわるポイントでないところはどうでもいいのだ。それでもHSPなのだろうか。気質はHSPだけど、本来の性格は逆(脳天気でだらしない?)なのではなかろうか。だから、昔は、HSPと周囲だけでなくHSPと性格のギャップに苦しんでいたように思う(当時は、その苦の原因が何だか分からなかった)。そして、治らないということだが、今は昔に比べてすごく楽になった。それは、歳をとったり、経験を積んだり、記事に書かれているような対処方法に自分で気付いたり(例: いつからか「とりあえず」が常用句になったw)、性格が変わってカバーしているのかも知れない。

あと、そもそも、HSPはアーロンという人が提案したもので、学会なり世の中の定説かどうかは分からないから(要は、民間療法とか擬似科学とか、近年増殖しているさまざまな病気(**障害)のようなものかも知れない(病気を否定するつもりはないが、多過ぎる気がするし、病気と分かったところで治るのかと思う))、まあ、原因が分かるのはいいことだが、気質とか性格とかいっても余り気にしても仕方ないように思う(結局、対処内容はそういうことでは?)。とは言え、そこを気にするのがHSPなのかも知れないがw

PS. 記事の「繊細さん」という今風の言葉は、「中の人」と同様に嫌いだ。軽く感じられるのはいいけど、言葉に重みがない。(例の、近頃民放に移った、世の中の流れに乗っているつもりで外している、ダサいオバさんアナウンサーみたいに)無意味に軽薄な感じが嫌だ。

PS2. どうも、HSPのことは、以前にも読んでなるほどと思った気がするのだが、記憶が定かでない。日記を探せば出てくるかも知れないが、余り意味があるとも思えず面倒なので、止めておく。

  •   1
  •   0

近頃、ニュースを読むと、(胡散臭いとかクソジジイとか若造とか思って)嫌いとか余り好きでない人の意見でも、内容によってはもっともだと思えることが多くて驚く。例えば、古谷経衡、古市憲寿、やまもといちろう、小林よしのり、中川淳一郎、青野慶久、Hayato Ikedaなどだ。(もちろん、全く駄目な人は多いが)

多分、騙されているというと言い過ぎだが、乗せられていて、(無批判で鵜呑みにして)気づくと彼らの思う壺なのだろうと思うのだが、まあ、題に書いたような、政治家が良く使うような古臭い言葉が最も合うような気がしている。

  •   0
  •   0

Spotifyの音量正規化機能は大抵はうまく動いているのだが、曲によっては音量や音自体がおかしくなることがある。特に、Pink Floydの"Speak to me"(1973)の先頭のように音量がとても小さい時に破綻する。それでも、Google Play Musicのように、ないよりはずっといいのは確かだ。

が、近頃、SpotifyのWeb APIが使えるようになり、その中に曲の(音的な)特徴を取得する機能があるのに気付き、それを使って音量正規化ができないかと思っていた。具体的には、"Get Audio Analysis for a Track"(以下、Analysis)や"Get Audio Features for a Track"(以下、Features)が使えそうなので、調べてみた。

すると、どちらでも音量正規化に必要となる特徴量(曲の音量)が取れそうなことが分かった。具体的には、それらで取得できる"loudness"や"energy"である。なお、Analysisは取得できる情報は多いものの、上記の値程度しか使わないし、毎回分析するのか処理が遅いので、Featuresを使うことにした。

新しい音量正規化の処理として、以下のような手順を考えた。

  1. 新しい曲の再生開始時に、Features APIを実行し、音量の特徴量を取得する。(→ L)
  2. Lから、音量を正規化するための音量調整量を求める。(→ G)
  3. GをSpotifyの音量値に変換し(→ V)、設定する。

いくつかの曲で試したところ、音量の特徴量Lとしては、loudnessが良さそうだった。定義(概要)は以下のようなので、理論上はそのまま使えそうだ。

The overall loudness of a track in decibels (dB). Loudness values are averaged across the entire track and are useful for comparing relative loudness of tracks.

なお、energyの定義(概要)は以下のようなので、うまくLに変換できれば、(数値でなく)聴感的な音量の正規化ができそうなのだが、いい方法が思い付かなかったので、今回は見送った。

Energy is a measure from 0.0 to 1.0 and represents a perceptual measure of intensity and activity.

GMB(gmusicbrowser)での音量正規化の結果と比較して検討し、loudnessをそのままLとして使う場合、LからGへの変換式は以下とした。

G= X - L

Xは目標とする(一定にしたあとの)再生音量(dB)で、試行錯誤の結果、-13(dB)が最もGMBの音量に近くなったので採用した。

(10/12 6:26追記) 後から気付いたのだが、上のXは正確には2つの要素からなる。一つは、目標とする音量Yであり、これが仮想的な0dBとなる。もう一つは、正規化した音のシステムの最大音量(0dB)からの余裕Zであり、Yの音量は実際のシステムでは-Zとなる。音量をYに正規化したあと、音量(振幅)はZまで大きくなることが可能である。XはYとZの和であり、通常はY= Z= X/2と設定するので、上のように書いても大きな問題ではないが、動作の調整・確認をしている時に「何かおかしい」と思ったので書いた。

ただ、これは考え過ぎとか誤解だと思う。今、書いたあとに気付いたのだが、Yは実際には「平均」音量であり、もしYを「最大」音量(0dB)とすれば、Z= 0となる(それで充分)だから、Y= Xとなり、上の変換式はそのままで正しい。最初は最大音量と考えてその式を書いたのに、実際の動作を見ているうちに誤解したのだろう。 (だから、この節は書かなくても全く問題ないのだが、忘れるために書いておくw)

が、更に気付いたのは、Lはloudnessであって最大音量ではないので、やはりYは平均音量と考えるべきで、やっぱり上の節は要る。別の考えをすれば、Lに係数が要るのかも知れないということだ。その係数は、その曲の振幅の変化量(= ダイナミックレンジ)を示す値だろう(が、それはSpotifyでは分からない)。

Spotifyの音量を調整するには、アプリの音量そのものを変更する以外に、Spotifyアプリのあとにアンプやミキサーを入れてそれで調整する手がある。しかし、外部プログラムから手軽にゲインを変更可能なものが見つからなかった(MIDIを使えば制御できそうではあった)のと、できるとしても結構大げさになるので、今回は見送った。

Spotifyアプリの音量を変更するには、(現在のSpotifyアプリはDbusでは音量が調整できないため、)Spotifyアプリにウインドウシステム(X11)経由でイベント(キーやマウスホイール)を送ってボリュームを操作する方法と、PulseAudioのSpotifyアプリのボリュームを設定する方法がある。後者は音量値にdBや相対値が指定でき、pactlコマンドで簡単に実行できるので採用した。

上記のように、音量値にdBが指定できるので、基本的に、GがそのままSpotifyの音量値として使える。ただし、Gが大き過ぎる(例: 0よりかなり大きい)と音質が劣化するので、上限(Vmax)を設けることにした。今回はLは6(dB)とした。結局、Spotifyの音量設定値V(dB)は以下のようになる。

V= G (G < Vmaxの時),
     Vmax (G >= Vmaxの時)

ただし、pactlコマンドの仕様により、符号付きの値は現在値からの相対値になってしまい、負のdBは相対値とみなされるために(、結局全然)使えないので(どういうつもりなのか、作者に聞きたい)、pactlに指定する時に0..1の数値(R)に変換している。これはdBから数(比率)への変換で、以下のとおりである。

R= 10(V/20)

ここで不思議だったのは、Rをpactlに指定すると期待どおりの結果にはなったのだが、設定後に取得した音量の%の値が想定と異なるのである。例えば、"0.5"を指定すると、結果は"50%"でなく"79%"となる。dBの値は"-6.02dB"と正しいが、%はどうもおかしい気がする。本来は50%になるべきと思うのだが、%の値も対数なのだろうか。謎ではあるが、実際の音量や聴感的には期待どおりなので、深くは考えないことにした。ただ、将来的に、バージョンアップなどでこの動作が変わってしまうリスクはある。

pactlコマンドでSpotifyアプリの音量を設定するには、以下の手順で行う。

  1. Spotifyアプリのsink-inputのIDを得る。→ siid
    • pactl list sink-inputsの出力を解析する。
  2. Spotifyアプリの音量をRに設定する。
    • pactl set-sink-input-volume siid Rを実行する。

上記の処理を実装して聴いてみたところ、概ね期待通り動いている(→ 曲が変わるとボリューム(画面中央下部)が動くデモ)。ただし、以下のような問題がある。

  • 曲の切り替わりの検出に時間ズレが生じることがあるので、音量設定タイミングがずれることがある。
    • 音量の小さい曲の後に大きい曲が掛かる場合、音量を下げるのが遅れる場合があって、その時には、次の曲の先頭が(一瞬)大音量で再生されてしまう。
    • 逆に、音量の大きい曲の後に小さい曲が掛かる場合、音量を上げるのが早過ぎる場合があって、その時にも、次の曲の先頭が(一瞬)大音量で再生されてしまう。
  • 曲によっては少し大きく感じることがある。
    • 例: Commodores "Easy", CHIC "Le Freak"

曲の切り替わりの検出精度は、Spotify API自体にズレがあるので、容易には向上できず、本質的な解決は難しいのだが、音量を一気に変えずに、1回の変更量に上限を持たせて少しずつ変えるようにして(ただし、音量を下げる時は2倍の速さにする)緩和を試みた。また、変更前の音量が0dBを超えている場合は、超過分を一度に下げるようにした。この修正の都合で、pactlへの音量設定値を、比率(R)でなく現在の音量とVの差分にした(結局、符号付きのdB指定(相対値)だけでも良くなった)。

(10/3 12:23追記) 曲の頭が一瞬大音量になることがある問題は、JACKのエフェクタを使えば緩和できるかも知れない。Spotifyの出力を、瞬間的な大音量を抑えるようなエフェクタ(リミッター?)につなぎ、音量正規化がonの時だけそのエフェクタをonにすれば良さそうだ。エフェクタの制御は本アプリ(Spotifyミニプレーヤー)からMIDIで行う。おもしろそうだが、パラメタの設定は難しそうだ。余りにも気になるようなら、やってみたい。

この場合は、音量正規化もJACKでできる。Spotifyの出力をミキサーのSpotify用入力につなぎ、その音量を本アプリから行えばいい。上記エフェクタの入力レベルが変えられるなら、それでも可能だ。ただ、これ自体の価値はそれほどない。あくまでも、大音量を抑えるついでにできるということだ。

大きく聴こえる曲は、今のところどうしようもない。数値で正規化する限界なのかと思い、採用を見送ったenergyがうまく使えないものかと思っている。ただ、GMBの正規化でも同様なことはあるし、自分や周囲の状態によっても音量は違って聴こえる(要は「気のせい」)から、あまり深追いしても仕方ないのかも知れない。

(10/6 21:22追記) 音量で気になっていることの一つは、静かな曲の音量が大きくなり過ぎることなので、それを解消するのに上記のenergy(以下、E)を使って音量設定値Vを調整してみた。

静かな曲はloudness(L)が小さいためにVが大きくなるので、音量が大きくなりやすい。一方、そういう曲はEも小さいので、Eの大きさ(小ささ)でVを調整することを考えた。Eが小さい時は、その分Vを減らすのである。

Eがどういう単位・仕様の値なのか不明(0..1ということだけ明らか)なのだが、試行錯誤して、Eの値をdBに変換してVに加える(Eは0より小さいので、実際には引かれる)ようにした。Eで調整した音量設定値V'は、次の式で求められる。

V'= V + k * 20 * log10(E) (E >= Eminの時)
      V + k * 20 * log10(Emin) (E < Eminの時)

kはEの強さを調整するための定数で、0.05から0.3程度が良さそうであるが、いろいろな曲で試したところ、0.15辺りが最も適当だった。ただ、曲によって変わるので、更に調整が要りそうだ。Eminは想定する最小のEで、0.0001とした(log(0)はエラーになるので、それを防ぐために定義している)。

この式は全くの思い付き(と誤り)から出て来たものである。Eの詳細が不明なので、そのままdBに変換していいのか怪しいが、VはdBなので、VをEで調整するのなら、少なくとも、EをdBに変換した値を使うのは適切だと思う。

残念ながら、この方式は、元々音量が小さくなくて更に大きく聞こえる曲(例: 上記の"Easy"や"Le Freak")には効果がない。それらはEが大きいため(だから、うるさく聞こえるのだろう)、ほとんどVが減らないからである。それらには別の特徴量が使えるのかも知れない。

(10/9 11:09追記) 音量でもう一つ気になっていることは、クラシックの曲の正規化がうまく行かないことだ。クラシックの曲はポップ音楽と違ってダイナミックレンジ(音量の幅)が広く、平均音量が小さいことが多いため、ポップ音楽と同じように正規化すると音量設定値Vが10dB前後ととても大きくなってしまう。一方、DACは0dB以上の音は再生できないので、音質が劣化する。

これに対処するには、まず、目標音量Xを下げて(例: -20dB)、(形式的な)増幅の余地を増やす必要がある。また、10/6の追記とは逆に、energy(E)に応じて音量設定値Vを増やす方が良さそうだ。そこで、E(のdB値)に応じてloudness(L)を増やすことにした。ただし、LがXより大きい場合に更にLを増やすと、Vが減って逆に音量が下がってしまうので、Lを増すのはLが小さい場合だけにした。クラシック音楽用の音量設定値V''は、次の式とした。

V''= X' - L''
  X': クラシック音楽用の目標音量 (dB)
  
  L''= L' (L' < X'の時)
        L (L' >= X'の時)
  
    L'= L + m * 20*log10(1 - E) (E >= Eminの時)
         L + m * 20*log10(1 - Emin) (E < Eminの時)

mはEの強さを調整するための定数で、いろいろな曲で試したところ、0.05辺りが最も適当だった。また、X'は-24dBとした。これらも継続して調整が要りそうである。

なお、目標音量をかなり下げるために音質の劣化が心配だが、まず、ほとんどの場合に実際の設定音量は0dB付近になるため、大きな問題はない。なお、仮に設定音量が目標音量と同じくらいになった場合には音の有効ビット数が減るため、音質が劣化する。その有効ビット数は、元の音を16ビット相当(ダイナミックレンジ: 約100dB)とした場合に設定音量を-24dBに落とした場合には、概ね (100-24)/6= 12.7ビット程度になる。この場合でも、有効なダイナミックレンジは76dB程度あるはずだ。

実際に、いろいろな音量の曲に対してこの方式で音量正規化を行った場合と音量正規化を行わない場合の音量を比較したところ(どちらも、アンプの音量は最初に調整した後は変えないものとする)、音量が適正だと感じることがほとんどだった。数値的にも、それらの曲に対して約9dB(= 2.8倍)の幅で調整を行っていたので、効果はありそうだ(→ クラシック音楽でも、異なる曲を混ぜて聴く時には音量正規化はあった方がいい)。なお、この方式ではポップ音楽も正規化できるが、方式やパラメタが最適でないうえに、ポップ音楽はダイナミックレンジが狭い場合が多いため設定音量が目標音量(-24dB)付近になることが多いので、音量と音質の点で得策でない。そのため、この方式をクラシック音楽用のモードにし、従来のをポップ音楽用にした。

クラシック音楽用の音量正規化モードを追加したため、ミニプレーヤのUIを変更し、音量正規化のon/offでなく、off("-")またはモード(ポップ("P")/クラシック("C"))で表示するようにした。

それから、音量正規化のモードを切り替える際に音量が大きく増加することがある(例: クラシック → off)ので、安全のため、再生中にそのような切り替えを行った場合は一時停止するようにした。

最後に、気になっていた、静かな曲での正規化結果を比較してみる。以下は、"Speak to me"の先頭約20秒(鼓動)の部分の右チャネルの波形(上から順に、GMB (正規化off), Spotify(正規化off), GMB (正規化on), Spotify(正規化on), Spotify(今回の正規化))である。なお、それぞれの開始時刻は合わせていないので、波形の位置は異なる。

Pink Floyd "Speak to me"の先頭約20秒の右チャネルの波形比較

正規化した波形(最後の3つ)を見ると、明らかに、Spotifyの正規化は「やりすぎ」であり、そのためにおかしく聴こえていたことが分かる。一方、今回の正規化(一番下)は小さ目ではあるが、GMB(上から3番目)と同様の振幅になっている。聴いた感じでも問題なく、今回の方式が有効であることが確認できた。

なお、今回の正規化の振幅が小さ目なのは、この曲の音量がとても小さく、本来の音量設定値が上限(6dB)を超えているために、充分に音量を上げられないためである。

→ 音量制限の上限を解除して試したところ、振幅がSpotify以上に大きくなってしまった(フルスケールを超えた)。パラメタの調整(あるいは、上記のenergyの利用など)が要るようだ・・・ そして、Spotifyの正規化の処理は正しかったようだ。この点はがっかりした。

→ 音量設定値の上限を7.5dBにしたら振幅がGMBと同等になったので、当面はこれで試してみたい。

→ (19:40追記) どうやら、(当たり前ではあるが、)0dB(100%)より大きく増幅するのは良くないようで、少し長くクラシック(0dB超えの曲ばかり)を聴いたあとにポップに切り替えたら違和感が生じた(耳がずっと圧迫されていたような感じ)。また、当たり前だが、たまに音量がオーバーレンジ(0dBを超える)するのも余りいい気分でない(ただし、瞬間的なので聴いていても分からない)。それで、上限を0dBにすることにした。それで音量が小さくなってしまう曲はもともと小さく作っていると考えて、諦めることにする。

馴染みのない方のために説明すると、0dBを超えて増幅するというのは、デジカメのデジタルズームとかISO感度を高くするようなもので、確かにそれらしい画像は写って便利なのだが、無理してデータを作ってるから画質は期待できないということだ。

あと、"Speak to me"の冒頭の音がおかしく聴こえるので、Spotifyアプリの正規化は動的に処理(例: 現在までの音量などで現在の音量を調整する)しているのかと思っていたが、波形はそうでもないので、音量を上げ過ぎているだけなのかも知れない。ただ、目標音量を小にすると音量が下がり過ぎてしまうので、Spotifyアプリは今一つなことは確かだ。

副次的な効果として、今までは、音量正規化をon/offする際はSpotifyアプリを再起動する必要があるので、再生が停まり画面が変わってしまうなど、ちょっとしたストレスだったが、今回の方式では気軽にいつでも(まさに"on the fly")切り替えられるようになり、大変便利になった。実際には、このイライラを解消したいということが、今回の作業に着手する大きな動機になった。

(10/6 21:22, 21:39 変数名の重複を修正、設定値を更新)

 

PS. その後、調整・修正・改良しながら使っていて(というか、そればっかりしているがw)、上記の曲間のタイミングずれによる不意の大音量を解消したいと思っている。が、それは難しいことも分かった。今のところ、以下のようなことを考えている。

  • コンプレッサーやリミッターで大音量を制限する。
    • 大音量がほんの一瞬に抑えられるが、通常の曲(特に、クラシックは音量レベル(上記L)が小さいと認識されるため、大抵、音量(上記V)が最大に設定される)の大音量も制限してしまうので、(聴感上は分からないが、)常時は使いたくない。必要な時だけonにする必要がある。
  • コンプレッサーなどを使わないで回避する。
    • Spotify web APIのタイミングズレを補償する。
      • (無音で?)曲間を検知して、曲間と認識する。
      • 「スマート」な処理を作る?
      • 次の曲の先読み?
    • 我慢する。

切り替えて使うにしても、コンプレッサーなどはどうも気に入らない(onにしている時は妥協していることになる)ので、使わない方法を考えている。でも、できるかどうかは不明だ。まあ、あまり頻繁に起こらない(実際、昨日確実に起こっていた曲で今日は起こらない)ので、我慢するのが一番効率的なのかも知れないw

その他、以下のような改良をした。

  • 音量設定処理の遅延を防ぐ。
    • 曲間にSpotify web APIの認証トークン(有効期限がある)を更新すると音量設定処理が遅くなる可能性があるので、可能な限り、「忙しくない」時にトークンの更新をし、曲間での更新を抑えるするようにした。
      • 具体的には、再生中に一定間隔(例: 2分)で(無駄に)web APIをアクセスする。この時、トークンの有効期限を短め(例: -5分)に見て早目に更新しておく。一方、曲の切り替わり時のアクセスでは、有効期限ギリギリまで(例: -10秒)トークンの更新をしないように指示する。
  • 自動的に音量をリセットする。
    • 再生を停止してある程度(例: 20秒)時間が経ったら音量をデフォルト値(例: -10dB)に戻すようにして、(小音量の曲の再生後、)次に再生する曲の頭が不意に大音量にならないようにした。
      • ただ、次に再生する曲の頭が小さくなってしまうことがあるという弊害はある。

(10/5 10:50)

PS2. PSに書いた、Spotify web APIの曲の切り替わり通知タイミングずれによる意図しない大音量を防ぐ方法について考えた。曲の切り替わりを正確に検出して、その切り替わった時点で音量を設定すればいい。そのためには、まだ曲間になっていない場合にはそれまで待てばいいが、既に曲間が過ぎている場合には時間を戻して、出た音の音量を変える必要がある。果たして、そんなことはできるのか?

まず、曲の切り替わりを正確に検出するのが難しい。 一番簡単なのは無音検出だろうか。現在の再生位置が曲の終わり付近になった場合やSpotifyアプリから来る「曲が変わった」イベントの付近で(これらはある程度正確と考えられる)無音になったら「切り替わり」と判定するか。曲の中には終わったと見せかけて再度始まるものもあるが、さすがに終わりの数秒間ではなさそうだ。だが、今と次の曲がどちらもメドレーとかライブとか雑音が多くて、無音部分がなかったら駄目だ。。。

無音を検出すること自体は可能だが、ちょっと重い。そもそもそういうプログラムが要る(探せばあるだろう)。無音がない場合にも対応するには、音の特徴を分析するのだろうか。それは結構重い・・・

時間を戻すのは、不可能に思えて実は可能だw 戻す期間を数秒間に制限すれば、再生する波形をその時間分格納し、古いものから順に再生するようにすれば(ところてんのような感じ)、その数秒間は戻すことができる(正確には、Spotifyが再生したと思っている音はまだ再生されていないから、出てしまったはずの音(= 過去の音)を操作することができる)。問題は、再生に常にその数秒間の遅延が生じることだ。再生ボタンを押してから数秒待たないと音が出ないし、停めても数秒間は音が出る(こっちは何とかできる気がする)。それが許容できるだろうか。

一方、今日は問題が全然起こらなくなってしまって、「もしかしたら、いじっているうちに直ったのか?」と、淡い期待をするのだが、実際にはそんなことはないのは、今までの経験から明らかだw でも、滅多に起こらないことは確かなので、わざわざ上に書いたような大掛かりなものを作って苦労しなくてもいいような気がしている。ただ、技術的な興味から、やってみたい気分はある。

そして思ったのは、(昔の)日本にはこういう物好きな技術者が多く、それだけならまだいいが、お客や経営者が無理難題を吹っかけたにも関わらず、(24時間戦うw)彼らによって実現されてしまった製品を素直に販売してしまったから、ガラパゴス化してしまったのかも知れないということだ。

(10/5 21:28)

  •   0
  •   2

24、25と連続して来ると、つい、モーツァルト(のピアノ協奏曲)を思い浮かべて、脳内で再生してしまいます。その後の26、27号も期待しちゃいますけませんね。でも、交響曲を思い浮かべる人も居るのかも知れませんね。僕は全然ですが。

それにしても、23号はどうしちゃったのかなぁ・・・

  •   0
  •   0

[10/1 8:18 この問題は解決した。原因と対処を最後に示す。]

面倒なことは、いつも突然やって来る。昨日、ふと、SpotifyとGMB(gmusicbrowser)を切り替えると音量が違うのが気になっていたので、それを可能な限り合わせたくなって、テスト信号を作って再生したら、思わぬことに気付いてしまった。

MP3のスイープ信号を再生したら、GMBからの音がおかしかったのだ。特定の周波数(例: 5.5kHz)が小さくなった。以下に問題の波形(問題の起こった5.5kHzの正弦波の再生波形の比較)を示す。上は問題がある場合、下は問題のない場合である(左チャネルだけを抜粋した)。なぜか変調が掛かっている感じで、音量が小刻みに振動している。そのために音が濁って聞こえる。

興味から、この変調波の周波数を調べたいのだが、普通にスペクトルを出しても出ず、なぜかLPFでも抽出できない(LFP後のスペクトルが出ない)。目視では24Hz程度と分かるが、なぜLPFで取れないのだろうか。振幅がとても小さいのか(そうなら、こんなに振れない気がする)。まだまだ知識が足らないようだ。。。

↑ 分かった! スペクトルを拡大したら、5.5kHz付近に2つの山があった。それらが干渉していたのだ。2つの差は約25Hzで、上記の目視と一致した。でも、なぜこういうことが起こるのだろうか? 新たな謎だ。

参考のため、実際の音(再生音を収録したもの)をこちらに置く。最初が問題のある場合、次が問題のない場合である。音量が大きいが、小さくしても現象は変わらなかった。多くの環境で再生できるようにMP3にしたので、環境によってはどちらも同じように(問題があるように聞こえる)可能性がある。

同じ音でもFLACのファイルを再生する場合は問題が起こらず、出力系をJACKからPulseAudioに換えても問題は起こった。それから、同じMP3のファイルを他のプレーヤー(例: XPlayer)やGstreamer(以下、GST)の再生プログラム(gst-play-1.0)で再生しても同じ現象が起こるが、問題の起こらないプレーヤー(例: Spotify, AlsaPlayer)もあるので、GMBが再生に使っているGSTのMP3デコーダ(デフォルトのもの)に問題がある可能性が高いことが分かった。

更に試したら、madというデコーダを使うと問題が起こらなくなることが分かった。以下に、gst-launch-1.0での例を示す。下記太字の"mad"を"decodebin"に変えると、問題が起こる。

gst-launch-1.0 filesrc location=test.mp3 ! mad ! audioconvert ! autoaudiosink

結局、GSTのデフォルトのデコーダ(decodebin?)に問題があるようなのだが、仮にGSTのバージョンが古いせいだとしても、OSのパッケージのものを使っているため、それより新しいものにバージョンを上げるのはかなりの手間(自分でコンパイルする)なので、上の例のようにGMBで使うMP3デコーダを変更するようにした。

MP3デコーダはmad以外にmpg123audiodecやavdec_mp3でも問題が起こらなかった。ただ、gst-launch-1.0で使う場合にはmadしか音が出なかった(他はprerollのエラーが起こった)。これは、僕がGSTの使い方を良く理解していないせいだ思う。

それで、3つの中では(名前から)一番品質が良さそうな(イメージの)avdec_mp3を使うことにした。ただ、何か問題があった時やデフォルトのデコーダで試したい時に手軽にデコーダを変更できるように、GMBの拡張設定で変えられるようにした。

他に分からなかったのは、GSTのパイプライン(上記のコマンド例のようなもの)でMP3デコーダを指定する順番が最初でないと うまく動かなかった(再生開始しない)ことだが、これも僕がGSTを良く理解していないせいだと思う。

 

昨夜から延々と試行錯誤と対処をして、ようやく本題の音量を合わせる話に進むことができた。テスト信号とメーターで音量を比較してみたら、結局、音量正規化を行わない場合には、どちらも同じ音量で再生されることが分かった(まあ、デジタルなのだから、大きく違ったらおかしいが・・・)。僕のシステムではDACの前に部屋の特性補正用のイコライザを入れているが、両方とも音量を100%にしてもオーバーフローは起こらないようだった。ただ、念のため(論理的でない「気休め」)、イコライザの前で1dB下げるようにした。

音量正規化を行う場合には、SpotifyとGMBの音量は異なっていた(これが、気になっていた音量差である)。それぞれの仕組みや目標音量が異なるためだろう。手持ちとSpotify両方にある数曲で調べたら、曲にもよるが、1〜3dB程度Spotifyが大きかった。それでミキサー(jack_mixer)を使って2dB程度下げたら、差が1dB以下となった。これで聴感的にも合えばいいが・・・ → 残念ながら、曲によってSpotifyの正規化後の音量が違うようで、あまり合わない感じだ。

まったく、手製のシステムは不意に問題が起こって気が抜けないものだ。まあ、オーディオ道 趣味なんてそんなものだろうw ただ、JACKだといろいろな部品をマウスで配線して手軽に試行錯誤や確認ができるのは便利だし、いろいろな知らなかったことが分かるのはおもしろい。

それから、MP3デコーダの問題はダウンロード購入したMP3音源の音質劣化を起こすことに気付いて確認したら、確かに若干音がおかしくなっていた。具体的には、ルプーのモーツァルト ピアノ協奏曲 第21番(1975)で弦(バイオリン)の音量が大きい箇所で違和感がある。実際、今年の頭に音が悪いことに気付いて書いている(これはこっちの問題だし、苦情を言ったら確実に泥沼化して疲弊しただろうから、黙ってて良かったw)。今聴くと、MP3デコーダを変更すると、違和感がほとんどなくなって、すっきりした気分のいい音(曇り空がちょっとした青空になった感じ)になる。確かに、録音が古いことによる音の悪さもあるのだが、MP3デコーダの問題が大きかったようだ。

もちろん、他のMP3音源でも同じ問題があるはずだが、特定の音(例: 5.5kHz)が続く場合にしか顕著にならないようで、たまたま僕の手持ちの曲ではそのパターンが少なかったらしく、気付かなかったようだ。実際、ルガンスキーのラフマニノフ ピアノ協奏曲 第2,3番(2005, 2003)ではまったく差が分からず、以前どおりのいい音にしか聞こえない。

それにしても、ルプーについては本当に音が悪いことが分かっていたなんて、僕の耳と環境は随分良くなったものだ。つい最近まで何がいい音か分からなかったことを思うと、全く感慨深い・・・

 

(10/1 8:18追記) MP3の音がおかしい問題の原因が分かり、対処できた。

しつこく試したり調べていたら、ヒントになる投稿が見つかった。どうも、GSTにインストールしていたFluendo MP3 Decoder(flump3dec、パッケージ: gstreamer1.0-fluendo-mp3)が古い(その投稿が2007年なので、それより前!)うえにバグがあったようだ。そして、今(実際には2007年以前から)はそれがなくてもMP3を再生できるとのこと。僕が自分でgstreamer1.0-fluendo-mp3をインストールしたのかは今となっては分からないが、余計だったようだ(← 別のPCには入っていないので、自分で入れたようだ)。

それで、gstreamer1.0-fluendo-mp3をアンインストールして問題のファイル(5.5kHzおよびスイープ)を再生してみたら、正しい音が出た(再度インストールしたら、やっぱり駄目になった)。ルプーのモーツァルト ピアノ協奏曲 第21番も大丈夫そうだ。それで、GMBのMP3デコーダの指定も止めて、デフォルトに戻した。

いつものように最後はあっけなかったが、原因が分かって良かった。それにしても、余計なパッケージは削除して欲しいものだ(→ Ubuntuの人)・・・

  •   0
  •   0

クラシック音楽の演奏の好みの話。「(普通に)楽しんで聴けばいいじゃん」というのは一見もっともなのだが、料理に例えてみよう。カレーライスが好きな人は多いが、「カレーだったら何だっていいんですか?」と聞かれたら、多くの人は「違う!」と言うはずだ。家のカレーが好きな人も居るし、蕎麦屋のカレーが好きな人も居るし、特定のレトルトカレーが好きな人も居るだろう。逆に、(懐かしの)スキー場の(高いだけの)カレーを是非食べたいという人が居るだろうか? それと同じことだ。

僕の場合は、クラシック音楽は、曲と演奏の両方が気に入らないと、乗れなかったり途中で引っ掛かってしまったりして、心から楽しむことができない。演奏は演奏(録音)した時によって変わるし、曲によっては、カデンツァにいくつか種類があったり、ピアノなどの独奏者と指揮者とオケの組み合わせになるし、使う楽器によっても印象が大きく違うし(例: ピアノとフォルテピアノ)、録音の音質だって多少は気になるので、組み合わせはものすごく多くなる。

そのため、世の中には山ほど同じ曲の演奏があるのにも関わらず、なかなか気に入るものがないという面倒な話になる。しかも、どうしてか、聴く時によっても印象が違うので、なかなか「定番」というのがなくて困る(実際には、新鮮味も重要なので、定番があっても避けている)。でもまあ、趣味なので、そういう風に困るのもおもしろいし、今はSpotifyなどの配信サービスのおかげで多くの演奏を試せるから、ありがたい。

そして、ふと気づいたのだが、僕が山ほど聴いても「定番」が決まらないということは、他の人もそうだから、こんなに多くの演奏(録音)が出回っているのだろうし、演奏者も、それまでの他者(それどころか自分のまでも)の演奏に納得していないから新しく演奏(録音)するということではないだろうか。まあ、単に経済的なことも多いのかも知れないが、それだけだったら苦労して音楽家になる人はもっと少ないだろうし、レーベルにしてみれば、新しく作るより既存の定番を(「リマスター」だの「ハイレゾ」だとかを)売るだけの方がずっと利益になるだろう。だから、(クラシック業界全体としてはじり貧ではあろうが、)演奏(挑戦)したい願望はあるし、配給する(したい)会社もあるし、聴きたい需要もあるから、これはこれでうまく回っているのではないか。

要するに、演奏者やクラシック業界は、僕みたいに面倒臭い(細かく聴いて楽しむ)人に支えられている面があるということだ。だから、こういう楽しみ方にも意味はあると思う。

 

以下に、面倒臭い実例として今日の話をだらだらと書く。

夜、なぜか突然、(基本的には余り好きでない)モーツァルトのピアノ協奏曲 第26番 「戴冠式」が聴きたくなって(何となく、元気が出る曲が聴きたかったのだと思う)、SpotifyでOliver Schnyderという人(以下、内田までは初めて聴く人)の(2008)を試した。古楽器風で嫌な予感がしたが、まだ許せた。オケは繊細で綺麗だった。しかし、なぜか途中で止めたくなって(あまりおもしろくなかったのだろうか)、Christiane Engelの(2000)にしたら、遅過ぎた。

Boris Merssonの(1995)は平凡な感じで、Christian Zachariasの(2011)は良さそうだったが、どうも、この曲に求めている躍動感というか活力に欠けているのか、聴いていて気分が昂揚しなかった。

それで、仕方なく(良く聴いていたので、新鮮味がないから避けたかった)、手持ちの内田の(1988)にした。さすがにオケからしていいし、当たり前だが、ピアノもいい。きっと、僕の中の「定番」とか「標準」なのだが、それでも、好きなせいか、陳腐な感じはしなかった。ただ、なぜか音質が今一つで、特にピアノがこもった感じだった。そして、どうもカデンツァが今一つ気に入らなかった。

それで、ピレシュの(1975)にしてみたら、イントロから元気が良くて、期待どおりだった。若かったせいか、ピアノも元気でいいし、音質も問題ない。更に、ピアノに低音のすごみもあるから、これが(今日では)ベストだということになった。という訳で、たった一曲を聴くのに、5人も試す必要があった。。。

続きもあって、その後に聴いた彼女の第23番、K. 488 (1975)はなぜか音質が悪かった。ピアノがこもっていて、若干弱く聞こえる。ピアノの演奏も少しペラペラしている(フォルテピアノ的)のが良くなかった。オケはわずかに変わっていていい。ピアノの録音のし方自体はいいと思うのに、こもっているのが不思議だった。結果的には録音が良くないのだろうが、第26番と同じ年なのに、こんなに差が出るものだろうか?
  •   0
  •   0

(下世話な話題続きで・・・)

大阪の選挙区で野党から立候補するとかいう女性弁護士。手を取り合ってにやける代表と一緒の写真を見たら、なんか、顔立ちとか髪型が、いろいろな疑惑を碌に説明しないで略奪婚すらした、偉そうな(だけど、顔にはとても引きつけられる)同じ党の女性議員に似ているのだが、誰かの好みでもあるのかと思ってしまう。あるいは、その枠の世代交代なのだろうか(と思ったら歳は同じだったので、単なる入れ替えなのか)。

まあ、そういう下らないことは一切なくて、本人の実力で選ばれたのだろうが、どうしても一抹の不安を持ってしまう。

が、まあ、僕にしてみれば、鑑賞のタネが増えるだけなので、いいことではあるw

 

PS. どこかで見たことあると思って、(検索で出て来た)沢山の写真を眺めていたら、(naokiさんもお好きな)有名な卓球の女性選手にも似ていることに気づいた。なるほど、この手には弱いなあ・・・

PS2. 検索すると画像がいっぱい出て来たので、どうやら、TVなどでの有名人のようだ。ううむ。

  •   0
  •   0

飲酒運転とひき逃げで捕まった芸能人が保釈されたそうだが、その写真を大きくして3回くらい見てしまった。

言うことないじゃん!

白いシャツと黒いタイトなスカートのシンプルな服装は僕好みでほとんど言うことないし、色白で神妙な顔もいいじゃないか。今まで名前程度しか知らなくて、逮捕の時の(とっ捕まった猫のような、)うなだれた顔の写真を見た程度だが、随分雰囲気が違うものだ。

そうやって多くの人に好印象を与えて、なるべく早くほとぼりを冷まそうとしているだけなのかも知れないが、こっちは見て楽しむだけなので、(その人の今後がどうなろうと)どうでもいいことだw

  •   0
  •   0

僕は、クラシック音楽が「古臭い」とか「難しい」とか「ベートーヴェンの顔が怖い」wなどの理由で毛嫌いされ続ける現状がもったいないと思い、(クラシック業界の回し者ではないのだがw、)常々、これを読んだ方が「ちょっと聴いてみるか」と思ってくれたり、「気付いたら聴いちゃってたよ」などになるといいと思うのだが、実際には、題に「クラシック」とあるだけでパスされそうだから難しそうだ。それ以前に、ここの読者は少ないw

まあ、それはいいとして、クラシック音楽は古いだけではないと、近頃改めて思った。確かに作曲・公開(初演)はすごく古いのだが、僕は、曲の解釈や演奏の仕方は時代とともに変わっているように思う。どうしてかというと、前に書いたように、昔の演奏が余り好きでない(好きになれない)からだ。

僕にしてみれば、近頃の演奏は新しく(例: ノリがいい、滑らか・鋭い・キレがある、驚きがある)、昔のは古臭く(例: 堅苦しい、音がガチガチしている・小間切れ的、単調)感じるが、実際には、「新しい」・「古い」という表現は正しくなく、僕の好みに近いか遠いかの方が適切そうだ。好みという点では、基本的には(何でもいい訳ではないが)ちょっと昔のポップ音楽が好きなので、クラシックでもそういう演奏(例: 乗れる)や解釈が好きで、結果的に、近頃の演奏が好きなのではないだろうか。そこに関しては、昔のポップ音楽が近頃のクラシック演奏者に影響を与えている可能性もありそうだと思うが、どうなのだろう。

もちろん、演奏や解釈の時代的変化には、まずは音楽(研究?)自体の発展・変化の影響はある(誤解されがちだが、クラシックの人は、何の変化も起こさず、昔ながらに当たり障りなく演奏していればいいと思っているばかりではないのだと思う)。それが作曲者の意図や初演当時と同じかどうかは不明だが、同じである必要はないと思う。逆に、今の人が楽しめるように変化・発展・拡張させる方がいいと思っている。

レコードなどの、録音された演奏の古い・新しいに関しては、録音の年代・技術による影響もある。当然、古い録音の音は古い(音質が悪い)。でも、それが聴いた時の印象に与える影響は余り大きくないと思う。せいぜい、ダイナミックレンジが狭いせいで強弱の変化が乏しく聞こえる程度だろう。この点は、当時生演奏を聴かれた方に、実際の演奏はどうだったのか教えて頂きたいと、今思った。

でも、例えば、SPレコードを愛聴される方は特にそういった点で文句を言っていない(例: 「レコードだと全然違う演奏になってしまう」とは言われない)から、やはり、古い技術で録音されていても印象は大きく変わらないのだろう。

ただ、ものすごくたまに、昔の演奏でも(古臭くなくて)自然に聴けるものがあることが分かった。というのは、先日書いたカサドシュのモーツァルト ピアノ協奏曲 第26番(1963または1959)のピアノが実に滑らかで良かったのだ。聴くまでは全然期待していなかったのだが、(名前だけは聞いたことがある)有名な人なので聴いてみたら、現代の演奏と言っても分からないくらいだったので驚いた。同じアルバムの第27番(1963)も良かった。この曲ではオーボエが実に良かった。オケも良かった。ただ、やはり例外だったようで、別のアルバムの第20番(1960?, 録音: 1956)はすごく古い感じがし、いかにも「昔の演奏」という感じだったので、がっかりしてしまった。

なぜそうなったのかは不明だが、おもしろいと思う。演奏や解釈の時代的変化以外に、演奏者(と演奏のタイミング)への依存が大きいのだろうか。あとは、聞くタイミング(聞き手の心理的状態や体調)も関係しているのかも知れない。

 

という訳で、ないとは思いますが、是非、気付いたら聴いちゃってて下さいw でもまあ、楽しければいいので、実際には何を聴いたっていいんです。

  •   0
  •   0

今は使っていない古いアドレスにフィッシングメールが来た。差出人も宛先も自分(そのアドレス)で、「すぐにお読みください!」という件名だ。僕のアカウントをハッキングして僕のデバイスに完全にアクセスできるそうで、

それは私にあなたのスクリーンとウェブカメラへのアクセスを提供するキーロガーを持っています。

(略)

私は二重スクリーンビデオを作った。 最初の部分はあなたが見ていたビデオを表示しています(あなたは良いと奇妙な味を持っている)、2番目の部分はあなたのウェブカメラの記録を示しています。

というところで感心した。僕のPCにはカメラは付いてないが、どうやってビデオを録画したのだろう? 少し考えて、「まさかスマフォを使った?」と、わずかに心配になったのだが、以下のように、

あなたのメッセンジャー、ソーシャルネットワーク、そして電子メールから連絡先全体を集めました。

という割には僕の名前が分かってない(書いてない)のでw、単なるアホメールだと分かった。実際、メールに書かれていた送金先のBitcoinのアドレスで検索したら、同様なものが数件出て来た。

少し考えたら、僕のPCに完全にアクセスできるのなら、わざわざ外国からメールを送らなくてもローカルに送れるし、文章をブラウザの画面に出して、僕を恐怖のるつぼに陥れることすらできるのに、なぜそうしない??

僕も昔は無知だったので、何かの詐欺サイトにそのアドレス(馬鹿なことに、当時メインで使っていたもの)を入力してしまったようで、それが「馬鹿者リスト」に記録されてしまっているようで、良くスパムが来る。以前書いたようなおもしろいものなら楽しめるのだが、こういう詰めの甘い、詰まらないメールにはうんざりしているので、近々そのアドレスを捨てようと思っている。

ただ、念のため、スマフォは机の上に置かない方がいいかも知れないと思っている。裏返しにしておけばいいかと思ったら、両面にカメラが付いているから意味がないことに気付いたw まあ、前面のカメラは普段使わないので、シールでも貼っておくのがいいかも知れない。

ちなみに、そのメールに書かれているBitcoinのアドレスから犯人を調べて、(同じような内容のw)反撃メールを送ることができるのだろうか? ちょっと興味あるところだ。

(2018/9/26 11:18追記) ニュースで、Firefox Monitorという、メールアドレスとパスワードが流出していないか調べるサービス※を見たので試してみたら、上のアドレスの他に2個が流出していることが分かった。どれも古いし、もう使っていないものなので仕方ないが、意外に多かった。流出元はいくつかあったが、Last.fmが一番多かった。他に、Adobe(流出数は最多)とDropboxからも流出していた。「どこも何やってんだかなあ・・・」と思ったが、自分でもそこらからの流出は覚えていないので、もっと気を付けないといけない。Dropboxは今も使っているので心配になったが、数年前にちゃんと使うことにした時にアドレスなどを変えて2段階認証にもしているので、大丈夫そうだ。あと、10年以上前からパスワードの使い回しはしていないので、流出したアドレスをIDに使っている他のサービスへの影響はない。

※そもそも、このFirefox Monitor自体が偽じゃないのかとか、ここがハッキングされることはないのかとかいう心配もあるが、ここに登録するとしてもメールアドレスだけしか入れないので、大きな問題はなさそうだ。まあ、スパムが来るのは結構大きいが・・・

そして、丁度いいことにw、さっき別のフィッシングメールが来た。naokiさんがコメントに書かれていた、本文にパスワードが書かれているものだ(興味があったので、僕にも来ないかと思っていたw)。調べたが、そのパスワードは正しくないものだった。ずっと昔にどこか(上記の流出元?)で使っていたのかも知れないが、既に変更していたのではないか。それに、流出したサイトのログイン履歴にも記録がないから、「あなたのアカウント*をハッキングし、そこからメールを送りました。 」というのは出まかせなのだろう。詐欺にしても、嘘は良くないね(ぇ?)w

上に書いたように、流出したアドレスは廃止したいが、その前に、Thunderbirdのフィルタを使って、そこに間違って送ってくる可能性のある人(家族)以外からのものは全部スパム扱いするようにした。また、間違って送って来たものには色を付けて目立つようにした。しばらく誰も送って来ないようだったら廃止しても良さそうだし、廃止しなくても、受信したら(スパム扱いでなく、)いきなり削除するようにすれば、全く目に触れないので良さそうだ。

 

PS. 検索したら、対処方法として「検索して、他人にも来てないか確認して、(来ていたら)無視する」というのがあったが、全く甘いと思う。それでいいのは、常にセキュリティ対策を怠らない人だけだ。先進的なものだったら、宛先別にメールを作ることもあるだろう。そして、今回のようなアホメールではなく、「本物」かも知れない。単に無視してのん気に構えていたら、どうなるか分かったものではない。特に、古いAndroidスマフォで気を抜いていたら危ないと思うなあ・・・

PS2. スパムメールに書かれているBitcoinのアドレスをブログやSNSなどに書いて公開するのは、余り得策でないと思う。というのは、それを公開したことで、受け取った人の情報がスパム業者に知られる可能性があるからだ。検索したところ、僕のところに来たアドレスは余り出てこなかったので、数人ごとに変えている可能性がある(Bitcoinのアドレスは自分で作れるらしいから、いくらでも増やせる)。大した情報ではないが、そういうのの積み重ねでもっと強力な攻撃ができる(例: SNSに引っ掛けのメッセージを出す、パスワードを調べる)ので、余り安易に扱わない方がいいと思う。まあ、業者はそこまで暇ではないだろうが、そういうこともあり得るってことは分かっていた方がいいかも。 (9/26 20:14)

  •   0
  •   0