本書は VC-1 のサウンド連動パターン(vc1_dmx_sound_input_1 〜 vc1_dmx_sound_input_8)について、狙い・実装内容・調整ポイントを整理したドキュメントです。季節演出ショートカット(Sh+Ct+W+1..8)と同じカラーパレットラインナップを DMX で即時再現することを目的にしています。シーン割り当てやパラメータ調整時のリファレンスとしてご利用ください。
各パターンで共通して利用するヘルパー・データセットを整備しました。コードの一貫性と再利用性を高めることが目的です。
| ヘルパー | 役割 |
|---|---|
clear_new_values() | newValues[] をゼロ初期化し、残像やノイズを排除します。 |
clamp_u8() | 中間演算結果を DMX 表現範囲 (0-255) に収めます。 |
set_group_rgb_range(start, end, r, g, b) | G1S〜G5S の範囲を RGB トリプレット単位で一括設定します。 |
apply_peak_hold(current, input, decay) | 入力量のピークを保持し、余韻のある減衰を作ります。 |
lerp_u8(from, to, t) | 8bit 線形補間で、パレットのクロスフェードを滑らかにします。 |
scale_color(color, level) | (既存パターンとの互換性目的) 基準色の強度を安全にスケールします。 |
load_season_rgb_palette(preset, left, right) | season_palettes から指定プリセットの KG1/KG2 色を読み出し、右側(KG3)を編集値優先・未設定時は左色でフォールバックします。 |
apply_palette_component(color, base, accent) | 季節色にベース光とアクセント光をブレンドし、255 以内で加算します。 |
render_season_band(...) | 季節パレットをスキャンしながらグループ帯へ出力します。オフセットと反転に対応。 |
render_season_band_gradient(...) | 減衰/増幅しながら季節パレットを展開します。波形や傾斜表現に利用。 |
全パターンは共有バッファ Rx3B[] から周波数別の音量データを取得します。主に利用したインデックスは以下の通りです(詳細は各関数のコメント参照)。
| インデックス | 説明 |
|---|---|
| 201-205 | 低域〜下位中域 (20-400 Hz) — ベース・キックを主に担当 |
| 206-210 | 中低域〜プレゼンス帯域 (400 Hz - 2 kHz) — ボーカル・スネア等の存在感 |
| 211-215 | 上位中域〜ハイエンド (2 kHz - 20 kHz) — シンバル、スパークル強調 |
| 217-219 | RGB アクセント用解析値(彩度・左右を補助する用途) |
| 220-221 | ホワイトウォッシュ、ストロボ駆動、回転スピード制御 |
周波数帯の組み合わせを変えることで、楽曲の要素(ベース/ボーカル/ハイハット等)をテーマごとに引き出しています。
test_pattern_by_code() で 0xD1〜0xD8 等、季節演出に合わせたマッピングを設定してください。既存シーンを置き換える場合は段階的な切り替えがおすすめです。n: フレームカウンタ由来の n を各パターンが利用します。テンポ感に合わせて呼び出し間隔を調整してください。data_kake() の乗数は現環境のオーディオレベル想定に合わせています。必要に応じてゲイン係数を調整してください。G1S〜G5S の区切りが実機 DMX 配線と一致していることを再確認。相違がある場合はヘルパーの範囲指定を合わせてください。season_palettes と同一データを load_season_rgb_palette() で引き出し、ライブ編集内容と同期した RGB を直接使用。clear_new_values() を徹底し、残像のない決定論的挙動を保証。render_season_band* 系に寄せ、ロジックの重複を削減。Build only (uVision) タスク)でビルド確認済み(エラー/警告 0)。test_pattern_by_code() のマッピングを季節コードへ更新し、意図どおりの割当が行えることを確認。