Job File とは
render --job <JOB> を使うと、複数の入力、出力設定、operation を TOML ファイルとしてまとめて管理できます。
a9a_cli render --job jobs/render.toml
単発の試行では CLI 引数を直接指定し、本格的な運用では job file に落とし込む、という使い方が自然です。
例
input = ["../audio/a.wav", "../audio/b.wav"]
out_dir = "../out"
same_format = true
force = true
comment = ["ARTIST=a9a", "ALBUM=demo"]
[[op]]
type = "gain"
db = -3
[[op]]
type = "fade_in"
duration = "100ms"
curve = "equal_power"
[[op]]
type = "loop"
start = 12000
end = 96000
Top-level key
input- 1 件の入力、または入力配列
output- 単一出力ファイル
out_dir- 複数入力時の出力ディレクトリ
forcetrueで既存出力を上書き
same_format- 入力形式を維持
formatwav,flac,aiff,ogg
sample_rate- 出力 sample rate
bits_per_sample- 出力 bit depth
sample_format- WAV 用。
int,float
- WAV 用。
flac_compression_level- FLAC 用
vorbis_quality- Ogg Vorbis 用。
-1..10
- Ogg Vorbis 用。
commentKEY=VALUE文字列配列
output と out_dir は同時に指定できません。same_format と format も同時に指定できません。
[[op]]
type には次の値を指定できます。
gainloudnessfade_infade_outloop
job file では fade-in / fade-out ではなく、fade_in / fade_out のように snake_case を使います。
各 operation の主な key
gaindb必須
loudnesstarget必須unit任意。指定する場合はLUFSmax_true_peak任意
fade_induration必須curve任意
fade_outduration必須curve任意
loopstart必須end必須start < endが必要
制約と注意点
outputとout_dirは同時に指定できません。same_formatとformatは同時に指定できません。outは受け付けません。job file ではoutputを使います。max-true-peakは受け付けません。job file ではmax_true_peakを使います。- 未定義 key はエラーになります。
- job file 内の相対パスは、カレントディレクトリではなく job file 自身のディレクトリ基準で解決されます。
CLI 引数とのマージ規則
--job と CLI 引数を同時に使う場合は、次の順で解決されます。
- operation は job file の
[[op]]の後ろに CLI--opを連結する inputは CLI 側が優先output/out_dirは CLI 側が優先sample_rateなどの出力 override は field 単位で CLI 側が優先forceとsame_formatはどちらかがtrueならtruecommentは job file の配列に CLI--commentを追記
どう使い分けるか
- 少数ファイルの確認
- まずは CLI 引数を直接指定する
- 手順が固まってきた段階
- job file にまとめて再利用できる形にする
- 継続運用や自動化
- CLI と job file を組み合わせてバッチ処理や CI/CD に組み込む