アーキテクチャ全面刷新の詳細技術解析
OB-Xd 3.xは、段階的なアップデートではなく、完全にゼロから書き直されたシンセシスエンジンです。新しいアーキテクチャは、オブジェクト指向のボイス単位モデルから、データ指向のSIMD最適化設計に移行し、オーディオ処理の方法を根本的に再構築しています。
| 機能 | OB-Xd 2.x | OB-Xd 3.x |
|---|---|---|
| 最大ボイススロット数 | 32 | 128 |
| 発音可能音数 | 32 (1-32設定可能) | 32 (1-32設定可能) |
| ユニゾンボイス数/音符 | 1 (真のポリフォニックユニゾンなし) | 1-16ボイス/音符 |
| ボイス割り当て | シンプルなキューベース | パッキング最適化を備えたボイスグループ |
| ステレオ広がり | 基本的なパンニング | ユニゾンスタックあたり8ポジションのパン配置 |
| ボリューム補償 | マニュアル | 自動平方根補償 |
バージョン3.xでは、各発音音符が複数のデチューンされたボイスをトリガーできる真のポリフォニックユニゾンを導入しました。例えば、8音ポリフォニーと4ボイスユニゾンの場合、合計32ボイスが生成され、完全なポリフォニック演奏を維持しながら、豊かで分厚いテクスチャーを作り出します。
新しいエンジンは、AVX2命令を使用して8ボイスを同時に処理します:
AVX2 8-Wide処理 (256ビットレジスタ): パフォーマンスへの影響: - オシレーター: 8倍のスループット - フィルター: 8倍のスループット - エンベロープ: 8倍のスループット - 理論的高速化: 実環境で4-6倍
| 機能 | OB-Xd 2.x | OB-Xd 3.x |
|---|---|---|
| アンチエイリアシング方式 | BLEP (帯域制限ステップ) | BLEP + BLAMP (改良版) |
| BLEPテーブル解像度 | 64倍オーバーサンプリング | 64倍オーバーサンプリング |
| BLEP適用 | スカラーループ | SIMDベクトル化 |
| カーネル補間 | 基本 | カーネル間線形補間 |
| 三角波 | BLEPのみ | BLAMP (スロープ用積分BLEP) |
| ハードシンク精度 | 良好 | サブサンプル精度 (1/64サンプル) |
| 波形 | ノコギリ波、パルス波、三角波 | ノコギリ波、パルス波、三角波 |
バージョン2.xは、すべての波形に標準BLEPを使用しており、ステップ不連続性には適していますが、スロープ(微分)不連続性を持つ三角波には最適ではありません。
バージョン3.xは、三角波専用にBLAMP (帯域制限ランプ) を追加し、微分不連続性に対して数学的に正しいアンチエイリアシングを提供します。これにより、より優れた高周波除去を備えたクリーンな三角波が得られます。
| 項目 | OB-Xd 2.x | OB-Xd 3.x |
|---|---|---|
| 非線形性モデル | diodePairResistanceApprox()多項式 | 改良多項式 + ダンピング関数 |
| 自己発振 | シングルモード | ノーマル + より強力な発振用「プッシュ」モード |
| DC除去 | シンプルなハイパス | 2極DCブロッカー (30Hzコーナー) |
| ブライトネスコントロール | オシレーター後段のみ | プリフィルターブライトネス (7-30kHz設定可能) |
| 処理 | スカラー (サイクルあたり1フィルター) | SIMD (AVX2でサイクルあたり8フィルター) |
バージョン3.xでは、本格的なアナログRC (抵抗-コンデンサ) 充電回路をモデリングした洗練された対数-線形アタックスライダーを導入しました。調整可能な漸近線パラメーター (1.05から10.0) により、ほぼ線形のアタックカーブ (柔らかなパッド) から、積極的な指数関数的カーブ (パーカッシブなプラック) まで、ユーザーが形状を調整できます。
この回路精度の高い実装は、アタックフェーズが線形に上昇するのではなく、ターゲットに向かって自然に加速する、ビンテージアナログエンベロープ特有の「パンチ」を再現します。
| 機能 | OB-Xd 2.x | OB-Xd 3.x |
|---|---|---|
| オーバーサンプリングオプション | 1x、2x (HQモード) | 1x、2x、4x |
| デシメーションフィルター | ボイス単位のデシメーター | 共有SIMD最適化FIR |
| フィルタータップ数 (2x) | 約32タップ | 63-127タップ (適応型) |
| フィルタータップ数 (4x) | N/A | 127-255タップ (適応型) |
| サンプルレート適応 | 固定フィルター | サンプルレートに基づく自動フィルター選択 |
| 高サンプルレート最適化 | なし | 96kHz以上で自動的にOSを削減 |
バージョン3.xでは、ホストのサンプルレートに基づいて自動的に調整する適応型オーバーサンプリングを実装しています:
| 指標 | OB-Xd 2.x | OB-Xd 3.x | 変化 |
|---|---|---|---|
| エンジンコード (行数) | 約3,700 | 約19,400 | +5.2倍 |
| ヘッダーファイル | 21 | 43 | +2倍 |
| オシレーターファイル | 4 (SawOsc, PulseOsc, TriangleOsc, ObxdOscillatorB) | 1 (VectorizedOscillators.h - 統合) | 統合 |
| SIMDラッパーファイル | 0 | 2 (AVX2Wrapper.h, NEONWrapper.h) | 新規 |
| テンプレートベースコード | 最小限 | 広範囲 (8個のテンプレートヘッダー) | モダンC++ |
バージョン3.xは、バージョン2.xプリセットとの後方互換性を維持しています。レガシープリセットは正しく読み込まれ、一貫したサウンド再現のためにデフォルトのエンベロープ漸近線は1.11111 (元のv2値) に設定されています。アタック形状やポリフォニックユニゾンなどの新機能は、プリセット毎に有効化できます。
| カテゴリー | OB-Xd 2.x | OB-Xd 3.x | 影響 |
|---|---|---|---|
| アーキテクチャ | オブジェクト指向、スカラー | データ指向、SIMD | 4-6倍のパフォーマンス |
| ボイス数 | 最大32 | 128スロット、32発音可能 | ポリフォニックユニゾン |
| ユニゾン | なし | 1-16ボイス/音符 | 巨大なサウンド |
| SIMD | なし | AVX2 (8-wide) / NEON (4-wide) | CPU効率 |
| オシレーターAA | BLEP | BLEP + BLAMP | よりクリーンな三角波 |
| エンベロープ形状 | 固定 | 調整可能 (1.05-10.0) | より多くの表現力 |
| オーバーサンプリング | 1x、2x | 1x、2x、4x (適応型) | より良い品質 |
| フィルター機能 | 標準 | プッシュモード、DCブロック、ブライトネス | トーンコントロール |
| コードサイズ | 約3,700行 | 約19,400行 | 5.2倍大きい |
OB-Xd 3.xは、単なる段階的アップデートではなく、シンセシスエンジンの完全な再構築を表しています。オブジェクト指向スカラー処理からデータ指向SIMDベクトル化への移行により、大幅なパフォーマンス向上を実現し、v2アーキテクチャでは計算上不可能だったポリフォニックユニゾンなどの新機能を可能にしました。
ユーザーへの主なメリット:
サウンドキャラクターはOberheimの伝統に忠実でありながら、OB-Xd 3.xを商用バーチャルアナログシンセサイザーと競合できるモダンな機能を獲得しました。