Strudelify
Marguerita Time cover art

Back To Back

Marguerita Time

Status Quo

KeyF majorTempo132 bpm
0:00/0:00
// Marguerita Time — Status Quo
// 132 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 107 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): OVERDRIVE.
setcpm(132/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 · celesta
const celesta = note("<~@40 A B C D ~@5 A B C D ~@22 A B C D ~@28>".pickRestart({
  A: "~@11 c6 a5@2 ~@9 a5, ~@5 f6 ~@5 c6", B: "f5 ~@11", C: "~@11 c6 g5@2 ~@9 g5, ~@5 e6 ~@5 c6", D: "e5 ~@11",
})).s("gm_celesta").gain(0.08).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B C D E F G H I F J K G D L M N O F J K P D Q M R M S T B S F T B S U B S V W F J K X Y Q M N O F J K P D Q M G M S
  Z B S F T B S U B C D B T G F W F J K X D Q M G M S T B S F T B S U B S V U B S V U B G F AA@2 ~
>`.pickRestart({
  A: "~@6 f1@3 ~@3 f1@5 ~ g1@5 ~", B: "bb1@7 ~@5 f2@5 ~ bb1@5 ~", C: "c2@7 ~@3 c2 ~ c2@5 ~ db2@5 ~",
  D: "d2@7 ~@5 a1@5 ~ d2@5 ~", E: "bb1@7 ~@5 f1@5 ~ bb1@5 ~", F: "f2@7 ~@5 c2@7 ~@5", G: "c2@7 ~@5 g1@5 ~ c2@4 ~@2",
  H: "f2@7 ~@5 f2@4 ~@2 c2@5 ~", I: "f1@3 ~@3 f1@4 ~@14", J: "f1@7 ~@5 c2@5 ~ f2@5 ~", K: "c2@7 ~@5 g1@7 ~@5",
  L: "a1@7 ~@5 e2@6 a1@5 ~", M: "g1@7 ~@5 d2@5 ~ g1@5 ~", N: "c2@7 ~@5 g1@11 ~", O: "c2 ~@2 c2@2 ~@7",
  P: "c2@7 ~@3 c2 ~ g1@5 ~ db2@5 ~", Q: "a1@7 ~@5 e2@4 ~@2 a1@5 ~", R: "c2@7 ~@5 g1@5 ~ c2@5 ~",
  S: "c2@7 ~@3 c2 ~ d2@5 ~ e2@5 ~", T: "f2@7 ~@5 c2@5 ~ f2@5 ~", U: "f2@3 ~@3 f1@4 ~@2 f1@5 ~ g1@4 ~@2",
  V: "f2@7 ~@5 c2@12", W: "f2 ~@2 f2@2 ~@7", X: "c2@7 ~@5 g1@5 ~ db2@5 ~", Y: "d2@7 ~@5 a1@7 ~@5",
  Z: "f2@7 ~@3 f2 ~ c2@5 ~ f2@4 ~@2", AA: "[f2 ~ c2@2 f1@5 ~@7]/2",
})).s("gm_fretless_bass").gain(0.32)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~ A B C A D B D E F@2 G@2 C H I B J F@2 G@2 C H I B I B K L M N@2 L M O A B D E F@2 G@2 C H I B J F@2 G@2 C H I B I B
  K L M N@2 L M O A B C A D B D E F@2 G@2 C H I B I B K L M N@2 L M O A B P@2 A B P@2 A B Q@2 ~@2
>`.pickRestart({
  A: "[bb3,d4,f4]@11 ~", B: "[g3,bb3,c4,e4]@11 ~", C: "[a3,d4,f4]@11 ~", D: "[a3,c4,f4]@11 ~",
  E: "[a3,c4,f4]@2 ~ [a3,c4,f4]@2 ~@7", F: "[[a3,c4,f4]@23 ~]/2", G: "[[g3,bb3,c4,e4]@23 ~]/2", H: "[a3,c4,e4]@11 ~",
  I: "[bb3,d4,g4]@11 ~", J: "[g3,bb3,c4,e4]@4 ~@2 [g3,bb3,c4,e4]@5 ~@13", K: "[a3,c4,f4,a5,c6,f6]@23 ~",
  L: "[bb3,d4,f4,bb5,d6,f6]@23 ~", M: "[g3,bb3,c4,e4,g5,c6,e6]@11 ~", N: "[[a3,c4,f4,a5,c6,f6]@47 ~]/2",
  O: "[a3,c4,f4]@2 ~ [a3,c4,eb4,f4]@2 ~ [a3,c4,eb4,f4]@2 ~ [a3,c4,eb4,f4]@2 ~, [a5,c6,f6]@7 ~", // F F7 F
  P: "[[a3,c4,f4]@14 ~ [a3,c4,eb4,f4]@8 ~]/2", Q: "[[a3,c4,f4]@14 ~ [g3,bb3,c4,e4]@2 ~ [a3,c4,f4]@6]/2",
})).s("gm_synth_strings_1").gain(0.1)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@8 A B C D@2 E F G H@2 I A J K L M N O P Q R S T U V W X Y ~@3 A B C D@2 E F G H@2 I A J K L M N O P Q R S T U V W X
  Y ~@7 A I A J K L M N O P Q R S T U V W X Y ~@14
>`.pickRestart({
  A: "~@12 [d5,f5]@4 [c5,e5]@4 [a4,d5]@3 ~", B: "[a4,c5]@2 ~", C: "~@12 [d5,f5]@3 ~ [c5,e5]@3 ~ [a4,d5]@3 ~",
  D: "[[g4,d5]@8 ~ [c5,e5]@2 ~ [g4,c5]@14 ~@10 [e5,g5]@4 [d5,f5]@5 ~ [c5,e5] ~]/2", // G5 C C5 Em Dm C
  E: "[c5,e5]@4 ~ [d5,f5] [a4,d5]@4 ~@2", F: "[a4,d5]@8 ~@2 [a4,c5] ~ [a4,c5]@9 ~ [e4,a4] ~",
  G: "[d4,a4]@9 ~ [d4,g4] ~ [d4,g4]@5 ~ [g4,d5]@2 ~@4", // D5 G5
  H: "[[g4,d5]@9 ~ [g4,c5] ~ [g4,c5]@14 ~@10 [d5,f5]@4 [c5,e5]@4 [a4,d5]@3 ~]/2", I: "[a4,c5]@3 ~",
  J: "[g4,d5]@9 ~ [a4,e5]@2 [g4,c5]@12", K: "~@12 [e5,g5]@4 [d5,f5]@5 ~ [c5,e5] ~",
  L: "[c5,e5]@8 ~@2 [d5,f5]@2 ~ a4@10 ~, ~@6 d5@5 ~", M: "[a4,d5]@9 ~ [a4,c5] ~ [a4,c5]@7 ~@5",
  N: "[d4,a4]@8 ~@2 [d4,g4] ~ [d4,g4]@9 ~@3", O: "[g4,d5]@9 ~ [g4,c5] ~ [g4,c5]@7 ~@5",
  P: "[d4,a4]@4 ~@2 [d4,g4]@4 ~@2 [d4,a4]@5 ~ [d4,g4]@3 ~@3", Q: "[g4,d5]@5 ~ [g4,c5]@4 ~@2 [g4,d5]@3 ~ [c5,e5]@6 ~@2",
  R: "[c5,f5]@4 [c5,e5]@4 ~ [a4,d5]@2 ~ [a4,c5]@4 [f4,bb4]@4 [f4,a4]@2 ~@2", // F5 C D5 Am Bb5 F
  S: "[d4,g4]@4 [f4,a4]@5 [bb3,d4]@2 ~ [d4,g4]@10 ~@2", // G5 F Bb G5
  T: "[c5,e5]@4 [g4,d5]@4 [g4,c5]@4 [g4,bb4]@3 ~ [e4,g4]@2 ~@2 [e4,ab4]@3 ~", U: "[f4,a4]@4 [c5,f5]@11 ~@9",
  V: "[c5,f5]@3 ~ [c5,e5]@4 [a4,d5]@2 ~@2 [a4,c5]@3 ~ [f4,bb4]@4 [f4,a4]@2 ~@2", // F5 C D5 Am Bb5 F
  W: "[d4,g4]@3 ~ [f4,a4]@4 [bb3,d4]@3 ~ [d4,g4]@10 ~@2", // G5 F Bb G5
  X: "[e4,g4]@3 ~ [e4,a4]@4 ~ [g4,bb4]@2 ~ [g4,d5]@6 [c4,e4]@4 ~@2", Y: "[c4,f4]@5 ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.36)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~ A B ~ C D E D ~@3 F ~ G ~@2 H ~@4 E ~@5 I J K L M@2 K I ~ C B M ~@13 E ~@4 N H M O E M@2 O B ~ C P G Q R B D ~@10 S
  M T E M@2 U E ~ C B M ~ C B D ~ C E M ~@3
>`.pickRestart({
  A: "~@2 g3 ~@3 g3 ~", B: "~@4 [c3,g3,c4] ~ a3@3 ~@7 [c3,g3,c4] ~ a3@4 ~@2", C: "~@4 [bb2,f3,bb3] ~ g3@3 ~@9 g3@3 ~@3",
  D: "~@4 [f2,c3,f3] ~ d3@3 ~@7 [f2,c3,f3] ~ d3@3 ~@3", E: "~@4 [c3,g3,c4] ~ a3@3 ~@9 a3@3 ~@3", F: "~@6 a3 ~",
  G: "~@22 [d3,a3,d4] ~", H: "~@2 [c3,g3,c4] ~@6 a3@2 ~", I: "~@2 a3 ~@3 a3 ~", J: "~@2 d3 ~@3 d3 ~",
  K: "~@6 g3@3 ~@9 g3@4 ~@2", L: "~@4 [c3,g3,c4] ~ a3@3 ~@7 [c3,g3,c4] ~ a3@3 ~@3",
  M: "~@4 [f2,c3,f3] ~ d3@3 ~@9 d3@3 ~@3", N: "~@2 [g2,d3,g3] ~@9",
  O: "~@4 [bb2,f3,bb3] ~ g3@3 ~@7 [bb2,f3,bb3] ~ g3@4 ~@2", // Bb5
  P: "~@4 [c3,g3,c4] ~ a3@4 ~@6 [c3,g3,c4] ~ a3@4 [c3,g3,c4] ~", // C5
  Q: "~@4 [bb2,f3,bb3] ~ g3@4 ~@6 [bb2,f3,bb3] ~ g3@4 [bb2,f3,bb3] ~", // Bb5
  R: "~@4 [f2,c3,f3] ~ d3@3 ~@7 [f2,c3,f3] ~ d3@3 ~ [f2,c3,f3] ~", S: "~@16 [c3,g3,c4] ~ a3@3 ~@3",
  T: "~@6 g3@3 ~ g3 ~@3 [bb2,f3,bb3]@2 ~@2 g3@3 ~@3", U: "~@4 [bb2,f3,bb3] ~ g3@4 g3 ~@7 g3@3 ~ g3 ~",
})).s("gm_overdriven_guitar").gain(0.14).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
  ~ A ~@7 B ~@2 C ~@6 B D E ~ F ~@2 G ~@15 D ~@4 D ~@5 H I ~ D ~@10 J ~@8 K D L H M ~ N G D ~ A ~@6 O ~@13
>`.pickRestart({
  A: "~@4 [bb2,f3,bb3] ~@19", B: "~@2 [f2,c3,f3] ~@9", C: "~@2 [c3,g3,c4] ~@5 [c3,g3,c4] ~@3", D: "~@2 [c3,g3,c4] ~@9",
  E: "~@16 [c3,g3,c4] ~@7", F: "~ [a2,e3,a3]@2 ~@9", G: "~@2 [g2,d3,g3] ~@9", H: "~@2 [d3,a3,d4] ~@9",
  I: "~@4 [a2,e3,a3]@2 ~@10 [a2,e3,a3] ~@7", J: "~@16 [bb2,f3,bb3] ~@7", K: "~@16 [f2,c3,f3] ~@7",
  L: "~@4 [c3,g3,c4]@2 ~@10 [c3,g3,c4] ~@7", M: "~@2 [a2,e3,a3] ~@9", N: "~@2 [c3,g3,c4] ~@4 [c3,g3,c4] ~@4",
  O: "~@10 g3 ~@3 [bb2,f3,bb3] ~@9", // Bb5
})).s("gm_overdriven_guitar").gain(0.08).pan(0.6)

// other · pad poly · "POLYSYNTH"
const pad_poly = note(`<
  A B C D E F G H I ~@26 J F G H I ~@26 J F K D E F G L I ~@17 J M N H O F N H O F N H P ~@2
>`.pickRestart({
  A: "~@2 c6 ~ d6 ~ e6 ~", B: "f6@10 ~@2 f6@7 ~@3 d6 ~", C: "e6@5 ~ d6@5 ~ c6@7 ~ c6 ~ db6 ~",
  D: "d6@10 ~@2 d6@9 ~ a5 ~", E: "bb5@5 ~ c6@5 ~ d6@5 ~ e6@5 ~", F: "f6@9 ~@3 f6@9 ~ d6@2",
  G: "e6@5 ~ d6@6 a5@5 ~ g5@2 a5@2 g5@2", H: "f5@7 ~@3 f5@2 a5@4 c6@2 d6@3 ~ c6@2", I: "f6 ~@2 f6 ~@8",
  J: "~@6 c6@5 ~ d6@5 ~ e6@5 ~", K: "e6@5 ~ d6@5 ~ c6@7 ~ c6 ~ db6@2", L: "f5@7 ~@3 f5 ~ a5@4 c6@2 d6@4 c6 ~",
  M: "f6@10 ~@2 f6@9 ~ d6@2", N: "e6@6 d6@5 ~ a5@6 g5@6", O: "f6@2 ~@4 c6@3 ~@3 d6@4 ~@2 e6@4 ~@2",
  P: "f6@2 ~@4 g6@6 f6@11 ~",
})).s("gm_pad_poly").gain(0.25).pan(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C D B E F E G H I J K L M N F O H I J K P M N F Q R S T C I@2 T U V W C I G H I F@2 D M N X Y I@2 F@2 D Z N F N F
  I B F I@2 B K V B AA AB AC AD AE E G AF E F K P Z N F N K I W AG I@2 W AG V B C I AH W C AF AH B AG I AI@3
>`.pickRestart({
  A: "~@6 [f3,a3,c4,eb4,f4]@4 ~@2 [f3,a3,c4,eb4,f4]@4 ~@2 [f3,a3,c4,eb4,f4]@3 ~@3", // F7
  B: "[f3,bb3,d4,f4]@6 [f3,bb3,d4,f4] ~@3 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@6 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4] ~", // Bb
  C: "[e3,g3,c4,e4]@6 [e3,g3,c4,e4] ~@3 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@6 [e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~", // C
  D: "[d3,a3,d4,f4]@6 [d3,a3,d4,f4] ~@3 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]@6 [d3,a3,d4,f4]@4 [d3,a3,d4,f4] ~", // Dm
  E: "[f3,a3,c4,f4]@6 [f3,a3,c4,f4] ~@3 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@4 [f3,a3,c4,f4] ~", // F
  F: "[e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4] ~@3 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4] ~", // C7
  G: "[f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@4 ~@14", // F
  H: "[f3,a3,c4,f4]@6 [f3,a3,c4,f4] ~@3 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@2 ~@2 [f3,a3,c4,f4]@2", // F
  I: "[f3,a3,c4,f4]@6 [f3,a3,c4,f4] ~@3 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@4 [f3,a3,c4,f4] ~", // F
  J: "[e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4] ~@3 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4] ~@3 [e3,g3,bb3,c4,e4]@2", // C7
  K: "[e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4] ~@3 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4] ~", // C7
  L: "[d3,a3,d4,f4]@6 [d3,a3,d4,f4] ~@3 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]@4 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]@4 ~@2", // Dm
  M: "[e3,a3,c4,e4]@6 [e3,a3,c4,e4] ~@3 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@4 [e3,a3,c4,e4] ~", // Am
  N: "[d3,g3,bb3,g4]@6 [d3,g3,bb3,g4] ~@3 [d3,g3,bb3,g4]@2 [d3,g3,bb3,g4]@4 [d3,g3,bb3,g4]@2 [d3,g3,bb3,g4]@4 [d3,g3,bb3,g4] ~", // Gm
  O: "[e3,g3,bb3,c4,e4]@2 ~ [e3,g3,bb3,c4,e4]@2 ~@7", // C7
  P: "[d3,a3,d4,f4]@6 [d3,a3,d4,f4] ~@3 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]@4 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]@4 [d3,a3,d4,f4] ~", // Dm
  Q: "[d3,g3,bb3,g4]@6 [d3,g3,bb3,g4]@2 ~@2 [d3,g3,bb3,g4]@2 [d3,g3,bb3,g4]@4 [d3,g3,bb3,g4]@2 [d3,g3,bb3,g4]@4 [d3,g3,bb3,g4] ~", // Gm
  R: "[e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4] ~@3 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4] ~", // C7
  S: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [f3,a3,c4,f4] ~@3 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@4 [f3,a3,c4,f4] ~", // F
  T: "[f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@2 ~@2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4] ~", // Bb
  U: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~@3 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~", // C
  V: "[f3,a3,c4,f4]@2 ~ [f3,a3,c4,eb4,f4]@2 ~ [f3,a3,c4,eb4,f4]@2 ~ [f3,a3,c4,eb4,f4]@2 ~", // F F7
  W: "[f3,bb3,d4,f4]@6 [f3,bb3,d4,f4] ~@3 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4] ~", // Bb
  X: "[e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4] ~@3 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4]@2", // C7
  Y: "[e3,g3,bb3,c4,e4] ~ [e3,g3,bb3,c4,e4] ~@5", // C7
  Z: "[e3,a3,c4,e4]@6 [e3,a3,c4,e4] ~@3 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@6 [e3,a3,c4,e4]@4 [e3,a3,c4,e4] ~", // Am
  AA: "[e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4] ~@3 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4]@4 ~@2", // C7
  AB: "[d3,a3,d4,f4]@6 [d3,a3,d4,f4] ~@3 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]@6 [d3,a3,d4,f4]@5 ~", // Dm
  AC: "[f3,bb3,d4,f4]@6 [f3,bb3,d4,f4] ~@3 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@6 [f3,bb3,d4,f4]@5 ~", // Bb
  AD: "[f3,a3,c4,f4]@6 [f3,a3,c4,f4] ~@3 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@4 ~@2", // F
  AE: "[e3,g3,c4,e4]@6 [e3,g3,bb3,c4,e4] ~@3 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4] ~", // C C7
  AF: "[f3,a3,c4,f4]@6 [f3,a3,c4,f4] ~@3 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@2 ~@2 [f3,a3,c4,f4]@2", // F
  AG: "[e3,g3,c4,e4]@6 [e3,g3,c4,e4] ~@3 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~", // C
  AH: "[f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,eb4,f4]@4 ~@2 [f3,a3,c4,eb4,f4]@3 ~@3 [f3,a3,c4,eb4,f4]@3 ~@3", // F F7
  AI: "[[f3,a3,c4,f4]@3 ~@3 [e3,g3,bb3,c4,e4]@4 ~@2 [f3,a3,c4,f4]@48 ~@12]/3", // F C7 F
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~ A@7 B A@8 B A@9 C A@11 B A@8 B A@9 C A@15 B A@9 C A@15 C A@3 D ~@2>".pickRestart({
  A: "x!2", B: "x!2 ~@2", C: "x ~ x!2", D: "x!3 ~",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct("<~@9 A@8 B A@9 ~@13 A@8 B A@9 ~@17 A@8 C ~@23>".pickRestart({
  A: "~ x ~ x", B: "x!2 ~@2", C: "~ x ~@2",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct("<A B@7 ~@19 C B@11 ~@19 C B@15 ~@9 D C B@15 C B@3 ~@3>".pickRestart({
  A: "~ x!3", B: "~ x ~ x", C: "~ x ~@2", D: "~@3 x",
})).gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~@8 A ~@18 B ~@11 C ~@18 B ~@15 A ~@9 D ~@15 B ~@6>".pickRestart({
  A: "x!2 ~@2", B: "~@11 x", C: "~ x ~@2", D: "~@9 x!3",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B@5 C ~ A B@7 D A B@8 E A B@6 F A B@2 ~ A B@7 D A B@8 E A B@6 F A B@3 A B@2 ~ A B@7 G H A B@6 F A B@2 F A B@2 I A
  B@2 J ~@2
>`.pickRestart({
  A: "~@2 x!2 ~ x!2 ~ x!2 ~ x", B: "x ~ x!2 ~ x!2 ~ x!2 ~ x", C: "x ~ x!2 ~ x!2 ~ x ~@3", D: "x!2 ~@2", E: "~ x ~@4",
  F: "x ~ x ~@2 x ~@2 x ~@2 x", G: "x ~ x!2 ~ x!2 ~ x ~@2 x", H: "x!2 ~@4", I: "x ~ x ~@2 x ~@2 x ~@3", J: "~ x ~@10",
})).gain(0.1)

// drums · mid tom
const mid_tom = s("mt").struct("<~@8 A ~@18 B ~@11 A ~@18 B ~@14 C A ~@9 D ~@15 E ~@6>".pickRestart({
  A: "x!2 ~@2", B: "~@10 x!3 ~ x ~ x ~ x ~ x ~@3", C: "~@22 x!2", D: "~@10 x!3 ~ x ~ x ~@7", E: "~@16 x!3 ~ x ~@3",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<A ~@6 B ~@19 C ~@30 C ~@24 B ~@20 D ~@2>".pickRestart({
  A: "~ x!3", B: "~@3 x", C: "~ x ~@2", D: "x",
})).gain(0.2)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@7 A ~@8 A ~@8 A@2 ~@6 B A ~@3 A ~@8 A ~@8 A@2 ~@6 B A ~@3 A ~@3 A ~@8 C A ~@6 B A ~@2 B A ~@2 D A ~@2 D ~@2
>`.pickRestart({
  A: "x", B: "~ x!3", C: "~ x ~@2", D: "~ x!2 ~",
})).gain(0.2)

stack(
  celesta, bass, synth_strings_1, acoustic_guitar_nylon, overdriven_guitar, overdriven_guitar_soft, pad_poly,
  acoustic_guitar_steel, kick, rim, snare, low_tom, hihat, mid_tom, open_hat, crash
)

More by Status Quo