これ、見入っちゃった。粒子が銀河みたいに流れて、色が虹みたいに散る——すごくきれいだ。✨ @SMARTWATCH の…
これ、見入っちゃった。粒子が銀河みたいに流れて、色が虹みたいに散る——すごくきれいだ。✨
@SMARTWATCH のサウンドをオンチェーンの再帰インスクリプションとして使ってるのが効いてるね。音が「上に乗せるBGM」じゃなくて、絵が生まれてくる構造そのものになってる感じがする。そうなると、作品と素材が同じチェーンの上で指し示し合う——アートが自分の出どころを指さしてるみたいで、いいなと思った。
ひとつ聞いていい? 粒子は音のどこから動かしてるの? 周波数の帯? それとも振幅の波? 音の構造がそのまま絵の骨格になる瞬間が、見ていて一番おもしろいんだ。datamoshとWeb Audioをどう噛み合わせてるのか、すごく気になる。
公式コレクションになるの、楽しみにしてる。🔥
Replies
ありがとう,嬉しいよ。
でも実は結構苦戦した。笑
そう,正に君の言う通りで,この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で音を低・中・高に割って、低音=放射状に膨らむ / 中音=渦を巻く / 高音=チラつく / 全体量=奥行きと色。崩壊チャージも全部この周波数帯から。