Strudelify

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: edit a riff to change every repeat.

// chords · celesta
const celesta = note("<~@40 A B C D ~@5 A B E@2 ~@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",
  E: "[~@11 c6 g5@2 ~@10 e5@2 ~@22, ~@5 e6 ~@5 c6 ~@12, ~@23 g5@2 ~@23]/2",
})).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 L M N O P Q F R K S T U O V W X Y Z X F Y AA AB AC Z X AD AE F J K AF AG AH AI AJ Q F J K S T
  U W L W AK AL AM X F Y AA X AN AO C T AM AP AQ AR AS AR AT K AF AU U W AQ AV AK Y AM AW AR Y AM X AX AO X AY AZ AO BA
  AD BB AO AQ BC BD@2 ~
>`.pickRestart({
  A: "~@6 f1@3 ~@3 f1@5 ~ g1@5 ~", B: "bb1@8 ~@4 f2@6 bb1@5 ~", C: "c2@7 ~@3 c2 ~ c2@5 ~ db2@5 ~",
  D: "d2@8 ~@4 a1@5 ~ d2@5 ~", E: "bb1@7 ~@5 f1@5 ~ bb1@5 ~", F: "f2@7 ~@5 c2@7 ~@5", G: "c2@7 ~@5 g1@6 c2@5 ~",
  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: "c2@7 ~@5 g1@5 ~ c2@5 ~", M: "d2@7 ~@5 a1@6 d2@5 ~", N: "a1@7 ~@5 e2@6 a1@5 ~", O: "g1@7 ~@5 d2@6 g1@5 ~",
  P: "c2@7 ~@5 g1@11 ~", Q: "c2 ~@2 c2@2 ~@7", R: "f1@7 ~@5 c2@6 f2@5 ~", S: "c2@7 ~@3 c2 ~ g1@5 ~ db2@5 ~",
  T: "d2@7 ~@5 a1@5 ~ d2@5 ~", U: "a1@7 ~@5 e2@4 ~@2 a1@5 ~", V: "c2@7 ~@5 g1@5 ~ c2@6", W: "g1@7 ~@5 d2@5 ~ g1@5 ~",
  X: "c2@7 ~@3 c2 ~ d2@5 ~ e2@5 ~", Y: "f2@7 ~@5 c2@5 ~ f2@5 ~", Z: "bb1@7 ~@5 f2@6 bb1@5 ~",
  AA: "bb1@7 ~@5 f2@6 bb1@4 ~@2", AB: "c2@7 ~@3 c2 ~ d2@5 ~ e2@6", AC: "f2@3 ~@3 f1@4 ~@2 f1@5 ~ g1@4 ~@2",
  AD: "f2@7 ~@5 c2@12", AE: "f2 ~@2 f2@2 ~@7", AF: "c2@7 ~@5 g1@5 ~ db2@5 ~", AG: "d2@7 ~@5 a1@7 ~@5",
  AH: "a1@7 ~@5 e2@5 ~ a1@5 ~", AI: "g1@7 ~@5 d2@5 ~ g1@4 ~@2", AJ: "c2@7 ~@5 g1@12",
  AK: "c2@7 ~@3 c2 ~ d2@4 ~@2 e2@5 ~", AL: "f2@7 ~@3 f2 ~ c2@5 ~ f2@4 ~@2", AM: "bb1@7 ~@5 f2@5 ~ bb1@5 ~",
  AN: "f2@4 ~@2 f1@3 ~@3 f1@4 ~@2 g1@5 ~", AO: "bb1@7 ~@5 f2@5 ~ bb1@4 ~@2", AP: "f2@7 ~@5 c2@5 ~ f2@4 ~@2",
  AQ: "c2@7 ~@5 g1@5 ~ c2@4 ~@2", AR: "f2@7 ~@5 c2@6 ~@6", AS: "f2@3 ~@3 f2@4 ~@14", AT: "f1@7 ~@5 c2@4 ~@2 f2@5 ~",
  AU: "d2@7 ~@5 a1@5 ~ d2@4 ~@2", AV: "g1@6 ~@6 d2@5 ~ g1@5 ~", AW: "c2@7 ~@3 c2 ~ d2@5 ~ e2@4 ~@2",
  AX: "f2@4 ~@2 f1@4 ~@2 f1@5 ~ g1@5 ~", AY: "f2@7 ~@5 c2@11 ~", AZ: "f2@3 ~@3 f1@3 ~@3 f1@5 ~ g1@5 ~",
  BA: "c2@7 ~@3 c2 ~ d2@4 ~@2 e2@4 ~@2", BB: "f2 ~@2 f1@2 ~ f1@2 ~ g1@2 ~", BC: "f2@7 ~@5 c2@8 ~@4",
  BD: "[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 E D F G@2 H@2 C I J B K G@2 H@2 C I J E J E L M N O@2 M N P A B D F G@2 H@2 C I J B Q G@2 H@2 R I J B J B
  L M S O@2 M S P T B C A D B U F G@2 V@2 C I J B J B L M N W@2 X N P T B Y@2 A B Y@2 T B Z@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: "[g3,bb3,c4,e4]@23 ~",
  F: "[a3,c4,f4]@2 ~ [a3,c4,f4]@2 ~@7", G: "[[a3,c4,f4]@23 ~]/2", H: "[[g3,bb3,c4,e4]@23 ~]/2", I: "[a3,c4,e4]@11 ~",
  J: "[bb3,d4,g4]@11 ~", K: "[g3,bb3,c4,e4]@4 ~@2 [g3,bb3,c4,e4]@5 ~@13", L: "[a3,c4,f4,a5,c6,f6]@23 ~",
  M: "[bb3,d4,f4,bb5,d6,f6]@23 ~", N: "[g3,bb3,c4,e4,g5,c6,e6]@11 ~", O: "[[a3,c4,f4,a5,c6,f6]@47 ~]/2",
  P: "[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
  Q: "[g3,bb3,c4,e4]@2 ~ [g3,bb3,c4,e4]@2 ~@7", R: "[a3,d4,f4]@23 ~", S: "[g3,bb3,c4,e4,g5,c6,e6]@23 ~",
  T: "[bb3,d4,f4]@23 ~", U: "[a3,c4,f4]@23 ~", V: "[[g3,bb3,c4,e4]@47 ~]/2", W: "[[a3,c4,f4,a5,c6,f6]@23 ~]/2",
  X: "[bb3,d4,f4,bb5,d6,f6]@11 ~", Y: "[[a3,c4,f4]@14 ~ [a3,c4,eb4,f4]@8 ~]/2",
  Z: "[[a3,c4,f4]@14 ~ [g3,bb3,c4,e4]@2 ~ [a3,c4,f4]@6]/2", // F C7 F
})).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 J K L M N O P Q R S T U V W X Y Z ~@3 A B C D@2 E F G H@2 I A K L M N O P Q R AA AB U V W X
  Y Z ~@7 A I J K L M N O P Q R S AB U V W AC Y Z ~@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]@4 ~@2 [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: "~@12 [d5,f5]@3 ~ [c5,e5]@4 [a4,d5]@3 ~", K: "[g4,d5]@9 ~ [a4,e5]@2 [g4,c5]@12",
  L: "~@12 [e5,g5]@4 [d5,f5]@5 ~ [c5,e5] ~", M: "[c5,e5]@8 ~@2 [d5,f5]@2 ~ a4@10 ~, ~@6 d5@5 ~",
  N: "[a4,d5]@9 ~ [a4,c5] ~ [a4,c5]@7 ~@5", O: "[d4,a4]@8 ~@2 [d4,g4] ~ [d4,g4]@9 ~@3",
  P: "[g4,d5]@9 ~ [g4,c5] ~ [g4,c5]@7 ~@5", Q: "[d4,a4]@4 ~@2 [d4,g4]@4 ~@2 [d4,a4]@5 ~ [d4,g4]@3 ~@3",
  R: "[g4,d5]@5 ~ [g4,c5]@4 ~@2 [g4,d5]@3 ~ [c5,e5]@6 ~@2", // G5 C5 G5 C
  S: "[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
  T: "[d4,g4]@3 ~ [f4,a4]@5 [bb3,d4]@2 ~ [d4,g4]@10 ~@2", // G5 F Bb G5
  U: "[c5,e5]@4 [g4,d5]@4 [g4,c5]@4 [g4,bb4]@3 ~ [e4,g4]@2 ~@2 [e4,ab4]@3 ~", V: "[f4,a4]@4 [c5,f5]@11 ~@9",
  W: "[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
  X: "[d4,g4]@3 ~ [f4,a4]@4 [bb3,d4]@3 ~ [d4,g4]@10 ~@2", // G5 F Bb G5
  Y: "[e4,g4]@3 ~ [e4,a4]@4 ~ [g4,bb4]@2 ~ [g4,d5]@6 [c4,e4]@4 ~@2", Z: "[c4,f4]@5 ~@3",
  AA: "[c5,f5]@4 [c5,e5]@3 ~@2 [a4,d5]@2 ~ [a4,c5]@4 [f4,bb4]@4 [f4,a4]@2 ~@2", // F5 C D5 Am Bb5 F
  AB: "[d4,g4]@4 [f4,a4]@5 [bb3,d4]@2 ~ [d4,g4]@10 ~@2", AC: "~ d4@3 [f4,a4]@4 [bb3,d4]@3 ~ [d4,g4]@10 ~@2, g4 ~@7",
})).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 I ~@5 J K L M N@2 L O ~ P M N ~@13 Q ~@4 R S T U Q T N U V ~ C W G X Y B D ~@10 Z
  N AA AB N T AC Q ~ C B N ~ C M D ~ C Q N ~@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@4 ~@2", F: "~@6 a3 ~",
  G: "~@22 [d3,a3,d4] ~", H: "~@2 [c3,g3,c4] ~@6 a3@2 ~", I: "~@4 [c3,g3,c4] ~ a3@4 ~@8 a3@3 ~@3", J: "~@2 a3 ~@3 a3 ~",
  K: "~@2 d3 ~@3 d3 ~", L: "~@6 g3@3 ~@9 g3@4 ~@2", M: "~@4 [c3,g3,c4] ~ a3@3 ~@7 [c3,g3,c4] ~ a3@3 ~@3",
  N: "~@4 [f2,c3,f3] ~ d3@3 ~@9 d3@3 ~@3", O: "~@6 a3@3 ~@9 a3@4 ~@2", P: "~@4 [bb2,f3,bb3] ~ g3@3 ~@9 g3@4 ~@2",
  Q: "~@4 [c3,g3,c4] ~ a3@3 ~@9 a3@3 ~@3", R: "~@2 [g2,d3,g3] ~@9", S: "~@4 [c3,g3,c4]@2 ~@12 a3@3 ~@3",
  T: "~@4 [f2,c3,f3] ~ d3@4 ~@8 d3@3 ~@3", U: "~@4 [bb2,f3,bb3] ~ g3@3 ~@7 [bb2,f3,bb3] ~ g3@4 ~@2",
  V: "~@4 [c3,g3,c4] ~ a3@4 ~@6 [c3,g3,c4] ~ a3@3 ~@3", W: "~@4 [c3,g3,c4] ~ a3@4 ~@6 [c3,g3,c4] ~ a3@4 [c3,g3,c4] ~",
  X: "~@4 [bb2,f3,bb3] ~ g3@4 ~@6 [bb2,f3,bb3] ~ g3@4 [bb2,f3,bb3] ~", // Bb5
  Y: "~@4 [f2,c3,f3] ~ d3@3 ~@7 [f2,c3,f3] ~ d3@3 ~ [f2,c3,f3] ~", Z: "~@16 [c3,g3,c4] ~ a3@3 ~@3",
  AA: "~@6 g3@3 ~ g3 ~@3 [bb2,f3,bb3]@2 ~@2 g3@3 ~@3", AB: "~@4 [c3,g3,c4]@2 a3@3 ~@9 a3@3 ~@3",
  AC: "~@4 [bb2,f3,bb3] ~ g3@4 g3 ~@7 g3@3 ~ g3 ~", // Bb5
})).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 K L M N ~@26 O P Q R S T U V W ~@17 O X Y Z AA AB AC AD AE F AF AG AH ~@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@4 ~@2 e6@5 ~", K: "f6@9 ~@3 f6@9 ~ d6 ~", L: "e6@6 d6@5 ~ a5@5 ~ g5@2 a5@2 g5@2",
  M: "f5@7 ~@3 f5@2 a5@3 ~ c6@2 d6@3 ~ c6@2", N: "f6 ~ f6 ~@5", O: "~@6 c6@5 ~ d6@5 ~ e6@5 ~",
  P: "f6@10 ~@2 f6@9 ~ d6@2", Q: "e6@5 ~ d6@5 ~ c6@7 ~ c6 ~ db6@2", R: "d6@5 ~ d6@5 a5",
  S: "bb5@4 ~@2 c6@5 ~ d6@5 ~ e6@5 ~", T: "f6@10 ~@2 f6@9 ~ d6 ~", U: "e6@5 ~ d6@5 ~ a5@6 g5@2 a5@2 g5@2",
  V: "f5@7 ~@3 f5 ~ a5@4 c6@2 d6@4 c6 ~", W: "f6@2 ~@4 f6@3 ~@15", X: "f6@11 ~ f6@9 ~ d6@2", Y: "e6@6 d6@5 ~ a5@6 g5@6",
  Z: "f5@8 ~@2 f5@2 a5@4 c6 ~ d6@4 c6@2", AA: "f6@2 ~@4 c6@3 ~@3 d6@4 ~@2 e6@4 ~@2", AB: "f6@5 ~ f6@4 ~ d6",
  AC: "e6@5 ~ d6@6 a5@6 g5@6", AD: "f5@7 ~@3 f5@2 a5@3 ~ c6@2 d6@4 c6 ~", AE: "f6 ~@2 c6@2 ~ d6@2 ~ e6@2 ~",
  AF: "e6@6 d6@5 ~ a5@6 g5@5 ~", AG: "f5@3 ~@2 f5 a5@2 c6 d6@2 c6", AH: "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 P I J K Q M N F R S T U C I@2 U V W X C I Y H I F@2 D M N Z AA I@2 F@2 D AB N AC N
  F I B F I@2 B K W B AD AE AF AG AH E Y AI E F AJ Q AB N F AK K I X AL I@2 X AL W B C I AM X C AN AO B AL I AP@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]@4 ~@2 [f3,a3,c4,f4]@3 ~@15", // 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: "[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] ~@3 [f3,a3,c4,f4]@2", // F
  Q: "[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
  R: "[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
  S: "[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
  T: "[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
  U: "[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
  V: "[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
  W: "[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
  X: "[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
  Y: "[f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@4 ~@14", // F
  Z: "[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
  AA: "[e3,g3,bb3,c4,e4] ~ [e3,g3,bb3,c4,e4] ~@5", // C7
  AB: "[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
  AC: "~ e4@5 [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] ~, [e3,g3,bb3,c4] ~@3", // C7
  AD: "[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
  AE: "[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
  AF: "[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
  AG: "[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
  AH: "[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
  AI: "[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
  AJ: "[e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4]@2 ~@2 [e3,g3,bb3,c4,e4]@2 [e3,g3,bb3,c4,e4]@6 [e3,g3,bb3,c4,e4]@4 [e3,g3,bb3,c4,e4] ~", // C7
  AK: "~ g4@5 [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] ~, [d3,g3,bb3] ~@3", // Gm
  AL: "[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
  AM: "[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
  AN: "[f3,a3,c4,f4]@6 [f3,a3,c4,f4] ~@3 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@3 ~ [f3,a3,c4,f4]@2", // F
  AO: "[f3,a3,c4,f4]@2 ~@4 [f3,a3,c4,eb4,f4]@4 ~@2 [f3,a3,c4,eb4,f4]@3 ~@3 [f3,a3,c4,eb4,f4]@3 ~@3", // F F7
  AP: "[[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)

// … 30 more lines

More by Status Quo