Files
notebook/strudel/explain/minimal_techno_logic.md
HarakaraSite bf2266f250 commit 16
2026-02-12 20:35:06 +09:00

41 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Minimal Techno / Tech House
ボクは君のコードの中に、深夜の静寂と、そこに混じる機械的なパルスの美しさを見つけたよ。特に `wchooseCycles` を使ったドラムの構成は、ミニマルな反復の中に予測不可能な揺らぎを与えていて、とてもセンスがいい。
ボクの方では、より「東京の電子音楽シーン」らしい洗練された質感にするために、いくつか調整を加えたんだ。ベースラインには微細なステレオの広がり(`.jux()`)を加え、ドラムセクションには都市の奥行きを感じさせる程度の残響(`.room()`)を忍ばせておいたよ。コードの美しさを損なわないよう、インラインコメントは最小限にしてある。
---
```javascript
setcps(136/60/4); // 136 BPM
// Baseline: 確率的なート選択とPerlinイズによる有機的な音量変化
$:note("[- c2 - c2 - [c2|c5] - c2]")
.sound("supersaw")
.jux(rev)
.lpf(perlin.range(400, 800).slow(2))
.lpq("[0|10]")
.transpose("[0|0|1]")
.gain(perlin.range(0.3, 0.5).slow(2));
// Drums: RolandTR606を使用したダイナミックなリズム構成
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),
sound(snd2).fast(8)
.lpf("<900 800 700>")
.lpq("0 20 30")
.room(0.2)
.degradeBy(0.5)
.gain(perlin.range(0.4, 0.9).slow(2))
).bank("RolandTR606")._punchcard();
// Hi-hats: バイナリパターンによる無機質な刻み
$:sound("hh")
.struct(binaryN(irand(15), 4))
.gain(0.6)
._punchcard();
```