Strudelify
I'd Love You to Want Me cover art

1993

I'd Love You to Want Me

Lobo

KeyB♭ majorTempo74 bpm
0:00/0:00
// I'd Love You to Want Me — Lobo
// 74 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(74/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.

// bass · electric guitar jazz · "BASS GTR"
const bass = note(`<
  ~@9 A B C D E F G H I J K L M N O@2 P Q R S T U V W X Y Z AA AB Y AC AD AE AF AG AH AI AJ AK AL AM AN V AO AP Y AQ AR
  AP AS AT AU AV AW AQ AX AY AZ BA BB BC AS BD BE BF BG BH BI ~
>`.pickRestart({
  A: "bb1@6 f1@2 bb1 ~ bb1@4 ~ f1", B: "bb1@5 ~ bb1 ~ bb1@7 ~", C: "c2@6 ~ g1 c2 ~ c2@4 g1@2", D: "c2@6 c2 ~ c2@6 ~ c2",
  E: "eb2@5 ~@2 bb1 eb2 ~ eb2@3 ~ eb2@2", F: "f2@6 ~ c2 f1 ~ f1@3 ~ f1@2", G: "bb1@7 f1 bb1 ~ bb1@2 f1 g1 bb1 g1",
  H: "bb1@5 ~@2 f1 bb1 ~ bb1@3 ~ bb1@2", I: "c2@5 ~ c2 ~ c2@6 ~ c2", J: "eb2@6 bb1@2 eb2 ~ eb2@3 ~ eb2@2",
  K: "bb1@6 ~ bb1!2 ~ bb1 ~ [ab2,bb2] g2 f2 d2", L: "bb1@5 ~@2 f1 bb1 ~ bb1 ~ bb1@3 f1", M: "c2@7 g1 c2 ~ c2@3 ~ c2@2",
  N: "eb2@6 ~ bb1 eb2 ~ eb2@3 ~ eb2 ~", O: "[f2 f1 bb1@3 ~@3]/2", P: "~@8 bb1@5 ~ bb1 ~", Q: "bb1@6 f1@2 bb1@5 ~ bb1 ~",
  R: "bb1@6 ~ bb1 c2@5 ~@2 c2", S: "c2 ~ c2@4 g1@2 c2@5 ~ c2 ~", T: "c2@5 ~ c2@2 eb2@6 ~ bb1",
  U: "eb2 ~ eb2@3 bb1 eb1 eb2 f1@6 ~ c2", V: "f2 ~ f2@3 c2 f1@2 bb1@5 ~@2 f1", W: "bb1 ~ bb1 ~ g2 f2 d2@2 bb1@4 ~@3 f1",
  X: "bb1 ~ bb1@3 ~ bb1 ~ c2@7 g1", Y: "c2 ~ c2@3 ~ c2@2 eb2@7 bb1", Z: "eb2 ~ eb2@3 ~ eb2@2 bb1@6 ~ f1",
  AA: "bb1 ~ bb1@2 bb2 f2 bb1 f1 bb1@6 ~ f1", AB: "bb1 ~ bb1@3 ~ bb1 ~ c2@5 ~@2 c2",
  AC: "eb2 ~ eb2@3 ~ eb2@2 f2@4 f1@4", AD: "bb1@2 ~ bb1 g2 f2 d2@2 bb1@5 ~ bb1 ~", AE: "bb1@4 f1 g1 bb1 ~ c2@6 ~ g1",
  AF: "c2 ~ c2@3 ~ c2@2 eb2@6 ~ eb2", AG: "f2 ~ f2@2 f1 g1@3 bb1@5 ~@2 bb1", AH: "bb1 ~ bb1@3 g2 f2@2 bb1@7 ~",
  AI: "~@8 bb1@5 ~@2 f1", AJ: "bb1 ~ bb1@3 f1 g1@2 bb1@6 ~ f1", AK: "bb1 ~ bb1@2 f1 g1 bb1 f1 c2@5 ~@2 g1",
  AL: "c2 ~ c2@5 bb1 c2@6 ~ c2", AM: "c2 ~ c2@3 ~ c2@2 eb2@5 ~@2 bb1", AN: "eb2 ~ eb2@3 bb1 eb1@2 f1@6 ~ c2",
  AO: "bb1 ~ bb1@2 g2 f2 d2 f1 bb1@5 ~@2 f1", AP: "bb1 ~ bb1@3 f1 g1 bb1 c2@6 ~ g1",
  AQ: "eb2 ~ eb2@3 ~ eb2@2 bb1@5 ~@2 f1", AR: "bb1 ~ bb1 ~ g2 f2 d2 f1 bb1@6 ~ f1",
  AS: "c2 ~ c2@3 ~ c2 d2 eb2@5 ~@2 bb1", AT: "eb2 ~ eb2@3 ~ eb2 ~ f2 ~ f2@2 f1 g1 f1@2", AU: "bb1@5 f1 g1@2 bb1@6 ~ f1",
  AV: "bb1 ~ bb1@3 ~ bb1@2 c2@7 g1", AW: "c2 ~ c2@3 ~ c2@2 eb2@5 ~ eb2 ~",
  AX: "g1 bb1 ~ bb1 g2 f2 d2 f1 bb1@4 ~@2 bb1 ~", AY: "bb1@5 f1 g1 bb1 c2@5 ~ c2 ~", AZ: "c2 ~ c2@4 c2@2 eb2@5 ~@2 bb1",
  BA: "eb2 ~ eb2@3 ~ eb2 ~ f2 ~ f2@2 f1 g1 bb1 f1", BB: "bb1@4 f1 g1 bb1 g1 ~@7 f1",
  BC: "bb1 ~ bb1@3 f1 g1 [g1,bb1] c2@5 ~@2 g1", BD: "eb2 ~ eb2@2 eb1 f1 g1@2 bb1@6 ~ f1",
  BE: "bb1 ~ bb1@2 g1 f1 g1 bb1 bb1@5 ~@2 f1", BF: "bb1 ~ bb1@3 ~ bb1@2 c2@5 ~@2 g1",
  BG: "c2 ~ c2@3 ~ c2 d2 eb2@6 ~ bb1", BH: "eb2 ~ eb2@3 bb1 eb1 ~ f1@4 f2@2 f1@2", BI: "bb1",
})).s("gm_electric_guitar_jazz").gain(0.5)

// chords · synth strings 2 · "SYN STR 2"
const synth_strings_2 = note(`<
  A@3 B@3 C D@2 E@2 F@3 C G@2 H@2 G@2 I@2 J@2 K@6 L@8 M N@3 O@2 P@8 Q@7 R@8 S@8 T ~
>`.pickRestart({
  A: "[d4@7 c4 d4@4, [f3,bb3]]/3", B: "[eb4@3 d4 ~@4 bb3@4, g3@47 ~, c4@2 ~, ~ eb4@2]/3", C: "[a3,c4,f4]",
  D: "[d4@12 c4@4 d4@7 ~@9, [f3,bb3]@23 ~@9]/2", E: "[d4@3 c4 d4@4, [f3,bb3]]/2",
  F: "[eb4@12 d4@4 ~@16 bb3@15 ~, g3@47 ~, c4@2 ~, ~ eb4@2]/3", G: "[f3,bb3,d4]/2",
  H: "[c4@16 bb3@15 ~, [g3,eb4]@31 ~]/2", I: "[c4 bb3, [g3,eb4]]/2", J: "[[a3,c4,f4]@7 ~ [f3,bb3,d4]@18 ~@6]/2",
  K: "[~@2 [f3,bb3,d4]@8 eb4@3 d4 ~@4 bb3@4 [a3,c4,f4]@2, ~@40 g3@47 ~@9, ~@5 c4@4 ~@3, ~@7 eb4@4 ~]/6", // Bb F
  L: "[~ [f3,bb3,d4]@4 c4@2 bb3@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 c4@2 bb3, ~@40 [g3,eb4]@31 ~@33 [g3,eb4]@24]/8", // Bb Cm
  M: "~@8 [a3,c4,f4]@7 ~", N: "[[f3,bb3,d4]@7 ~ [f3,bb3,d4]@15 ~ [g3,c4,eb4] ~ c4@14 bb3@8, ~@13 [g3,eb4]@11]/3",
  O: "[[a3,c4,f4]@4 [f3,bb3,d4]@9 ~@3]/2", // F Bb
  P: "[~@2 [f3,bb3,d4]@8 eb4@3 d4 ~@4 bb3@4 [a3,c4,f4]@4 [f3,bb3,d4]@6, ~@5 g3@6 ~@5, ~@5 c4@4 ~@7, ~@7 eb4@4 ~@5]/8", // Bb F Bb
  Q: "[~@8 c4@16 bb3@16 [f3,bb3,d4]@32 c4@16 bb3@15 ~ [a3,c4,f4]@8, ~@8 [g3,eb4]@31 ~@33 [g3,eb4]@31 ~@9]/7", // Bb F Cm
  R: "[[f3,bb3,d4]@24 c4@16 bb3@16 [f3,bb3,d4]@32 c4@16 bb3@15 ~ [a3,c4,f4]@8, ~@24 [g3,eb4]@31 ~@33 [g3,eb4]@31 ~@9]/8", // Bb F Cm
  S: "[[f3,bb3,d4]@24 c4@16 ~@16 [f3,d4]@32 c4@16 bb3@15 ~ [a3,c4,f4]@8, ~@24 [g3,eb4]@32 ~@32 [g3,eb4]@31 ~@9, ~@5 bb3@6 ~@5]/8", // Bb Dm F Cm
  T: "[f3,bb3,d4]", // Bb
})).s("gm_synth_strings_2").gain(0.45)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  A B C D E F G B H B I D E F G B I E F B C E F J K@2 L M N O P Q L R S T L U S P V W X J Y Z AA AB AC S P Q L AD S T AE
  W S AF AG M S AH L M O AI AJ AK AL AM AN M AO AI AP ~
>`.pickRestart({
  A: "[f3,bb3,d4]@4 [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // Bb
  B: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,c4]@3 ~", // Bb Fsus4
  C: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // Bb
  D: "[g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~ [g3,c4,d4]@3 ~", // Cm Gsus4
  E: "[g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~", // Cm
  F: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~", // Eb
  G: "[a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~", H: "[f3,bb3,d4]@3 ~@5",
  I: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 ~@2", // Bb
  J: "[a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // F Bb
  K: "[[f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@12 ~@4 [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~]/2", // Bb
  L: "[f3,bb3,d4]@3 ~ [f3,bb3,c4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // Bb Fsus4 Bb
  M: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 ~@2 [g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~", // Bb Cm
  N: "[g3,c4,eb4]@3 ~ [g3,c4,d4]@3 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~", // Cm Gsus4 Cm
  O: "[g3,c4,eb4]@3 ~ [g3,c4,eb4]@2 ~@2 [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~", // Cm Eb
  P: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@2 ~@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~", // Eb F
  Q: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@2 [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // F Bb
  R: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [g3,c4,eb4]@2 ~@2 [g3,c4,eb4]@3 ~", // Bb Cm
  S: "[g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~", // Cm Eb
  T: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // Eb Bb
  U: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~, ~@12 b3 ~@3", // Bb Cm
  V: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 ~@2 [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // Bb
  W: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~", // Bb Cm
  X: "[g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@2 ~@2", // Cm Eb
  Y: "[f3,bb3,d4]@3 ~ [f3,bb3,c4]@3 ~ [f3,bb3,d4]@8", Z: "~@8 [f3,bb3,d4]@3 ~ [bb3,d4]@2 f3 ~",
  AA: "[f3,bb3,d4]@3 ~ [bb3,d4]@2 f3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~, ~@4 f3 ~@11", // Bb
  AB: "[bb3,d4]@2 f3 ~ [f3,bb3,d4]@2 f3 ~ [c4,eb4]@2 g3 ~ [c4,eb4]@2 g3 ~, f3 ~@7 g3 ~@3 g3 ~@3", // Bb Cm
  AC: "[c4,eb4]@2 g3 ~ [g3,c4,d4]@3 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@3 ~, g3 ~@15", // Cm Gsus4 Cm
  AD: "[f3,bb3,d4]@2 ~@2 [f3,bb3,d4]@2 ~@2 [g3,c4,eb4]@3 ~ g3 ~ g3 ~, ~@3 [c4,eb4]", // Bb Cm
  AE: "[f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 c4 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // Bb
  AF: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@2", // Eb F
  AG: "[bb3,d4]@2 f3 ~ [f3,bb3]@2 c4@2 [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~, f3 ~@3 d4 ~@11", // Bb Bb5 Bb
  AH: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@2 ~@2 [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~", // Eb Bb
  AI: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@2 ~@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@2", // Eb F
  AJ: "[bb3,d4]@2 f3 ~ d4 ~ c4@2 [f3,bb3,d4]@3 ~ [bb3,d4]@2 f3 ~, f3 ~@3 [f3,bb3]@4 ~@4 f3 ~@3", // Bb Bb5
  AK: "[bb3,d4]@2 f3 ~ [f3,bb3,d4]@2 f3 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4]@2 g3 ~, f3 ~@15", // Bb Cm
  AL: "[c4,eb4]@2 g3 ~ [c4,eb4]@2 g3 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~, g3 ~@3 g3 ~@11", // Cm Eb
  AM: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@2 f3 ~", // Eb Bb
  AN: "[bb3,d4]@2 f3 ~ [bb3,c4]@2 f3 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 ~, f3 ~@3 f3 ~@11", // Bb Bbsus2 Bb
  AO: "[g3,c4,eb4]@3 ~ [g3,c4,eb4]@2 g3 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@3 ~", AP: "[f3,bb3,d4]",
})).s("gm_acoustic_guitar_nylon").gain(0.45).pan(0.2)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@9 A B C@2 D E@3 F G H@2 I J K@2 L@3 M@4 N@8 O@3 P Q R@7 S@8 T@4 U@4 V@4 W X Y@2 Z ~
>`.pickRestart({
  A: "~@3 f3 bb3 f3 [d4,f4] f3, ~ f3@2 ~@5, ~@4 d4@7 ~@5", // Dm
  B: "[bb3,d4]@2 f3 ~ [bb3,d4]@2 f3 ~ [bb3,d4]@2 f3 ~ f3 ~ f3@2, bb2@6 ~ bb2@5 ~@4, ~@8 f3 ~@3 [bb3,d4]@4", // Bb
  C: "[~@3 d4 ~@3 c4 eb4@2 c4@2 [eb4,g4]@2 c4@2 d4 eb4 d4 ~@5 c4@2 g3@2 [c4,eb4,g4]@2 g3 ~, c3@5 ~@6 c3@4 ~, ~@2 g3@16 ~@2 g3@5 ~@7, ~@4 eb4@3 ~@12 c4@4 ~@9, ~@5 bb4@7 ~@4 g4@11 ~@5]/2", // Eb Cm
  D: "[eb4,g4]@4 ~@7 g4@3 bb3@2, bb3@2 ~@3 bb3@8 ~@3, eb3 ~@3 eb3@9 ~@3, ~@6 eb4@9 ~, ~@7 f4@2 bb4@6 ~", // Eb
  E: "[[f4,a4]@4 ~@6 f4@3 ~ f4@4 ~@3 bb4@4 ~ c5 d5 c5 c4 ~@4 d5@4 ~@4 f4@2 [bb4,d5]@2 f4 ~, f3@9 c5@5 ~@6 f4@6 ~@5 f4@7 ~@10, c4@3 ~ a3@8 ~@6 bb3@8 ~@13 bb3@6 ~@3, ~@7 c4@5 ~@7 d4@7 ~@4 d4@9 ~ d4@4 ~@4, ~@8 f5@6 ~@12 f5@3 ~@3 bb4@6 ~@10]/3", // F Bb
  F: "[c4,eb4]@4 eb4 ~@4 c5 d5 eb5@3 c5@2, [g4,c5]@7 c4@7 ~@2, ~@4 g4@3 ~, ~@5 g5@3", // Cm C5
  G: "~@2 g4@2 ~@6 g4 ~ [bb4,eb5]@2 g4 ~, eb4@6 g4@3 ~@3 g4 ~@3, ~@4 [bb4,eb5]@7 ~@5, ~@7 eb4@5 ~@4", // Eb5
  H: "[[f4,bb4,d5]@2 ~@2 f4@4 c5 d5 c5 c4 ~@4 f4@2 f4@2 ~@4 c5@2 bb4@3 ~ bb4 ~, bb3@8 ~@4 d4@5 ~@3 bb3@9 ~@3, ~@2 d4@6 f5@3 ~@2 f4@3 d5@6 ~@2 f5@7 ~, ~@14 bb4@8 ~ d4@6 ~@3, ~@13 d5@3]/2", // Bb
  I: "[g4,c5,eb5]@2 ~@3 d5 ~@7 g4@2 ~, c4@7 bb5@6 ~@3, ~@2 eb4@9 c4@4 ~, ~@4 g4@7 ~ eb4@3 ~, ~@6 eb5@7 ~@3", // Cm
  J: "[eb4,bb4,eb5]@4 ~@4 g4 ~ g4@3 ~ g4@2, g4@3 ~ g4@2 eb5@3 ~@7, ~@5 bb4@4 ~ [bb4,eb5]@6, ~@7 eb4@7 ~@2", // Eb5
  K: "[a4@2 ~@2 a4@2 f4@2 [bb3,d4,f4,bb4]@13 ~@11, f5@3 ~@13, f4 ~@7, c5 ~ c5@4 ~@26]/2", // Bb
  L: "[~@14 c5 d5 c5 bb4@2 ~ c5 ~@2 f4@8 ~ f4@7 ~ g4@5 ~ d5 eb5, ~@10 bb3@8 ~@3 d5@9 ~@18, ~@12 f4@6 ~ f4@3 bb4@9 bb3@6 ~@2 [c4,eb4]@7 ~@2, ~@14 f5@5 ~ f5@11 ~@15 g5@2]/3", // Cm
  M: "[d5 c5@2 ~ d5 eb5 d5 ~@5 c4@9 ~@3 [g4,bb4,eb5]@4 ~@3 eb5 f5@2 g5@3 f5 g5@2 f5@6 ~@2 f5@9 ~@3 c4 d4 f4 bb4, ~@3 d4@3 ~ c5@14 ~@8 g4@7 ~@4 f4@13 ~@11, ~@4 g5@17 ~@9 bb4@7 ~@9 a4@7 ~@11, ~@10 g4@10 ~@4 eb4 ~@3 eb4@8 ~@11 c5@5 ~@12, ~@32 bb5@5 bb5@2 ~ a5@17 ~@7]/4", // Eb
  N: "[~@2 c5 d5 c5 bb4 bb4@2 [d5,f5] ~ [bb4,d5]@4 c5 ~ bb4@5 ~ bb4 ~@7 d5 ~ c5@4 ~ g4 c5 ~ [eb4,bb4,eb5]@4 g4 ~@5 g4@3 ~ g4 d4 [f4,bb4,d5]@2 ~@2 f4@2 c5 d5 c5@2 c4 ~@3 c5 bb4 ~@2 bb4@2 ~@2 c5@2 [bb4,d5]@4 c5 d5 c5 ~ [c5,eb5]@2 ~@3 d5 eb5 bb5@2 ~ d5 eb5 d5 ~ g4 ~ eb4@2 ~@4 f4 ~@2 g5@5 ~@2 [a4,c5,f5]@4 ~@2 a4 ~, ~@2 f5@3 ~@3 f4@12 ~@4 [g4,c5,eb5]@4 g4@7 ~@5 g4@3 ~@3 g4@3 ~ bb4 ~@7 d4@4 ~@5 d4@2 ~@3 bb3@14 ~@2 c4@13 ~@27, ~@10 d4@11 ~@3 c4@7 eb5@7 ~@9 eb5@7 ~@8 f5@4 ~@3 d5@2 ~@3 d4@11 ~@5 eb4@10 ~@9 eb4@10 ~ f4@6 ~@2, ~@14 f5@8 ~@8 g5@8 ~@40 f5@6 f5@3 ~@11 g5@5 ~@9 bb4@7 ~@5 f5@3 ~, ~@15 d5@7 ~@4 eb4@9 ~ c4@2 ~@7 eb4@9 ~@2 bb3@6 ~@6 f4@3 ~ [f4,d5]@4 ~@4 f4@7 ~@5 g4@8 ~ c5@2 ~ [bb4,eb5,g5]@7 g4@8 ~@6 c5@2 ~]/8", // Dm Bb Eb5 Bb Cm F Cm Dm …
  O: "[[bb3,d5]@2 c5 d5 c5 c4 ~@4 bb4@4 ~@4 [c5,f5]@4 [bb4,d5]@2 ~@4 g4@2 d5 eb5 d5 c5 ~@6 eb4@2 g4@2 ~@2 g4@2, bb4 ~ f5@3 ~ d4@6 ~@2 bb3@8 ~@2 c4@8 ~@3 eb4@3 ~ g4@2 ~@3 eb4@2 ~@2, ~@7 f4@7 ~ d4@7 ~@4 eb4@6 ~@2 d4@3 eb5@2 ~ eb5@8, ~@8 d5@7 ~@9 [c5,eb5]@5 ~ g5@4 ~@2 g4@2 c5@2 bb4@5 f4@2 ~]/3", // Bb F5 Bb Cm
  P: "a4@4 c5@2 a4@2 [bb3,d5]@6 c5 d5, f4 ~, c5@2 ~@2 f5@9 ~ f5@2", // Bb
  Q: "c5 c4 ~@2 bb4 ~ bb4 f4 [bb2,bb3,f4,bb4,d5]@8, ~@2 d4@3 d5@2 ~@9, ~@3 f4@3 ~@10", // Bb
  R: "[~@14 c5 d5 c5@2 bb4@4 ~@2 [f4,bb4]@11 ~@5 [c4,eb4,g4]@6 d5 eb5 d5@2 c5@2 d4 ~@5 c4@4 ~@6 c5@3 ~ [bb4,eb5,g5]@4 ~ f4 ~@2 f5 g5 f5@2 f4 ~ bb4 ~ [f4,a4,c5,f5]@7 ~ [a4,c5,f5] ~ a4@3 ~ a4 ~ bb3@4 ~@2 c4 d4, ~@14 f5@8 c4@7 ~@24 eb4@9 ~@4 c4@6 eb4@3 ~ eb4@6 ~@13 f4@9 ~@8, ~@23 d4@12 ~@11 g5@6 ~@2 g4@12 ~ g4@5 ~@6 g4@4 ~@3 g4@2 ~@25, ~@55 eb5@11 ~@14 bb5@4 ~@28, ~@28 c5@5 ~@16 [c5,f5]@3 [bb4,d5,f5]@4]/7", // Bb5 Cm Eb F F5 Bb
  S: "[~ bb4 c5 d5 c5 bb4 c4 d4 [f4,bb4,d5] ~ [f4,bb4]@4 ~@2 c5@2 [bb4,d5]@4 bb4 ~ eb5@2 ~@4 d5 eb5 d5@2 c5@3 ~ c5 ~ [g4,bb4,eb5]@4 ~ f4 ~@6 bb4 ~ bb4!2 [d5,f5]@2 ~@4 c5 d5 c5 bb4@2 ~ eb5 ~@7 f4 ~ f4 ~ f4 ~ f4@3 ~ f4 ~@5 g4@2 g4 ~ g4 ~ c5@4 g4 ~ [g4,bb4,eb5]@5 ~ f4 ~ [bb4,eb5]@7 ~ [f4,a4]@4 [g4,c5]@2 a4 ~, f4@2 f5@4 ~@8 bb3@6 ~@3 c4@15 ~@10 g5@8 ~@6 f5@5 ~@2 d5@2 ~@9 d5@7 ~ c5@4 ~@28 [c5,f5]@2 ~@6, ~@15 f4@8 ~ eb4@14 ~@2 eb4@3 ~ eb4@9 ~@3 bb3@7 ~@4 bb3@3 ~@2 bb3@12 ~@4 c4@6 ~ c4@7 ~@26, ~@16 f5@6 ~@2 c5@5 ~ g5@8 ~@9 bb4@4 ~@2 eb5@2 ~@5 f4@4 ~@6 bb4@4 ~@8 bb4@6 ~@10 g4@3 ~@10 g4@7 ~@10, ~@26 g4@12 ~@8 g4@8 ~@4 d4@6 ~@7 f4@4 ~@4 d4@5 ~@6 eb4@4 ~@2 [eb4,eb5]@7 eb4@5 ~ eb4@9 ~@10]/8", // Bb Bb5 Bb Eb Dm Eb Eb5 F …
  T: "[[bb3,bb4,d5]@2 c4 ~@3 c5 bb4 f4@2 bb4@2 ~@2 c5@2 [bb4,d5]@3 ~@3 f5@2 [c5,eb5]@2 ~@4 d5 eb5 bb5 ~ d5 ~ c5@3 ~ [eb4,bb4,eb5]@5 ~@5 bb4@2 ~ bb4 g4 ~ d5@2 f4@2 c5 d5 c5@2, ~@3 d4@2 d5@2 ~ d5@4 f4@7 ~ f4@4 ~@4 g4@5 ~@2 eb5@4 ~@8 eb5@7 ~@6 f5@4, ~@4 f4@3 ~ bb3@10 ~ bb3@3 ~@2 c4@10 ~@11 bb3@8 ~@2 bb3@5 ~@4, ~@10 d4@9 ~@7 eb4@8 ~@5 g4@6 ~ g4@7 ~@3 bb4 ~@7, ~@14 f5@7 bb4@3 ~@10 g5@5 ~ g5@3 ~@5 eb4@5 ~@3 d4@4 ~@4]/4", // Bb Cm Eb5
  U: "[~@2 c5 d5 c5 bb4 ~@2 d5@4 ~@2 c5@2 d5@4 bb4@2 d5 ~ [c5,eb5]@2 ~@2 d5 ~@3 d4 ~@2 c4@3 ~@2 [eb4,g4,bb4,eb5]@4 ~ f4 ~@2 [eb5,g5]@6 bb4 ~ a4@3 ~ a4@2 ~@2, ~@2 f5@4 f4@6 bb3@10 ~ c4@6 ~@5 g4@4 ~@8 g4@7 ~@3 [f4,c5,f5]@7 ~, ~@7 bb4@5 ~@2 f5@8 ~@7 eb5@9 ~@9 bb4@6 ~@11, ~@16 f4@7 ~ eb4@6 ~@3 eb4@5 ~@6 eb4@10 ~@10, ~@16 bb4@3 ~@7 g4@4 bb5@8 ~@26]/4", // Cm Eb F5
  V: "[[d5,f5]@3 ~ [c5,f5]@4 f4 ~ [c5,f5] ~ c5 d5 ~ bb4@3 ~ bb4 c5 d5 c5 bb4 d5 eb5 d5 c5@3 d4 ~@2 c5@4 eb4 f4 g4@3 f5 g5 f5 eb5 f4 ~@2 g5@2 g4 f5@2 eb5@2 [bb4,d5]@3 ~ f4@2 ~ f4, bb3@7 ~@7 c5@5 ~@12 eb4@6 ~@11 bb4@3 ~ bb4 ~ bb4 ~@9, ~@3 f4@4 ~@5 f5@7 ~ f5@3 ~ g5@7 ~ g4@5 ~@10 g4@3 ~@9 bb3@4 ~, ~@33 eb5 ~@8 bb5@4 ~@18]/4", // Dm F5 Bb
  W: "[c5,f5] [d5,f5] ~ bb4 [c5,f5] [d5,f5] [c5,d5,f5] bb4 [c5,f5] ~ [d5,f5] ~ [d5,f5]@4", // F5 Dm F5 Dm Dm7 F5 Dm
  X: "~ f4 ~@4 d5 bb4 [d5,eb5] ~ c5@6, ~@2 g4@3 f5@2 ~@2 eb5@7, ~@3 bb4@3 ~@2 [c4,g5]@8, ~@4 g5@3 ~@9", // Ebmaj7 C5
  Y: "[d4 ~@4 f5 eb5@2 ~@2 eb5 f5 ~@2 eb5@5 ~ f5 g5 f5 eb5 ~@4 g5@2 f5 ~, ~ eb4@5 ~@2 eb4@6 ~@5 eb4@4 ~ f4@6 ~@2, ~@2 g4@4 ~@19 c5@5 ~@2, ~@3 bb4@4 ~@5 g5@7 ~@13, ~@4 g5@2 ~@5 bb5@8 ~ bb5@2 ~@5 a5@3 ~@2]/2",
  Z: "c5 ~@3 bb4@12, f5, [bb3,f4]@7 ~, ~ d5@15", // Bb5
})).s("gm_piano").gain(0.6).pan(0.6)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@9 A@2 B C ~@6 D E ~@5 F@2 ~ G H@2 I@2 ~@2 J ~@3 K L M N O ~@5 P@2 ~@4 Q ~@3 R S T U@2 ~@3 Q ~@3 V ~@2 W X ~
>`.pickRestart({
  A: "[~@10 f4 g4 bb4 d5 c5 bb4@8 ~@9]/2", B: "~@8 d5@4 c5@2 bb4 c5", C: "bb4@9 ~@7", D: "~@10 d5@2 d5 c5 bb4 c5",
  E: "bb4@7 ~@9", F: "[~@10 f4 g4 bb4 c5 bb4 d5@8 ~@9]/2", G: "~@7 g4", H: "[eb5@5 ~ bb4 g4 a4@13 ~@11]/2",
  I: "[f4 g4 bb4 c5 d5 c5 bb4 g4 bb4@13 ~@11]/2", J: "~@2 d5@2 c5 bb4 g4@2 bb4@7 ~", K: "~@10 f4 g4 bb4 c5 bb4@2",
  L: "~@2 c5 d5 f5 d5 c5 bb4 c5 d5 c5@6", M: "~@2 f4 g4 bb4 d5@2 [c5,d5] bb4@6 ~@2",
  N: "c5 d5 f5@2 d5 c5 bb4 g4 bb4@3 f4 g4 f4@2 d4", O: "bb3@7 ~@9", P: "[~@6 f5 g5 f5@11 ~@13]/2",
  Q: "~@2 d5 ~ d5 c5 bb4 g4 bb4@8", R: "~@2 d5@2 c5 bb4 g4@2 bb4@6 ~@2", S: "~@3 eb5", T: "c5 g4 bb4@2",
  U: "[~@12 g5@2 f5@4 d5@2 c5 bb4 g4@2 bb4@6 ~@2]/2", V: "~ d5@3 d5 c5 bb4 g4 bb4@8", W: "~@7 d5", X: "bb4@15 ~",
})).s("gm_distortion_guitar").gain(0.48).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@9 A B A B C D A E C F A@2 C B G ~ H I J K I J K J L M C J N J I J O K I P Q R S@2 R S R J I J L I J K I K J@3 T J K
  U V B C W U K J@2 X ~
>`.pickRestart({
  A: "x ~@6 x!2 ~ x ~@3 x ~", B: "x ~@6 x!2 ~ x ~@5", C: "x ~@6 x!2 ~ x ~@4 x", D: "x ~@3 x!2 ~@2",
  E: "x ~@6 x!2 ~@5 x ~", F: "x ~@7 x ~ x ~@4 x", G: "x ~@6 x!2 ~@7", H: "~@8 x ~@6 x", I: "x ~ x ~@5 x ~@6 x",
  J: "x ~ x ~@3 x ~ x ~@6 x", K: "x ~ x ~@4 x!2 ~@6 x", L: "x ~@5 x ~ x ~@6 x", M: "x ~ x ~@4 x!2 ~@5 x ~",
  N: "x ~@7 x ~@6 x", O: "x ~ x ~@4 x!2 ~ x ~@4 x", P: "x ~ x ~@4 x!2 ~@7", Q: "~@8 x ~@3 x ~@2 x",
  R: "x ~ x ~ x ~@3 x ~@3 x ~@2 x", S: "x ~ x ~ x ~ x ~ x ~@3 x ~@2 x", T: "x ~ x ~@2 x ~@2 x ~@6 x",
  U: "x ~ x ~@2 x ~ x!2 ~@6 x", V: "x ~@6 x!2 ~ x ~@2 x ~ x", W: "x ~@6 x!2 ~@6 x", X: "x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  ~@9 A@6 B C D@2 E C D@2 F ~ G A@6 H D@2 I J D@3 K A@3 L ~@7 H D@3 J D@3 M D@3 J D@3 N D@2 O J D@2 P ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x!3 ~", C: "~ x!3", D: "x!4", E: "x ~@3 x ~@3 x!4 ~@4", F: "x!2 ~@2", G: "~@3 x",
  H: "x!3 ~@9 x ~@3", I: "x!2 ~ x", J: "x!4 ~@4 x ~@3 x ~@3", K: "x ~ x ~ x!4 ~@4 x ~@3", L: "~@2 x ~ x!3 ~@9",
  M: "x ~ x ~ x!3 ~@5 x ~@3", N: "x ~ x ~ x!3 ~ x ~@3 x ~@3", O: "x ~@3 x ~@3 x ~@3 x ~@2 x",
  P: "x ~@3 x ~@3 x ~ x ~ x!3 ~",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@8 A ~@6 A ~@3 B ~@5 C ~@6 C ~@3 D ~@3 C ~@11 D ~@3 D ~@3 D ~@3 D ~@3 D ~@3 D ~@5
>`.pickRestart({
  A: "~@7 x", B: "~@15 x", C: "~@3 x ~@4", D: "~@7 x ~@8",
})).gain(0.8)

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

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@8 A ~@6 A ~@3 B ~@5 C ~@6 C ~@3 D ~@3 C ~@11 D ~@3 D ~@3 D ~@3 D ~@3 D ~@3 D ~@2 E ~@2
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@7 x", C: "~@5 x ~@10", D: "~@3 x ~@4", E: "~@15 x",
})).gain(0.8)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@8 A ~@6 B ~@3 C ~@5 D ~@6 E ~@3 F ~@3 E ~@11 F ~@3 F ~@3 F ~@3 F ~@3 F ~@3 F ~@2 G ~@2
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@3 x", C: "~@12 x!2 ~@2", D: "~ x ~@6", E: "~ x ~@2", F: "~@4 x!2 ~@10", G: "~@7 x",
})).gain(0.8)

// drums · crash
// … 10 more lines

More by Lobo