藤本健のDigital Audio Laboratory

第1044回

Spotifyが「排他モード」実装!ロスレスのビットパーフェクト再生は本当か試してみた

Spotifyは、Premiumユーザー向けにロスレス配信を行なっている

昨年9月、ロスレス配信をPremiumユーザー向けに行なう旨を発表した音楽配信サービスの「Spotify」。どこかで検証しようと思っていたところ、先週17日に新たにWindowsデスクトップ版向けに“専用モード(Exclusive Mode)”をベータ版として実装したことが発表された。

この専用モードでは、最大で24bit/44.1kHzでのビットパーフェクトを実現できるという。実際本当にそんなことができるのか? 実験してみたので、その内容をレポートしてみよう。

Spotifyに待望の「排他モード」が実装されたぞ!

筆者がSpotifyの専用モードに関する情報を知ったのは、3月19日のこと。

編集担当から、姉妹媒体・窓の杜のニュース(Windows版「Spotify」アプリに音質劣化なしの「専用モード」が追加)のリンクとともに、次回ネタにどうか?というメールが届いたのだ。

確かにこれはちょっと面白そうなので、さっそく試すとともに、ビットパーフェクトが本当に実現できるのか実験に取り掛かってみることにしたわけだ。

ニュース記事によれば、Premiumユーザー限定とのことだが、筆者も普段Premiumユーザーとしてサブスクしているのでこの点はクリアだ。

一方で、今回の専用モードに関しては“WindowsのSpotifyアプリ限定”とのこと。筆者は最近WindowsでSpotifyを使っていなかったので、Microsoft Storeでインストール。機能に対応しているのはv1.2.84以降とのことだが、起動してみるとv1.2.85となっているので、これで使えそうだ。

Microsoft Storeで「Spotify」アプリをインストール
バージョンは「v1.2.85」

ところで、そもそも専用モードとは何なのか?

“Exclusive Mode”とあるので、おそらくWASAPIの「排他モード」のことを意味しているものと思われる。

Microsoft版のASIOに相当し、悪名高きカーネルミキサーを経由せずにオーディオ出力できるため、Windowsのシステムによる音質劣化をなくすことが可能になるという意味では大歓迎だ。

これまでWindows版のSpotifyでオーディオ出力する場合は、Windowsのシステム設定にしたがってデバイスが選択される形となっていた。このため、必然的にカーネルミキサーを通ることになり、ここで音質劣化するという問題があった。今回それをバイパスできるようになったようだ。

具体的な設定方法はどうなっているのか。

「設定」を開くと、いろいろな項目が並んでいるが、下のほうにスクロールしていくと「出力」というところがある。

ここが緑で“ベータ版”と表示されており、その下の「デバイス」を見ると「System Default」になっている。つまり、初期設定においては従来と同様Windowsのシステムにオーディオが送られる形になっているようだ。

ここでプルダウンメニューを開いてみると、いま接続されているオーディオのドライバ―一覧が現れる。もう少し正確にいうならWASAPIドライバの一覧がここに出てくるのだ。

試しにここではオーディオインターフェイスの「SSL 2+ MKII」を選んでみると、その下に「このデバイスの専用モードを有効にする」というスイッチが現れる。これが今回のテーマである「専用モード」=WASAPI排他モードというわけだ。

オーディオのドライバー一覧
専用モードを有効にする、というスイッチが表示された

注意書きとして「Spotifyがオーディオデバイスにフルアクセスし、ビットパーフェクト再生が可能になります。この設定をオンにしている間は、一部のコンテンツが再生されない可能性があります。また他のアプリではサウンドが再生されなくなります」と記載されている。

ビットパーフェクトが本当なのかどうかはともかく、まさに排他モードの説明なので、これをONにしてみた。

すると今度は、さらにその下に「このデバイスの音量を強制する」という項目が現れる。ここには「Spotifyの音量を最大に保ち、外部デバイスで音量を調整します」と記載されている。

要するに、Spotifyのアプリでは音量調整はしないで、そのままドライバに渡すぞ、という意味であると思われるので、これもONにする。

一方、この設定画面をざっと見ていくと、音質という項目があり、「ストリーミングの音質」、「ダウンロード」それぞれデフォルトでは「自動」となっている。

これもプルダウンメニューを見てみると、自動においては「接続状況に合わせて音質を調整します(ロスレスを除く)」とある。つまり、自動だとロスレスにはならないようなので、ここでは明示的に「ロスレス」を設定。これでSpotifyもWindowsにおいて高音質に再生することができるようになったようだ。

筆者レーベルの“Spotify配信楽曲”を使ってデータを比較する

これでめでたくロスレス再生の環境が整ったわけだが、聴いてみればすぐにわかるのか?

確かにこの状態で再生してみるといい音だけど、筆者としても「これがロスレスの音だ!」とはまったく断言できそうにない。

そもそも筆者の耳の感度なんていい加減であり、おそらくオーディオ評論家の先生方の耳の性能には遠く及ばない。「いい音だ」と言われたら、すぐにそう思えてしまう適当な耳でしかない。だからこそ、ちゃんと証拠が見える形で比較実験をしたいのだが、どうすればいいのか?

まず最初に考えられるのはS/PDIFのデジタル出力を持つDACやオーディオインターフェイスからSpotifyの再生音を出力し、それを別のデジタルレコーダーで録音し、オリジナルと比較する方法だ。とはいえ、そもそもオリジナルが何なのかがよくわからないのが実情だろう。

でも、ここには筆者だからできる秘策がある。

これまで何度か本連載においても素材として登場させたことがあったが、筆者はDTMステーションCreativeというレーベルを作曲家の多田彰文氏と2人で運営している。そしてここからSpotifyにも流しているアルバムがある。その原本と比較すればいいわけだ。

そのアルバムが小寺可南子さん歌唱の「Sweet my Heart」というものなのだが、ここではその2曲目の「Appreciation 100」という楽曲を使ってみたい。

比較用データをどのようにキャプチャするか?

さっそくS/PDIFを介してデータキャプチャをしようと思ったが、セッティングが結構面倒。しかも以前の連載でもトラブルを多く経験しており、できれば、この面倒な方法は避けたい。

そこで考えたのが、先ほどのWASAPIドライバに渡す際のストリーミングデータを横取りして、PC内でキャプチャしてしまう方法だ。本連載で20年近く前にTotal Recorderというツールを使ったことがあり、改めて調べてみたところ、今も存在するようだ。

いちおうWindows 11でも動作するようなアップデートはされているようだが、ドライバとしては昔のMMEのまま。残念ながら、ASIOやWASAPIなどにも対応しておらず、使えないことが分かった。

何かなかっただろうか……と考え頭をよぎったのは、以前とりあげたVoiceMeeter Bananaだ。ドネーションもしたし、これを使う価値はありそうと最新版をダウンロード&インストール。

改めてSpotifyの設定画面を開いて、[出力]-[デバイス]を見てみると、「スピーカー(VB-Audio Voicemeeter VAIO)」のようなものがいっぱい並んでいることに気が付いた。

試しに一番上を選んで再生してみたが、なんの変化も起こらない。2つ目、3つ目、4つ目……と試すが、まったくダメ。「これは使えないのかも」とあきらめ気分で5つ目を試すと、Voice Meeter BananaのVIRTUAL INPUSに立ち上がってきた。

このチャンネルの出力「A1」をアクティブにするとともに、A1の出力先を先ほどのSSL 2+ MKIIを設定する。

これで実際に音を出すことができたし、Voice Meeter Bananaの録音機能を使ってキャプチャすることもできる。

録音設定において、念のため44.1kHz、16bitに設定されていることを確認の上、「Appreciation 100」をワンコーラス分キャプチャ。保存されたWAVファイルを再生してみると、しっかりと録れていることが確認できた。

ここで試しに、efu氏開発のWaveSpectraを使って今録音した音を解析してみると、しっかりと高域まで音が出ている。これは従来のSpotifyの標準のOggVorbisではなさそうだ。

ちなみに、このWaveSpectra、数年前にefu氏のサイトも消えて入手できなくなっていたが、また新しいサイトが復活してダウンロードできるようになっていた。

ソフトウェアの更新はされていないようだが、長年この連載において活用させていただいているソフトなので、復活したことはありがたいところ。同様にビットパーフェクトを検証するソフトWaveCompareも健在なので、あとで使ってみることにする。

クロスフェードやオートミックス、音量正規化などは全てオフに

ここで、このキャプチャしたwavファイルをSteinbergのWaveLabで開いてみた。

すると、おや? と思うことがあった。なぜか波形が小さいのだ。

CD用にマスタリングしたものをそのまま配信しているので、こんな小さいわけがない。試しにオリジナルを開いてみると、明らかに違う。パッと見で、6dB程度音量が小さい。

ここでふと思ったのは、「Spotifyはラウドネスをー14LUFSとかに調整しているのではないか?」ということ。

普通のCDだと-8~-6LUFSなので、-14LUFSにすれば6dBくらい下がることになる。

「これじゃあ、ビットパーフェクトなんてありえないじゃないか」と思ったところで、改めてさっきの窓の杜の記事を読んでみると、まだ続きが書かれていた。

「クロスフェード」、「オートミックス」、「音量正規化」、「イコライザ―」のそれぞれを無効化することでビットパーフェクトが実現できる、と書かれていた。

改めて、設定画面を見ると、確かにそうした設定があった。

いまの音量の問題は「音量正規化」をこのアプリが行なっているので-14LUFSくらいになっていたということのようだ。これらをすべてオフにすると「音量レベル」というところもなくなるとともに、Spotifyの音量調整のスライダーも無効になった。

この状態で再度、1曲丸ごとキャプチャしてみる。そして周波数リアルタイム分析をスペクト露メーターからスペクトスコープにしてほぼ同じ瞬間で画面キャプチャし、オリジナルとSpotifyからのキャプチャを比較してみたのがこちらだ。

オリジナル
Spotify

これを見ると、ほぼ同じになっているといっていいようだ。もっとも、手動で画面キャプチャしており、正確に同じ位置ではないため厳密な比較はできないが。

そして、WaveSpectraで比較したのがこちら。これを見てもほぼ同じであることが分かるだろう。

オリジナル
Spotify

完全ではない可能性はあれど、非圧縮のほぼオリジナルデータ

ここで、いよいよビットbyビットでの比較だ。前述のWaceCompareを使って比較してみたい。

というわけでオリジナルと、いまのキャプチャを比較しようとしたら、なぜかキャプチャしたwavファイルが「Not Wave file」と表示されてしまい、比較ができない。

このファイルをプレイヤーに読み込ませれば再生できるし、WaveLabでも読み込めたし……と思って、ふと気づいたのが先ほどのVoice Meeter Bananaの録音設定画面。

よくみると、ファイル形式がBWFになっていた。これを改めてWAVに変更したら、うまく比較することができるようになった。その結果はこちらだ。

Voice Meeter Bananaの録音設定画面で「WAV」に変更
比較結果。「相違がありました」と表示されてしまった

残念ながら完全に違い、一致点を見いだせないという状況だった。やはり、なんらかの変化があったようではある。

しかし、これの原因がどこであるかの特定は難しそうではある。確かに筆者はオリジナルデータを持っており、それを入稿して配信されているが、間にアグリゲーター業者を介しているため、そこが何かをいじった可能性も否定できない。

アグリゲーター業者が入っていることもあり、SpotifyだけでなくAmazon Music、LINE Music、Apple Music……とさまざまな配信サービスに提供しているから、何かのコンバーターが入ってしまっている可能性もあるだろう。もちろん、Spotifyが受け取ったデータをFLACに変換する際に、何らかの処置をしている可能性もある。

そういう意味で厳密にビットパーフェクトではなかったが、波形の形や、周波数分析結果からはほぼ同一のデータであることが見えるので、完全ではない可能性はあるけれど非圧縮のほぼオリジナルのデータである、と言っていいのではないだろうか。

なお、もう一つ今回検証できていなかったのが、24bitというビット深度のデータが本当に届いているのかという点だ。これについてはオリジナルデータを持っていなかったこと、16bitデータと24bitデータの比較がうまくできなかったことなどから今回は見送った。

もし、これらの課題について解決方法などが分かってきたら、改めて取り上げてみたいと思う。

藤本健

リクルートに15年勤務した後、2004年に有限会社フラクタル・デザインを設立。リクルート在籍時代からMIDI、オーディオ、レコーディング関連の記事を中心に執筆している。以前にはシーケンスソフトの開発やMIDIインターフェイス、パソコン用音源の開発に携わったこともあるため、現在でも、システム周りの知識は深い。 著書に「コンプリートDTMガイドブック」(リットーミュージック)、「できる初音ミク&鏡音リン・レン 」(インプレスジャパン)、「MASTER OF SONAR」(BNN新社)などがある。またブログ型ニュースサイトDTMステーションを運営するほか、All AboutではDTM・デジタルレコーディング担当ガイドも務めている。Twitterは@kenfujimoto