![見出し画像](https://assets.st-note.com/production/uploads/images/23588956/rectangle_large_type_2_7dbda25d5c31d7ddca039998280507cd.png?width=1200)
SoundflowerからBlackHoleへ移行する3つの理由
この記事はmacOSで広く使われているSoundflowerの使用をやめて、BlackHoleへ移行を促す記事です。
Soundflowereについておさらい
Cycling'74で開発されていたアプリ。オリジナル版は開発が停止しています。最新のmacOSではインストールできないため、Catalina対応のfolk版があります。
- Soundflowerのオリジナル版
- Soundflowerのfolk版(Catalina 向け拡張機能署名済み)
歴史あるSoundflowerからBlackHoleへ乗り換える理由について説明します。
理由1. Soundflowerは古いアプリである
GitHubレポジトリ上のCommitログを見ると、2008年5月20日に元の開発元Cycling '74'の公式ソース(Soundflower 1.2.1)が登録されています。ソースコードが移されたのがこのタイミングなので、アプリ自体はもっと前からあったと考えられます。
これは想像ですが、古いアプリの設計を最新のOSに合わせて修正し続けていくのは相当な苦労をしていると思われます。
それに対してBlackHoleは「モダンな仮想オーディオドライバー」と説明に載せており、新しいOS向けに作られていることがわかります
理由2. Soundflowerは性能が悪い
SoundflowerとBlackHoleの性能を比べるために、Audacityでループバック録音の遅延計測を行いました。録音方法や構成については前回記事を参照。今回はテストサウンドに1kHzのサイン波を使用しています。
結果。SoundflowerとBlackHoleは同じ遅延時間(174サンプル/サンプリング周波数192kHz)でした。
[Soundflower 2chの遅延性能]
[Soundflower 64chの遅延性能]
あれ?BlackHoleと同じ遅延ならどこが性能が悪いの?その質問はごもっともです。前回記事でBlackHoleの遅延が十分に小さいことを書きましたが、Soundflowerでも同じということはこの遅延はドライバーの性能によるものではないことが考えられます。Audacity自身かmacOSか。これを明らかにするにはドライバーレベルのプログラムを書かないといけないので、ここでは割愛します。
続いて見ていきたいのはドロップアウトの数。ここで差がつきます。ドロップアウトが発生すると録音された音が無音であったりノイズが発生したりします。それを比べます。視覚的にも分かりやすくするために下記の手順で波形の差分を抽出しました。
1. 録音した遅延あり音声の遅延部分を削除し、波形の開始点を先頭に揃えます
2. 録音した波形を上下反転(位相反転)し、元の音声とミックスして別トラックに作成します
3. ミックスした結果、同じ音であれば波形は出ず、音に違いがある部分が波形として現れます
[BlackHoleの波形差分]
ドロップアウト発生: 1回
[Soundflower 2chの波形差分]
ドロップアウト発生: 約3,000回
[Soundflower 64chの波形差分]
ドロップアウト発生: 約230回
結果は一目瞭然ですね。BlackHoleの圧勝です。このドロップアウトの発生数の傾向はテストを繰り返しても変わらなかったので、ドライバーが持つ性能と捉えて良さそうです。
意外な結果としてはSoundflower 2chと64chでも差があること。これまでSoundflowerを使う時は感覚的にチャンネルの少ない2chを選んでいたのですが、もしかすると64chの方が性能が良いのかもしれません。
理由3. BlackHoleで同じことができる
最後の理由はずばりそのままなのですが、BlackHoleでSoundflowerが提供することはできてしまうんですね。その上、理由1と2も合わせて考えると、あえてSoundflowerと使い続ける理由はないかなと。
今使っている限りは仮想オーディオドライバーに相性は見当たらないので、あっさり乗り換えても苦労する点はないと考えます。
まとめ
SoundflowerからBlackHoleへの移行の勧めを3つの理由を挙げて解説してみました。自分の利用用途ではSoundflowerにこだわることは何もなかったのですぐに乗り換えました。むしろSoundflowerでないといけない理由をご存知の方は是非コメントください。
macOSで新規に仮想オーディオドライバーを導入する方は迷わずBlackHole推奨します。Soundflowerを使っている方は前回記事にアンインストール方法を記載していますので参考にしてください。
有償、無償問わず、他にもっと良いツールやドライバーどがあれば教えてもらえると助かります。
(参考)過去のツイート
BlackHoleとSoundflowerの機能比較検証中。
— Shion Tanaka (@tnk4on) April 21, 2020
ループバックの遅延テストでは、Soundflower 2ch/64ch共に174サンプルの遅延(Fs:192kHz)
BlackHoleと同じやり方で同じ結果ということは実はどちらもゼロレイテンシーで、この遅延はAudacityまたはOSそのもののなんらかの値を計測している可能性。 pic.twitter.com/d5bmhpPimM
大きく異なるのがドロップアウトの数。
— Shion Tanaka (@tnk4on) April 21, 2020
10秒間のループバック録音の内、BlackHoleが1回発生程度に対し、Soundflowerは2ch:約3,000回、64chは約230回と大きく性能に差が出た。
キャプチャは録音したトラックを位相反転し、ミックスして波形の差分を取り出したもの。 pic.twitter.com/vAO62kVh8s
バッファゼロ、レイテンシー補償ゼロとかなり厳しい録音条件の元、同条件でこれだけ差がつくとは思わなかった。
— Shion Tanaka (@tnk4on) April 21, 2020
やはりSoundflowerは作りが古いアプリのせいだろか。
特にSoundflowerの2chと64chの差が大きい。感覚ではch数の少ない2chの方が性能が良い気がするがどうも違う模様。 pic.twitter.com/5rMQ7m7Aob
結論。特別な理由がなければSoundflowerをやめてBlackHoleへ移行すべし。
— Shion Tanaka (@tnk4on) April 21, 2020
インストールは必要だがチューニング不要でこの性能。現時点でmacOS用のフリーの仮想オーディオドライバーはBlackHoleがトップ。
この記事が気に入ったらサポートをしてみませんか?