Shared Parameter Schema
Preview と Render の UI は同じスキーマから生成され、Copy Preview → Render で決定内容をそのまま NRT 側へ渡します。
SuperCollider の音色設計とブラウザの操作面を直結し、Preview と Render を別の制御ループとして保ったまま往復できるローカル音響ツール。FM ベースのドラム設計、ターゲットモーフのマクロ制御、WebUI からのリアルタイム調整、NRT バッチレンダリングを一つの操作系にまとめています。
4 voice beat generator を出発点にしつつ、FM パーカッション、triplet / micro layers、post FX、render metadata まで含めて一つのローカル制作環境として再構成しています。目的は単なるランダムビート生成ではなく、音色判断と再現性のある書き出しを同じ文脈で扱うことです。
Preview と Render の UI は同じスキーマから生成され、Copy Preview → Render で決定内容をそのまま NRT 側へ渡します。
キック、スネア、ハット、click、FM 補助音をサンプル再生ではなく SynthDef で構成し、倍音と帯域を直接詰められるようにしています。
FX chain 末尾に multiband, saturation, limiter を置き、極端な設定でも preview / render の双方で破綻しにくい状態を保ちます。
Low / Mid / High / Attack / FM の 5 軸で目標音色を抽象化し、スネアや FM 質感をマクロで追い込めるようにしています。
フロントエンドは schema-driven な UI を作り、Node.js は WebSocket と OSC の橋渡しだけに専念します。SuperCollider 側では Preview と NRT render が同じパラメータ語彙を共有し、出力は WAV と sidecar JSON に収束します。
再生系は RT server 上で固定。WebUI は現在値だけを流し込み、音色判断を短いループで進めます。
NRT 側は Score.recordNRT を使い、同じパラメータセットから再現可能な batch output を書き出します。
FM amount, ratio, index, drift と target morph を組み合わせ、ドラムの音色方向を粗密の両方で扱います。
レベル、sidechain、multiband、reverb、limiter を同じ UI の中に置き、音色と安全性を切り離さず調整できます。
操作の中心は「Preview で耳を使って詰める」「Render にコピーする」「NRT で batch を書き出す」の 3 段階です。ローカル起動は一発の launcher script で統一しています。
`start.sh` が schema 生成、Node 起動、SuperCollider 起動、ポート回避までをまとめて処理します。
target morph マクロ、FM パラメータ、snare / clap バランスを Preview 側で判断し、耳で正解を寄せます。
Preview で決まった状態を Render panel に転送し、batch 条件と seed の扱いだけを別で管理します。
WAV と parameter sidecar JSON をペアで書き出し、再生成できる単位として保存します。
公開ページは静的ですが、制作現場ではローカルの音響ツールとして利用します。run command, parameter schema, batch logging を含め、あとから同じ条件へ戻れることを重視しています。
書き出し音声には full parameter set の JSON sidecar を添付し、同じ条件へ戻れるようにしています。
batch render は逐次実行で安定性を優先し、失敗時もログを残して次の job へ進みます。
Preview panel の状態は preset として保存し、後から同じ starting point を再利用できます。
WebUI は単体の見た目ではなく、Node bridge と SuperCollider synthesis を含むローカル runtime として完結します。
cd /Users/rhizomacbookproretina30/lab/beat-generator ./start.sh