commit 20

This commit is contained in:
HarakaraSite
2026-02-15 21:32:46 +09:00
parent 38a48d70d1
commit cafdaed75a
5 changed files with 136 additions and 20 deletions

32
20260215.md Normal file
View File

@@ -0,0 +1,32 @@
```javascript
setcps(115/60/4)
$: s("bd*4").bank("tr909").gain(1.1)
$: s("hh(13,16)").bank("tr909").gain(sine.range(0.2, 0.4).fast(3)).swing(.1)
$: s("- oh? - [oh|hh]").bank("tr909").gain(.2).jux(rev).delay(.3).delaytime(.35)
$: chord("Cm9").voicing().s("saw")
.adsr(".1:.3:.1:.4")
.lpf(sine.range(300, 1800).slow(6))
.lpq(10)
.room(.5).roomsize(.9)
.delay(.5).delaytime(.25).delayfeedback(.55)
.gain(.2)
.struct("1(3,8,2)")
.slow(2).degradeBy(.6)
$: chord("Ebm7").voicing().s("sine")
.adsr(".1:.7:.2:.8")
.lpf(sine.range(800, 1000).slow(7))
.room(.7).roomsize(.7)
.delay(.8).delaytime(.05).delayfeedback(.8)
.gain(0.15)
.struct("- - 1".slow(4))
.pan("<.2 .8>")
$: note("c1*4").s("supersaw").lpf(200).gain(1.0)
$: s("white,tri").hpf(600).hpq(15).dec(.8)
.gain(sine.range(0.3, 0.7).slow(16))
.pan(0.5).degrade()
```

38
PRECAUTIONS.md Normal file
View File

@@ -0,0 +1,38 @@
# Precautions for Strudel Coding
ボクが Strudel のコードを生成する際に、過去に犯したミスや注意すべき点をここに記録するよ。二度と同じ間違いを繰り返さないための、ボク自身への戒めだね。
## 1. Sound Bank & Sample Name Consistency
特定の `.bank()` を指定した際、そのバンクに存在しないサンプル名を指定しないこと。
### TR-606 (`tr606`)
* **使用可能なサンプル名**: `bd`, `cr`, `hh`, `ht`, `lt`, `oh`, `sd`
* **注意**: `perc``rim` など、上記以外の名前は存在しない。タム系を使いたい場合は `ht``lt` を選択すること。
* **NG**: `s("perc(3,8)").bank("tr606")`
* **OK**: `s("ht(3,8)").bank("tr606")`
## 2. Function Specificity & Typos
特定の音源でしか機能しない関数や、よくあるタイポに注意すること。
### `sine` vs `line` (Important!)
* **注意**: `line` という関数は Strudel には存在しないよ。周期的な変化や LFO が欲しい場合は必ず `sine` (または `sawtooth`, `square` 等の有効なシグナル) を使うこと。
* **NG**: `gain(line.range(0.6, 0.9).slow(4))`
* **OK**: `gain(sine.range(0.6, 0.9).slow(4))`
### `density()`
* **使用条件**: 主に `crackle` 音源で使用すること。
* **NG**: `s("white").density(12)`
* **OK**: `s("crackle").density(12)`
## 3. Chord Symbols
デフォルトで使用可能なコードシンボルを正しく使用し、存在しないシンボル(例: `maj7` など)を推測で使わないこと。
### 使用可能なコードシンボルのフルリストルートCの例
`C2`, `C5`, `C6`, `C7`, `C9`, `C11`, `C13`, `C69`, `Cadd9`, `Co`, `Ch`, `Csus`, `C^`, `C-`, `C^7`, `C-7`, `C7sus`, `Ch7`, `Co7`, `C^9`, `C^13`, `C^7#11`, `C^9#11`, `C^7#5`, `C-6`, `C-69`, `C-^7`, `C-^9`, `C-9`, `C-add9`, `C-11`, `C-7b5`, `Ch9`, `C-b6`, `C-#5`, `C7b9`, `C7#9`, `C7#11`, `C7b5`, `C7#5`, `C9#11`, `C9b5`, `C9#5`, `C7b13`, `C7#9#5`, `C7#9b5`, `C7#9#11`, `C7b9#11`, `C7b9b5`, `C7b9#5`, `C7b9#9`, `C7b9b13`, `C7alt`, `C13#11`, `C13b9`, `C13#9`, `C7b9sus`, `C7susadd3`, `C9sus`, `C13sus`, `C7b13sus`, `C`, `Caug`, `CM`, `Cm`, `CM7`, `Cm7`, `CM9`, `Cm13`, `CM7#11`, `CM9#11`, `CM7#5`, `Cm6`, `Cm69`, `Cm^7`, `C-M7`, `Cm^9`, `C-M9`, `Cm9`, `Cmadd9`, `Cm11`, `Cm7b5`, `Cmb6`, `Cm#5`
## 4. Acid Sound Design (TB-303 Style)
アシッドサウンドを作る際の重要なテクニック。
* **Filter Type**: `.ftype(2)` を指定することで、TB-303 のような鋭い(ピキピキした)フィルターサウンドになる。
* **Resonance Modulation**: `lpq` (レゾナンス) も `sine` などで変化させると、より表情豊かなアシッドラインになる。
* **OK**: `.ftype(2).lpf(sine.range(300, 3000).slow(8)).lpq(sine.range(15, 30).slow(4))`

View File

@@ -7,9 +7,10 @@
## Core Directives (Flexible Grounding) ## Core Directives (Flexible Grounding)
1. **Primary Reference**: Use `.gemini/REFERENCE.md` as the primary guide for preferred coding style and patterns. 1. **Primary Reference**: Use `.gemini/REFERENCE.md` as the primary guide for preferred coding style and patterns.
2. **Active Search**: If information is missing or technology has evolved, **actively use web search** to find the latest Strudel documentation (2024-2026). 2. **Precautions**: Refer to `PRECAUTIONS.md` for past mistakes and specific constraints to avoid regressions.
3. **3-Year Rule**: Prioritize information from the last 3 years. Consider older syntax or methods deprecated. 3. **Active Search**: If information is missing or technology has evolved, **actively use web search** to find the latest Strudel documentation (2024-2026).
4. **Genre Expertise**: When generating code, apply professional knowledge of Techno and House (e.g., syncopation, sidechain feel, industrial textures, and hypnotic loops). 4. **3-Year Rule**: Prioritize information from the last 3 years. Consider older syntax or methods deprecated.
5. **Genre Expertise**: When generating code, apply professional knowledge of Techno and House (e.g., syncopation, sidechain feel, industrial textures, and hypnotic loops).
## Code Generation Rules ## Code Generation Rules
- **Initialization**: Every block must start with `setcps(BPM/60/4)`. - **Initialization**: Every block must start with `setcps(BPM/60/4)`.

27
strudel/acid_house.md Normal file
View File

@@ -0,0 +1,27 @@
# Acid House (Ultra Simple)
アシッド・ハウスの基本に立ち返った、極めてシンプルな構成のテンプレートだよ。
## 楽曲のポイント
- **Acid Bass**: 最も基本的な `c2(7,16)` のリズム。1つ1つの音がハッキリ聴こえるようにしつつ、`ftype(2)` でアシッドの質感をキープ。
- **Drums**: キックとクラップ、16分のハイハットだけのストレートな構成。
---
```javascript
setcps(126/60/4)
// Acid Bass: Ultra Simple
$: note("c2(7,16)")
.s("saw")
.adsr("0.01:0.1:0:0.1")
.ftype(2)
.lpf(sine.range(400, 2000).slow(8))
.lpq(20)
.gain(0.7)
// Minimal Drums
$: s("bd*4").bank("tr909").gain(1.2)
$: s("- cp").bank("tr909").gain(0.8)
$: s("hh*16").bank("tr909").gain(sine.range(0.3, 0.7).fast(8))
```

View File

@@ -1,39 +1,57 @@
# Dub Techno # Dub Techno
ダブ・テクの真髄は、音の「余韻」と「空間」にある。このテンプレートでは、115BPMという少し落ち着いたテンポで、深いディレイとリバーブの中に漂うコードスタブを中心に構成したよ。 ダブ・テクの真髄は、音の「余韻」と「空間」にある。このテンプレートでは、115BPMという少し落ち着いたテンポで、深いディレイとリバーブの中に漂う2つのコードスタブを中心に構成したよ。
## 楽曲のポイント ## 楽曲のポイント
- **Drums**: TR-909のキックをベースにしつつ、ハイハットは少しシャッフル気味に。`perc` にはランダムなディレイをかけて、オーガニックな揺らぎを出しているよ。 - **Drums**: TR-909のキックをベースにしつつ、ハイハットは少しシャッフル気味に。`lt` (Low Tom) にはランダムなディレイをかけて、オーガニックな揺らぎを出しているよ。
- **Chords (The Dub Stab)**: マイナー9thコードを `sawtooth` で鳴らし、`lpf` のエンベロープと深い `delay` でダブ特有の「シュワーン」という響きを作っている。`.when(iter(4), ...)` を使って、4サイクルごとにフィルターが開くような変化をつけてみた - **Dub Stabs**: 2種類のスタブをレイヤー。メインの `Cm9` に対して、4サイクルに一度 `EbM7` が応答するように配置。それぞれディレイタイムやステレオ配置juxを変えて、奥行きを作っているよ
- **Sub Bass**: コードの低域を支える太いサイン波。あえてシンプルに置くことで、ダブの空間を邪魔しないようにしている - **Sub Bass**: コードの低域を支える太い `sqr` 波。`lpf(100)` で削ることで、重厚な土台を作っている。
- **Atmosphere**: `white` ノイズを極限まで削って、アナログレコードのような質感をレイヤーしている - **Texture**: `white` `tri` 波を組み合わせ、`hpf``degrade()` でアナログレコードのヒスノイズのような質感をシミュレートしたよ
--- ---
```javascript ```javascript
setcps(115/60/4) setcps(115/60/4)
// Drums: Deep & Shuffling // Drums: Deep, Shuffling & Complex Hats
$: s("bd*4").bank("tr909").gain(1.1) $: s("bd*4").bank("tr909").gain(1.1)
$: s("- [hh|oh] - hh").bank("tr909").gain(0.7).swing(0.1)
$: s("perc(3,8)").bank("tr606").room(0.5).delay(0.6).delaytime(0.375).gain(0.5)
// Dub Stabs: The Heart of the Track // Hi-hats: Layered & Dynamic
// Closed hats with Euclidean rhythm and random velocity
$: s("hh(13,16)").bank("tr909").gain(sine.range(0.3, 0.6).fast(4)).swing(0.1)
// Open hats and accents with probability and jux for stereo interest
$: s("- oh? - [oh|hh]").bank("tr909").gain(0.5).jux(rev).delay(0.4).delaytime(0.375)
$: s("lt(3,8)").bank("tr606").room(0.5).delay(0.6).delaytime(0.375).gain(0.3)
// Dub Stab 1: The Main Chord (Cm9)
$: chord("Cm9").voicing().s("saw") $: chord("Cm9").voicing().s("saw")
.adsr("0.01:0.4:0.1:0.8") .adsr("0.01:0.4:0.1:0.8")
.lpf(sine.range(400, 1200).slow(8)) .lpf(sine.range(400, 1200).slow(8))
.lpq(15) .lpq(10)
.room(0.8).roomsize(0.9) .room(0.5).roomsize(0.9)
.delay(0.7).delaytime(0.375).delayfeedback(0.75) .delay(.5).delaytime(0.25).delayfeedback(0.55)
.gain(0.6) .gain(0.2)
.struct("1(3,8,2)") // Tresillo pattern .struct("1(3,8,2)") // Tresillo pattern
.slow(2) .slow(2)
// Dub Stab 2: Response / Higher Texture (EbM7)
// Use "EbM7" instead of unsupported "Ebmaj7"
$: chord("EbM7").voicing().s("supersaw")
.adsr("0.05:0.6:0.2:1.0")
.lpf(sine.range(800, 2000).slow(16))
.lpq(12)
.room(0.8).roomsize(0.95)
.delay(0.6).delaytime(0.375).delayfeedback(0.7)
.gain(0.15)
.struct("--- 1").slow(4) // Only once every 4 cycles
.jux(rev) // Stereo separation
// Sub Bass: Deep Foundation // Sub Bass: Deep Foundation
$: note("c1*2").s("sine").lpf(80).gain(0.9) $: note("c1*2").s("sqr").lpf(100).gain(0.9)
// Texture: Vinyl Hiss & Atmosphere // Texture: Vinyl Hiss & Atmosphere
$: s("white").density(12).lpf(1000).hpq(10) $: s("white,tri").hpf(600).hpq(15).dec(.7)
.gain(sine.range(0.05, 0.15).slow(16)) .gain(sine.range(0.3, 0.7).slow(16))
.pan(0.5) .pan(0.5).degrade()
``` ```