Batch

PeloReaper Extensionの情報やダウンロードはこちらからどうぞ。
PeloReaper Extension for REAPER is here.
ReaperBanner01_w250 AudioSoftBanner01_w250

Metadataも引き継げるようになったREAPERのBatchConverter

REAPERには「Batch File/Item Converter(以下Batch Converter)」というツールが付属しており、音声ファイルのコンバート(.wav→.mp3など)を簡単に行えるようになっています。

BatchConv01

基本的な使い方

Batch ConverterはREAPERのメニューから [File>Batch Item/File Converter] で起動できます。

コンバートしたいファイル・Itemをリストへ登録

wavファイルなどをコンバート指定場合は、WindowsのExplorerからファイルをリストにドロップするだけでコンバート予定の一覧に登録されます。

REAPERのアレンジビュー上で選択したItemを登録することも出来ます。この場合はItemを選択後、リストの下にある [Add...] ボタンをクリックし、出てきたコンテキストメニューから [Add selected media item(s)] を選べば一覧に登録されます。

ただしItemをコンバートする場合は、Itemの範囲で区切られた部分がItemのTake FXも適用された状態でコンバートされるようです。この際Itemが所属するTrackのTrack FXは適用されないようなので、レンダリングの替わりとして使いたいといった場合は注意が必要かもしれません。


出力先の指定

Outputグループのところで出力先フォルダやファイル名の設定を行います。

BC_OutputGrp
  • Directory
    出力先フォルダ指定(指定フォルダが存在しない場合は自動的に作成されます)
  • Use source file directory
    コンバート元のファイルと同じ場所に書き出したい場合にチェックを入れます
  • File name
    ファイル名をカスタマイズしたい場合はここで指定できます。通常はデフォルトの
    $source
    のままで問題ないでしょう(元のファイル名と同じ、という意味)。$で始まる文字列はワイルドカードというもので、コンバート時にDAW上の情報などに置き換えられます。

オプション設定

リサンプリングやコンバート時にかける追加のエフェクト、Metadataなどの設定が行えます。特に何かを変えたいということがなければ、デフォルトのままで問題ないかと。

BC_Options
  • Use FX / FX chain...
    コンバート時にエフェクトも一緒にかけてしまいたい場合、これにチェックを入れて [FX chain...] ボタンでエフェクトを設定します。
  • Tail size (ms)
    FXを挿入する場合に、もとの音声の最後からもう少し長くした状態でコンバートするのに使用します。これはDelayやReverbなどのTailも含めたいという場合に便利な機能です。
  • New metadata... / Add new metadata
    Metadataを新しく追加する場合に使用します。
  • Preserve original file metadata if possible
    コンバート元ファイルにMetadataが含まれる場合、コンバート後のフォーマットで受け取れるような情報であれば出来るだけMetadataを維持できるようにコピーしてくれる機能です。効果音ライブラリなどでwavファイルに含まれるタグなどを可能な限り引き継いでくれるようです。
    BC_PreserveMetadata01
    ↑ Flacのコメント情報にタグが移行された例

出力フォーマット設定

Output format 以降の設定はどのようなファイルフォーマットにコンバートするかの指定です。ここは指定したいフォーマット毎に設定が異なるので、各種フォーマットの詳細情報を調べてみて下さい。

BC_OutFormat01

あとはBatch Converterウィンドウ右下の [Start Convert] でリストに登録されたファイル一覧が全てコンバートされます。


コンバート設定のプリセット

コンバート設定をプリセットに保存して後から呼び出すことが出来ます。コンバートするファイル一覧の右下に [Presets] というボタンがあり、クリックするとコンテキストメニューが表示されるので [Save preset...] を選ぶと名前を付けて保存できます。

BC_Preset01

プリセットを呼び出す場合は上記のボタンをクリックすると保存したプリセットが並んでいるのでそれを選ぶだけです。

コンテキストメニューの[Delete preset]から指定のプリセットを削除することも可能です。



比較的最近のアップデートでコンバート時にMetadataも引き継げるようになり、筆者はwavファイルをflacにコンバートするといった用途で利用する機会が格段に増えました。以前はwavのメタデータをflacにコピーするのにkid3(CUI版)などのツールを駆使するしかなく、そっちのワークフローを整えてバッチ処理するといったことをやっていたのですが、REAPERのBatch Converterが改良されたおかげで楽になりましたね。

REAPER (Command Line): Batch Converter

今回は前々回の記事で取り上げられなかった、-batchconvert オプションを解説します。

Batch Converter

Batch ConverterはREAPERのレンダリング機能などと同様に標準で使える機能で、REAPERのメニューから [File>Batch file/item converter] でアクセス出来ます。

このBatch Converterの機能をコマンドラインのREAPERから呼び出せます。使い方は設定をテキストファイルに書いて、それを引数に渡すだけ(下の例だとfilelist.txtがこの設定ファイル)。

> reaper.exe -batchconvert filelist.txt

※実行すると変換ログが設定ファイルと同じ場所に出力されます(filelist.txt.log)


設定ファイルの書き方

Batch Converterの設定ファイルには以下の設定を記述する必要があります。

  • コンバートするファイルのパス一覧
  • コンバート設定部(CONFIGブロック)

CONFIGブロックはファイル一覧の前後どちらに記述しても問題なく、CONFIGブロックを複数に分けて記述(つまり複数のCONFIGブロックを記述)しても設定情報が結合されるっぽいので大丈夫なようです。

コンバートするファイル一覧の記述方法

ファイル一覧は行毎に1つ入力ファイルの絶対パスを記述します。さらに続けてTAB文字(スペース文字不可)の後に出力先ファイルの絶対パスを記述することも出来ます。例えば以下のような感じ。

C:\tmp\src.wav もしくは
C:\tmp\src.wav(TAB文字)C:\tmp\out\dest.wav

ただし、出力先パスも絶対パスによる記述ですし、後述の出力フォーマットで別のファイル形式(MP3とか)にコンバートする設定と相性が悪い気がします(拡張子合わせるのが特に面倒)。なので、後述のOUTPATH指定で書き出し先を指定して、各ファイルの出力先は記述しない方が扱いやすいです。

コンバート設定部(CONFIGブロック)の記述方法

CONFIGブロック内の設定はHelpでも出てきますが、それぞれ説明します。やたら説明の量がありますが、用途によってはほとんどの設定が不要だったりするので、後述の設定例をチラっと見てからここに戻ってくるのがいいかもしれません。

  • OUTPATH "path"
    コンバート後のファイルを保存するフォルダの絶対パスを記述します。保存先のフォルダがない場合は自動的にフォルダが作成されます(深いフォルダ階層を指定しても自動でフォルダ階層が作成されるので便利)。
  • OUTPATTERN "wildcardpattern"
    これはBatch Converterウィンドウでいうと[filename]の部分に対応する文字列を記述します(ワイルドカード指定も一応使える)。省略した場合は入力ファイルと同一のファイル名になります。
  • SRATE SampleRate
    サンプリングレートを強制的に切り替えたい場合はこの設定を記述(省略で入力ファイルと同じ)
  • NCH Channels
    チャンネル数を強制的に切り替えたい場合はこの設定を記述(省略で入力ファイルと同じ)
  • RSMODE ResampleModeIndex
    リサンプリングを行う場合、そのモードをIndexで指定します。恐らく0~9までと思われる数値を記述しますが、ModeとIndexの正確な対応を知るには若干面倒な手順が必要です。
    1. まずREAPERのプロジェクト設定([File>Project settings...])で[Project Setting]タブの[Render resample mode:]を好みの設定にしてプロジェクトを保存します。
    2. 保存したプロジェクトファイル(.rpp)をテキストエディタで開き、RENDER_RESAMPLE という項目を探して、その右側のパラメータの最初(一番左)の値を使います(例えば [Extreme HQ (768pt HQ sinc)]の場合はIndex=9)。
  • DITHER flags
    Batch Converterウィンドウにおける[Options]の部分にある[Dither], [Noise shaping]の設定をそれぞれ使うかのフラグを指定します(Ditherのみ:1、Noise shapingのみ:2、両方:3)
  • PAD_START sec、PAD_END sec
    コンバート後のファイルの波形の前後に指定秒数の無音を挿入するのに使用します。Delay系のエフェクトを適用した場合のTailを伸ばす感じで使えます。また、負の値を指定することで波形の前後をカットするということも可能になっています。
  • FXCHAIN "fxchainfilename"
    REAPER上で作成したFXChainファイルを指定できます。ファイル名だけ(例えば MyReverb.RfxChain など)を記述すると、REAPERリソースフォルダのFXChainsフォルダにある設定が参照されます。絶対パスを指定すれば別の場所のファイルも利用可能です。
    また、別の指定方法としてFXCHAINブロックを作って、その中にRfxChainファイルの中身をまるっとコピペしてやってもOKです(設定例を後に示します)。
  • OUTFMTブロック
    CONFIGブロック内に更にOUTFMTブロックを作って、そこに出力ファイルフォーマットを指定します。が、これもやたら玄人志向になっていて「設定バイナリのBase64文字列を指定」する形になっています。ってこれじゃ後から設定ファイル見ても分からないじゃないか・・・。まぁいいけど。
    やり方もちと面倒です。
    1. REAPERのRendering設定で出力先ファイルフォーマットを指定してプロジェクトを保存
    2. 保存したプロジェクトファイルをテキストエディタで開いて、RENDER_CFGブロック内に書かれた謎の文字列(これが設定バイナリをBase64エンコードでテキスト化したもの)をコピー
    3. Batch Converter設定ファイルのOUTFMTブロックに張り付け

ちなみに、入力ファイル・出力ファイルのパスが完全に同一だとコンバートに失敗します。出力ファイル先の指定や出力ファイル形式などによる拡張子変化などを適切に利用して、入出力パスが必ず別のパスになるよう工夫してください。

設定ファイルの例

まぁ説明ばかりだと分かりづらいかと思いますので、設定例を書いておきますね。OUTFMTは見た目では分かりませんが、FLACへの変換設定になっています。

R:\bc\1.wav
R:\bc\2.wav
R:\bc\3.wav
<CONFIG
  OUTPATH "R:\bc\out"
  OUTPATTERN "$source_$filenumber"
  FXCHAIN "MyReverb.RfxChain"
  SRATE  44100
  NCH    2
  RSMODE 9
  DITHER 3
  PAD_START 0.0
  PAD_END   1.0
  <OUTFMT
    Y2FsZhAAAAAFAAAA
  >
>

上記ではフルスペックで記述していますが、単純なファイル形式変換であればほとんどの指定が不要です(大抵のパラメータは省略すると入力ファイルと同じになります)。単純にFLACに変換するだけなら以下のような感じでOK。大分スッキリしましたね。

R:\bc\1.wav
R:\bc\2.wav
R:\bc\3.wav
<CONFIG
  OUTPATH "R:\bc\out"
  <OUTFMT
    Y2FsZhAAAAAFAAAA
  >
>

最後にFXCHAIN設定をサブブロック化して、RfxChainファイルの中身をコピペする例です。
まずはRfxChainファイルの中身がコレ。

BYPASS 0 0
<VST "VST: ReaVerb (Cockos)" reaverb.dll 0 "" 1919252066 ""
  YnZlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAASAAAAAEAAAAAABAA
  AAAAwcybgD4AAIA/AAAAAAAAgD8AAIA/AAAAPwAAAAAAAAAAVkVSQkdFTgAYAAAAAAAAAGHQUUUAAIA/oP+2QhHHSj8AAIA/
  AAAQAAAA
>
WAK 0

で、Batch Converter設定ファイルに使った場合はこんな感じにコピペ。

R:\bc\1.wav
R:\bc\2.wav
R:\bc\3.wav
<CONFIG
  OUTPATH "R:\bc\out"
  <OUTFMT
    Y2FsZhAAAAAFAAAA
  >
  <FXCHAIN
BYPASS 0 0
<VST "VST: ReaVerb (Cockos)" reaverb.dll 0 "" 1919252066 ""
  YnZlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAASAAAAAEAAAAAABAA
  AAAAwcybgD4AAIA/AAAAAAAAgD8AAIA/AAAAPwAAAAAAAAAAVkVSQkdFTgAYAAAAAAAAAGHQUUUAAIA/oP+2QhHHSj8AAIA/
  AAAQAAAA
>
WAK 0
  >
>

例を紹介しといてアレですが、普通にファイル名指定した方が分かりやすいですね。はい。



という感じで今回はコマンドラインからBatch Converterを呼び出す方法を紹介しました。使い方はちょっと玄人向けな感じがありますが、REAPERがサポートしているファイル変換機能がそのまま使えるのはなかなか便利なんじゃないでしょうか。この機能もバッチ処理などを組めば大量のファイル変換を自動化したり出来ますので、うまく活用できれば作業が楽になるかもしれませんね。


このブログについて
ぺろりがREAPERで遊びたいというだけのブログかもしれない

必ずこちらをお読みください

twitter: @pelori

管理人用
  • ライブドアブログ