3.7 KiB
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などで変化させると、より表情豊かなアシッドラインになる。
5. Syntax & Preferred Styles (Updated 2026)
Strudel の構文とスタイルの最新ルール。
$: (Output Operator) の正しい使い方
- ルール:
$:は各トラック(パターン)の先頭にのみ置くこと。 - NG:
$: s("bd*4").$.gain(0.8)(途中に$.を挟むのは冗長) - OK:
$: s("bd*4").gain(0.8)
短縮記法 (Short-hand functions) の優先
- ルール:
delayfeedbackよりもdelayfbのような短縮記法を優先して使用すること。ライブコーディングらしい簡潔さを保つため。 - 数値の省略:
0.5や0.25のような数値は、キーストロークを減らすために0を省略して.5や.25と表記すること。 - 例:
.delayfb(.5),.gain(.8),.dist(.4)
dist() (Distortion) の使用
- ルール:
shape()は非推奨。歪みを加えたい場合はdist()(またはdistort()) を使用すること。 - NG:
.shape(0.4) - OK:
.dist(0.4)