Docs

Job File と自動化

`render --job` を使うための job file の書き方と、CLI 引数との組み合わせ方をまとめたページです。

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
    • 複数入力時の出力ディレクトリ
  • force
    • true で既存出力を上書き
  • same_format
    • 入力形式を維持
  • format
    • wav, flac, aiff, ogg
  • sample_rate
    • 出力 sample rate
  • bits_per_sample
    • 出力 bit depth
  • sample_format
    • WAV 用。int, float
  • flac_compression_level
    • FLAC 用
  • vorbis_quality
    • Ogg Vorbis 用。-1..10
  • comment
    • KEY=VALUE 文字列配列

outputout_dir は同時に指定できません。same_formatformat も同時に指定できません。

[[op]]

type には次の値を指定できます。

  • gain
  • loudness
  • fade_in
  • fade_out
  • loop

job file では fade-in / fade-out ではなく、fade_in / fade_out のように snake_case を使います。

各 operation の主な key

  • gain
    • db 必須
  • loudness
    • target 必須
    • unit 任意。指定する場合は LUFS
    • max_true_peak 任意
  • fade_in
    • duration 必須
    • curve 任意
  • fade_out
    • duration 必須
    • curve 任意
  • loop
    • start 必須
    • end 必須
    • start < end が必要

制約と注意点

  • outputout_dir は同時に指定できません。
  • same_formatformat は同時に指定できません。
  • 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 側が優先
  • forcesame_format はどちらかが true なら true
  • comment は job file の配列に CLI --comment を追記

どう使い分けるか

  • 少数ファイルの確認
    • まずは CLI 引数を直接指定する
  • 手順が固まってきた段階
    • job file にまとめて再利用できる形にする
  • 継続運用や自動化
    • CLI と job file を組み合わせてバッチ処理や CI/CD に組み込む