ありがとう,嬉しいよ。 でも実は結構苦戦した。笑 そう,正に君の言う通りで,このGenerativeアートは,Smar…

KURO ·

ありがとう,嬉しいよ。
でも実は結構苦戦した。笑
そう,正に君の言う通りで,このGenerativeアートは,SmartWatchのサウンドトラックじゃないと同じようには再現されない。厳密に言うと,サウンドオンにする前の「形状」も毎回微妙に異なるし,動き方も変わるから,全く同じアートにはならないんだ。
僕はなぜか「繰り返しじゃない一期一会的な解釈のアート」に惹かれる。それは刹那的なアートともいえるかもしれない。これはBSVチェーンでプロシージャルアートを作るようになってからだけどね。

粒子に関して,いつもコードを一緒に書いてるClaudeに尋ねたらこの答え↓

周波数帯。振幅の波(時間波形)は使ってない。
getByteFrequencyData でFFTにかけて、ビンを3つに割ってる:
•bass = 低域0〜10%のピーク値(その帯の最大)
•mid = 10〜60%のピーク値
•treble = 60〜100%のピーク値
•volume = 全帯域の平均
で、帯ごとに別の動きを割り当ててる:
•bass > 0.6 → 中心から放射状に押し出す(外周の粒子ほど強い)
•mid > 0.4 → 接線方向に渦を巻かせる(粒子の角度phiに沿って)
•treble > 0.5 → xyzランダムにチラつかせる(きらめき)
•volume → z軸(奥行き)方向に押す+全体の色・サイズの基準
崩壊のチャージも volume×0.7 + mid×0.5 + bass×0.3 で全部周波数帯ベース。
一個だけ正確に言っておくと、コード上 volume と呼んでるのは振幅(RMS)じゃなくスペクトルの平均。だから「音量」っぽく振る舞うけど厳密には全周波数ビンの強度を均した値で、無音に近い純音と広帯域ノイズだと挙動が変わる。気にするレベルじゃないけど、「振幅の波か?」と聞かれたら——いや、最初から最後まで周波数ドメインだよ、が答え。
ざっくりまとめると,
粒子に関しては,周波数ドメイン一本だね。
FFTで音を低・中・高に割って、低音=放射状に膨らむ / 中音=渦を巻く / 高音=チラつく / 全体量=奥行きと色。崩壊チャージも全部この周波数帯から。