スキップしてメイン コンテンツに移動

Spotifyとローカル音源とラウドネスの話

おことわり
私は音響諸々についてド素人です。
したがって、用語の使い方や諸々への理解はガバガバです。
あしからず。



Spotifyとローカル楽曲

Spotify Premiumを使い始めてから、今までシコシコ集めてきたCD音源というのをほとんど聴かなくなってしまった。
というのも、聴きたい曲は“粗方”揃ってるし、強力なサジェスチョン機能や有志制作のプレイリストなどがあまりにも快適だからである。
当初は僕の“プライマリー”である水樹奈々が入っていないなど色々としんどさがあったが、今や水樹奈々も全曲入り、いよいよSpotifyで困らないというのが現状である。
……とはいえ聴きたい曲が全部Spotifyにあるわけではないので、聴くのを諦めるか聴くために何か手段を講じる必要がある。

※つい先日までは大人しく諦めてたのだが、ここ最近はちょっとそういうわけにも行かなくなった。冴えカノFineのせいでサブスク入りしてない冴えカノ関連楽曲(春奈るな・沢井美空・妄キャリの各曲は入ってるけどキャラ名義のものが皆無)を聴きたくなってしまった
 
手段はいくつかあるが、まず1つがSpotifyと従来のプレイヤー(PCならFB2K、携帯ならPOWERAMP)を併用するというもの。
これは確実ではあるが、とてもスマートじゃない。
僕は基本的に音楽聴くときBGM的な流し方が多いので、プレイヤーが別れてると横断的に再生されないし(当然)、プレイヤーをこまめに入れ替えるなんてこともしないので、結局片方しか聞かなくなるのである(その結果Spotifyしか聞かなくなった)。

そして2つ目がSpotifyにローカル音源を放り込むというもの。
Spotifyにローカル音源をインポートする機能があることは知っていたが、使い始めにちょっと試してみて色々と不便だったのもあり、ずっと無いものとして過ごしてきた。
しかし、1つ目の手段(プレイヤー併用)を使いたくない以上、こちらの手段でなんとかするしかないのである。

Spotifyのローカル音源インポートの問題点は、インポートした音源を全デバイスに配信(?)することができないことである(Apple MusicとかGooglePlay Musicはできるらしい)。
つまり、PCと携帯それぞれに音源を放り込んで、それぞれのアプリからインポートを掛けないといけない――とちょっと前までは思い込んでいた。
実は一手間二手間掛けることによって、自動ではないもののローカル音源を他デバイスに転送?配信?できるようである。

手段としては
  1. PCなど母艦になるデバイスで専用のフォルダを作り(作らずにMusicフォルダ全部放り込むとかでもいいけど曲数増えるとカオスになるので非推奨)、そこにSpotifyに入れたいmp3データを放り込む
  2. Spotifyアプリから1.のフォルダを指定し、インポートする
  3. (PC版の場合)左メニューのMY LIBRARYの中に「ローカルファイル」というのが現れるので、そこから全曲を選択し新しく作ったプレイリスト(同期用に使う)に放り込む
  4. 携帯など他デバイスでSpotifyアプリを開き、プレイリスト一覧から3.で作った同期用のプレイリストを選択、「ダウンロード済み」のスイッチをONにする
  5. すると(同一ネットワークだと直接、そうじゃないとSpotifyの鯖経由?)で音源が降ってくる
といった感じ。
まあここまではググったら出てきたので試したらその通りできたというだけの話。

もっとも、ローカル音源の扱いはやっぱりイマイチで、何故かPC版からだとLikeができない(携帯からはできるのに……)とか、ローカル音源はアーティストやアルバムごとに表示ができない(前出同期用プレイリスト内でソートとフィルタリングはできるのでそれを駆使するしかない)などなど、謎の挙動は多々ある。
けど、とりあえずサブスク音源とローカル音源を混ぜて再生することはできるのでよしとする。


ラウドネス問題

ここで新しい問題が出てくる。
音量の問題である。
音圧戦争なんてのが開戦してからかれこれ10年以上経つようだが、最近動画配信や音楽配信の各サービスではラウドネスノーマライゼーションというのが流行っているらしい。
対象の音源をサービス側で一括して音量を揃えちゃおうという奴である。

Spotifyにもその機能があり、設定画面からONにしておく(デフォルトでON)と、-14LUFSだかにノーマライズされて再生される。
日本で流通してるCDは大体ラウドネスがヤバいことになってるのでほとんどの曲はCD状態より音量が下がって再生されることになる。
これはこれでいい機能なんだが、ローカル音源を混ぜたときに困るのである。
そう、SpotifyのノーマライゼーションはSpotifyが配信する音源にしか適用されないのである。
つまり、無加工のローカル音源を混ぜるとかなり音量が違う。
いちいちプレイヤーのボリュームを弄りたくなるレベルで。
これではせっかくサブスク音源とローカル音源をシームレスに聞けるようになったのに意味がない。


音量を揃えよう

というわけでなんとかしようと色々と試してみた。

ラウドネスノーマライゼーションと聞いてまず思い浮かぶのがReplayGainである。
FB2Kにも内蔵されており、CD音源でラウドネス管理するならまずこれになるだろう。
ちょっと調べてみると、Spotifyのノーマライゼーションも技術的にはReplayGainを使っているらしい。
というわけで、

  1. Spotiy用の音源にReplayGainのゲイン情報を書き込む
  2. 1.でダメだったら音源自体をノーマライズしてしまう(どうせ専用フォルダに隔離しているので非可逆な操作でも困らない)

を試してみた。
結果としては、1.はダメだった。
どうやらローカル曲の場合はタグにゲイン情報が入っていようがそれを読んでくれはしないらしい。
そして2.はなんかローカル音源の方が音量が小さくなる……。
どうやらターゲットとなるゲインがズレてるらしい。

というわけでさらに色々調べると…

  • ReplayGainでの基準ゲインは89dB≒-18LUFSである(FB2K上の設定画面でもそうなってる)
  • 前述の通りSpotifyにおける標準ラウドネスは-14LUFS

つまり上の2.でローカル音源の方が小さく聞こえてたのは、-14LUFSにノーマライズされたSpotifyサブスク音源に対して、自前ノーマライズした音源は-18LUFSになってたから、ということらしい。
そして、|1dB|=|1LUFS|(この書き方はとてもよくない気がする……)らしいので、(-14LUFS)-(-18LUFS)=4LUFS=4dB(この書き方もとてもよくない気がする)であり、FB2KのReplayGainでノーマライズするときに設定値を89+4=93dBにすれば音量が揃う……はず。

そして検証の結果、上記の通りReplayGainで93dBにノーマライズした音源とSpotifyのサブスク音源で聴感上の音量を(大体)揃ってることを確認できた(同じ曲で比較してないからアレだけど)。

ここまで書いといてなんだが別にSpotifyのノーマライゼーションをOFFにすれば大体問題なくなるんだけどね(途中で気付いた)。
せっかくなので当面は93dBノーマライズの方向性で行くけど……。

というわけでSpotifyにローカル音源を放り込んだときの話。
では。


参考




このブログの人気の投稿

DPC Latencyと音飛び

ここ数日すさまじくPCが不調。 WindowsUpdateを当てたのが原因な気もするし、そもそもハードウェアが腐ってるってのも十分考えられる。 どうしたものだか。 音飛びについて PC使ってるだけで凄まじくストレスが溜まっていくので早急に改善したい(むりそう)。 WASAPI排他にしてあるFB2kに関してはUSBDACをハブに繋ぐのをやめたら結構改善した気がするけど、肝心のDPC Latency自体はまったく改善していない。 なので、WASAPIにならないYoutubeとかニコニコの場合は容赦なくブチブチになる。 ニコニコで動画を再生(「オs」は恐らく「μs」の文字化け) というか動画再生自体が負荷なので動画が再生するだけで音はブチブチ。 でもVLCで動画再生する分には大丈夫そうなのでこの辺は良く分からない。 どちらにせよニコニコがまともに見れないのはとても不快なのでなんとかしないといけない。 ちなみに動画を観ているタブ以外を観てる(=BGで再生)と音は普通になるので、どうやらCPU負荷とGPU負荷あたり関係しているらしい。 DPC Latency CheckerとLatencyMon USBDACの音飛び関連でググると DPC Latency Checker (以下DPCLC)と LatencyMon を 紹介しているページ を見つけたので参考にしつつ2つを入れてみた。 (LatentyMonのDLページにはいかにもなメールアドレス入力欄があるけど入力しなくてもDLはできるので注意) 最初のスクショはそのDPCLCのものだけど、まぁ見るからに酷い。 一般的にはグラフが黄~赤になるあたり(=1000μs~2000μs)を超えていると環境を見直しましょうって感じらしいけど、僕の場合桁が違う。 実際グラフが赤くても4桁μsぐらいならサウンドは問題なく再生されるみたい。 DPCLCで表示されるレイテンシは全体のもの(?)なのに対して、LatencyMonでは各ドライバごとのレイテンシを表示できるらしい。 選択してある部分のHighest executionの値が大変なことになっている。先ほどのサイト曰くここの値は普通1.0を超えないらしい。 このHighest execution(ミリ秒)...

「LR/Mogrify 2」+「LensTagger」でLightroomから撮影情報の透かし入り写真を書き出す

Lightroomには書き出し時に透かしを入れる機能がある。 この機能はいわゆる著作権情報や「SAMPLE」みたいなのを入れるためのもので、 入れる文字列は固定になってしまう。 Twitterとかに写真上げるとき、撮影情報の透かし入れれるとかっこいいよなあとは昔から思ってて、 Lrでスッと出来ればいいのにってずっと思ってた。 有料の拡張入れれば出来るのは前から聞いてたし、つまりは拡張入れないと出来ないわけで、 めんどくせっつってずっと忘れてた。 先日急にその事を思い出し、調べてみると透かしに動的なデータを流し込む拡張は 「 LR/Mogrify 2 」というらしい。 最低3.5EURの寄付でフル機能が使えるタイプのカンパウェア。 インストールは若干メンドくさいが、 http://rihla.hatenablog.com/entry/2017/11/01/230616 http://www.twinklestars.net/entry/2015/06/29/173456 あたりを参考にさせていただいた。 で、僕はニコンのカメラを使ってるわけだが、 ニコン機で撮った写真のEXIFに残るレンズ名は非常に儚い。 純正レンズだろうが非純正レンズだろうが「○○mm f/××」という簡素にも程がある情報しか残らないのである。 150-600Sの場合がこれ。 このままだと、LR/Mogrify 2を使ってもこの貧相なレンズ名が透かしとして入るだけで、機材ドヤリング用としてはほとんど意味を成さない。 というわけで、EXIFを改竄する必要がある。 それに使うのが「 LensTagger 」だ。 これはフリーで、LR/Mogrify 2と同じく、Lrの拡張機能にあたる。 随分前になぜか導入だけしてずっと使ってなかった。 http://pentax-memo.brassworks.jp/memo/lightroom-lens-edit/ 導入&使用法はこのあたりを参考にした。(と思う) これは本来、非CPUレンズ(レンズ名が「0mm f/0」になる)の写真や、スキャンしたフィルム画像にレンズ情報を入れる為の拡張だが、 焦点距離や開放F値とは別にレンズ名自体も変更できるのでその機能を使う。 両方とも導入がメンドくさい...