commit 18
This commit is contained in:
31
generate-strudel-template/SKILL.md
Normal file
31
generate-strudel-template/SKILL.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
name: generate-strudel-template
|
||||
description: Generates professional Strudel live coding templates for Techno, House, and their subgenres as Markdown files. Use when the user wants to start a new project, needs a genre-specific foundation, or asks for rhythmic patterns.
|
||||
---
|
||||
|
||||
# generate-strudel-template
|
||||
|
||||
ボクは Strudel のエキスパートであり、プロのトラックメイカー「ボク」です。
|
||||
君が指定したジャンルに合わせて、音楽的な解説付きの Strudel テンプレートを Markdown ファイルとして生成するよ。
|
||||
|
||||
## ワークフロー
|
||||
|
||||
1. **ジャンルの分析**: 指定されたジャンルの音楽的特徴(テンポ、質感、構造)を分析します。
|
||||
2. **ファイル生成**: `strudel/` ディレクトリ内に、ジャンル名に基づいた `.md` ファイルを生成します(例: `strudel/dub_techno.md`)。
|
||||
3. **コンテンツ構成**:
|
||||
- **タイトル**: ジャンル名を `#` で記述。
|
||||
- **ボクの解説**: 楽曲のこだわりや音楽的なポイントを、コードブロックの**外**に日本語で記述します。
|
||||
- **セパレーター**: `---` を挿入。
|
||||
- **コードブロック**: 以下のルールを守った Strudel コードを記述します。
|
||||
- `setcps(BPM/60/4)` で開始。
|
||||
- `$:` トラック制御。
|
||||
- `-` 休符。
|
||||
- リズム、ベース、テクスチャの多層構造。
|
||||
|
||||
## 既存のテンプレート(参考)
|
||||
- Minimal Techno: [assets/templates/minimal_techno.md](assets/templates/minimal_techno.md)
|
||||
- Deep House: [assets/templates/deep_house.md](assets/templates/deep_house.md)
|
||||
- Industrial Techno: [assets/templates/industrial_techno.md](assets/templates/industrial_techno.md)
|
||||
|
||||
## テクニック・リファレンス
|
||||
- Rhythmic Patterns: [references/rhythmic_patterns.md](references/rhythmic_patterns.md)
|
||||
17
generate-strudel-template/assets/templates/deep_house.md
Normal file
17
generate-strudel-template/assets/templates/deep_house.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Deep House Template
|
||||
|
||||
```javascript
|
||||
setcps(124/60/4)
|
||||
|
||||
// Drums: Warmth & Groove
|
||||
$: s("bd*4").bank("tr909").gain(1.1)
|
||||
$: s("- [cp|sd] - [cp|sd]").bank("tr909").gain(0.9)
|
||||
$: s("hh*8, - oh").bank("tr909").gain(0.7).room(0.1)
|
||||
|
||||
// Bass: Funky & Round
|
||||
$: note("c2*2").s("saw").lpf(sine.range(100, 300).slow(4)).gain(0.8).adsr("0.05:0.2:0.5:0.2")
|
||||
|
||||
// Harmony: Lush chords
|
||||
$: chord("<Cm7 F9 Bbmaj7 G7alt>").voicing().s("gm_epiano1")
|
||||
.room(.6).delay(.4).slow(2).gain(0.7)
|
||||
```
|
||||
@@ -0,0 +1,16 @@
|
||||
# Industrial Techno Template
|
||||
|
||||
```javascript
|
||||
setcps(132/60/4)
|
||||
|
||||
// Drums: Raw & Distorted
|
||||
$: s("bd*4").bank("tr909").distort(2).gain(0.9)
|
||||
$: s("hh*16").bank("tr606").crush(4).gain(0.6).pan(sine.range(0.2, 0.8).fast(2))
|
||||
$: s("cp").at(3).room(1).rev().gain(0.7)
|
||||
|
||||
// Bass: Gritty & Dark
|
||||
$: note("c1*8").s("supersaw").lpf(sawtooth.range(100, 800).slow(4)).distort(1.5).gain(0.8)
|
||||
|
||||
// Textures: Noise & Chaos
|
||||
$: s("white").density(16).lpf(2000).gain(sine.range(0, 0.3).slow(8)).jux(rev)
|
||||
```
|
||||
16
generate-strudel-template/assets/templates/minimal_techno.md
Normal file
16
generate-strudel-template/assets/templates/minimal_techno.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# Minimal Techno Template
|
||||
|
||||
```javascript
|
||||
setcps(128/60/4)
|
||||
|
||||
// Drums: Precision & Space
|
||||
$: s("bd*4").bank("tr909").gain(1.1)
|
||||
$: s("- [hh|oh] - hh").bank("tr909").gain(0.8).jux(iter(4))
|
||||
$: s("rim(3,8)").bank("tr606").room(0.2).delay(0.3)
|
||||
|
||||
// Bass: Subtle & Hypnotic
|
||||
$: note("c1*16").s("sine").lpf(sine.range(40, 120).slow(8)).gain(0.9)
|
||||
|
||||
// Texture: Evolving chords
|
||||
$: chord("Cm7").voicing().s("gm_pad_warm").room(0.8).slow(4).gain(0.6).jux(rev)
|
||||
```
|
||||
36
generate-strudel-template/references/rhythmic_patterns.md
Normal file
36
generate-strudel-template/references/rhythmic_patterns.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Strudel Rhythmic Patterns & Techniques
|
||||
|
||||
## 1. Essential Rhythms
|
||||
|
||||
### 4-on-the-floor
|
||||
`"bd*4"` - Standard house/techno kick.
|
||||
|
||||
### Syncopated Hats
|
||||
`"- hh - hh"` or `"- [hh|oh] - hh"` - Classic off-beat hi-hats.
|
||||
|
||||
### Euclidean Rhythms
|
||||
- `s("bd(3,8)")` - 3 beats in 8 steps (Tresillo).
|
||||
- `s("bd(5,8)")` - 5 beats in 8 steps.
|
||||
- `s("rim(3,8)").euclidRot(1)` - Rotated Euclidean rhythm.
|
||||
|
||||
### Polyrhythms
|
||||
`stack(s("bd*4"), s("hh*6"))` - 4 against 6.
|
||||
|
||||
## 2. Advanced Techniques
|
||||
|
||||
### Jux & Iter
|
||||
`.jux(iter(4))` - Shifts the pattern in the right ear every cycle, creating stereo movement.
|
||||
|
||||
### Randomization
|
||||
- `s("bd|sd|hh")` - Random choice per cycle.
|
||||
- `s("bd?0.5")` - 50% chance to play.
|
||||
- `.scramble(4)` - Randomly reorders 4 subdivisions.
|
||||
|
||||
### Filter Sweeps
|
||||
- `.lpf(sine.range(200, 4000).slow(4))` - Smooth low-pass filter sweep.
|
||||
- `.hpf(sawtooth.range(40, 2000).slow(8))` - Rising high-pass filter.
|
||||
|
||||
### Glitch & Stutter
|
||||
- `.ply(2)` - Repeats each event twice.
|
||||
- `.chop(8)` - Divides events into 8 tiny pieces.
|
||||
- `.striate(16)` - Granular effect.
|
||||
Reference in New Issue
Block a user