sonicLAB SSNNスパイキングニューラルネットワークシンセサイザーのためのプリセットバンク生成ツールチェーン。GPUシェーダーに着想を得た数学関数でスペクトルデータとニューラルウェイトを完全にゼロから合成する。
SSNNのソースコード(C++)を解析し、WeightMatrixCalculatorとRandomWeightMatrixSolverの重み計算アルゴリズムをPythonで完全に再実装。ライブオーディオ入力や既存プリセットに依存せず、数学的にスペクトルデータとニューラルウェイトを生成する。
24種のシェーダーパターン(FBM、ボロノイ、ローレンツアトラクタ、ジュリア集合、反応拡散系など)で32×30のスペクトルフィールドを生成し、SSNNと同一の逆NN工学アルゴリズムで結合重みを算出する。
生成されるプリセットには、音楽的に意味のあるコードベースの周波数、等ラウドネス補正付きゲイン配分、ルーティング制約の遵守、バランスの取れたステレオパン配置が適用される。
4種のニューラルプロファイル(responsive、sustained、chaotic、gentle)と8種のシンセテンプレートの組み合わせにより、多様な音色特性を実現。
SSNNのReverse NN Engineeringを忠実に再実装。隣接するスペクトルフレーム間の変換重みを線形代数で算出する。
GPUシェーダーに着想を得た2Dフィールド関数 f(layer, bin) → amplitude で32×30のスペクトルマトリクスを生成する。
7オクターブフラクタルブラウン運動。有機的で地形のようなテクスチャ。
二重ドメインワーピング。異質で変形する空間テクスチャ。
ボロノイ距離場。結晶構造的な金属共鳴。
ローレンツアトラクタ軌道投影。バタフライ効果のカオス。
ロジスティック写像の分岐。周波数軸上の分岐ダイアグラム。
エノンストレンジアトラクタの軌道ヒストグラム。
円形波の重ね合わせ干渉パターン。
2D膜の定在波共鳴モード。物理的で共鳴的。
回転した2つのグリッドによるモアレ干渉。
ジュリア集合フラクタル。境界領域に豊かなディテール。
Gray-Scott反応拡散系。生物学的自己組織化パターン。
対数螺旋ハーモニクス。貝殻のような回転共鳴。
| Profile | tau | Character |
|---|---|---|
| responsive | 1.5-3.0 | 高速応答、リズミック |
| sustained | 5.0-9.0 | 持続テクスチャ、進化 |
| chaotic | 2.0-6.0 | 予測不能、実験的 |
| gentle | 3.0-7.0 | 繊細、制御された出力 |
| Template | Generators | Processors |
|---|---|---|
pulse | Pulse | — |
modal | Modal | Comb |
pmod | Pulse+Modal | Tape |
synfm | SynapticFM | Granular |
gran | — | Gran+FM+Tape |
raw | — | Comb+Tape |
fm | Modal | FM |
tape | — | Tape |
dm-{profile}-{template}-{shader}.xml
dm-resp-pulse-fbm.xml
dm-chaos-pmod-lorenz.xml
dm-gentle-tape-julia.xml
# Generate a single bank with preview images python3 generator.py synth --name dm-resp-pulse-test --preview # Generate with a specific shader pattern python3 generator.py synth --name dm-chaos-fm-julia --pattern julia_set --preview # Batch generate all 30 banks (generates + fixes + copies to SSNN folder) python3 batch_generate_v2.py # Preview all 24 shader patterns (images only) python3 spectral_engine.py preview
Python 3.10+ numpy opensimplex matplotlib scipy (optional)
Concept: Daito Manabe
SSNN: sonicLAB / Dr. Sinan Bökesoy
Built with Claude Code