Strudelify
If You Think You Know How to Love Me cover art

From Wishes to Kisses

If You Think You Know How to Love Me

Smokie

KeyB♭ majorTempo122 bpm
0:00/0:00
// If You Think You Know How to Love Me — Smokie
// 122 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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, A@4 for four bars: edit a riff to change every repeat.

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@53 A@2 B C D@2 E F G@2 H@2 ~@2 I@2 J K I@2 J L M@2 N@3 O P Q R S T U V@2 W Q X Y P Z AA@2 P AB AC Q P Z AD AE AF AG
  T AH P AI AJ@3 AK AL AM@2 AK AL AM@2 AN ~
>`.pickRestart({
  A: "c4/2", B: "bb3@8 f3@2 g3@3 ~ bb3@2", C: "c4 d4", D: "[c4,c5]/2", E: "[bb3,bb4]@4 [f3,f4] g3 g4 [bb3,bb4]",
  F: "[c4,c5]@6 [d4,d5]@8 [c4,d4,c5,d5] ~", G: "[[eb4,eb5]@31 ~]/2", H: "[d4,d5]/2", I: "[[c4,eb4,c5]@31 ~]/2",
  J: "[bb3,bb4]@8 [f3,f4]@3 ~ [g3,g4]@2 [bb3,bb4]@2, d4@3 ~@5", K: "[c4,c5]@7 ~ [d4,d5]@8", L: "[c4,c5]@3 [d4,d5]@5",
  M: "[eb4,g4]/2", N: "[f5@20 g4 [f4,f5] [g4,g5] [f4,f5], d4@2 ~, bb4@29 ~@19]/3",
  O: "[g4,g5] [f4,f5] [g4,g5] [f4,f5] [g4,g5] [f4,f5] [g4,g5] [f4,f5]", P: "[c4,eb4,c5]@15 ~",
  Q: "[bb3,d4,bb4]@8 [f3,f4]@2 [g3,g4]@3 ~ [bb3,bb4]@2", R: "[c4,eb4,c5]@7 ~",
  S: "[d4,bb4]@8 [f3,f4]@3 ~ [g3,g4]@2 [bb3,bb4]@2", T: "~@2 eb4@13 ~, [c4,c5]@15 ~", U: "[bb3,d4,bb4]",
  V: "[[f3,c4]@7 ~ g4 f4 g4 f4 g4 f4 g4 f4, a4@15 ~, ~@16 f5@15 ~]/2", W: "[eb4,c5]@15 ~, c4 ~@3", X: "[c4,eb4]@15 ~",
  Y: "[bb3,d4]@8 [f3,f4]@2 [g3,g4]@3 ~ [bb3,bb4]@2", Z: "[bb3,d4]@13 ~@3",
  AA: "[[a4,f5]@15 ~ bb4@8 d5@8, f4@15 ~, ~ bb3]/2", AB: "[bb3,d4]@2 g4 f4, ~ f3", AC: "~@4 eb4@11 ~, [c4,c5]",
  AD: "[f4,a4,f5]", AE: "g5 f5 g5 f5 [g4,g5] [f4,f5] [g4,g5] [f4,f5], f4@5 ~ g4 ~@9", AF: "[c4,c5]",
  AG: "[bb3,d4]@7 ~ [f3,f4]@2 [g3,g4]@2 ~@2 [bb3,bb4]@2", AH: "[bb3,bb4]@5 [f3,f4] [g3,g4] [bb3,bb4], d4@7 ~@9",
  AI: "[d4,bb4]@7 ~, bb3@3 ~", AJ: "[a4@6 bb3@2 bb3@15 ~, f4@11 ~@13, f5 ~@7]/3", AK: "c4@15 ~", AL: "bb3 c4",
  AM: "[bb3@10 f3@2 g3 f3@2 g3]/2", AN: "bb3 ~",
})).s("gm_string_ensemble_1").gain(0.4)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note(`<
  ~@65 A@2 ~@8 B@2 ~ C@2 ~@4 D ~@6 E F ~ G ~@3 F ~@3 G ~@3 F ~@5 H@3 ~@9
>`.pickRestart({
  A: "[c4,c5]/2", B: "eb5/2", C: "[~@8 f4@4 g5 ~@3, ~@7 a4@4 ~@5]/2", D: "bb3 ~", E: "c5@15 ~", F: "bb4 ~",
  G: "bb4@7 ~", H: "[~@2 d4@9 ~@5]/3",
})).s("gm_string_ensemble_1").gain(0.24)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@18 A B C D A B C@2 E F C G H I J G J K J G L M N O P O P Q R C Q S T C Q A B U D A B C Q E V C Q H I A W C X A B C Q
  E V C Y H I N Z J Q AA Q L AB S AC P O P Z AD AE P AF N AG S AH H I AI O P O P Z AD C D AJ T U AK AJ T U AK AL ~
>`.pickRestart({
  A: "c2@5 ~ c2@2 g1@5 ~ g1@2", B: "c2@5 ~ c2@2 g1@4 c2@2 b1@2", C: "bb1@5 ~ bb1@2 f1@5 ~ f1@2",
  D: "bb1@5 ~ bb1@2 f1 ~ f1 ~ bb1@2 b1@2", E: "eb2@5 ~ eb2@2 bb1@5 ~ bb1@2", F: "eb2@5 ~ eb2@2 bb1@4 eb2@4",
  G: "bb1@5 ~ bb1@2 f1 ~ f1@4 bb1@2", H: "f1@5 ~ f1 ~ f1@5 ~ c2@2", I: "f1@5 ~ f1 ~ f1 ~ f1@3 ~ f1@2",
  J: "c2@5 ~ c2@2 c2@2 c2@3 ~ c2@2", K: "bb1@5 ~ bb1@2 f1@5 ~ bb1@2", L: "f1@5 ~ f1@2 c2@5 ~ c2@2",
  M: "f1@2 f1@3 ~ f1 ~ f1@2 f1@3 ~ f1@2", N: "c2@5 ~ c2@2 g1 ~ g1@2 c2@4", O: "bb1@5 ~ bb1@2 f1@4 bb1@3 ~",
  P: "c2@5 ~ c2 ~ c2@5 ~ c2@2", Q: "bb1@5 ~ bb1@2 f1 ~ f1@2 bb1@4", R: "f1@5 ~ f1@2 c2@4 f1@4",
  S: "c2@5 ~ c2@2 g1@4 c2@4", T: "eb2@5 ~ eb2@2 f1@5 ~ f1@2", U: "bb1@5 ~ bb1@2 f1@6 a1@2",
  V: "eb2@5 ~ eb2 ~ eb2@6 a1@2", W: "c2@5 ~ c2@4 g1@2 c2@2 b1@2", X: "bb1@5 ~ bb1@2 f1 ~ f1@2 bb1@2 b1@2",
  Y: "bb1@5 ~ bb1@2 f1@2 f1@3 ~ f1 ~", Z: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1@2", AA: "c2@5 ~ c2 ~ c2 ~ c2@6",
  AB: "f1@2 f1@3 ~ f1 ~ f1 ~ f1@3 ~ f1@2", AC: "bb1@5 ~ bb1 ~ f1@4 bb1@3 ~", AD: "f1@5 ~ f1 ~ f1@4 ~@2 f1@2",
  AE: "bb1@5 ~ bb1 ~ bb1 ~ bb1@3 ~ bb1 ~", AF: "bb1@5 ~ bb1@2 f1@6 bb1@2", AG: "bb1@5 ~ bb1 ~ bb1@4 ~@2 f1@2",
  AH: "bb1@5 ~ bb1 ~ f1@7 ~, ~@8 bb1 ~@7", AI: "c2@5 ~ c2 ~ c2@6 g1@2", AJ: "c2@5 ~ c2@2 g1@8",
  AK: "bb1@5 ~ bb1@2 f1@4 g1@2 f1@2", AL: "bb1@7 ~",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@18 A@2 B@2 C@2 B@2 D@2 E@2 F@2 G E H E I E F J I E G E G E F B@2 G K E L G@2 E@2 G@2 M E N O P Q R S T G U@2 T@2 P V
  W X P@2 S Y Z P T P T P AA S T P T P T P AB Q T P T P T P R AC T P T P T P AD P V T AE P AF T AE P AF AG ~
>`.pickRestart({
  A: "[~@4 [c4,eb4,g4,c5,eb5]@5 ~ [c4,eb4,g4,c5,eb5]@3 ~ [c4,eb4,g4,c5,eb5]@5 ~ [c4,eb4,g4,c5,eb5]@5 ~ [c4,eb4,g4,c5,eb5]@3 ~ [c4,eb4,g4,c5,eb5]@2]/2", // Cm
  B: "[~@4 [bb3,f4,bb4,d5,f5]@5 ~ [bb3,f4,bb4,d5,f5]@3 ~ [bb3,f4,bb4,d5,f5]@4 ~@2 [bb3,f4,bb4,d5,f5]@5 ~ [bb3,f4,bb4,d5,f5]@3 ~ [bb3,f4,bb4,d5,f5]@2]/2", // Bb
  C: "[~@4 [c4,eb4,g4,c5,eb5]@5 ~ [c4,eb4,g4,c5,eb5]@3 ~ [eb4,g4,c5,eb5]@5 ~ [c4,eb4,g4,c5,eb5]@5 ~ [c4,eb4,g4,c5,eb5]@3 ~ [c4,eb4,g4,c5,eb5]@2, ~@14 c4@3 ~@15]/2", // Cm
  D: "~@4 [eb4,g4,bb4,eb5,g5,bb5]@5 ~ [eb4,g4,bb4,eb5,g5,bb5]@3 ~ [eb4,g4,bb4,eb5,g5,bb5]@2", // Eb
  E: "~@4 [bb3,f4,bb4,d5,f5]@5 ~ [bb3,f4,bb4,d5,f5]@3 ~ [bb3,f4,bb4,d5,f5]@2", // Bb
  F: "~@4 [f4,a4,c5,f5,a5]@5 ~ [f4,a4,c5,f5,a5]@3 ~ [f4,a4,c5,f5,a5]@2", // F
  G: "~@4 [c4,eb4,g4,c5,eb5]@5 ~ [c4,eb4,g4,c5,eb5]@3 ~ [c4,eb4,g4,c5,eb5]@2", // Cm
  H: "~@4 [c4,eb4,g4,c5,eb5,g5]@5 ~ [c4,g4,c5,eb5,g5]@3 ~ [c4,g4,c5,eb5,g5]@2", // Cm
  I: "~@4 [c4,g4,c5,eb5,g5]@5 ~ [c4,g4,c5,eb5,g5]@3 ~ [c4,g4,c5,eb5,g5]@2", // Cm
  J: "~@2 [f4,a4,c5,f5,a5] ~ [f4,a4,c5,f5,a5]@3 ~ [f4,a4,c5,f5,a5] ~ [f4,a4,c5,f5,a5]@3 ~ [f4,a4,c5,f5,a5]@2", // F
  K: "~@4 [eb4,bb4,eb5,g5]@4 ~@2 [f4,a4,c5,f5]@3 ~ [f4,a4,c5,f5]@2", // Eb F
  L: "~@2 [bb3,bb4,d5,f5] ~ [bb3,f4,bb4,d5,f5]@5 ~ [bb3,f4,bb4,d5,f5]@3 ~ [bb3,f4,bb4,d5,f5]@2", // Bb
  M: "~@4 [bb3,bb4,d5,f5]@5 ~ [bb3,f4,bb4,d5,f5]@3 ~ [bb3,f4,bb4,d5,f5]@2, ~@4 f4 ~@11", // Bb
  N: "~@4 [eb4,bb4,eb5,g5]@5 ~ [eb4,bb4,eb5,g5]@3 ~ [eb4,bb4,eb5,g5]@2", // Eb
  O: "~@4 [eb4,g4,bb4,eb5]@5 ~ [eb4,g4,bb4,eb5]@3 ~ [eb4,g4,bb4,eb5]@2", // Eb
  P: "~@4 [bb3,f4,bb4,d5]@5 ~ [bb3,f4,bb4,d5]@3 ~ [bb3,f4,bb4,d5]@2", // Bb
  Q: "~@2 [bb3,bb4,d5] ~ [bb3,f4,bb4,d5]@5 ~ [bb3,f4,bb4,d5]@3 ~ [bb3,f4,bb4,d5]@2", // Bb
  R: "~@4 [f4,c5,f5,a5]@5 ~ [f4,c5,f5,a5]@3 ~ [f4,c5,f5,a5]@2", // F
  S: "~@2 [f4,c5,f5,a5] ~ [f4,c5,f5,a5]@3 ~ [f4,c5,f5,a5] ~ [f4,c5,f5,a5]@3 ~ [f4,c5,f5,a5]@2", // F
  T: "~@4 [c4,g4,c5,eb5]@5 ~ [c4,g4,c5,eb5]@3 ~ [c4,g4,c5,eb5]@2", // Cm
  U: "[~@4 [d4,f4,bb4,d5]@5 ~ [bb3,f4,bb4,d5]@3 ~ [bb3,f4,bb4,d5]@4 ~@2 [bb3,f4,bb4,d5]@5 ~ [bb3,f4,bb4,d5]@3 ~ [bb3,f4,bb4,d5]@2]/2", // Bb
  V: "~@2 [bb3,f4,bb4,d5] ~ [bb3,f4,bb4,d5]@5 ~ [bb3,f4,bb4,d5]@3 ~ [bb3,f4,bb4,d5]@2", // Bb
  W: "~@4 [bb3,eb4,g4,bb4,eb5]@5 ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5]@2", // Eb
  X: "~@2 [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@5 ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5]@2", // Eb
  Y: "~@2 [f4,c5,f5,a5] ~ [f4,c5,f5,a5]@3 ~ [f4,c5,f5,a5] ~ [f4,c5,f5,a5] ~ [f4,c5,f5,a5]@4", // F
  Z: "~@4 [c5,eb5]@5 ~ [c4,g4,c5,eb5]@3 ~ [c4,g4,c5,eb5]@2, ~@4 [c4,g4]@3 ~@9", // Cm C5
  AA: "~@4 [f4,a4,c5,f5]@5 ~ [f4,c5,f5,a5]@3 ~ [f4,c5,f5,a5]@2", // F
  AB: "~@4 [f4,a4,f5]@5 ~ [f4,c5,f5,a5]@3 ~ [f4,c5,f5,a5]@2, ~@4 c5@3 ~@9", // F
  AC: "~@2 [f4,c5,f5,a5] ~ [f4,c5,f5,a5]@3 ~ [f4,c5,f5,a5] ~ [f4,c5,f5,a5] ~ [f4,c5,f5,a5] ~ [f4,c5,f5,a5]@2", // F
  AD: "~@2 [f4,c5,f5,a5] ~ [f4,c5,f5,a5]@3 ~ [f4,c5,f5,a5] ~ [f4,c5,f5,a5]@6", // F
  AE: "~@4 [eb4,g4,bb4,eb5]@4 ~@2 [f4,a4,c5,f5]@3 ~ [f4,a4,c5,f5]@2", AF: "~@2 [bb3,f4,bb4,d5]@2 ~ [bb3,f4,bb4,d5]@2 ~",
  AG: "[bb3,f4,bb4,d5]", // Bb
})).s("gm_acoustic_guitar_steel").gain(0.4).pan(1)

// chords · pad new age · "FANTASIA"
const pad_new_age = note(`<
  ~@31 A B C D@2 E F G@2 E H I J K F L@2 ~@32 A B C D@2 E F G@2 E H I J K F M@2 B C D@2 E F G@2 E H I J K F L@2 ~@11
>`.pickRestart({
  A: "~@10 [f4,a4,d5] ~ [f4,a4,d5] ~ [f4,a4,d5] ~", // Dm
  B: "[eb4,g4,d5]@3 ~ [eb4,g4,c5] ~ [eb4,g4,c5]@3 ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4]@2", // Ebmaj7 Cm Bb
  C: "~@2 [bb3,d4,f4]@7 ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5]@2", // Bb
  D: "[~@2 [eb4,g4,c5]@3 ~ [eb4,g4,c5]@3 ~ [d4,f4,bb4] ~ [bb3,d4,g4] ~ [bb3,d4,f4]@10 ~@2 [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~, ~@14 c4 ~@17]/2", // Cm Bb Gm Bb
  E: "[eb4,g4,d5]@3 ~ [eb4,g4,c5] ~ [eb4,g4,c5]@3 ~ [d4,f4,bb4]@3 ~ [d4,f4,bb4]@2", // Ebmaj7 Cm Bb
  F: "~@2 [d4,f4,bb4] ~ [eb4,g4,c5] ~ [d4,f4,bb4]@7 ~@3", // Bb Cm Bb
  G: "[[f4,a4,d5] ~ [f4,a4,c5]@3 ~ [f4,g4,bb4] ~ [f4,a4,c5]@3 ~ [f4,a4,d5] ~ [f4,a4,c5]@10 ~@2 [f4,a4,d5] ~ [f4,a4,d5] ~ [f4,a4,d5] ~]/2", // Dm F Gm7 F Dm F Dm
  H: "~@2 [bb3,d4,f4]@7 ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~", // Bb
  I: "[f4,bb4,d5]@3 ~ [eb4,g4,c5] ~ [eb4,g4,c5]@3 ~ [d4,f4,bb4]@3 ~ [d4,f4,bb4]@2", // Bb Cm Bb
  J: "~@2 [d4,f4,bb4] ~ [bb3,d4,g4] ~ [bb3,d4,f4]@3 ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~", // Bb Gm Bb
  K: "[f4,bb4,d5]@2 ~@2 [eb4,g4,c5] ~ [eb4,g4,c5]@3 ~ [eb4,g4,c5]@3 ~ [d4,f4,bb4]@2", // Bb Cm Bb
  L: "[[f4,a4,d5] ~ [f4,a4,c5]@2 ~@2 [f4,g4,bb4] ~ [f4,a4,c5]@2 ~@2 [d4,f4,bb4] ~ [d4,f4,bb4]@7 ~@11]/2", // Dm F Gm7 F Bb
  M: "[[f4,a4,d5] ~ [f4,a4,c5]@2 ~@2 [f4,g4,bb4] ~ [f4,a4,c5]@2 ~@2 [d4,f4,bb4] ~ [d4,f4,bb4]@7 ~@5 [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~]/2", // Dm F Gm7 F Bb
})).s("gm_pad_new_age").gain(0.32)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  A B C D E F D G H I J K L M N O P Q R@2 S T U V W T X L Y T Z@2 U T AA AB AC AD AE AF R AB AG AH R AI AJ Y AK AL AM AN
  AO E F D G H I J K L M N O P Q R@2 S T U V W T X L Y T Z@2 U T AA AB AC AD AE AF R AB AG AH R AI AJ AP U T AA AB AC AD
  AE AF R AB AG AH R AI AJ AQ AR AS AT AU AV@2 AT AU AW@2 ~
>`.pickRestart({
  A: "~@2 g3 d4@2 eb4 c4 g3, c3 ~@3, ~ eb3@4 ~@3", B: "~ g3 bb3 d4@2 eb4 bb3 g3, eb3@3 ~@5",
  C: "bb2 ~ d3 f4@2 bb3 f3 bb3, ~ f3@4 ~@3", D: "~ f3 d3 f4@2 bb3 f3 bb3, bb2 ~@3",
  E: "c3 g3 ~ eb4@2 c4 g3 c4, ~@2 eb3@3 ~@3", F: "~ g3 ~ eb4@2 c4 g3 c4, c3@2 eb3@5 ~",
  G: "~@3 f4@2 bb3 f3 bb3, bb2@4 d3@9 ~@3, ~ f3@2 ~@5", H: "~ g3 ~ eb4@2 c4 g3 c4, c3@4 eb3@7 ~@5",
  I: "c3 g3 eb3 eb4@2 c4 g3 c4", J: "~@2 d3 f4@2 bb3 f3 bb3, bb2 ~@3, ~ f3@4 ~@3",
  K: "bb2 ~@2 f4@2 bb3 f3 bb3, ~ f3@4 ~@3, ~ d3 ~@2", L: "~ bb3 g3 eb4@2 bb3 g3 bb3, eb3@7 ~",
  M: "~ bb3 g3 eb4@2 bb3 g3 bb3, eb3 ~", N: "bb2 ~ d3 f4@2 bb3 ~ bb3, ~ f3@4 ~ f3@2",
  O: "~@2 bb3@2 ~@2 f4@4 bb3@2 f3@2 bb3 ~, bb2@3 ~@5, ~@2 f3@3 ~@3", P: "~ c4 ~ a4@2 f4 ~ f4, f3@7 ~, ~ a3@3, ~@3 c4",
  Q: "~ f4 ~ g4@2 ~@2 c4, f3@3 ~, ~ c4@2 f4, ~@5 a4@3", R: "~@3 eb4@2 c4 g3 c4, c3@2 eb3@5 ~, ~ g3@4 ~@3",
  S: "~@3 f4@2 bb3 ~ bb3, bb2 d3@2 ~, ~ f3@4 ~ f3@2", T: "~@3 f4@2 bb3 f3 bb3, bb2@4 d3@9 ~@3, ~ f3@4 ~@3",
  U: "c3 ~@2 eb4@2 c4 g3 c4, ~ g3@4 ~@3, ~@2 eb3@5 ~", V: "~@3 eb4@2 c4 ~ c4, c3 eb3@2 ~, ~ g3@4 ~ g3@2",
  W: "~@3 f4@2 bb3 ~ bb3, bb2@4 d3@5 ~@7, ~ f3@4 ~ f3@2", X: "~ bb3 ~ eb4@2 bb3 g3 bb3, eb3@7 ~, ~@4 g3@5 ~@7",
  Y: "~@3 f4@2 bb3 ~ bb3, bb2@2 d3@5 ~, ~ f3@4 ~ f3@2",
  Z: "[~@5 f4 ~@7 f4 ~ f4, f3@7 ~ f3@6 ~@2, ~ f4@2 a4@4 f4@2 ~ a3@4 ~@2, ~@2 c4@3 ~ c4@2 ~ c4@4 ~ c4@2, ~@22 a4@9 ~]/2",
  AA: "~@3 eb4@2 c4 g3 c4, c3 eb3@3, ~ g3@4 ~@3", AB: "~@3 f4@2 bb3 f3 bb3, bb2@4 d3@11 ~, ~ f3@4 ~@3",
  AC: "c3 ~@2 eb4@2 c4 ~ c4, ~@2 g3@7 ~@3 g3@4, ~ eb3@2 ~",
  AD: "~@2 bb3@2 ~@2 f4@4 bb3@2 f3@2 bb3 ~, bb2@3 ~, ~@2 f3@3 ~@3",
  AE: "~ f4 c4 ~@2 f4 ~ f4, f3@7 ~, ~@3 a4@4 ~, ~@8 a3@7 ~, ~@3 c4",
  AF: "~ f4 ~@3 f4 ~ f4, f3@3 ~, ~ c4 a3 c4, ~@6 a4@9 ~", AG: "~@3 eb4@2 c4 ~ c4, c3@3 ~, ~ g3@4 ~ g3@2, ~@2 eb3@5 ~",
  AH: "~@3 f4@2 bb3 f3 bb3, bb2@2 d3@5 ~, ~ f3@4 ~@3", AI: "~@6 f4@4 bb3@2 f3@2 bb3 ~, d3@3 ~, ~ f3@4 ~@3, ~ bb3 ~@2",
  AJ: "~ c4 ~@3 f4 ~ f4, f3@3 c4, ~@2 a3@5 ~, ~@3 a4@5",
  AK: "~@3 f4@2 bb3 f3 bb3, bb2@11 ~@5, ~ f3@4 ~@3, ~@4 d3@9 ~@3",
  AL: "~@5 c4 ~ c4, c3@2 eb3@5 ~, ~@2 g3@7 ~@3 g3@4, ~@6 eb4@7 ~@3", AM: "~ bb3 g3 eb4 ~ c4 a3 f4, eb3@3 ~ f3@2 ~@2",
  AN: "~ bb3 ~ f4@2 bb3 f3 bb3, bb2@5 ~@3, ~@4 f3@7 ~@5", AO: "~@6 f4@4 bb3@2 f3@2 bb3 ~, bb2@4 d3@5 ~@7, ~ f3@4 ~@3",
  AP: "bb2@2 ~@2 d3@2 f4@4 bb3@2 f3@2 bb3 ~, ~ f3@4 ~@3", AQ: "bb2 ~@2 f4@2 bb3 ~ bb3, ~ f3@4 ~ f3@2, ~@2 d3@5 ~",
  AR: "~@3 f4@2 bb3 f3 bb3, bb2@7 ~, ~ f3@4 ~@3, ~@2 d3@5 ~", AS: "c3 ~@2 eb4@2 c4 ~ c4, ~ g3@2 ~@3 g3@2, ~@2 eb3@5 ~",
  AT: "~ bb3 g3 eb4 ~ c4 a3 f4, eb3@6 ~@2 f3@5 ~@3", AU: "~@3 f4@2 bb3 ~ bb3, bb2@3 ~@5, ~@2 f3@9 ~ f3@4, ~@4 d3@11 ~",
  AV: "[~ bb3 ~ f4@2 bb3 ~ d3 c3 ~@2 eb4@2 c4 ~ c4, bb2@7 ~@2 g3@2 ~@3 g3@2, ~@4 f3@6 ~@2 f3@13 ~@7, ~@10 eb3@5 ~]/2",
  AW: "[~ bb3 ~ f4@2 bb3 ~ d3 [bb2,bb3,f4]@5 ~@3, bb2@7 ~@9, ~@4 f3@6 ~@2 f3@13 ~@7]/2", // Bb5
})).s("gm_acoustic_guitar_nylon").gain(0.56)

// drums · kick
const kick = s("bd").struct(`<
  ~@18 A@3 B A C A D A@2 B D C E C@2 A D A C A F A C@3 A@2 C A C@2 A@2 C A@3 D A C A D A C@3 A C@2 G A D A C@2 G C@2 G C
  G C@4 D A D A H A C A G A G@2 E C A G A C@3 E C@7 A G@2 B A E G B A E I ~
>`.pickRestart({
  A: "x!2", B: "x ~@3 x ~@2 x", C: "x ~@2 x!2 ~@3", D: "x ~@3 x!2 ~ x", E: "x ~@2 x ~ x ~@2", F: "x ~@2 x ~ x ~ x",
  G: "x ~@3 x!2 ~@2", H: "x ~@2 x!3 ~@2", I: "x",
})).gain(0.51)

// drums · rim
const rim = s("rim").struct("<~@18 [~ x ~ x]!14 ~@21 [~ x ~ x]!13 [~ x ~@4 x ~] [~ x ~ x]!13 [~ x ~@4 x ~] ~@43>")
  .gain(0.51)

// drums · snare
const snare = s("sd").struct("<~@32 [~ x ~ x]!20 [~@2 x ~@2 x!2 ~] ~@28 [~ x ~ x]!41 ~@2>").gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@31 A ~@7 B ~@40 A ~@7 A ~@7 A ~@7 A ~@12 A ~@3 A ~@2>".pickRestart({
  A: "~@6 x!2", B: "~@7 x",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<~@18 [x!8]!100 [~ x!7] [x!8]!3 x ~>").gain(0.46)

// drums · mid tom
const mid_tom = s("mt").struct("<~@31 A ~@7 A ~@40 A ~@7 A ~@7 B ~@7 A ~@12 B ~@3 B ~@2>".pickRestart({
  A: "~@5 x!3", B: "~@4 x!4",
})).gain(0.51)

// drums · high tom
const high_tom = s("ht").struct("<~@31 A ~@7 B ~@40 A ~@7 A ~@7 C ~@7 A ~@12 D ~@3 D ~@2>".pickRestart({
  A: "~ x!4 ~@3", B: "~ x", C: "~ x!3 ~@4", D: "~ x!2 ~@5",
})).gain(0.51)

// drums · crash
const crash = s("cr").struct("<~@18 A ~@13 A ~@7 A ~@26 A ~@13 A ~@7 A ~@7 A ~@7 A ~@12 A ~@3 A ~>".pickRestart({
  A: "x",
})).gain(0.51)

stack(
  string_ensemble_1, string_ensemble_1_soft, bass, acoustic_guitar_steel, pad_new_age, acoustic_guitar_nylon, kick, rim,
  snare, low_tom, hihat, mid_tom, high_tom, crash
)

More by Smokie