# Guitar Video Builder

## 初めに

アコースティックギター演奏動画をプロフェッショナルな品質で仕上げるためのオールインワンツールです。

動画の読み込みから別録音オーディオ (WAV)との自動同期、字幕オーバーレイ、パラメトリック EQ、コンプレッサー、コンボリューションリバーブ、ラウドネスノーマライズまで、8つのタブによる一貫したワークフローで動画を完成させます。

## 開発経緯

アコースティックギターの演奏動画を制作する際、カメラの内蔵マイクで録った音声と、別マイクで録音した高品質な音声を差し替え、さらにエフェクト処理やラウドネス調整を行うには、複数のソフトウェアを行き来する必要がありました。

この煩雑なワークフローを一つのアプリケーションに統合し、誰でも高品質なアコースティックギター演奏動画を効率的に制作できるようにすることを目的として開発しました。

※本ツールは、動画音声・別マイク録音音声ともに「生音」であることを前提としています。

## 概要

### 8タブ・シーケンシャル・ワークフロー

各タブは順番に進行します。前のタブの処理結果を次のタブで引き継ぐ設計です。

1. Video Cut — 動画ファイルを読み込み、IN/OUT ポイントでトリミング
2. Audio Sync — 別録音 WAV を読み込み、自動相互相関で映像と自動同期・切り出し
3. Subtitle — テキスト字幕のオーバーレイ (フォント、色、位置、フェード) と映像フェードイン/アウト
4. In/Out Edit — 波形表示を見ながらオーディオの IN/OUT 編集、フェード追加
5. EQ — 8バンド・パラメトリック EQ とスペクトラムアナライザー表示
6. Comp — コンプレッサー (スレッショルド、レシオ、アタック、リリース、メイクアップ)
7. Reverb — 29種類の IR プリセットによるコンボリューション・リバーブ
8. Export — True Peak / LUFS ノーマライズと MP4 / MKV / WAV エクスポート

### 主な特長

- オーディオ自動同期 — 相互相関演算により映像音声と別録音音声のオフセットを自動検出して同期
- 字幕オーバーレイ — フォント、色、位置、フェードを自由にカスタマイズ可能なテロップ挿入
- 映像フェード — Linear、S-Curve (smoothstep)、Logarithmic の3種類のカーブ。Delay 設定で黒画面からの開始にも対応
- プロ仕様のオーディオ処理 — パラメトリック EQ、コンプレッサー、コンボリューションリバーブを内蔵
- 29種類のリバーブ・プリセット — Plate、Room、Ambience、Hall、Church の5カテゴリ
- ラウドネス・ノーマライズ — True Peak モードと LUFS モードの2方式に対応
- ハードウェアエンコーダー対応 — NVIDIA NVENC / AMD AMF / Intel QSV を自動検出し高速エクスポート

## 動作環境

- Windows 10 以降 (64bit)
- .NET 10 Desktop Runtime のインストール (dotnet-runtime-10.*.*-win-x64.exe)
- FFmpeg (ffprobe 含む) のインストール — システム PATH 登録が必要です。FFmpeg Manager で簡単にインストールできます。

## 配布ファイル

GuitarVideoBuilder_v1.0.2.zip (38.4MB)
  EXE 本体および依存ライブラリ一式

参考
  VirusTotal 検証結果

## 対応フォーマット

### 入力動画

mp4, mov, mts, m2ts, mxf, avi, insv, webm, mpg, mpeg

※実際に動作確認できているのは mp4 及び mov ファイルのみです。

### 入力オーディオ

WAV (任意のサンプルレート・ビット深度)

### 出力フォーマット

MP4
  H.264 / H.265 映像 + AAC オーディオ
MKV
  H.264 / H.265 映像 + PCM 24bit オーディオ (ロスレス)
WAV
  Tab 2 の Save WAV で同期・切り出し済みオーディオ、Tab 8 の Export でエフェクト・ノーマライズ適用済みオーディオをそれぞれ保存可能

## 使い方

ダウンロードしたファイル群を全て同じフォルダに配置してください。そして `GuitarVideoBuilder.exe` を実行してください。

### Tab 1: Video Cut — 動画のトリミング

- File メニューまたはドラッグ＆ドロップで動画ファイルを読み込みます。
- 映像を確認しながら、IN ポイント (開始点) と OUT ポイント (終了点) を設定します。
- 実際のトリミング位置は、Set IN 直前のキーフレーム～ Set OUT 直後のキーフレームに自動調整されます。ffprobe によるキーフレーム検出により、映像の破綻なく正確なカットが行われます。
- Tab3 の字幕オーバーレイ、映像フェードインアウトを使用しない場合、映像は再エンコードされず劣化しません。

### Tab 2: Audio Sync — オーディオ同期

- Load WAV ボタンまたはドラッグ＆ドロップで別録音した WAV ファイルを読み込みます。
- WAV 読み込み後、相互相関演算による同期が自動的に実行 (Auto Sync) されます。映像の内蔵マイク音声と別録音音声の最適なオフセットが自動算出されます。
- 必要に応じてスライダーでオフセットの手動微調整も可能です。
- Test Merge (MKV) ボタンで同期済みのMKV動画を保存できます。
- Save WAV ボタンで同期済みの WAV ファイルを保存できます。
- プレビューで同期結果を確認してから次のタブへ進みます。
- Audio Sync の完了は後続タブ (Tab 3～8) の前提条件です。完了するまで次のタブへは進めません。

### Tab 3: Subtitle — 字幕オーバーレイ

- テキスト入力欄に字幕テキストを入力します。
- フォント、サイズ、文字色、アウトライン色、シャドウ色を自由にカスタマイズできます。
- 9箇所のレイアウト (四隅・辺中央・中央) から表示位置を選択します。
- 字幕のフェードイン/フェードアウト時間を設定できます。
- 映像全体の Video Fade (S-Curve / Logarithmic / Linear) も適用可能です。Delay を設定すると、フェードイン前やフェードアウト後に黒画面を維持できます。レイヤー構造は奥から「映像 → フェード → 字幕」の順で、字幕は最前面に描画されるためフェードの影響を受けません。なお、Video Fade はエクスポート時に適用されるため、プレビューには反映されません。

### Tab 4: In/Out Edit — 先頭末尾の波形編集

- 高性能な波形描画でオーディオ全体を視覚的に確認できます。
- Head / Tail ボタンで先頭・末尾の編集位置を固定し、マウスで選択範囲を指定して無音化、フェードイン、フェードアウトを適用します。
- Undo で操作を元に戻せます。
- マウスホイールで水平ズーム、Ctrl+ホイールで垂直ズームができ、細部まで確認可能です。

### Tab 5: EQ — パラメトリック・イコライザー

- 8バンド・パラメトリック EQ: HPF (30Hz), LoShelf (80Hz), Peak 1–4 (200Hz–2.5kHz), HiShelf (6kHz), LPF (18kHz)
- 各バンドの周波数、ゲイン、Q (レゾナンス) を個別に調整します。
- GarageBand スタイルの周波数レスポンス曲線をリアルタイム表示します。
- スペクトラムアナライザーで周波数分布を視覚的に確認できます。
- プリセット:
  - Low Cut (LUFS Boost) — 低域カットでラウドネスを稼ぐ
  - Warm Presence — 暖かみとプレゼンスを強調
  - Bright Air — 高域のエアー感を引き出す
  - Fingerpicking Detail — フィンガーピッキングのディテールを強調
  - De-Mud — 低中域のこもりを除去
  - Recording Fix — 録音環境の問題を補正
- ユーザープリセットの保存と呼び出しにも対応しています。
- Measure ボタンで全エフェクトチェーン適用後の TP / LUFS / LRA を測定できます。設定変更の前後差分も表示されます。

### Tab 6: Comp — コンプレッサー

- 音量の大小差を整えるダイナミクス・コンプレッサーです。
- Threshold (スレッショルド)、Ratio (レシオ)、Attack (アタック)、Release (リリース)、Makeup Gain を調整します。
- リアルタイムの GR (Gain Reduction) メーターで圧縮量を確認できます。
- プリセット:
  - Peak Limiter — ピーク制御 (-8dB, 8:1)
  - Transparent — 透明な圧縮 (-15dB, 1.5:1)
  - Moderate — 中程度の圧縮 (-18dB, 2.5:1)
  - Loudness Boost — 音圧アップ (-20dB, 3:1)
  - Loudness Max — 最大音圧 (-24dB, 5:1)
- ユーザープリセット (My Preset) の保存・読み込み・削除にも対応しています。
- Measure ボタンで全エフェクトチェーン適用後の TP / LUFS / LRA を測定できます。

### Tab 7: Reverb — コンボリューション・リバーブ

- 実在の空間（ホール、教会、スタジオなど）の残響特性を収録したインパルスレスポンス（IR）データを使用し、その空間で演奏しているかのようなリアルな残響を再現するコンボリューション・リバーブです。
- 29種類の IR (インパルスレスポンス) プリセット:
  - Plate — Short, Thin, Small, A Plate, Silver, Slap, Echo, Guitar, Vocal, Fat, Large
  - Room — Small & Bright, Large, Music Club
  - Ambience — Small, Medium, Large, Very Large, Strong, Auto Park
  - Hall — Small, Medium, Large (各 +Stage バリアントあり), Jazz
  - Church — Small, Large
- Dry/Wet ミックスとマスターゲインで空間の深さを調整します。
- IR エンベロープの視覚表示で残響の特性を確認できます。
- Measure ボタンで全エフェクトチェーン適用後の TP / LUFS / LRA を測定できます。
- 同梱の IR プリセットは、Grant Nelson 氏が Lexicon 480L から録音・作成し無料配布しているコレクションの一部を使用しています。

### Tab 8: Export — エクスポート

- エクスポート前に True Peak (TP)、LUFS、LRA を測定します。エフェクトタブ (EQ / Comp / Reverb) で設定を変更し未測定の場合は、Measure ボタンが有効になるのでここで必ず再測定してください。
- 2つのノーマライズ方式を選択できます:
  TP-based
    リニアゲイン調整のみで True Peak を目標値以下に制御します。測定→ゲイン適用→再測定を最大3パス繰り返し、TP が目標値に収束するまで補正します。音楽のダイナミクス (LRA) を一切変化させません。
  LUFS-based
    設定した TP Ceiling を超えないよう内部リミッターで保護しつつ、聴感上の音量 (LUFS) を目標値に合わせます。クリッピングの心配なく目標ラウドネスに到達できます。
- ハードウェアエンコーダー (NVIDIA NVENC / AMD AMF / Intel QSV) を自動検出し、利用可能な場合は高速エクスポートできます。
- MP4 (AAC)、MKV (PCM 24bit)、WAV (エフェクト・ノーマライズ適用済みオーディオ) の各形式で出力します。

## Auto Sync の仕組み

Auto Sync はこのツールの中核機能です。カメラの内蔵マイクで録った音声と、オーディオインターフェース経由の別マイク等で録音した音声の時間的なずれを自動検出します。

異なるマイクで録音された2つの音声は周波数特性が大きく異なりますが、「いつ音が鳴ったか」というタイミングのパターンは共通しています。Auto Sync はこの性質を利用し、以下の4段階で高精度な同期を実現しています。

※注意点
  オーディオインターフェース経由の別マイク等で録音した音声は生音である必要があります。エフェクターのかけ録り音声は Auto Sync には不向きです。
  動画も別録り音声も事前にカットする必要はありません。ただし長過ぎると Auto Sync に時間がかかる、あるいは失敗する可能性があります。

### Stage 1: 粗探索 — 振幅エンベロープによる候補検出

まず両方の音声を 44.1kHz / 16bit / モノラルに統一し、約10ms 窓の RMS で振幅エンベロープを抽出します。波形そのものではなく「音量の時間変化」を比較することで、マイクの違いに左右されない相関計算が可能になります。

エンベロープ全長を使った相互相関を約10ms ステップで走査し、相関値の高い上位10箇所を候補として抽出します。同じフレーズの繰り返しによる誤検出を防ぐため、候補同士は最低1秒以上離れている必要があります。

### Stage 2: 精密探索 — サンプル精度の相関計算

各候補の前後±10ms の範囲で、今度は1サンプル単位で相互相関を再計算します。最大10秒分の音声を使い、サンプル精度のオフセットを各候補ごとに特定します。

### Stage 3: オンセット照合 — アタックパターンによる最終選定

エンベロープの急激な立ち上がり (オンセット = ピッキングのアタック) を検出し、候補ごとにアタックの時間パターンがどれだけ一致するかをスコアリングします。同じ曲の繰り返しフレーズでも、各ピッキングのマイクロタイミングは毎回異なるため、この照合により正しい位置を高い信頼度で絞り込みます。

エンベロープ相関値とオンセット一致率を重み付けで統合し、最良の候補を1つ選出します。

### Stage 4: 波形微調整 — バンドパスフィルタによる最終補正

Stage 3 で選ばれた候補の前後 ±1024 サンプル (約±23ms) の範囲で、300Hz～8kHz のバンドパスフィルタを適用した生波形による相互相関を行います。ゼロ位相シフトの Butterworth フィルタにより低域ノイズや高域ノイズを除去し、ギターの主要帯域で最もよく一致するサンプル位置を最終オフセットとして確定します。

## エフェクトチェイン

Tab 5～7 のオーディオエフェクトは、以下の順序で直列に接続されています。

1. EQ (パラメトリック・イコライザー) — 周波数帯域ごとの音量バランスを調整
2. Comp (コンプレッサー) — ダイナミクスを制御しピークを抑える
3. Reverb (コンボリューション・リバーブ) — 空間的な残響を付加 (Dry/Wet ミックス)

エフェクトの順序 (EQ / Comp / Reverb) は EQ タブ上部のコンボボックスから変更可能です。各エフェクトは個別に ON/OFF でき、リアルタイムプレビューで効果を即座に確認できます。

## 録音とワークフローのヒント

### 録音レベルの目安

別録音する WAV ファイルの録音レベルは、レベルメーターでピーク -6dB 前後を目安にしてください。

- 通常のレベルメーターが表示するのはサンプルピークであり、サンプル間で発生する True Peak (インターサンプルピーク) は表示されません。メーターで -6dB に見えても、True Peak は -3～-5dB 程度になります。
- 24bit 録音であれば -6dB でもダイナミックレンジは 138dB あり、S/N 比は全く問題ありません。「大きく録った方がいい」というのは 16bit 時代の話です。
- 録音時にクリップした音は後から修復できません。小さすぎる録音は後から上げられます。
- 録音時にコンプレッサーはかけないでください。コンプは Tab 6 で後から調整した方が自由度が高くなります。

### 各タブの役割と推奨ワークフロー

良い仕上がりのためには、各エフェクトタブの役割を理解し、適切な段階で適切な処理を行うことが重要です。

Tab 5: EQ — 音色の整理
  不要な低域のカットや中域の調整など、音色を整える目的で使います。音量を上げる道具ではありません。アコースティックギターの場合、特定の帯域をブーストするよりも、不要な帯域をカットして整理する使い方が基本です。
Tab 6: Comp — ダイナミクスの制御
  ピーク (アタック) と平均音量の差を縮めるのがコンプレッサーの役割です。Measure ボタンで TP / LUFS / LRA の変化を数値で確認しながら調整すると確実です。かけすぎるとアコースティックギター本来のダイナミクスが失われるため、控えめな設定から試してください。
Tab 7: Reverb — 空間の演出
  残響の付加が目的です。Dry/Wet バランスでリバーブの深さを調整し、Master は前段で変化したレベルの補正に使います。
Tab 8: Export — 最終レベルの調整
  Measure で TP / LUFS / LRA を測定し、ノーマライズで最終的な音量を揃えます。前段のコンプでダイナミクスが整っていれば、TP モードでも LUFS モードでもきれいに仕上がります。

作者の個人的な感触ですが、アコースティックギターソロの場合、仕上がりが TP = -1.0 ～ -0.1dB、LUFS = -20 ～ -18 あたりがダイナミクスを活かしつつ自然に聴こえる目安だと感じています。

## キーボードショートカット

Settings メニューからキーボードショートカットをカスタマイズできます。

巻き戻しキー (デフォルト: Z)
  再生位置を設定したステップ分だけ戻します。
早送りキー (デフォルト: X)
  再生位置を設定したステップ分だけ進めます。
ステップ時間 (デフォルト: 1000ms)
  巻き戻し / 早送りの移動量をミリ秒単位で設定します (100～10000ms)。

## ユーザーデータ

以下のデータは `%LOCALAPPDATA%\GuitarVideoBuilder\` フォルダに自動保存されます。

- `settings.json` — キーボードショートカット、ウィンドウ位置・サイズ、エフェクトチェイン順序
- `EqPresets\` — EQ ユーザープリセット
- `CompPresets\` — Comp ユーザープリセット
- `crash.log` — クラッシュログ

アプリケーションを削除する際は、メニューバーの Settings → Delete User Data... から上記フォルダをまとめて削除できます。

## 一時ファイル

処理中に `%TEMP%` フォルダへ `gvb_` プレフィックスの一時ファイルが作成されます。これらはアプリケーションの起動時および終了時に自動削除されます。

## 免責事項

- 本ツールの使用は自己責任でお願いします。
- 動画・音声ファイルの処理により発生した品質の変化や損失について、開発者は一切の責任を負いません。
- 重要なファイルは事前にバックアップを取ることを強く推奨します。
- 商用利用に関しては、関連する著作権法や使用許諾契約を遵守してください。
- 本ツールの動作により生じたいかなる損害についても、開発者は一切責任を負いません。
- Windows の仕様変更や FFmpeg の更新により、将来的に動作しなくなる可能性があります。
- サポートは基本的に提供いたしません。

## 更新履歴

2026年3月 v1.0.2
  Tab3 Subtitle で Video Fade のみオンの場合でも、Tab8 Export でハードウェアエンコーディング選択ができるよう修正。
2026年3月 v1.0.1
  - 日本語字幕が正しく表示されない場合がある問題を修正。
  - iPhone MOV など回転メタデータを持つ動画で、プレビュー映像が上下反転する問題を修正。
  - MOV ファイルでキーフレーム間隔が検出されない問題を修正。
2026年3月 v1.0.0
  初版リリース。8タブ・ワークフロー (Video Cut, Audio Sync, Subtitle, In/Out Edit, EQ, Comp, Reverb, Export) を搭載。

## 開発者情報

開発者 Noriya
  E-mail noriyahd28v@gmail.com
  本ツールはアコースティックギター演奏動画を制作する全ての方に、効率的で高品質な制作環境を提供することを目的として開発されました。ご質問やフィードバックがございましたら、上記連絡先までお気軽にお寄せください。