多機能で音質的に優れているサウンドフォーマット変換・アプリのXLD(X Lossless Decoder)は、通常のGUI版の他に、OSXのターミナルからサウンドファイルを変換できるコマンドライン版(CLI)があります。
コマンドライン版を使ってハイレゾ音源からAAC変換を行う方法をご紹介します。
過去記事にある様に、ハイレゾ音源を高音質でAAC変換する時は、先ず高域減衰を防ぐためにハイレゾ音源(ex 192khz)を48khzにダウンサンプリング変換した後にAAC変換する必要があります。
そこで、コマンドライン版を使ってハイレゾ音源を、①ダウンサンプリング変換する手順と②AAC変換する手順について説明します。
ターミナルについて・メモ
ターミナルは、Mac(OSX)に標準装備されているアプリで、ターミナルウインドウに、コマンドラインを入力すると、命令に従って処理・実行を行うことができます。
詳しくはWikipedia「ターミナル (macOS)」をクリックしてご参照ください。
XLDのCLI(コマンドライン)版を使うために
XLDサイトページのダウンロードから「xld-20201123.dmg [local mirror]」をクリックするとダウンロードサイトに遷移してダウンロードが始まります。 ダウンロードしたdmgをクリックすると、CLI版のXLDが入っているCLIフォルダーが現れますので、このCLIフォルダーを適当な場所に置きます。 CLI版の使用ができるか確認のため、ターミナルにフルパスで、例えば /〜/CLI/xld -h と打ち込んでXLD・CLI版のヘルプが表示されればOKです。(2020/11/29:追記)
XLD・コマンドラインの基本形
ターミナルへ入力する「XLDのコマンドライン」の基本形は、XLDのHPに記載されている説明から試行錯誤を繰り返した結果、以下になりました。
注意ポイント
- ファイルはフルパス表記で、 ␣ はスペースを示します。
- ディレクトリ(フォルダ)名やファイル名にスペース(空白)を入れない
ファイル名等に空白があると、XLDのコマンドラインは空白区切りになっていて、エラーになりますので、空白をアンダーバーなどで埋める必要があります、
このコマンドラインは、「音源元ファイルの test_XLD.wav を aac に変換されたファイル test_XLD.m4aを XLD_Folder に入れる」と言う命令になりなります。【 後述する、事前にaacのオプション設定(ex.320kbps etc)が必要です。】
ポイント
同様に、-f の後をaifに指定しますと、test_XLD.wavが aiff に変換されます。(aiffのオプション設定が48khzなら48khzでダウンサンプリングされます。)また、音源元ファイルは、flacやaiffなどもOKです。
上記の命令をターミナルで実行しますと、ターミナル画面に表示されるプログレスバーが100%になると変換が完了し 指定した XLD_Folder フォルダーに、変換された test_XLD.m4a が生成されます。
ハイレゾ音源を48khzにダウンサンプリングする手順
ハイレゾ音源をサンプルレートを48khz(or44.1khz)でAACに変換する場合、高域(20khz付近)で減衰します。 この高域減衰を防止するためには、事前にハイレゾ音源を48khzにダウンサンプリングした後にAAC変換する必要があります。 以下は、コマンドラインから、ハイレゾ音源(test_XLD.wav:192khz)を48khzのaiffファイルにダウンサンプリングを行う手順です。
コマンドライン
以下の例はWavファイルをAiff に変換するコマンドラインです。 元ファイルはFlacやAiffでもOKです。(注記:ファルの拡張子はaiffですが、コマンドラインのフォーマット指定はaif になります)
/~/XLD␣-o␣ /~/XLD_Folder␣ /~/test_XLD.wav␣-f␣aif
ターミナルで実行
コマンドラインをターミナルで実行すると、表示が100%で変換が完了(done.)します。
|====================| 100% (Track 1/1)
done.変換生成先のXLD_Folderを見ると、test_XLD.aiff (48khz)が生成されています。
48khzにダウンサンプリングされた aiff ファイルをAAC変換する手順
ダウンサンプリング生成された、aiff ファイル(/~/XLD_Folder/test_XLD.aiff)を aac に変換する手順です。
コマンドライン
48khzにダウンサンプリングされた aiff ファイルは、XLD_Folder内に在りますので以下の様になります。
/~/XLD␣-o␣ /~/XLD_Folder␣ /~/XLD_Folder/test_XLD.aiff␣-f␣aac
ターミナルで実行
このコマンドラインをターミナルで実行すると、表示が100%で変換が完了しXLD_Folder内にtest_XLD.m4a(=aac)ファイルが生成されています。
Encoder option: CBR 320kbps
|====================| 100% (Track 1/1)
コマンドラインでAAC変換した音質特性を確認する
1khz -20db歪率確認
歪率確認のため、正弦波 1khz -20dbで記録したWAV(24bit 192khz)ファイルを、上記手順で変換したAACファイルの歪率を確認してみました。 (歪率測定はWaveSpectraで、aacファイルをwavにデコードしたファイルで測定しています)
48khz AAC歪率 | 44.1khz AAC歪率 | 参考 (CD :16bit 44.1khz)歪率 |
0.00066%(THD+N) | 0.00029%(THD+N) | 0.01535%(THD+N) |
ポイント
理由は不明ですが、AACエンコードオプションで44.1khzの方が歪率的に優れていました。 また、参考値のCD歪率と比較すると、AACエンコードの方が優位です。 この理由は、CDが16bitの為に量子化ノイズが大きいためです。(詳しくはここをクリック)
高域減衰の確認
高域減衰確認のため、17khzから20.5khzまで0.5khzおきに、-20dbの正弦波を記録したWAV(24bit 192khz)ファイルを、上記手順で変換したAACファイルのスペクトル波形を確認してみました。 (スペクトル測定はWaveSpectraで、aacファイルをwavにデコードしたファイルで測定しています)
赤の点線で示されている様に、-20.01db〜-20.00dbに収まっており、20.5khzまで高域減衰無くフラットな特性を示していました。
以上、XLD・コマンドラインの使い方の紹介でした。 次回は使い勝手を改善するため、ダウンサンプリングとAACエンコードの2つのコマンドライン操作を一発でAAC変換できる様にOSXのAutomator にトライしてみたいと思います。