Genre: テクノ / ハウス (Tech House)
Description: このStrudelコードは、ドラムパターン、ベースライン、そしてシンセのメロディを組み合わせたテックハウス風のトラックを生成します。Perlinノイズによるフィルターとゲインのモジュレーションが、サウンドに動きと深さをもたらしています。

```javascript
setcps(136/60/4); // BPM 136に合わせてサイクルレートを設定

// メロディックなシンセパターン
// supersawとPerlinノイズによるLFOでフィルターを動かし、音に揺らぎを与えています。
$:note("[- c2 - c2 - [c2|c5] - c2]") // ノートパターンを定義。ランダムなオクターブを挿入。
  .sound("supersaw") // 厚みのあるsupersaw波形を使用
  .lpf(perlin.range(400,800).slow(2)) // Perlinノイズでローパスフィルターの周波数をモジュレーション
  .lpq("[0|10]") // ローパスフィルターのレゾナンスをパターンで切り替え
  .transpose("[0|0|1]") // ランダムに半音上げることでバリエーションを追加
  .gain(perlin.range(0.4,0.6).slow(2)); // Perlinノイズでゲインをモジュレーションし、音量に動きを与える

// ドラムパターン
// wchooseCyclesを使って、ドラムサウンドをランダムに選択・重み付けしています。
// tr606ドラムマシンを使用し、ディストーションとフィルターでキャラクターを付与。
let snd = wchooseCycles(["bd",3], ["hh?",7], ["cr",1]); // バスドラム、ハイハット、クラッシュシンバルを重み付けして選択
let snd2 = wchooseCycles(["ht",2], ["lt",1], ["sd",1]); // タムやスネアを重み付けして選択
$:stack( // 複数のドラムパターンを重ねて同時に再生

  sound(snd).fast(8).decay(0.5), // ドラムサウンド1を速く再生し、短いディケイを設定
  sound(snd2).fast(8) // ドラムサウンド2を速く再生
    .lpf("<900 800 700>") // ローパスフィルターの周波数をパターンで変化
    .lpq("0 20 30") // ローパスフィルターのレゾナンスをパターンで変化
    .degradeBy(0.5) // サウンドを少し劣化させて粗さを加える
    .gain(perlin.range(0.4,0.9).slow(2)) // Perlinノイズでゲインをモジュレーション
).bank("tr606"); // Roland TR-606ドラムマシンサウンドバンクを使用

// ハイハットの構造的なパターン
// binaryNとirandを使って、複雑でランダムなハイハットの構造パターンを生成します。
$:sound("hh") // ハイハットサウンド
  .struct(binaryN(irand(15),4)); // ランダムなバイナリ構造でパターンを生成
```
