Strudelify

Lola

Allan Theo

KeyB majorTempo87 bpm
0:00/0:00
// Lola — Allan Theo
// 87 bpm, 2/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 145 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(87/2)

// 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 · piano
const piano = note(`<
  ~ A B C D A B C D E F G H E F G I E F G H E F G H E F G H E F G I E F G H E F ~@2 J K L K J K L K J K L K J K L K J K
  L K J K L K E F G H E F G I E F G H E F G H E F G H E F G I E F G H E F ~@2 J K L K J K L K J K L K J K L K ~@8 J K L
  K J K L K J K L K J K L K J K L K J K L ~
>`.pickRestart({
  A: "~@4 [f#3,b3,d#4] ~@7 [f#3,b3,d#4] ~@3", B: "~@4 [g#3,e4]@2 ~@6 [c#4,e4] ~@3, ~@4 c#4 ~@7 g#3@2 ~@2",
  C: "~@4 [f#3,a#3,c#4] ~@7 [f#3,a#3,c#4] ~@3", D: "~@4 [e3,g#3,b3] ~@7 [e3,g#3,b3]@2 ~@2",
  E: "~@4 [f#3,b3,d#4]@2 ~@6 [f#3,b3,d#4] ~@3", F: "~@4 [a#3,c#4] ~@7 [f#3,a#3,c#4] ~@3, ~@2 f#3 ~@5",
  G: "~@2 [g#3,e4] ~@3 [g#3,e4] ~, ~@4 c#4 ~@7 c#4 ~@3", H: "~@4 [f#3,b3] ~@7 [f#3,c#4]@2 ~@2, ~@4 d#4@2 ~@6 a#3 ~@3",
  I: "~@4 [f#3,b3] ~@3 a#5@4 [f#3,c#4]@2 ~@2, ~@4 d#4@2 ~@6 [a#3,f#5] ~@3", J: "~@2 [f#3,b3,d#4] ~@3 [f#3,b3,d#4] ~",
  K: "~@2 [g#3,b3,e4] ~@3 [g#3,b3,e4] ~", L: "~@2 [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] ~",
})).s("gm_piano").gain(0.32).pan(0.4)

// bass · electric bass finger · "Basse"
const bass = note(`<
  ~@8 A B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C ~@2 F G H I F G J K F G H I F G J K F G L M F G N O
  B C D E B C D E B C D E B C D P B C D E B C D E B C D E B C Q ~ F G H I F G J K F G H I F G J K ~@6 R S T ~@5 U V ~@8
  F G H I F G W ~
>`.pickRestart({
  A: "~@8 b1@4 f#1@3 g#1", B: "b1@3 ~@3 d#2 ~ b1 ~ b1 ~ b1@2 b1 ~", C: "f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@3 ~",
  D: "c#2@3 ~@3 c#2 ~ c#2 ~ c#2 ~ c#2@2 c#2 ~", E: "g#1@2 ~@2 g#1 ~@3 g#1@3 ~ f#1@3 ~", F: "b1@5 ~@2 b1 d#2@4 f#2@4",
  G: "e2@6 ~@9 e2", H: "f#2@3 f#1 f#1@2 ~@2 f#1@5 ~@2 f#2", I: "e2@2 ~@2 e2@2 ~@2 e2@4 e2@3 ~",
  J: "f#2@2 ~ f#1!2 ~@3 f#1@4 ~@3 f#1", K: "f#1@2 ~ f#1 f#1@2 ~@2 f#1@3 ~ f#1@2 ~@2",
  L: "f#2@3 f#1 f#1@2 ~@2 f#1@5 ~@2 f#1", M: "f#1@2 ~ e1 e1@2 ~@2 e1@4 e1@3 ~",
  N: "f#2@2 f#1 ~ f#1 ~ f#1 ~ f#1@4 ~@3 f#1", O: "f#1@2 ~ f#1 f#1@2 ~@2 f#1@2 f#1 ~ f#1@2 ~@2",
  P: "g#1@2 ~@2 g#1 ~ g#1 ~ g#1@3 ~ f#1@3 ~", Q: "c#2 ~@7", R: "~@14 f#2 ~",
  S: "d#3@2 e3@2 c#3@2 e3 ~ a#3@2 g#3@2 f#3@2 e3@2", T: "d#3@5 b1@3 d#2@7 ~", U: "~@15 b1",
  V: "e2@2 ~ f#1 e2@2 ~@4 e2 ~ e2@3 ~", W: "f#2@2 ~ f#1!2 ~@3 f#1@7 ~",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · electric guitar clean · "CleanGtr"
const electric_guitar_clean = note(`<
  ~@9 A B C D A E F D G B C D A E F D A B H D A E F D A B C D A E ~@2 I H J K I H J K I H J K I H J K I H J K I H J K L
  B C M N E O P Q@2 C R S E F ~ A B H D A E F T@2 B C D A E ~@2 I H J K I H J K I H J K I H J K U V W X U V W X ~@8 I H
  J K I H J K I H J K I H J ~
>`.pickRestart({
  A: "[f#3,b3,d#4]@2 ~ [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4] ~@3 [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]", // B
  B: "[f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4] [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] [f#3,a#3,c#4]@2 ~ [f#3,a#3]", // F#
  C: "[g#3,c#4,e4]@2 ~ [g#3,c#4,e4] [g#3,c#4,e4]@2 ~ [g#3,c#4,e4] ~@3 [g#3,c#4,e4] [g#3,c#4,e4]@2 ~ [g#3,c#4,e4]", // C#m
  D: "[f#3,b3,d#4]@2 ~ [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4] ~@3 [f#3,a#3,c#4] [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]", // B F#
  E: "[f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4] [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]", // F#
  F: "[g#3,c#4,e4]@2 ~ [g#3,c#4,e4] [g#3,c#4,e4]@2 ~ [g#3,c#4,e4] ~@3 [g#3,c#4,e4] [g#3,c#4,e4]@2 e4 [g#3,c#4]", // C#m C#5
  G: "[d#4,f#4,b4]@4 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4] ~@3 [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]", // B
  H: "~@3 [g#3,c#4,e4] [g#3,c#4,e4]@2 ~ [g#3,c#4,e4] ~@3 [g#3,c#4,e4] [g#3,c#4,e4]@2 ~ [g#3,c#4,e4]", // C#m
  I: "~@3 [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4] ~@3 [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]", // B
  J: "~@3 [f#3,a#3,c#4] [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]", // F#
  K: "~@3 [e3,g#3,b3] [e3,g#3,b3]@2 ~ [e3,g#3,b3] ~@3 [e3,g#3,b3] [e3,g#3,b3]@2 ~ [e3,g#3,b3]", // E
  L: "~@4 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4] ~@3 [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]", // B
  M: "[f#3,b3,d#4]@2 ~ [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4] ~@3 [f#3,a#3,c#4] b4@2 ~@2", // B F#
  N: "b4@10 ~ [f#3,b3,d#4] [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]", O: "~@8 [d#5,f#5]@3 ~@5", P: "[c#5,e5]@4 ~@4 [b4,d#5]@3 ~@5",
  Q: "[f#4 g#4 f#4@12 ~@2, b4@7 ~]/2", R: "~@6 g#5 ~ f#5 ~@3 e5 ~@3", S: "[b4,d#5]@7 ~",
  T: "[~@4 d#4 ~@3 f#4@6 ~ g#4@2 f#4@6 ~@9]/2", U: "~@3 [f#4,b4] [f#4,b4]@2 ~ [f#4,b4] ~@3 [f#4,b4] [f#4,b4]@2 ~@2",
  V: "~@3 [d#4,g#4] [d#4,g#4]@2 ~ [d#4,g#4] ~@3 g#4 d#4@4", W: "~@3 [d#4,g#4] [d#4,g#4]@2 ~ [d#4,g#4] ~@3 g#4 c#4@4",
  X: "~@8 [d#4,a#4]@4 [c#4,g#4] ~@3", // D#5 C#5
})).s("gm_electric_guitar_clean").gain(0.17).pan(0.7)

// chords · electric guitar clean · "CleanGtr" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@9 A B C B A B C B A B C B A B C B A B C B A B C B A B C B A B ~@26 A B C B ~ B ~@4 C ~@2 B C ~ A B C B A B C ~@2 B C
  B A B ~@50
>`.pickRestart({
  A: "~@4 [f#3,b3,d#4] ~@3", B: "~@4 [f#3,a#3,c#4] ~@3", C: "~@4 [g#3,c#4,e4] ~@3",
})).s("gm_electric_guitar_clean").gain(0.1).pan(0.7)

// chords · pad poly · "PolySyn"
const pad_poly = note("<~@25 A@2 B@2 A@2 B@2 A@2 B@2 A@2 ~@42 A@2 B@2 A@2 B@2 A@2 B@2 A@2 ~@50>".pickRestart({
  A: "[[f#3,b3,d#4]@21 ~@11]/2", B: "[[g#3,c#4,e4]@21 ~@11]/2",
})).s("gm_pad_poly").gain(0.4)

// other · brass section · "BrasSec"
const brass_section = note(`<
  ~ A@3 B@5 ~@7 C ~@4 D ~@4 E@2 F ~@3 G ~ E@2 F ~@4 H I J ~ K ~ J ~ L@2 M ~ K ~ N@2 O@2 P Q R@2 S T@2 ~ U ~ V ~ W X@2 ~
  Y ~ Z AA AB AC ~ AD@2 F ~@3 G ~ E@2 AE AF@2 ~@2 H I J ~ K ~ J ~ L@2 M ~ K ~@19 AG ~@8 L@2 ~ K ~ AH ~
>`.pickRestart({
  A: "[[f#4,f#5]@44 [e4,e5]@3 [d#4,d#5]]/3", // F# E D#
  B: "[[e4,e5]@2 ~@2 [e4,e5]@2 ~ [d#4,d#5] [e4,e5]@3 [f#4,f#5] [d#4,d#5]@2 ~ [b3,b4]@5 f#4@2 ~@2 [b3,b4]@2 ~@2 [f#3,f#4]@8 [g#3,g#4] ~@3 [b3,b4]@2 ~@2 [d#4,d#5]@2 ~ [c#4,c#5]@25 [b3,b4]@5 ~@3, ~@20 f#3 ~@59]/5", // E D# E F# D# B F# G# …
  C: "~@6 [c#4,f#4] ~", D: "~@2 [f#3,f#5] ~@5",
  E: "[~@2 [f#3,f#4] ~@3 [a#3,a#4] ~@3 [b3,b4] ~@3 [c#4,g#4,c#5]@6 [c#4,g#4,c#5] ~@11]/2", F: "~@4 [g#3,g#4,g#5] ~@11",
  G: "c#5 ~ c#5 ~@5", H: "~@6 [d#4,d#5] ~, ~@12 b4 ~@3", I: "~@2 [e4,e5] ~@5, ~@4 b4 ~@11",
  J: "~@2 [f#4,f#5] ~@5, ~@4 c#5 ~@11", K: "~@2 [f#4,f#5] ~@5, ~@4 d#5 ~@11", L: "~@2 [f#4,f#5] ~@5, ~@4 b4 ~@11",
  M: "[c#4,c#5,f#5]@6 ~ [c#4,c#5,f#5] ~@8", N: "[[c#4,c#5,f#5]@8 [c#4,c#5,f#5]@23 ~]/2",
  O: "[~@4 [d#4,d#5] ~@3 [f#4,f#5] ~@3 [g#4,g#5]@2 [f#4,f#5]@16 ~@2]/2", // D# F# G# F#
  P: "[e4,e5]@2 [e4,e5] ~@3 [e4,e5] ~@5 [e4,e5]@2 [e4,e5] ~", // E
  Q: "~@4 [d#4,d#5] ~@3 [b3,b4] ~@3 [g#3,g#4]@2 [f#3,f#4]@2", // D# B G# F#
  R: "[~@4 [d#4,d#5] ~@3 [f#4,f#5] ~@3 [g#4,g#5]@2 [f#4,f#5]@5 ~ [f#4,f#5] ~@11]/2", // D# F# G# F#
  S: "[c#4,c#5]@2 [d#4,d#5]@2 [e4,e5]@2 ~@2 [c#4,c#5]@2 [d#4,d#5] ~ [e4,e5]@2 [f#4,f#5] ~", // C# D# E C# D# E F#
  T: "[~@2 [f#4,f#5] ~@3 [f#4,f#5] ~@5 [e4,e5]@3 [f#4,f#5]@2 [d4,d5] [c4,c5] [a3,b3,a4,b4] [f#3,g3,f#4,g4] ~@11]/2", // F# E F# D C Asus2 Gmaj7
  U: "~@2 [e4,e5] ~@5", V: "~@4 [f#3,b4] ~@11, ~@2 d#4 ~@5",
  W: "[d#4,d#5]@2 [e4,e5] ~ [f#4,f#5]@2 [b3,b4]@2 ~@2 [c#4,c#5] ~ [d#4,d#5]@2 [f#3,f#4]@2", // D# E F# B C# D# F#
  X: "[~@2 [f#3,f#4] ~ [g#3,g#4]@2 [b3,b4] ~ [c#4,c#5]@2 ~@2 [d#4,d#5]@2 [b3,b4]@6 [f#3,f#4]@2 ~@10]/2", // F# G# B C# D# B F#
  Y: "~@2 [e4,c#5,e5] ~@5", Z: "[b3,f#4,b4,f#5]", AA: "[a#3,f#4,a#4,f#5]",
  AB: "[e4,e5]@3 ~ [c#4,c#5]@3 [g#3,g#4]@2 ~@7, ~@3 [d#4,d#5]@2 ~@11", // E C# G# D#
  AC: "~@4 [f#4,f#5,f#6]@2 [c5,d5,c6,d6] [a4,b4,a5,b5] [g4,g5] [e4,f4,e5,f5] ~ [a3,b3] ~@4", // F# Csus2 Asus2 G Fmaj7 Asus2
  AD: "[~@2 [f#3,f#4] ~@3 [a#3,a#4] ~@3 [b3,b4] ~@3 [c#4,e4,c#5]@6 [c#4,e4,c#5] ~@11]/2", // F# A# B C#m
  AE: "~@4 [g#3,g#4,g#5] ~@7 [f#3,f#4,f#5] ~@3", AF: "[[b3,b4]@6 ~ [f#3,f#4]@5 [a#3,a#4]@7 [f#3,f#4]@5 [g#3,g#4]@8]/2",
  AG: "[f#4,f#6]@3 ~@5", AH: "f#5@6 ~ f#5@9",
})).s("gm_brass_section").gain(0.52)

// bass · clavinet · "Clav"
const bass_2 = note(`<
  ~@9 A B C D A B E F A B C D A B E F A B C D A B E F A B C D A B ~@26 A B C D A B E F A B C D A B E F A B C D A B E F A
  B C D A B ~@18 G ~ H ~ I ~ J ~@25
>`.pickRestart({
  A: "b1@2 ~ b1 ~@2 d#2 ~ b1 ~ b1 ~ b1 ~ b1 ~", B: "f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@3 ~",
  C: "c#1 ~ c#1 ~ c#2 ~ c#1 ~ c#1 ~ c#1 ~ c#1 ~ c#1 ~", D: "g#1@2 ~@2 g#1 ~@3 g#1@3 ~ f#1@3 ~",
  E: "c#2 ~ c#2 ~@4 g#2 b2 ~@3 c#3 ~@3", F: "g#2@2 ~@2 g#2 ~@3 g#2@3 ~ f#2@3 ~", G: "b2@2 ~@4 f#2 ~@5 f#2 ~@3",
  H: "~@3 c#3 c#3@2 ~@2 c#3@2 ~@2 g#2@2 ~@2", I: "~@3 b2 b2@2 f#2 ~@3 b2 ~ f#2 ~@3",
  J: "c#2@2 ~ c#2 e2@2 ~ g#2 ~@4 g#2 ~@3",
})).s("gm_clavinet").gain(0.32)

// chords · rock organ · "Organ"
const rock_organ = note(`<
  ~ A B C D E B F G ~@8 H I H J H I H J ~@16 K@2 L M N@2 O@4 L M N@2 P@2 Q ~@15 H I H J H I H J ~@16 K@2 L M N@2 O@4 L M
  N@2 P@2 Q ~@23 R@2 L M N@2 S ~
>`.pickRestart({
  A: "~@4 [f#4,b4,d#5]@2 ~@6 [f#4,b4] ~@3, ~@6 d#5 ~", B: "~@4 [g#4,c#5,e5]@2 ~@6 [g#4,c#5,e5] ~@3",
  C: "~@4 [a#4,c#5,f#5]@2 ~@6 [c#5,f#5] ~@3, ~@6 a#4 ~", D: "~@4 [g#4,b4,e5]@2 ~@6 [g#4,b4,e5] ~@3",
  E: "~@4 [f#4,b4,d#5]@2 ~ [f#4,b4,d#5] ~@4 [f#4,b4,d#5] ~@3", // B
  F: "~@4 [a#4,c#5,f#5]@2 ~ [a#4,c#5,f#5] ~@4 [a#4,f#5]@2 ~@2, ~@12 c#5 ~@3", // F# D#m
  G: "~@4 [g#4,b4,e5]@2 ~@6 [g#4,b4] ~@3, ~@6 e5 ~", H: "~@15 b4", I: "a#4@2 ~@2 g#4@2 ~@2 f#4@3 ~ f#4@2 ~@2, g#4 ~@15",
  J: "a#4@2 ~@2 g#4@2 ~@2 g#4@3 ~ f#4@2 ~@2, g#4 ~@15",
  K: "[[f#4,b4,d#5]@7 ~ [f#4,b4] ~@3 [f#4,d#5]@2 ~ b4 [g#4,b4,e5]@6 ~@2 [g#4,b4,e5]@7 ~, ~@8 d#5@2 ~@2 b4 ~@2 [f#4,d#5]@2 ~@15]/2", // B B5 D#m E D#m
  L: "[f#4,a#4,c#5]@6 [f#4,a#4] ~@5 [f#4,a#4,c#5]@3 c#5, ~@3 c#5 ~@4", // F#
  M: "b4@3 ~ [b4,e5]@2 ~@6 [b4,e5]@2 ~@2, ~@4 g#4 ~@7 g#4 ~@3", // E5
  N: "[[f#4,b4,d#5]@7 ~ [f#4,b4] ~@3 [f#4,d#5]@2 ~ [f#4,b4] [g#4,b4,e5]@6 ~@2 [g#4,b4,e5]@7 ~, ~@8 d#5@2 ~@2 b4 ~@2 d#5@2 ~@15]/2", // B B5 D#m B5 E
  O: "[[f#4,a#4,c#5]@6 [f#4,a#4] ~@9 b5@3 ~ b5@3 g#5 [g#5,b5]@3 ~ g#5@2 ~@4 [d5,e5] [b4,c5] [g4,a4] f4 ~@2 [f#4,b4] ~@3 [f#4,d#5]@2 ~ b4 [g#4,b4,e5]@6 ~@2 [g#4,b4,e5]@7 ~, ~@6 c#5@2 ~@7 g#5@5 ~@11 [f#5,b5]@5 ~@4 d#5@2 ~@2 b4 ~@2 [f#4,d#5]@2 ~@15]/4", // F# G#m Dsus2 Cmaj7 Gsus2 B5 D#m E …
  P: "[[f#4,a#4,c#5]@6 [f#4,a#4] ~@9 b5@3 ~ b5@3 g#5 b5@2 g#5@2 f#5@2 g#5@2, ~@6 c#5@2 ~@7 g#5@5 ~@12]/2", // F#
  Q: "b5@3 ~@5",
  R: "[~@8 [f#4,b4] ~@3 [f#4,d#5]@2 ~ b4 [g#4,b4,e5]@6 ~@2 [g#4,b4,e5]@7 ~, ~@8 d#5@2 ~@2 b4 ~@2 [f#4,d#5]@2 ~@15]/2", // B5 D#m E D#m
  S: "[f#4,a#4,c#5]@6 [f#4,a#4] ~@9, ~@3 c#5 ~@4", // F#
})).s("gm_rock_organ").gain(0.22).pan(0.9)

// chords · rock organ · "Organ" · soft notes
const rock_organ_soft = note("<~ A B C D ~ B ~ D ~@40 E ~@55 E ~@39>".pickRestart({
  A: "~@7 [f#4,b4,d#5] ~@8", B: "~@7 [g#4,c#5,e5] ~@8", C: "~@7 [a#4,c#5,f#5] ~@8", D: "~@7 [g#4,b4,e5] ~@8",
  E: "~@5 e4 [c4,d4] [a3,b3] [f3,g3] ~@7", // Csus2 Asus2 Fsus2
})).s("gm_rock_organ").gain(0.13).pan(0.9)

// other · electric guitar muted · "MuteGt"
const electric_guitar_muted = note(`<
  ~@64 A B ~@2 C D ~ E F G H I H J H I K L ~@2 H M ~ N O P ~ Q ~@33 R S ~ T ~@16
>`.pickRestart({
  A: "~@3 b3 c#4@2 g#4@2 f#4@2 ~ [e4,b4] ~@3 f#4", B: "d#4 ~@3", C: "~@3 g#3 ~@4 g#3@4 f#3@2 ~@2",
  D: "b3@2 ~ b3@2 ~@2 b3!2 ~@7", E: "~@4 g#3@2 ~ g#3 ~@4 g#3@2 ~ g#3", F: "~@4 g#3 ~@3 g#3@2 ~ f#3 ~@2 f#3 ~",
  G: "b3@2 ~ b3@2 ~@2 b3@2 ~@7", H: "~@14 f#3 ~", I: "c#4@2 ~ c#4 f#3@2 ~ f#3 ~@8", J: "b3@2 b3 ~ f#3@2 ~ b3@2 ~@7",
  K: "d#3@5 ~@3", L: "~@2 d#3 ~ d#3 ~ d#3 ~ d#3@4 f#3@2 ~@2", M: "~@2 b3 ~@5 f#3@2 ~ f#3@3 f#3@2",
  N: "~@10 d#4@3 ~ f#4@2", O: "b3@5 ~@11", P: "f#3@2 f#3 f#3@2 ~ f#3 ~ b3@3 ~@5",
  Q: "f#3 ~ f#3 ~ f#3@2 f#3 f#3@2 ~ f#3 ~@5", R: "d#4@3 ~@5 f#4 ~@7", S: "~@3 f#4 ~@4 f#4 ~@7",
  T: "e4 ~ g#4 ~@3 f#4 ~ g#4 ~@7",
})).s("gm_electric_guitar_muted").gain(0.4).pan(0.1)

// other · synth drum · "SynDrum"
const synth_drum = note("<~@38 [~@12 g3 ~ d4!2] [g3 ~ d4 ~@13] ~@105>").s("gm_synth_drum").gain(0.59)

// drums · kick
const kick = s("bd").struct("<~@8 A B@71 C B@14 C A B@24 ~@8 A@7 B@8 ~>".pickRestart({
  A: "~ x", B: "x!2", C: "x",
})).gain(0.64)

// drums · rim
const rim = s("rim").struct("<~@113 [x!2]!4 [x!2 ~ x!2 ~@3 x ~@7] [x!2]!2 ~@25>").gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@9 A@15 B A@14 ~@2 A@7 C A@7 C A@7 B A@7 C A@7 ~ A@7 C A@6 ~ D A@7 C A@8 ~@7 E ~@8 A@7 F A@7 ~
>`.pickRestart({
  A: "~ x", B: "~@8 x ~@6 x", C: "~@8 x ~@3 x ~@2 x", D: "~@12 x ~@2 x", E: "~@3 x!3 ~ x!2 ~@3 x ~@2 x", F: "~@2 x!2",
})).gain(0.56)

// drums · clap
const clap = s("cp").struct("<~ [~ x]!38 ~@2 [~ x]!54 ~@2 [~ x]!47 ~>").gain(0.64)

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

// drums · low tom
const low_tom = s("lt").struct("<A ~@39 A ~@55 A ~@15 A ~@23 A ~@8>".pickRestart({
  A: "~@3 x",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@95 [~ x ~@14] ~@28 [~@3 x] ~@20>").gain(0.56)

// … 65 more lines