← PROJECTS

SSNN Preset
Generator

sonicLAB SSNNスパイキングニューラルネットワークシンセサイザーのためのプリセットバンク生成ツールチェーン。GPUシェーダーに着想を得た数学関数でスペクトルデータとニューラルウェイトを完全にゼロから合成する。

View on GitHub
360
presets
24
shader patterns
30
preset banks
960
neurons computed

概要

SSNNのソースコード(C++)を解析し、WeightMatrixCalculatorとRandomWeightMatrixSolverの重み計算アルゴリズムをPythonで完全に再実装。ライブオーディオ入力や既存プリセットに依存せず、数学的にスペクトルデータとニューラルウェイトを生成する。

24種のシェーダーパターン(FBM、ボロノイ、ローレンツアトラクタ、ジュリア集合、反応拡散系など)で32×30のスペクトルフィールドを生成し、SSNNと同一の逆NN工学アルゴリズムで結合重みを算出する。

生成されるプリセットには、音楽的に意味のあるコードベースの周波数、等ラウドネス補正付きゲイン配分、ルーティング制約の遵守、バランスの取れたステレオパン配置が適用される。

4種のニューラルプロファイル(responsive、sustained、chaotic、gentle)と8種のシンセテンプレートの組み合わせにより、多様な音色特性を実現。

重み計算

SSNNのReverse NN Engineeringを忠実に再実装。隣接するスペクトルフレーム間の変換重みを線形代数で算出する。

RandomWeightMatrixSolver (from SSNN C++ source) W0[i][j] = (v2[i] × v1[j]) / ||v1||²    // particular solution
M[i][j] = r[j] - (dot(r, v1) / ||v1||²) × v1[j]    // null-space random
W = (W0 + M) × weightcoef    // final weight matrix

where v1 = previous layer spectrum (30d), v2 = target layer spectrum (30d)

シェーダーパターン

GPUシェーダーに着想を得た2Dフィールド関数 f(layer, bin) → amplitude で32×30のスペクトルマトリクスを生成する。

noise

FBM Terrain

7オクターブフラクタルブラウン運動。有機的で地形のようなテクスチャ。

noise

Domain Warp

二重ドメインワーピング。異質で変形する空間テクスチャ。

noise

Voronoi Cells

ボロノイ距離場。結晶構造的な金属共鳴。

chaos

Lorenz Projection

ローレンツアトラクタ軌道投影。バタフライ効果のカオス。

chaos

Logistic Chaos

ロジスティック写像の分岐。周波数軸上の分岐ダイアグラム。

chaos

Hénon Attractor

エノンストレンジアトラクタの軌道ヒストグラム。

wave

Wave Interference

円形波の重ね合わせ干渉パターン。

wave

Standing Wave

2D膜の定在波共鳴モード。物理的で共鳴的。

wave

Moiré Pattern

回転した2つのグリッドによるモアレ干渉。

math

Julia Set

ジュリア集合フラクタル。境界領域に豊かなディテール。

math

Reaction-Diffusion

Gray-Scott反応拡散系。生物学的自己組織化パターン。

geometry

Spiral Harmonics

対数螺旋ハーモニクス。貝殻のような回転共鳴。

技術詳細

ニューラルプロファイル

ProfiletauCharacter
responsive1.5-3.0高速応答、リズミック
sustained5.0-9.0持続テクスチャ、進化
chaotic2.0-6.0予測不能、実験的
gentle3.0-7.0繊細、制御された出力

等ラウドネスゲイン補正

Fletcher-Munson compensation weight = (freq_hz / 300.0) ^ 0.35

65Hz → 0.55   220Hz → 0.74   440Hz → 0.88   880Hz → 1.05

シンセテンプレート

TemplateGeneratorsProcessors
pulsePulse
modalModalComb
pmodPulse+ModalTape
synfmSynapticFMGranular
granGran+FM+Tape
rawComb+Tape
fmModalFM
tapeTape

命名規則

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