今回は、DTM環境についての記事です。
ほとんどの人にとって、有益な情報ではないと思いますが、自分としては画期的なことなので、記事にまとめておきます。
2022年秋現在の僕のDTM環境は、3年前に防音室を作った際に、併せて買い替えたものです。その詳細はこちらの記事を見てください。
メインの音源としてハードシンセ(YAMAHA MODX)を使っています。この楽器、オーディオインターフェース機能を持っていて、出音をCubaseにデジタルで直結することが可能です。
この時同時に、念願の多入出力のオーディオインターフェースRME Firefaceも購入しました。
マイク、ギターなどの入力やKemperでのリアンプ作業をいちいちつなぎ変えることなく行うためです。もちろん、A/D変換の音の良さや、レイテンシーの少なさなど、MODXのオーディオインターフェース機能とは格段の性能差があります。
ですが、このせいで、MODXの音をデジタル接続することができなくなってしまいました。Windowsでは複数のオーディオインターフェースを同時使用することができないからです。MODXの出力をFirefaceにアナログ接続していました。
まぁFirefaceのA/D変換は優秀なので、音質的には遜色はないのかもしれません。が、オーディオインターフェース8入力のうち2入力を消費してしまいますし、そもそもデジタルな楽器なのにアナログ接続している、ということが非常に残念なことです。一番のデメリットは、MODXのボリュームつまみを、おいそれと触ることができないということです。
3年前の記事にも、せめてMODXにSPDIF出力でもあったらなぁ、と書きました。まぁ同期の問題とかいろいろめんどくさいんでしょうけど。
先日、カミさんから、自分のPCで「Windowsの音がうまく録音できない」と相談をうけて調べていました。これ、PCオンボードのサウンドデバイスが生きている(オーディオインターフェースの電源を入れない)状態で「Realtek Audioのステレオミキサー」をサウンド入力の規定デバイスにすればよいのですが、なぜか失敗するのです。
録音ソフトはSound Forge Audio Studioというやつですが、バージョンが9.0(2007年)と恐ろしく古い奴です。紆余曲折あったのですが、結果的にこれを買いなおし、バージョン16にしたらあっさり解決しました。
ちなみに僕のPC環境では上記のFirefaceにループバック機能があるので最初から問題はなかったです。やはり高価な製品は違います。
えーっと、説明が回りくどいんですが、この問題の紆余曲折中にあれこれ検索していて、Voicemeeterというアプリに出会ったんです。
このVoicemeeterというソフト、フランスの会社が開発したもので、無料でダウンロードでき機能制限なく使えるのですが、気に入ったら募金してね、という実におおらかな姿勢です。北風と太陽みたいなものでしょうか。
どうも、YouTubeなどでゲーム実況ライブ配信をするような人の間では、知る人ぞ知る神アプリみたいですね。
カメラではなく、パソコンの画面を配信する際に使うのがOBSというアプリ。で、オンラインゲームをする際に仲間うちでボイスチャットをするのに使うのがDiscord。Voicemeeterは、ゲーム音、マイクの自分の声、Discordから来る仲間の声、そのほか諸々のPC上の音をOBSに渡す前に音量調節する仮想ミキサーアプリのようです。
Voicemeeterの入出力にはMME、Direct-X、KernelStreaming(以下KS)、WASAPIなどWindowsの歴代のインターフェースドライバやASIOによる接続が可能となっています。これすごい。
ほぉ、MODXも選べるのか・・・
ここで、このソフト、3年の懸案の解決策になるのでは? と思いつきました。
Voicemeeterを単なるインターフェース変換として使うということです。
ここでちょっと回り道になりますが、Windowsのサウンドドライバ、当然すべてデジタルではありますが、PC Audio愛好家のコミュニティによりますと、MME、Direct-Xはカーネルミキサーなるソフトを経由するため、音が悪く、使ってはいけないとされています。
いや、正確には、使ってはいけないのではなく、演算によって元のデータとは違う数値になってしまうので、原音に忠実(Bit Exact)ではない、デジタルを追求するならば選択すべきではないということらしい。
どうすればよいかというと、
MODX -> Voicemeeter -> Fireface -> FirefaceLoopback -> Cubase
という風にVoicemeeterを使って信号を通せば、MODX -> Cubaseのデジタル接続が可能になるはず。
この仕組みの特徴は、MODX以外の音には全く影響を及ぼさないことです。マイクやギターのレイテンシーは増えません。
逆に、MODXの音は長い長い経路をたどるため、デジタルでBitExactとはいえ、60mSecほど遅延します。
僕がキーボード弾きで、キーボードを演奏して録音する人だったら、60mSecのレイテンシーは致命的で、採りえない方法だと思います。この遅延ですが、Cubaseの外部インストゥルメント定義で補正可能なため、全く問題ありませんでした。要するに、CubaseのPlay/Rec時にMODXに対しては60mSec早めにMIDI信号が発せられるということです。
Voicemeeterで調べたところ、MODXの音声/MIDI接続ドライバである「Yamaha Steinberg USB Driver」はASIO、WASAPI、KSのインターフェースを有しているようです。なので、Voicemeeter入力してはASIOでMODXをつなぎたいところですが、VoicemeeterとしてもASIOドライバは1つしか選択できないようです。実験の結果、WASAPIを選ぶとなぜかエラー、なのでKS接続となりました。
2曲前のYesのTime and a Wordの制作からこの接続にしているのですが、音の違い・・・わかりませんよね。はっきり言って自己満足です。が、MODXのボリュームつまみをいじってはいけない呪縛から解放されたのが大きいです。はい。
記事の冒頭で、この記事はほとんどの人にとって役に立たないと書きました。
・いまどきのDTMで外部ハード音源をメインで使っている
・そのハード音源がオーディオインターフェース機能で音と出力できる
・それとは別に使っているオーディオインターフェースがループバック機能を備えている
この条件に当てはまる人は、相当レアなのではないかと思います。
改めて制作系統図を描くとこんな感じになります。
さて、
長々と書きましたが、Voicemeeterはミキサー、EQ、Windowsアプリからの音の入力ルーティングなど実に多機能なソフトです。本来の機能ではない用途でこそっと使わせていただきました。なので、このシンプルな機能ならば、それに特化したソフトを自作したほうが無駄がないのではないかと思い、フリーのPC AudioライブラリであるPortAudioの使い方を研究中です。
ライブラリの使い方というより、そもそもC++の使い方とかが手探りなので、だいぶ時間がかかりそうですが、ぼちぼちやっていきますよ。