commit 20
This commit is contained in:
32
20260215.md
Normal file
32
20260215.md
Normal 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
38
PRECAUTIONS.md
Normal 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))`
|
||||
@@ -7,9 +7,10 @@
|
||||
|
||||
## Core Directives (Flexible Grounding)
|
||||
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).
|
||||
3. **3-Year Rule**: Prioritize information from the last 3 years. Consider older syntax or methods deprecated.
|
||||
4. **Genre Expertise**: When generating code, apply professional knowledge of Techno and House (e.g., syncopation, sidechain feel, industrial textures, and hypnotic loops).
|
||||
2. **Precautions**: Refer to `PRECAUTIONS.md` for past mistakes and specific constraints to avoid regressions.
|
||||
3. **Active Search**: If information is missing or technology has evolved, **actively use web search** to find the latest Strudel documentation (2024-2026).
|
||||
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
|
||||
- **Initialization**: Every block must start with `setcps(BPM/60/4)`.
|
||||
|
||||
27
strudel/acid_house.md
Normal file
27
strudel/acid_house.md
Normal 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))
|
||||
```
|
||||
@@ -1,39 +1,57 @@
|
||||
# Dub Techno
|
||||
|
||||
ダブ・テクノの真髄は、音の「余韻」と「空間」にある。このテンプレートでは、115BPMという少し落ち着いたテンポで、深いディレイとリバーブの中に漂うコードスタブを中心に構成したよ。
|
||||
ダブ・テクノの真髄は、音の「余韻」と「空間」にある。このテンプレートでは、115BPMという少し落ち着いたテンポで、深いディレイとリバーブの中に漂う2つのコードスタブを中心に構成したよ。
|
||||
|
||||
## 楽曲のポイント
|
||||
- **Drums**: TR-909のキックをベースにしつつ、ハイハットは少しシャッフル気味に。`perc` にはランダムなディレイをかけて、オーガニックな揺らぎを出しているよ。
|
||||
- **Chords (The Dub Stab)**: マイナー9thコードを `sawtooth` で鳴らし、`lpf` のエンベロープと深い `delay` でダブ特有の「シュワーン」という響きを作っている。`.when(iter(4), ...)` を使って、4サイクルごとにフィルターが開くような変化をつけてみた。
|
||||
- **Sub Bass**: コードの低域を支える太いサイン波。あえてシンプルに置くことで、ダブの空間を邪魔しないようにしているよ。
|
||||
- **Atmosphere**: `white` ノイズを極限まで削って、アナログレコードのような質感をレイヤーしている。
|
||||
- **Drums**: TR-909のキックをベースにしつつ、ハイハットは少しシャッフル気味に。`lt` (Low Tom) にはランダムなディレイをかけて、オーガニックな揺らぎを出しているよ。
|
||||
- **Dub Stabs**: 2種類のスタブをレイヤー。メインの `Cm9` に対して、4サイクルに一度 `EbM7` が応答するように配置。それぞれディレイタイムやステレオ配置(jux)を変えて、奥行きを作っているよ。
|
||||
- **Sub Bass**: コードの低域を支える太い `sqr` 波。`lpf(100)` で削ることで、重厚な土台を作っている。
|
||||
- **Texture**: `white` と `tri` 波を組み合わせ、`hpf` と `degrade()` でアナログレコードのヒスノイズのような質感をシミュレートしたよ。
|
||||
|
||||
---
|
||||
|
||||
```javascript
|
||||
setcps(115/60/4)
|
||||
|
||||
// Drums: Deep & Shuffling
|
||||
// Drums: Deep, Shuffling & Complex Hats
|
||||
$: 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")
|
||||
.adsr("0.01:0.4:0.1:0.8")
|
||||
.lpf(sine.range(400, 1200).slow(8))
|
||||
.lpq(15)
|
||||
.room(0.8).roomsize(0.9)
|
||||
.delay(0.7).delaytime(0.375).delayfeedback(0.75)
|
||||
.gain(0.6)
|
||||
.lpq(10)
|
||||
.room(0.5).roomsize(0.9)
|
||||
.delay(.5).delaytime(0.25).delayfeedback(0.55)
|
||||
.gain(0.2)
|
||||
.struct("1(3,8,2)") // Tresillo pattern
|
||||
.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
|
||||
$: note("c1*2").s("sine").lpf(80).gain(0.9)
|
||||
$: note("c1*2").s("sqr").lpf(100).gain(0.9)
|
||||
|
||||
// Texture: Vinyl Hiss & Atmosphere
|
||||
$: s("white").density(12).lpf(1000).hpq(10)
|
||||
.gain(sine.range(0.05, 0.15).slow(16))
|
||||
.pan(0.5)
|
||||
$: s("white,tri").hpf(600).hpq(15).dec(.7)
|
||||
.gain(sine.range(0.3, 0.7).slow(16))
|
||||
.pan(0.5).degrade()
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user