diff --git a/strudel/Slow sine.md b/strudel/Slow sine.md index 234d894..ff3c65a 100644 --- a/strudel/Slow sine.md +++ b/strudel/Slow sine.md @@ -119,4 +119,51 @@ $:base.fast(4) all(x=>x.room(1/4).dist(0.05).postgain(1/4)) +``` + +```javascripy +setcps(120/60/4) + +const melodyPatterns = [ + // クロマチック・アプローチ + "[g4 g#4 a4] [e4 f4 g4] [f4 e4 f4] [f4 e4 b4]", + // 7th、9thを強調 + "[b4 d5] [g4 c5] [a4 c5] [f4 a4 d5]", + // シンコペーション + ブルーノート + "[~ g4 bb4] [e4 ~ g4] [f4 ab4] [~ f4 b4]", + // 3連符でスウィング感 + "[g4 b4 d5]/3 [e4 g4]/2 [f4 a4 c5]/3 [b4]/1", + // ジャズ的アルペジオ + "[g4 b4 d5 f#5] [e4 g4 c5] [f4 a4] [b4 d5 f4]", + // 半音階的下降 + "[b4 bb4 a4] [g4 f#4 g4] [f4 e4 eb4] [f4 g4 b4]", + // 複雑なリズム + 9th + "[g4*2 b4] [e4 ~ g4 c5] [f4/2 a4/2 d5] [f4 b4]", + // モダンジャズ風 + "~ [e4 bb4 d5] [f4 ~ a4] [b4 eb5 g4]" +] + +const base = stack( + stack( + note("c1 a1 d1 g1").sound("sine"), + note("c2 a2 d2 g2").sound("sine").gain(0.5), + note("g3 e3 f3 b3").sound("sine").gain(0.25), + note("b3 g3 a3 f3").sound("sine").gain(0.15) + ), + note(chooseCycles("0","1","2","3","4","5","6","7").inhabit(melodyPatterns)) + .fast(1.5).sound("sine") + // ジャズ的なタイミング調整 + .sometimesBy(0.3, x=>x.early(1/32)) // 微妙な前ノリ + .sometimesBy(0.2, x=>x.late(1/32)) // 微妙な後ノリ +).dist(0.05) + +$:base + .lpf(tri.range(600,900)) // 少し暗めの音色でジャズ感 + .sometimesBy(0.15,x=>x.mask("0")) +$:base.late(1/16) + .lpf(tri.range(200,300)) + .sometimesBy(0.125,x=>x.rev()) + .someCyclesBy(0.20,x=>x.mask("0")) + +all(x=>x.room(1/4).postgain(1/4)) ``` \ No newline at end of file