Strudelify

The Shadow of Your Smile

Bennett

KeyG majorTempo60 bpm
0:00/0:00
// The Shadow of Your Smile — Bennett
// 60 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 52 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@17 A B C D E F G H I J K L K M N O A B C P Q R S T U V W X Y@2 Z ~@2 AA ~
>`.pickRestart({
  A: "[e3,f#3,a3]@11 ~ [e3,f#3,a3]@11 ~ [e3,f#3,a3]@11 ~ [e3,f#3,a3]@11 ~", // F#m7
  B: "[d#3,a3,c#4,f#4]@11 ~ [d#3,a3,c#4,f#4]@11 ~ [d#3,a3,c4]@11 ~ [d#3,a3,c4]@11 ~", // D#m7b5 Adim
  C: "[g3,b3,d4]@6 [g3,b3,d4]@6 [g3,b3,d4]@5 ~ [g3,b3,d4]@5 ~ [g3,b3,d4,f#4]@11 ~ [g3,b3,d4,e4]@11 ~", // G Gmaj7 Em7
  D: "g3@6 ~@12 c#4@6 [g3,b3,c#4,f#4]@11 ~ [g3,b3,c#4,e4]@11 ~, c#4@17 ~@31, b3@11 ~ b3@12 ~@24, ~ g3@3 ~@4", // Gmaj7 C#m7b5
  E: "[g3,b3,c4,e4]@11 ~ [g3,b3,c4]@11 ~ [g3,a3,c4]@11 ~ [e3,g3,c4]@11 ~", // Cmaj7 Am7 C
  F: "[c3,f#3,b3]@11 ~ [c3,f#3,b3]@11 ~ [c3,f#3,a#3]@11 ~ [c3,f#3,a#3]@11 ~", // B Cm7b5
  G: "[d3,f#3,b3]@11 ~ [d3,f#3,b3]@11 ~ [d3,f#3,b3]@11 ~ [d3,f#3,b3]@5 ~ [d3,f#3,b3]@6", // Bm
  H: "[c3,e3,g3,b3]@11 ~ [c3,e3,g3,b3]@11 ~ [e3,g3,b3,d4,g4]@11 ~ [e3,g3,b3,d4,g4]@11 ~", // Cmaj7 Em7
  I: "[e3,f#3,a3,c4]@11 ~ [e3,f#3,a3,c4]@11 ~ [e3,f#3,a3,c4]@11 ~ [e3,f#3,a3,c4]@11 ~", // F#m7b5
  J: "[d#3,f3,a3,c4]@11 ~ [f3,a3,c4]@11 ~ [d#3,f#3,a3,c4]@11 ~ [d#3,f#3,a3,c4]@11 ~", // F7 F D#dim
  K: "[e3,g3,b3]@11 ~ [e3,g3,b3]@11 ~ [e3,g3,b3]@11 ~ [e3,g3,b3]@11 ~", // Em
  L: "[d3,g3,b3]@11 ~ [d3,g3,b3]@11 ~ [d3,g3,b3]@11 ~ [d3,g3,b3]@11 ~", // G
  M: "[e3,g3,a#3,d#4]@11 ~ [e3,g3,a#3,d#4]@11 ~ [e3,g3,a#3,d4]@11 ~ [e3,g3,a#3,d4]@11 ~", // D# Em7b5
  N: "[e3,a3,c#4]@11 ~ [e3,a3,c#4]@11 ~ [e3,a3,c#4]@11 ~ [e3,a3,c#4]@11 ~", // A
  O: "[d#3,a3,b3]@11 ~ [d#3,a3,b3]@11 ~ [e3,a3,b3]@11 ~@3 a3@9 ~, ~@35 g2@11 ~@2, ~@36 c3@11 ~, ~@37 [e3,g3]@11", // B7 Esus4 Em
  P: "g3@6 g3@6 [g3,b3,c#4]@11 ~ [g3,b3,c#4,f#4]@11 ~ [g3,b3,c#4,e4]@3 ~@3 [d#3,f#3,g#3,b3]@3 ~@3, [b3,c#4]@11 ~@37", // C#m7b5 Gmaj7 C#m7b5 G#m7 Bsus2
  Q: "g3@6 ~@6 [a3,c4,e4]@11 ~ [g3,a3,c4]@11 ~ [e3,g3,c4]@11 ~, e3 ~, [a3,c4]@11 ~@37, ~ g3@3 ~@4", // Am Am7 C Am
  R: "[f#3,b3]@11 ~ [f#3,b3,e4]@11 ~ [c3,f#3,b3]@11 ~ [c3,f#3,b3]@11 ~, c3@7 ~ d#4@8", // B5 Esus2 B
  S: "[d3,f3,a3,b3]@11 ~ [d3,f3,a3,b3]@11 ~ [d3,f3,a3,b3]@11 ~ [d3,f3,a3,b3]@11 ~", // Bm7b5
  T: "[d3,g#3,a#3]@11 ~ [d3,g#3,a#3]@11 ~ [d3,g#3,b3]@11 ~ [d3,g#3,b3]@11 ~", // A#7 G#dim
  U: "[g3,c4,e4]@11 ~ [g3,c4,e4]@11 ~ [g3,c4,e4]@11 ~ [g3,c4,e4]@11 ~", // C
  V: "[g3,a#3,d#4]@11 ~ [g3,a#3,d#4]@11 ~ [d#3,g3,a3,c4]@11 ~ [d#3,g3,a3,c4]@11 ~", // D# Am7b5
  W: "[d3,f#3,a3,b3]@11 ~ [d3,f#3,a3]@11 ~ [d#3,g3,b3]@11 ~ [d#3,g3,a3]@5 ~ [d#3,g3,b3]@5 ~", // Bm7 D D#aug Am7b5 D#aug
  X: "[f#3,a3,b3,d4]@11 ~ [f#3,a3,d4]@11 ~ [d3,g#3,c4,d4]@11 ~ [d3,g#3,c4]@11 ~", // Bm7 D Dm7b5
  Y: "[[c#3,g3,b3]@11 ~ [c#3,g3,b3]@11 ~ [c#3,g3,a3]@11 ~ [c#3,g3,a3]@11 ~@3 b3@27 ~@4 a3@13 ~@2, ~@47 c3@27 ~@3 c3@15 ~@4, ~@48 e3@28 ~@3 d#3@15 ~@2, ~@49 g3@29 ~@2 g3@14 ~@2]/2", // C#m7b5 A7
  Z: "~@5 a3@18 ~@25, ~ c3@21 ~@26, ~@3 d#3@19 ~@26, ~@2 f#3@9 ~@13",
  AA: "~@22 e4@25 ~, ~ g2@47, ~@4 d3@43 ~, ~@7 f#3@9 b3@30 ~@2, ~@11 a3@36 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.22).pan(0.4)

// bass · acoustic bass · "ACOU BASS"
const bass = note("<~@17 A B@2 C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC@2 ~ AD@3>".pickRestart({
  A: "f#2@22 ~@2 f#2@23 ~", B: "[b1@23 ~ b2@17 ~@7 e2@21 ~@3 e2@23 ~, ~@21 b2@5 ~@22]/2", C: "a1@22 ~@2 a2@19 ~@5",
  D: "a1@21 ~@3 a2@22 ~@2", E: "d2@22 ~@2 d2@23 ~", F: "g2@23 ~ g2@17 ~ g2@6", G: "c2@23 ~ c3@11 ~ g2@10 ~@2",
  H: "f#2@23 ~ f#2@23 ~", I: "b2@17 ~ b2@5 ~ b1@22 ~@2", J: "e2@22 ~@2 e2@13 ~@3 e2@4 b2@4",
  K: "d2@23 ~ d2@14 ~@2 d2@4 b2@4", L: "c#2@11 ~ c#2@11 ~", M: "f#2@11 ~ f#2@11 ~",
  N: "b2@11 ~ f#2@11 ~ b2@14 ~@2 b2@3 a2@3 ~@2", O: "b1@11 ~ a2@11 ~ g2@20 ~@4", P: "f#2@23 ~ f#2@18 f#2@6",
  Q: "b1@22 ~@2 b2@23 ~", R: "e2@23 ~ e2@23 ~", S: "a1@22 ~@2 a2@23 ~", T: "a2@23 ~ a1@11 ~ a2@11 ~",
  U: "d2@10 ~@2 d3@10 ~@2 c3@11 ~ c3@10 ~@2", V: "b2@22 ~@2 b1@17 ~ b2@6", W: "e2@23 ~ e2@19 ~@5",
  X: "a2@22 ~@2 a1@15 ~ a2@3 ~ b2@3 ~", Y: "c3@19 ~ c3@4 f2@20 ~@4", Z: "b2@22 ~@2 f2@23 ~",
  AA: "e2@22 ~@2 e2@11 ~ e2@12", AB: "a1@23 ~ d#2@23 ~", AC: "[d2@28 ~@3 d2@35 ~@30]/2", AD: "[~@47 g1@95 ~@2]/3",
})).s("gm_acoustic_bass").gain(0.33)

// chords · piano · "A.PIANO 1"
const piano = note("<A@6 B@3 C@6 D@2 E F G H I ~ J K L M ~ N ~ O P ~@9 Q@2 R@2 S T ~@5>".pickRestart({
  A: "[~@32 g5@7 g5@7 ~@8 c5@6 ~@3 g5@6 ~@2 g5@6 ~@2 g5@22 ~@3 [b4,d5,g5]@34 ~@3 g5@33 ~@2 g5@16 ~@2 [f4,g#4,b4,c#5,g5]@22 ~@17 [b3,d4,e4,g4]@21 ~@3 e5@16 [a3,e4,f#4]@15, ~@28 g3@18 g3 g5@14 [d4,f4,a4]@42 [e4,g4,a4]@38 ~@34 [d4,f4,a4,c5,d5]@18 ~@95, ~@29 c4@31 [g3,c4]@41 g3@36 ~ [g3,c4]@35 ~ g3@41 ~@5 g3@34 c#3@32 ~@2, ~@30 [e4,a4]@32 c5@40 c4@36 ~ [d4,a4]@35 c4@18 ~@63 [g3,b3,e4]@18 ~@15, ~@31 [g4,b4,d5]@32 d5@40 ~@37 [f4,c5,d5]@34 ~@42 [b4,d5,g5]@37 ~@3 b4@17 ~@15]/6", // G C#7 Em7 F#m7 Dm A7 Dm7 C5 …
  B: "[~ a3@2 ~@2 d5@30 ~@2 e3@8 e3@8 ~ [e3,g#3,f#4,g#4,b4,d5]@14 ~@5 e4@4 ~@10 f#5@4 ~@12 e6@9 [g2,f3,a3,a#3,d4,f4]@15 [a2,g3,a#3,c#4,f4]@17, ~@3 [b2,a3,d4]@32 a4@20 ~@17 [g3,b3,d4]@5 e4@5 b4@9 ~@53, ~@4 [f#4,a4]@33 d4@29 ~@5 e3@20 ~ [g3,c#4,f#4,b4,e5]@20 ~@32, ~@37 [a3,f#4,c#5,d5]@17 ~@16 a2@21 ~@7 a2@14 ~@32, ~@73 a4@18 ~@53]/3", // E7 Gm7 Gm7b5 Bm7 G F#m C#m7b5 Dmaj7
  C: "[~@12 c3@25 ~@8 [b2,a3,d4,f4]@19 [e2,d3,g#3,d4,g4,a#4]@23 ~@5 b4@9 ~ a4@16 ~@15 [d2,d3,g3,c4,e4,g4]@18 [c3,a3,c4,d#4,f#4]@24 ~@2 [b2,a3,d4,f#4]@19 ~@9 d6@21 [a2,g3,c4,e4]@21 g3@24 ~ f#3@16, ~@3 [a3,d4]@34 ~@52 g3@36 ~@163, ~@3 d3@8 ~@77 a2@37 ~@71 [e2,e3,g3,b3,d4,g4]@30 ~@21 [d2,c4,e4]@41, ~@4 f4@34 ~@52 [b3,c4]@35 ~@79 b5@23 ~@61, ~@91 e4@34 ~@78 f#5@24 ~@61]/6", // Bm7b5 Em7b5 C Cdim Bm7 Am7 D5 Em7 …
  D: "[~@24 c6@4 ~@5 b5@62 ~, ~@2 g4@7 g4@19 ~ [b3,e4]@66 ~, ~@3 [g2,f3,g3,c4,d4]@26 ~@3 [d5,f#5]@63 ~, ~@14 d5@14 ~@2 b4@65 ~, ~@19 g5@10 ~@2 a4@65]/2", // E5 Gsus4 D
  E: "~@13 f#5@2 a5@2 c#6 ~ e6 ~ g#6 ~ b6@2 g#6@4 ~@14 e6@2 c#6@2 ~", F: "a5@3 g#6@2 b6@2 g#6@5 ~@36",
  G: "~@6 d5@5 ~ f#5@6 a5@5 ~ c#6@6 e6@6 g6@10 ~@2", H: "c#7@9 ~@2 a6@5 ~ e6@4 ~@27",
  I: "~@18 a5@3 c6@2 ~ g6@2 ~ b5@5 ~ b5 a5@12 ~@2, ~@16 c6 ~@7", J: "~@6 b4@6 d5@5 ~ f#5@6 a5@6 c#6@5 e6@6 ~ g6@5 ~",
  K: "b6@6 f#6@6 d6@5 a5@6 ~ e5@7 ~@17",
  L: "~@11 e5 ~ b4 ~ e5@2 ~ b4 c5 e5@2 ~@2 e5@2 ~@3 e5 ~@5 c5@2 ~@11, ~@9 b4@2 ~@11 b4@2 ~@3 b4@2 ~@19, ~@10 c5@2 ~@2 c5@2 ~@7 c5@2 ~@3 c5@2 ~@18",
  M: "~@5 c5 d5 d#5 ~ e5 ~ f#5@2 ~@35, ~@3 a4@2 ~@43, ~@2 b4 ~@2 f5 ~@18",
  N: "~@8 f#6@2 e6 ~@2 f#6@5 ~ b5@2 ~ b5@3 ~@5 e5 ~ b4@2 e4@2 ~@12", O: "~@24 c#5 d5@8 ~@15",
  P: "~@20 g#5@2 [a5,c#6]@2 e6@2 ~ e6@2 c#6@2 ~ e5@2 g#5@3 ~@2 c#5@2 ~@4 c#5 ~@2, ~@16 c#5@5 ~@10 g#5@2 ~@15, ~@19 e5@3 ~@4 g#6@2 ~@20", // A
  Q: "[~@25 b6@3 e6@2 a#6@2 d#6 ~ a6@2 d6@2 g#6@2 c#6 ~@2 c6 ~ f#6 ~@2 f6@2 ~ a#5 ~ e6@2 a5@2 ~@39, ~@42 g6@2 ~@3 b5@2 ~@47]/2",
  R: "[~@32 g#4@2 ~ a4@2 f#5@2 ~ a#4@2 g5@3 b4@2 g#5@2 c5@2 ~ a5@2 c#5@2 ~ d5@3 ~ f#5@2 ~ a5@2 ~@2 c#6@3 ~ d6@2 f#6@2 ~@2 c7 c#7 ~ d7 d#7 ~ e7@2 g7@3 ~@7, ~@77 a6@2 ~@17]/2",
  S: "~@6 g5@4 ~@2 a6@2 f#6@2 c#6@2 ~ g5@3 ~@2 e6 c6 a#5@2 g5 ~ d5@2 c#5@3 ~@4 a#5@7 ~@2, ~@26 b5 ~@2 d#5@2 ~@17",
  T: "~ g5@5 ~@42",
})).s("gm_piano").gain(0.33).pan(0.4)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@17 A@2 B A C D E F G@2 H I J@2 K I A L A@2 G M N O P Q R S D T@2 U V@3
>`.pickRestart({
  A: "f#4", B: "f#4@47 ~", C: "e4", D: "e5 d#5", E: "d5@3 d4", F: "g4", G: "c5", H: "b4@47 ~", I: "b4",
  J: "[e5@47 d#5@25 d5@24]/2", K: "c#5", L: "g#4 g4", M: "c5@24 b4@11 a#4@13", N: "a4", O: "a#4 b4", P: "~@2 e5 a5",
  Q: "g5@23 ~ g5@24", R: "d5@24 b4@11 g5@12 ~", S: "f#5 f5", T: "[d5@5 c5@7 ~@4]/2", U: "~@23 d4@7 g4@6 ~ a4@6 a#4@5",
  V: "[~@2 d5@6 g5@7 a5@8 ~ a#5@10 g6@13 [e4,a4,e6]@95 ~@2]/3", // A5
})).s("gm_string_ensemble_2").gain(0.22).pan(0.6)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_2 = note(`<
  ~@17 A B C@2 D@2 E F G@2 H@2 I J K L M N O P Q R S@2 T U V W X Y Z AA AB@3
>`.pickRestart({
  A: "e4", B: "d#4", C: "[d4@47 c#4@49]/2", D: "[b4@24 a4@23 b4@25 a#4@24]/2", E: "[f#4,a4]@3 b3", F: "e4@47 ~",
  G: "a4", H: "g4", I: "[g4,b4]", J: "[g4,a#4]", K: "[f#4,a4]", L: "[c#4,g#4]@23 [e4,g4]@24 ~", M: "c#4@23 ~",
  N: "c#4 c4, d#4", O: "[b3,d4]", P: "[b3,c#4]", Q: "a4@47 ~", R: "a4 f#4", S: "f4", T: "~@2 g4 e5", U: "d5 c5",
  V: "[a4,b4]@23 g4@13 d5@12", W: "c#5 c5", X: "b4 [a4,c5]", Y: "[g4,b4]@5 g4@3", Z: "f#4@23 ~@25", AA: "~@5 d4@3",
  AB: "[~@2 f4@6 d#4@7 d4@8 ~ c4@9 a#3@13 ~ [f#3,b3]@95 ~@2]/3", // B5
})).s("gm_string_ensemble_2").gain(0.22).pan(0.7)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_3 = note(`<
  ~@17 A@2 B@2 C D E@2 F G H I J K L M N O P@2 Q@2 R S T U V W X Y@2 ~ Z@3
>`.pickRestart({
  A: "[[a3,c#4]@47 ~@24 c4@25, ~@47 c#4@24 ~@25, ~ a3]/2", B: "[g3,b3]", C: "c4@47 ~", D: "[c4,f#4]",
  E: "[b3@36 [g2,f#3]@11 ~ b3@48, ~@47 e3@48 ~]/2", F: "[a3,e4]", G: "[a3,d#4]", H: "e4 d4", I: "[g3,e4]", J: "b3",
  K: "a#3", L: "a3", M: "a3 b3", N: "[e3,a3]", O: "[d#3,a3]", P: "[[d3,g3]@47 ~ c#3@48, ~@47 g3@48 ~]/2",
  Q: "[~ c4@46 ~@2 e4@22 ~ b3@12 a#3@12, [g3,e4]@47 f#3@48 ~, ~@48 c4@23 d#4@25]/2", R: "[f3,d4]@47 ~",
  S: "a#3@25 b3@23, [f3,d4]", T: "~@2 [a3,e4] [e4,c5]", U: "a#4 a4, d#4", V: "[d4,f#4]@2 [g3,d4] [d#4,a4]",
  W: "a4 g#4, d4@47 ~", X: "[c#4,g4] [c#4,f4]", Y: "[~ e4@30 c4@18 c4@23 ~@24, c4@30 ~ d#4@41 ~@24]/2",
  Z: "[~@15 a#2@7 g#2@10 [c#2,f3]@15 [g2,d3]@95 ~@2]/3", // C# G5
})).s("gm_string_ensemble_2").gain(0.22).pan(0.9)

// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~@21 A ~ B ~@2 C@2 ~@11 D ~@12>".pickRestart({
  A: "b3@24 ~ a3@23", B: "d3@37 ~@11", C: "[~@47 g3@48 ~]/2", D: "a3",
})).s("gm_string_ensemble_2").gain(0.16).pan(0.9)

// chords · flute
const flute = note("<~@23 A@2 ~ B C D ~@2 E@2 ~@15 F G@3>".pickRestart({
  A: "[~@18 b3@5 ~ d4@23 ~, ~@23 c4 ~@24, ~@47 c#4@2 ~@47]/2", B: "f4 f#4",
  C: "~@7 g4@3 a4 a#4 b4@7 ~ d5@4 f#4@19 e4@5", D: "~ f#4@11 e4@33 ~@3",
  E: "[~@8 e4@4 g#4@7 a4@3 ~@2 b4@7 e5@5 a4@7 g#4@27 ~@26, ~@23 a#4@2 ~@71]/2", F: "~@37 d4@6 [d4,g4]@5",
  G: "[~@2 [f4,a4]@6 a#4@7 c5@8 ~ d5@10 [g#4,d#5]@13 ~ [c#5,e5] ~ [d5,f#5] [c#5,e5] ~ [b4,d5] [c#5,e5] ~ [d5,f#5] [c#5,e5] ~ [b4,d5] [c#5,e5] ~ [d5,f#5] [c#5,e5] ~ [b4,d5] [c#5,e5] ~ [d5,f#5] [c#5,e5] ~ [b4,d5] [c#5,e5] ~ [d5,f#5] [c#5,e5] ~ d5 e5 [d5,f#5] ~ [c#5,e5] d5 ~ [c#5,e5] f#5 ~ [c#5,e5] d5 ~ [c#5,e5] [d5,f#5] ~ [c#5,e5] [b4,d5] ~ [c#5,e5] [d5,f#5] ~ [c#5,e5] [b4,d5] ~ [c#5,e5] [d5,f#5] ~ [c#5,e5] [b4,d5] ~ [c#5,e5] [d5,f#5] ~ [c#5,e5] [b4,d5] ~ [c#5,e5] [d5,f#5] ~ [c#5,e5] [b4,d5] ~ [c#5,e5] [d5,f#5] ~ [c#5,e5] d5 ~ e5 [d5,f#5] ~ [c#5,e5] d5 ~ [c#5,e5] f#5 ~ [c#5,e5] d5 [c#5,e5] ~ [d5,f#5] [c#5,e5] ~@3, ~@8 g4@25 ~@14 a4@95 ~@2, ~@47 [b4,d5]@2 ~@95]/3", // F G#5 C#m D C#m Bm C#m D …
})).s("gm_flute").gain(0.14).pan(0.3)

// chords · flute · soft notes
const flute_soft = note(`<
  ~@25
  [~@35 e4@12 ~]
  ~@6
  [~@24 g4@23 ~]
  ~@17
  [~@29 b4 c#5 ~@3 b4 ~@2 d5 ~@2 b4 ~@7]
  [~@28 b4 ~ c#5 ~@3 b4 ~@2 d5 ~@2 b4 ~@7]
>`).s("gm_flute").gain(0.1).pan(0.3)

// other · clarinet
const clarinet = note("<~@48 A B@3>".pickRestart({
  A: "~@37 f3@6 d#3@5", B: "[~@2 d3@6 c3@6 ~ a#2@8 g#2@9 c#2@13 ~@2 g2@95 ~@2]/3",
})).s("gm_clarinet").gain(0.25).pan(0.4)

// other · celesta
const celesta = note("<~@33 A B@3 C D E F ~@11>".pickRestart({
  A: "~@13 a5@6 ~@6 e6@8 ~@4 e7@5 ~@3 a6@2 ~",
  B: "[~ g#6@6 ~@17 d#7@17 ~@4 g6@6 ~@4 g6@3 ~@3 b6@4 ~ d7@6 e6@6 ~@15 a6 ~ b6@8 c#6@8 ~@33]/3",
  C: "g6@5 ~@19 e7@12 ~@9 g6@3", D: "~@2 f#6@11 ~@12 d#7@10 ~@10 f#6@3",
  E: "~@6 a6@5 ~@2 d7@5 c#7@4 ~@2 e7@5 ~ d7@5 ~@2 a6@5 f6@2 ~@4", F: "a#6 ~@5 b6 ~@5",
})).s("gm_celesta").gain(0.14).pan(0.4)

// drums · snare
const snare = s("sd").struct("<~@17 A B A C D E A F D E A F D E A F A B A C D E A F A B A C D ~@6>".pickRestart({
  A: "x ~@2 x ~@2 x ~@2 x ~ x", B: "x!4", C: "x ~ x!2 ~ x!2 ~ x!2 ~ x", D: "x ~@2 x ~@2 x ~@3 x ~ x ~@3 x ~ x ~@3 x ~",
  E: "x ~@2 x ~@2 x ~@3 x ~ x ~@2 x ~@2 x ~@3 x ~", F: "x ~@5 x ~@5 x ~@3 x ~ x ~@2 x ~@2",
})).gain(0.05)

stack(
  acoustic_guitar_nylon, bass, piano, string_ensemble_2, string_ensemble_2_2, string_ensemble_2_3,
  string_ensemble_2_soft, flute, flute_soft, clarinet, celesta, snare
)

More by Bennett