処理の高速化 - フラチキさん
2020/10/18 (Sun) 22:55:50
CPUのAVX拡張命令を使ったり、メモリアクセスパターンを見直したりしましたが、達成できた性能はサンプリングレート192kHzでカットオフ80Hz、-80dB/Octには程遠かったです。
演算量を計算してみましたが、CPU1コアの論理性能に近い性能を出しても、あと4倍以上の高速化が必要でした。
今時間軸空間でフィルター処理してますが、このパラメータでの動作を実現するには、信号に離散フーリエ変換かけて、スペクトル空間での処理が必須のようです。
音質への影響が未知数ですが、これもやってみます。
Re: 処理の高速化 - Y.K
2020/10/20 (Tue) 01:45:48
ワタシにはチンプンカンプンな解説ですが、頑張っておられることは伝わりました!(笑)
9.5.2を試してみましたが、9.5では全然ダメだった192/24の80Hz/48dB/octで音になっているようです(ただし、アマゾンプライムビデオの再生で時々瞬間的に音切れあり)。ちなみにツイーターとスコーカーのクロスは2800Hzです。CPUはi5 2400@3.1GHzです。
-24dB/octより音質的には良くなったようです。
話横にそれますが、機能的に各帯域ごとのレベル調整は必須だと思います。私のようにAVアンプ側にCH毎にレベル調整機能がある場合はいいのですが、例の8chDACのような機材ではウーハー、スコーカー、ツイーターの能率差の調整ができません。出力減衰率を3つに分けるとかしていだけるといいのでは?
Re: 処理の高速化 - フラチキさん
2020/10/20 (Tue) 10:05:36
チャンネル毎のレベル調整は実装しました。ご要望頂いていた設定の保存と復元を、プリセット機能として追加したらリリースしたいと思ってます。
ちょうどダイアログ右下あたりが空いているので、ここにUI追加しようかなと。
Re: 処理の高速化 - Y.K
2020/10/20 (Tue) 20:38:30
ご苦労さまです!楽しみにしています。
これで高速化も果たしたら、素晴らしいアプリになりますね!(音質が悪くならないことを祈ります)
Re: 処理の高速化 - Y.K
2020/10/20 (Tue) 21:15:48
設定の保存と復元はUIいらないと思いますよ。
2WAYか3WAY選んだら、前に設定していたパラメーターを復元するだけでいいと思います。
UIスペースはリクエストした機能で言えば、「FIRフィルターによる低音増強機能」が欲しいところですね。
(さらに処理は重くなりますが:笑)
「起点周波数指定(下限は40Hzかな?)」と「1~2oct」の選択を置く。
例えば、起点周波数=80Hzで1octを選ぶと、80Hzから40Hzまで+6dB漸増していって、それ以下は+6dBのまま。
起点周波数=80Hzで2octを選ぶと、80Hzから20Hzまで+12dB漸増していって、それ以下は+12dBのまま。
十分に強力な磁気回路を持つウーハーは理論的には周波数が低くなるにつれて-6dB/octで能率が落ちていくそうです。
普通の家庭ではウーハーを可動振幅限界まで使うことはまずありませんから、その能力を重低音再生限界を伸ばすことに使えます。
「16cmスピーカーで38cmなみの重低音再生」
みたいな感じで使えるわけです。
これを通常のイコライザでやると位相がぐちゃぐちゃになって変な音になってしまいますので、FIRフィルターならではの機能になると思います。
FOOBAR2000のチャンデバプラグインでは起点の下限が80Hz(終点が40Hzです。起点40Hzまで欲しかった)で1oct限定の機能として付いています。起点40Hzで2octだとかなり負荷も大きいんでしょうかねえ。あと-12dBも設定しちゃうと普通の帯域のDレンジが落ち過ぎになるようなら1oct固定でもいいのかもしれません。
またまた、好き勝手言ってすいません(笑)。
Re: 処理の高速化 - Y.K
2020/10/20 (Tue) 21:26:39
捕捉しますと、上記の機能はfoobar2000チャンデバプラグインでで「低音増強」の機能を使っている人が、Pureliserで他のアプリで音を聴いたら「低音が痩せてしまう」という問題が発生するからです。
せっかくサウンドデバイス排他機能を持ったプレーヤーアプリとの連携機能を持っているので、音質面でもシームレスに使えたら素晴らしいなという理由でリクエストいたしました。
Re: 処理の高速化 - フラチキさん
2020/10/20 (Tue) 23:26:08
プリセット機能は8割方実装進んだので、このまま完成させます。出力先(サウンドデバイスやドライバ)が複数あって素早く切り替えたいとか、設定の違いを聴き比べるといった使い方があるなーと思いまして。
低音の増強は、それを実現するフィルターの設計から調査する必要があるので、後になると思います。純粋に数学です。
何を追加するにも、まずは離散フーリエ変換用いた畳み込みの高速化をやらないと、実用にならないという現実もあり。
個人的には低音ブーストと同時に、等ラウドネス曲線の補正フィルター入れたいです。
Re: 処理の高速化 - フラチキさん
2020/10/20 (Tue) 23:35:23
あと、フィルターの設計に関して、数式の変形や浮動小数点という有限精度の計算で波形をいじくりまわしていると、これはとてもピュアオーディオと言える代物ではないな、という実感がありますね。
Windowsのミキサーがビットパーフェクトでないと言う文句がありますけど、FIRフィルターなんてもっと酷いですよ。www
Re: 処理の高速化 - フラチキさん
2020/10/20 (Tue) 23:52:07
もう一個、ウーファーユニットの能力を引き出す方法として、最も理にかなっているのはヤマハのA-YSTだと思ってます。これはパワーアンプとユニットの振動系をセットで考えて、ボイスコイルからの逆起電流で効率が落ちるところを、適切なフィードバックで逆起電流に打ち勝つという、アンプのあるべき姿と感心しています。
たまにはオーディオ好きっぽい会話も。
Re: 処理の高速化 - Y.K
2020/10/23 (Fri) 00:09:16
>等ラウドネス曲線の補正フィルター入れたいです。
だんだん高機能になっていきますね。最終的にはマイク測定して部屋特性の補正やユニットの位相f特までフラットに補正する機能まで付いたりして。
どうせなら、16chまでのサウンドデバイスまでサポートして、オブジェクトオーディオの7.1.4ch全チャンネルデコード、フロント3ch分は3WAYチャンデバ対応まで・・・冗談です(笑)。
>これはとてもピュアオーディオと言える代物ではないな、という実感がありますね。
そこらへんは理解力がついていきませんが、チャンデバ部分については、とにかく峻厳なカットオフ特性さえあれば使い物になると思います。
デジタルチャンデバ使ってるのに、アナログLCフィルターを模して-6dBとか-12dBとかで設定している人が多いように思いますが、愚の骨頂だと思います。位置の異なった2つの異なったユニットから「同じ音」を出さないようにするための「デバイダー」なんですから。
繋がりの良い(できればウーハーとツイーターが同じ振動板素材)同軸ユニットで可能な限り丁寧で峻厳なチャンデバを使うのが「正しい」ように思います。
素人考えでは、クロスポイントの乱れはFIRの方が無難なんじゃないかと。
>ウーファーユニットの能力を引き出す方法として、最も理にかなっているのはヤマハのA-YSTだと思ってます。
私も昔、YAMAHAのYST-1000だったかな?持ってました。とにかくお手軽に超重低音を出せますね。
ただ、残念ながら、アンプとスピーカーがペアリングされてしまって「コンポ―ネント」としては自由度が低いのが欠点です。
また、すべてのホルムヘルツ共鳴箱を使った方式に言えることなんですが、
「ユニット前面から放射される音とポートから出る音が相互干渉してしまう」
という欠点を持っています。
理論としては、ポート共鳴中心周波数では、二つの音は「同相」になりますが、そこから離れるにしたがって位相がズレて差分周波数が「唸り」という「雑音」になってしまうのです。
ですから「正しい低音」を出すには、ユニット背面の音は完全に封殺(無限大バッフルが理想)し、ユニット前面からの輻射波のみにする。磁気回路が強力で振幅空気容量の大きなユニットをダンピングファクターの高いアンプで駆動、それで不足する部分はアンプ制御で増幅。
が現存するテクノロジーで可能な一番マトモな方法だと思います。
これでも、能率が下がっていく部分は位相が回りますが、音源は一つですので「唸り」は発生しませんし(実際はステレオなので発生しますが)、変化量もシンプル定量的になって来ますので、位相やF特や逆起電力の補正もしやすいというメリットがあると思います。
LCネットワークやアナログチャンデバしかなかった昔はこういう処理をしようとしても「夢物語」だったけど、やっと安価な民生品のお手軽な操作で、近いところまでできるようになってきたという感じでしょうか?
もっと言えば、PURELIZERがその「夢物語」の先端を走っているソフトなのですね!
Re: 処理の高速化 - フラチキさん
2020/10/24 (Sat) 01:02:04
同感です。バフレフ式は、仕組みとその効果は面白いとは思いますが、やはり無理矢理感があって、原音再生という観点からはどうかなーと思っていました。
FostexのCWシリーズがあえて密閉型なのには男気を感じています。次はこれ使いたいと思ってました。
次のリリースはしばらく先と申しましたが、検証目的で作った機能が意外と面白かったので、近いうちにもう一回リリースすると思います。