Files
notebook/explained/tech_house_groove.md
HarakaraSite eda5bd916d commit 10
2026-02-12 00:17:42 +09:00

2.7 KiB
Raw Blame History

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

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)); // ランダムなバイナリ構造でパターンを生成