SOUND LAB MANUAL

なまず反応拡散シーケンサー 説明書

Gray-Scott型反応拡散で育つ2次元のChemical Gardenを、独立した3本のScannerで読み取って演奏するブラウザ楽器です。模様を作る、育てる、音として収穫する、という順で操作できます。

ツールを開く

このツールでできること

  • Gray-Scott反応拡散を実計算し、DOTS、WORMS、MAZE、WAVESなど10種類の実パターンからChemical Gardenを育てます。
  • Scanner A/B/Cは種類、方向、読取BIN数、音楽レート、Trigger、音色を別々に持ちます。画面描画とは別にAudioContextの先読み時計で発音を予約します。
  • 実際の連結領域からColonyとBirth・Death・Merge・Splitを検出し、追従走査やイベントアクセントへ利用します。
  • WHY THIS NOTE?で位置→音程、領域サイズ→Gate、V濃度→Velocity、反応量→Filterの対応を確認できます。
  • FIELDを含むSnapshot A〜DとMorph、最大5分のWAV録音、実発音のType 1 MIDI、なまずポシェット保存に対応します。

クイックスタート

  1. EASYのDOTSを選び、CanvasをPLANT BRUSHで一度なぞります。初期模様へ局所的なV濃度が加わります。
  2. 「▶ GROW + PLAY」を押します。模様はSimulation Clockで育ち、Scanner Aの音はAudio Clockで予約されます。
  3. Canvas上のMANUAL SCANを選んでドラッグするか、「SCAN NOW」を押し、触れた位置から音を収穫します。
  4. WHY THIS NOTE?で、最後の音のPosition、Region Size、V Concentration、Reaction、Triggerを確認します。音が出ない走査はSilent Reasonを表示します。
  5. GROWでChemistry Padを少し動かし、HARVESTでScanner BをLIVEにして、横方向のEdges Triggerを重ねます。
  6. 気に入った状態はSnapshotへCAPTUREするか、SAVE PROJECTでFIELDごとなまずポシェットへ保存します。

EASY / GROW / HARVEST / ADVANCED

  • EASYはPlant、Pattern選択、Chemistry Pad、Play、Manual Scanだけで始められる入口です。
  • GROWはChemistry Pad、10 Pattern Atlas、Brush Size/Strength、6 Macroをまとめます。
  • HARVESTはScanner A/B/C、Pitch Field、Freeze Sound、WAV/MIDI/Project出力を扱います。
  • ADVANCEDは生のdu/dv/Feed/Kill、解像度、Boundary、Audio安全上限、Colony、色、Snapshot A〜Dを開きます。

Simulation ClockとAudio Clock

FIELDはrequestAnimationFrame側のSimulation Clockで進みます。Gray-Scott更新は dU/dt = du∇²U - uv² + feed(1-u)、dV/dt = dv∇²V + uv² - (feed+kill)v を重み付きLaplacianで離散化しています。

音は25msごとにAudioContext.currentTimeを読み、約120ms先まで予約します。描画Frameが揺れても、Scannerの音楽レートをCanvas Frame数で進めません。

ScannerとWHY THIS NOTE?

  • Vertical ScannerはRegionのY位置、Horizontal ScannerはX位置を高い側から低い側へScale上の音程へ写します。
  • Region SizeはGate、V濃度はVelocity、ReactionまたはTrigger特性はFilter、X位置はPanへ写します。
  • PeaksはVの局所的な山、Edgesは閾値交差とGradient、Reactionはuv²、Motionは前回検出時からのV差分、Birthは実際の新Colonyイベントを使います。
  • 条件を満たすRegionがない走査は無音にし、Scanner、判定値、Threshold、理由をSilent Reasonへ表示します。

Colonyとイベント

ColonyはV濃度がColony Level以上で上下左右につながる実セル集合です。前回の集合との重なりと近さからID、Age、移動量を更新し、Birth、Death、Merge、Splitを判定します。

FIELD右の一覧からColonyを選ぶとFollow TargetがSelectedになり、Follow Colony Scannerがその重心へ移動します。EVENT ACCENTSをONにするとイベント種類に応じた音色で別トラックへ発音します。

Freeze World / Freeze Sound / Grow Behind

  • FREEZE WORLDはSimulation Clockだけを止めます。Scannerは固定FIELDを引き続き走査できます。
  • FREEZE SOUNDは直近4/8/16件の実発音をLOOPへ固定し、新しいScanner読取を止めます。
  • GROW BEHINDがONならFreeze Sound中もFIELDは成長し、解除時に進んだ世界を再び収穫します。OFFなら音とFIELDを同時に保持します。

Snapshot A〜DとMorph

CAPTUREは設定だけでなくU/V FIELD、Step、Scanner、Macro、色、音楽設定を保存します。RECALLはFIELDを含めてそのSceneへ戻ります。Snapshot名は直接変更できます。

Morphは2つのSnapshot間でChemistry、BPM、Master、Gate、Voices、Macroと同解像度のU/V FIELDを補間します。解像度が違う場合、FIELDは50%地点で切り替えます。

各パラメータ

項目範囲・選択肢役割
Chemistry Pad / Feed0.010〜0.080Padの横軸。反応系へUを供給する速度を変え、成長密度と形態を動かします。
Chemistry Pad / Kill0.040〜0.100Padの縦軸。Vを除去する速度です。Feedとの組合せでDOTS、WORMS、WAVES、CHAOSの領域を探ります。
Diffusion U0.02〜0.3ADVANCEDでU濃度場の拡散係数を調整します。
Diffusion V0.02〜0.2ADVANCEDでV濃度場の拡散係数を調整します。
Evolution Speed0.20〜4.00×Simulation Step内の時間係数です。ScannerのMusic Rateとは独立しています。
Resolution64 / 96 / 128 / 160ADVANCEDでFIELD解像度を選びます。変更時はFIELDを再生成します。
Seed1〜2147483647初期配置の決定論的な種です。同じPattern、Seed、ResolutionからRESETすると同じ初期FIELDを再生成します。
BoundaryWrap / ClampFIELD端の境界条件です。Wrapは反対側へつなぎ、Clampは端の値を参照します。
Scanner TypeVertical / Horizontal / Manual / Follow Colony縦線、横線、手動Crosshair、Colony追従の読取位置をScannerごとに選びます。
Scanner Detail16 / 32 / 64 / 1281本の線を解析する実BIN数です。大きいほど細い領域を分離します。Music Rateは変えません。
Scanner DirectionForward / Reverse / Ping Pong実際の走査Step順を正方向、逆方向、往復へ切り替えます。
Trigger / ThresholdPeaks / Edges / Reaction / Birth / Motion、0.02〜0.80Vの山、濃度境界、uv²反応量、新Colony誕生、FIELD差分を別々の判定式で検出し、感度を調整します。
Music Rate1/4 / 1/8 / 1/16 / 1/32 / 1/64BPMからScannerの次回Audio Clock予約時刻を決めます。Detailとは独立しています。
Root / ScaleC〜B / Hirajoshi・Major/Minor Pentatonic・Chromatic・Custom縦または横位置を割り当てる音階です。画面右端のPitch Guideも同じ設定を使います。
Freeze World / Freeze SoundON / OFFWorldはFIELD更新だけを停止。Soundは直近の実発音をLoopし、新しいScanner読取を停止します。
Octave Range1〜4音域をカバーするオクターブ数です。
Voice Limit1〜24全Scannerを合わせた同時発音の安全上限です。
InstrumentSine / Triangle / Square / Saw / Bell / Pluck / Marimba / Chip Lead / Chip BassScannerごとの音色です。
Gate / Level0.10〜1.50× / 0〜100%Region Sizeから作る音長の倍率とScannerごとのVelocity倍率です。
Brush ModePlant / Erase / Splash / Noise / Trail / Stamp / Manual ScanFIELDへ植える、消す、リング状に散らす、Noiseを加える、連続描画する、形を押す、Scanner Aを動かす操作です。
Brush Size / Stamp0.008〜0.20 / Dot・Ring・Cross・Spiral・ClusterBrushの影響範囲とStampの実形状です。
Colony / Macro / ActionColony Level 0.05〜0.80、6 Macro、Bloom / Drop / Erupt連結領域の判定値と、基礎設定を壊さず有効Chemistry・検出密度・Filter・空間量へ重ねる演奏操作です。

プリセット

  • DOTS / WORMS / MAZE / WAVES: 初期配置とFeed・Kill・拡散・速度がそれぞれ異なり、点、線、迷路、波を育てます。
  • CORAL / FRAGMENTS / DENSE: 枝、断片、高密度領域を作り、EdgesやReaction Triggerへ向く設定です。
  • SOFT / CHAOTIC / CALM: 変化速度と余白が異なり、低密度演奏、イベント中心、高精度Manual Scanを試せます。
  • Atlasの各サムネイルは装飾画像ではなく、64×64の反応拡散をその場で進めて描いたPreviewです。

保存・共有・書き出し

  • 最後のProjectとFIELD、Snapshot A〜Dは同じブラウザへ自動保存します。Audioは自動再生しません。
  • SAVE PROJECTは現在のFIELD、全設定、Snapshot A〜Dを1つのproject-stateとしてなまずポシェットへ保存します。旧形式はV2へ移行し、存在しない値は安全な初期値へ補います。
  • COPY SCENE URLはFIELD本体を含まない軽量URLです。受信側では設定とSeedを復元し、初期FIELDを再生成します。
  • WAVは実際のMASTER出力を最大300秒録音し、停止後にPCM WAVとしてDownloadまたはPocket保存できます。
  • MIDIは再生開始後に実際に発音予約されたNoteだけを、Scanner A/B/C、Colony、Loop別のType 1 Trackへ書き出します。Pocket保存後はMIDI Editorへ直接渡せます。

おすすめ設定

  • 最初の演奏: DOTS、Scanner A Peaks、Detail 32、Music Rate 1/8、Threshold 0.20、Voice Limit 8。
  • 輪郭の対話: WORMSまたはMAZE、Scanner B Horizontal / Edges、Reverse、Detail 64、Bell。
  • 生態イベント: CHAOTIC、Colony Level 0.22、Scanner C Follow Colony / Birth、EVENT ACCENTS ON。
  • Ambient Loop: CALM、Gate 1.0、Space 70%、直近8 EventをFREEZE SOUND、GROW BEHIND ON。

トラブルシューティング

  • 音が出ない場合はPLAYまたはSCAN NOWでAudioContextを許可し、WHY THIS NOTE?のSilent Reasonを確認します。Thresholdを下げる、PLANTでFIELDへVを足す、Scanner TypeをManualにする順で切り分けます。
  • Birth Triggerが無音の場合は既存Colonyではなく新しいBirthだけが対象です。ERASE後に別の場所へPLANTするか、CHAOTICをRESETして試します。
  • 重い場合はResolutionを64または96へ下げ、Voice LimitとLIVE Scanner数を減らします。Audio予約はCanvas描画と独立していますが、端末全体の負荷は減らす必要があります。
  • FREEZE SOUNDが無音の場合は、先に通常再生で4件以上鳴らしてから固定します。
  • WAVを作れない場合はMediaRecorder対応の最新版ChromeまたはEdgeで短い録音を試します。

データ・プライバシー

FIELD計算、Canvas描画、音声合成、Colony解析、MIDI/WAV作成はブラウザ内で行います。自動保存はlocalStorage、明示的なProject・MIDI・WAV保存はなまずポシェット(IndexedDB)を使います。外部サーバーへ自動送信しません。共有URLにはProject名と設定値が含まれますが、FIELD本体と録音音声は含みません。

FAQ

同じSeedなら同じ演奏になりますか?
同じPattern、Seed、Resolution、Chemistry、BoundaryからRESETすると初期FIELDとStep列は決定論的です。ただしBrush操作、再生開始時刻、Freeze、Scanner設定を変えると実発音列は変わります。完全な途中状態はSnapshotまたはPocketへFIELDごと保存してください。
Detailを上げるとテンポも速くなりますか?
いいえ。Detailは線を読むBIN数、Music RateはAudio Clock上の予約間隔です。互いに独立しています。
FREEZE WORLDとFREEZE SOUNDの違いは何ですか?
FREEZE WORLDはFIELD更新だけを止め、Scannerは固定FIELDを読めます。FREEZE SOUNDはScanner読取を止め、直近の実発音をLoopします。GROW BEHINDでLoop中のFIELD更新を選べます。
共有URLとPocketは何が違いますか?
共有URLは軽量な設定とSeedだけです。Pocketは現在のU/V FIELDとSnapshot A〜Dまで保持します。途中の生きた世界を正確に残す場合はPocketを使います。

関連ツール・ガイド