← PROJECTS

WhiteBox
Resynthesizer

逆合成:リファレンス音声 → 編集可能な構造(MIDI + シンセ/FXパラメータ)

White-Box Resynthesizerは「逆合成」ワークフローのコンセプト/プロトタイプです。

このリポジトリには、最小限の依存関係で動作するPythonプロトタイプJUCEベースのシンセプラグインが含まれています。

ツール

  • tools/wbr_analyze.py: WAV → analysis.json + .mid + プリセット
  • tools/wbr_render.py: .mid + プリセット → WAV

ドキュメント

  • コンセプト + リサーチ
  • 開発計画
  • AI技術概要

構築したもの(概要)

このリポジトリは、動作する「ホワイトボックス / 逆合成」プロトタイプです:リファレンス音声 → 編集可能な構造(MIDI + シンセパラメータ)、DAWフレンドリーなワークフロー内で動作します。

意図的にプロトタイプ(高速イテレーション、シンプルなアルゴリズム、最小限の依存関係)として設計されていますが、既にエンドツーエンドのループを実証しています:

リポジトリの現在の内容

1) コンセプト / リサーチ / 計画ドキュメント

  • CONCEPT_AND_RESEARCH_EN.md: コンセプトステートメント + 技術リサーチ
  • DEVELOPMENT_PLAN.md: 段階的開発計画
  • PLANS.md: オリジナルの日本語コンセプトノート

2) Pythonプロトタイプ(依存関係なし)

決定論的で簡単に実行できるベースラインと、ファイルフォーマットを改良するための場所が必要な場合に使用します。

  • tools/wbr_analyze.py
  • tools/wbr_render.py
  • wbr/ 内のコアモジュール

3) JUCEプラグイン(AU/VST3)+ C++アナライザーCLI

プラグインの機能:

  • プリセットJSONを読み込み、受信MIDIで再生
  • 内部モノフォニック音声→MIDI分析を実行
  • 生成されたMIDIをホストと同期して再生
  • 内部シーケンスをMIDIとしてホストに出力
  • 外部アナライザープロセスを実行

代表的なワークフロー

高速ベースライン(Python)

python3 tools/wbr_analyze.py input.wav --out-dir out
python3 tools/wbr_render.py --analysis out/analysis.json

プラグイン内分析

  1. インストゥルメントトラックにプラグインを挿入
  2. 「Load Audio & Analyze」をクリック
  3. 「Play internal sequence」を有効化

コンセプト & 技術リサーチ

ステータス:コンセプト + 技術的フィージビリティスタディ。

1) ワンセンテンスコンセプト

リファレンス音声ファイルを受け取り、レンダリングされた音声結果の代わりに編集可能な音楽構造MIDI + シンセ/FXパラメータ)を出力する「逆合成」プラグイン。

2) コアバリュープロポジション

5) システム概要

リファレンス音声
   │
   ├─ (A) 分析 & 分離          ──► ステム + ノートイベント
   │
   ├─ (B) パラメータ推定        ──► シンセパラメータ + FXパラメータ
   │
   └─ (C) 内部サウンドエンジン  ──► プラグイン内での再合成再生
    

A. 分析エンジン

目標:音声をパートとイベントに変換。

  • ソース分離(Demucs、Spleeter)
  • AMT(自動音楽書き起こし)

B. パラメータ推定

目標:リファレンスを再現するパラメータを発見。

  • DDSP(微分可能DSP)
  • エフェクトチェーン推定

7) 先行事例

製品 / 技術 本コンセプトとの主な違い
Suno / Udio 出力は最終的な波形。我々の目標は構造(MIDI + パラメータ)。
Synplant 2 ワンショットに特化。我々はマルチパート音楽(シーケンス + ミックス)を対象。
DAW Audio-to-MIDI ノートのみ抽出、楽器パラメータなし。

開発計画

0) ターゲットユーザーエクスペリエンス

  1. リファレンス音声を読み込む
  2. 分析を実行(オフライン/バックグラウンド)
  3. 編集可能な出力を受け取る(MIDI、プリセット、FX)
  4. DAWで編集、再生、エクスポート

3) マイルストーン

M0 — 仕様 + スキャフォールディング

仕様定義、フレームワーク確認(JUCE + CMake)、スキーマ策定。

M1 — MVP1: 音声 → MIDI → 内部シンセ

音声読み込み、モノフォニックスパイク書き起こし、MIDI生成、内部シンセ再生。

M2 — MVP2: パラメータ推定

制約付きパラメータセット、合成トレーニングデータ、推定手法の選定。

M3 — MVP3: ソース分離 + マルチパート

オフラインステム分離、ステムごとのAMT、マルチティンバル再生。

M6 — 製品化

ジョブ管理、UX(信頼度表示)、パフォーマンス、ベータ配布。

6) 次の意思決定事項

リポジトリ概要(技術 / AI)

このセクションはリポジトリ構造とデータフォーマットの技術マップです。

ディレクトリマップ

データフォーマット

analysis.json

出力を指すマニフェスト。

{
  "source": { ... },
  "tempo_bpm": 120,
  "parts": [
    { "name": "melody", "midi_file": "...", "notes": [...] }
  ]
}

*.preset.json

内部シンセ設定のスナップショット。

モノフォニック分析API

wbrAnalyzeMonophonic(monoSamples, sampleRateHz, params) -> vector<WbrAnalyzedNote>

重要な調整パラメータ:

スレッド / 安全性

ビルドコマンド

cmake -S . -B build -DJUCE_BUILD_EXAMPLES=OFF && cmake --build build --parallel 4