見出し画像

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の遅延性能]

画像1

[Soundflower 64chの遅延性能]

画像2

あれ?BlackHoleと同じ遅延ならどこが性能が悪いの?その質問はごもっともです。前回記事でBlackHoleの遅延が十分に小さいことを書きましたが、Soundflowerでも同じということはこの遅延はドライバーの性能によるものではないことが考えられます。Audacity自身かmacOSか。これを明らかにするにはドライバーレベルのプログラムを書かないといけないので、ここでは割愛します。


続いて見ていきたいのはドロップアウトの数。ここで差がつきます。ドロップアウトが発生すると録音された音が無音であったりノイズが発生したりします。それを比べます。視覚的にも分かりやすくするために下記の手順で波形の差分を抽出しました。

1. 録音した遅延あり音声の遅延部分を削除し、波形の開始点を先頭に揃えます
2. 録音した波形を上下反転(位相反転)し、元の音声とミックスして別トラックに作成します
3. ミックスした結果、同じ音であれば波形は出ず、音に違いがある部分が波形として現れます

[BlackHoleの波形差分]
ドロップアウト発生: 1回

画像3

[Soundflower 2chの波形差分]
ドロップアウト発生: 約3,000回

画像4

[Soundflower 64chの波形差分]
ドロップアウト発生: 約230回

画像5

結果は一目瞭然ですね。BlackHoleの圧勝です。このドロップアウトの発生数の傾向はテストを繰り返しても変わらなかったので、ドライバーが持つ性能と捉えて良さそうです。
意外な結果としてはSoundflower 2chと64chでも差があること。これまでSoundflowerを使う時は感覚的にチャンネルの少ない2chを選んでいたのですが、もしかすると64chの方が性能が良いのかもしれません。

理由3. BlackHoleで同じことができる

最後の理由はずばりそのままなのですが、BlackHoleでSoundflowerが提供することはできてしまうんですね。その上、理由1と2も合わせて考えると、あえてSoundflowerと使い続ける理由はないかなと。

今使っている限りは仮想オーディオドライバーに相性は見当たらないので、あっさり乗り換えても苦労する点はないと考えます。

まとめ

SoundflowerからBlackHoleへの移行の勧めを3つの理由を挙げて解説してみました。自分の利用用途ではSoundflowerにこだわることは何もなかったのですぐに乗り換えました。むしろSoundflowerでないといけない理由をご存知の方は是非コメントください。

macOSで新規に仮想オーディオドライバーを導入する方は迷わずBlackHole推奨します。Soundflowerを使っている方は前回記事にアンインストール方法を記載していますので参考にしてください。

有償、無償問わず、他にもっと良いツールやドライバーどがあれば教えてもらえると助かります。

(参考)過去のツイート


この記事が気に入ったらサポートをしてみませんか?