Strudelify

I Can't Be With You

The Cranberries

KeyG minorTempo126 bpm
0:00/0:00
// I Can't Be With You — The Cranberries
// 126 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 4 "Guitare" named as a guitar, played on electric guitar clean (its pad poly patch is not one); ch 5 "Piano" named as a piano, played on piano (its drawbar organ patch is not one)
// note: Full arrangement: all 101 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · string ensemble 1 · "Dolores 2"
const string_ensemble_1 = note(`<
  ~@6 A@2 B C@5 D E F@3 G@2 H I@2 J@5 K@2 L@3 M N O@2 P@2 Q R@2 S T U V@7 W X Y Z AA AB AC AD AE AF@3 ~@3 AG AH AI@8
  AJ@8 AK@4 AL@8 ~@3
>`.pickRestart({
  A: "[~@21 bb4@5 ~@3 a4@5 ~@3 g4@5 ~@3 f4@5 ~@14]/2", B: "~@10 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@2",
  C: "[~@3 [d4,f4,bb4]@6 ~@2 [f4,bb4,d5]@6 ~@2 [f4,bb4,c5]@6 ~@2 c5@3 ~ [f4,bb4,c5]@6 ~@2 bb4@3 ~ bb4@3 [g4,bb4,d5]@10 ~@2 [g4,bb4,d5]@3 ~ [g4,bb4,d5]@6 ~@2 c5@6 ~@2 [eb4,g4,bb4]@33 ~@2 [d4,f4,bb4]@6 ~@2 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@7 [d4,f4,bb4]@3 ~ d5@3 ~ bb4@3 ~ [f4,bb4,c5]@6 ~@2 bb4@3 ~ [f4,bb4,c5]@4]/5", // Bb Fsus4 Gm Eb Bb Fsus4
  D: "~@4 bb4@3 ~ bb4@3 d5@3 ~ c5@6 ~@2 [d4,g4,c5]@3 ~ [d4,g4,bb4]@5, ~@11 [d4,g4]@10 ~@11", // Csus2 Gm G5
  E: "~@3 [a4,d5]@6 ~@2 [bb3,eb4,g4,eb5]@16 ~@5", // D5 Eb
  F: "[~@2 [g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~ [f4,bb4,d5]@7 ~ [f4,bb4,eb5]@3 ~ [f4,bb4,eb5]@3 ~ [f4,bb4,d5]@10 ~ bb4@3 ~ [f4,bb4,c5]@7 ~ [f4,bb4,c5]@6 ~@2 [bb4,c5,f5]@10 ~@2 eb5@3 ~ [g4,bb4,d5]@10 ~ [g4,bb4,eb5]@3 ~ [g4,bb4,d5]@6 ~@2]/3", // Eb Bb Ebsus2 Bb Fsus4 Bbsus2 Gm Eb …
  G: "[[d4,g4,c5]@6 ~@2 [eb4,g4,bb4,eb5]@16 ~@7 [eb4,g4,bb4]@3 ~ [eb4,g4,bb4]@3 ~ [eb4,g4,bb4]@3 ~@5 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~@4 [d4,f4,bb4]@2]/2", // Csus2 Eb Bb
  H: "~@2 [d4,f4,bb4]@3 ~ [f4,bb4,c5]@7 ~ [f4,bb4,c5]@3 ~ bb4@3 ~ [f4,bb4,c5]@3 ~@5 c5@2", // Bb Fsus4
  I: "[~@2 eb5@3 ~ [g4,bb4,d5]@10 ~ [d4,g4,c5]@6 ~@2 [d4,g4,bb4]@3 ~ [d4,g4,a4,d5]@6 ~@2 [bb3,eb4,g4,eb5]@16 ~@3 [bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@4]/2", // Gm Csus2 Gm Dsus4 Eb Bbsus4
  J: "[~@4 f5@3 ~ g5@3 ~ f5@10 ~@2 [bb4,d5,f5]@3 ~ [bb4,d5,f5]@7 ~@2 f5@3 ~ g5@3 ~ f5@10 ~@2 [f4,bb4,d5]@3 ~ [f4,bb4,d5]@7 ~ eb5@7 ~@2 d5@7 ~ [d4,g4,c5]@7 ~ [d4,g4,d5]@7 ~ [eb4,g4,bb4]@17 ~@4 [bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@7 ~ f5@3 ~ g5@3 ~ f5@10 ~@2 [bb4,d5,f5]@3 ~@2, ~@4 [bb4,d5]@17 ~@16 [bb4,c5]@17 ~@15 [g4,bb4]@14 ~@52 [bb4,d5]@17 ~@8]/5", // Bb Csus2 G5 Eb Bbsus4 Bb Bbsus2 Gm …
  K: "[[bb4,d5,f5]@7 ~ f5@3 ~ g5@3 ~ f5@10 ~@2 d5@3 ~ f5@7 ~@2 [g4,bb4,eb5]@11 ~ [g4,bb4,d5]@7 ~ [d4,g4,c5]@3, ~@8 [bb4,c5]@17 ~@3 [f4,bb4]@10 ~@26]/2", // Bb Eb Gm Csus2 Bbsus2 Bb5
  L: "[~ [d4,g4,d5]@7 ~ [eb4,g4,bb4]@35 ~@2 [d4,f4,bb4]@6 ~@2 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@13 ~@3 bb4@3 [f4,bb4,c5]@6 ~@2 d5@3 ~ [f4,bb4,c5]@6 ~]/3", // G5 Eb Bb Fsus4
  M: "~ [f4,bb4,eb5]@6 ~@2 c5@3 ~ [d4,g4,d5]@6 ~@2 [d4,g4,c5]@3 [d4,g4,bb4]@6 ~@2", // Ebsus2 G5 Csus2 Gm
  N: "[d4,g4,bb4]@6 ~@2 [bb3,eb4,g4]@23 ~", // Gm Eb
  O: "[~@7 a4@3 ~ [d4,f4,bb4]@6 ~@2 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@7 ~ [f4,bb4,d5]@6 ~@2 bb4@3 [f4,bb4,c5]@3 ~ bb4@3 ~ c5@3 ~ [f4,bb4,c5]@7 ~ c5@2]/2", // Bb Fsus4
  P: "[~@2 eb5@3 ~ c5@3 ~ [d4,g4,d5]@6 ~@2 [d4,g4,d5]@3 [d4,g4,d5]@6 ~@2 [d4,g4,c5]@6 ~@2 [eb4,g4,bb4,eb5]@16 ~@8 [g4,bb4,eb5]@3]/2", // G5 Csus2 Eb
  Q: "[g4,bb4,eb5]@3 ~ [f4,bb4,d5]@7 ~ [f4,bb4,eb5]@3 ~ [f4,bb4,eb5]@3 ~ [f4,bb4,d5]@8 bb4@4", // Eb Bb Ebsus2 Bb
  R: "[~@4 [f4,bb4,c5]@7 [f4,bb4,c5]@6 ~@2 [bb4,c5,f5]@10 ~@2 eb5@3 ~ [g4,bb4,d5]@10 ~@2 [d4,g4,c5]@3 [d4,g4,bb4]@6 ~@2 [d4,a4,d5]@6]/2", // Fsus4 Bbsus2 Gm Csus2 Gm D5
  S: "~@2 [bb3,eb4,g4,eb5]@16 ~@8 [eb4,g4,bb4]@3 [eb4,g4,bb4]@3", // Eb
  T: "~ [eb4,g4,bb4]@3 ~@5 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [d4,f4,bb4]@7 ~@8", // Eb Bb
  U: "~ [d4,f4,bb4]@3 ~ [f4,bb4,c5]@3 [f4,bb4,c5]@3 ~ bb4@3 ~ [f4,bb4,c5]@6 ~@2 [f4,bb4,eb5]@6 ~@2", // Bb Fsus4 Ebsus2
  V: "[c5@3 ~ [g4,bb4,d5]@6 ~@2 [d4,g4,c5]@6 ~ [d4,g4,bb4]@3 ~ [d4,g4,a4,d5]@6 ~@2 [bb3,eb4,g4,eb5]@16 ~@4 [bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@6 ~ f5@3 ~ g5@3 ~ f5@9 ~@3 [bb4,d5,f5]@3 ~ [bb4,d5,f5]@6 ~@2 f5@3 ~ g5@3 f5@10 ~@2 [f4,bb4,d5]@3 ~@2 [f4,bb4,d5]@7 ~ eb5@7 ~ d5@7 ~ [d4,g4,c5]@7 ~ [d4,g4,d5]@7 ~@2 [eb4,g4,bb4]@17 ~@3 [bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@7 ~ f5@3 ~ g5@3 ~ f5@10 ~@3 [bb4,d5,f5]@3 ~ [bb4,d5,f5]@7 ~, ~@62 [bb4,d5]@16 ~@16 [bb4,c5]@17 ~@15 [g4,bb4]@14 ~@51 [bb4,d5]@17 ~@16]/7", // Gm Csus2 Gm Dsus4 Eb Bbsus4 Bb Csus2 …
  W: "f5@3 ~ g5@3 ~ f5@10 ~@3 d5@3 ~ f5@7, [bb4,c5]@17 ~@4 [f4,bb4]@10 ~", // Bbsus2 Bb5
  X: "~ [g4,bb4,eb5]@11 ~ [g4,bb4,d5]@7 ~ [d4,g4,c5]@3 ~ [d4,g4,d5]@7", // Eb Gm Csus2 G5
  Y: "~@2 [eb4,g4,bb4]@14 ~@2 [bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@6", // Eb Bbsus4
  Z: "~@2 bb5@3 ~@2 g5@3 ~ f5@10 ~@2 [bb4,d5,f5]@3 ~ [bb4,d5,f5]@5, ~@2 [bb4,d5]@17 ~@13", // Bb
  AA: "~@3 bb5@3 ~ g5@3 ~ f5@10 ~@2 d5@3 ~ f5@5, ~@3 c5@17 ~@3 [f4,bb4]@9", // Bb5
  AB: "~@3 [g4,bb4,eb5]@10 ~@2 [g4,bb4,d5]@6 ~@2 [d4,g4,c5]@3 ~ [d4,g4,d5]@5", // Eb Gm Csus2 G5
  AC: "~@2 [eb4,g4,bb4]@13 ~@3 [bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@6", // Eb Bbsus4
  AD: "~@2 bb5@3 ~ g5@3 f5@9 ~@3 [bb4,d5,f5]@3 ~ [bb4,d5,f5]@6 ~, ~ [bb4,d5]@8 ~@7", // Bb
  AE: "~ bb5@3 ~ g5@3 ~ f5@9 ~@2 d5@3 ~ f5@8, ~ c5@16 ~@3 [f4,bb4]@12", // Bb5
  AF: "[~@4 [g4,bb4,eb5]@6 ~@2 [g4,bb4,d5]@3 ~ [d4,g4,c5]@6 ~@2 [d4,g4,d5]@6 ~ [eb4,g4,bb4]@19 ~@5 d5@3 ~ eb5@3 ~ d5@3 ~@30]/3", // Eb Gm Csus2 G5 Eb
  AG: "[f4,bb4,d5]@10 ~@2 [f4,bb4,d5]@7 ~ bb4@3 ~ d5@3 ~ bb4@3 ~", // Bb
  AH: "[f4,a4,c5]@10 ~@2 [a4,c5,f5]@7 ~ [a4,c5,eb5]@10 ~@2", // F Adim
  AI: "[[g4,bb4,d5]@3 ~ [g4,c5,eb5]@6 ~@2 [g4,bb4,d5]@7 ~ [bb4,c5,f5]@6 ~@2 [bb4,c5,f5]@8 [g4,bb4,d5]@6 ~@2 [g4,c5,eb5]@6 ~@2 [g4,bb4,d5]@7 ~ [bb4,d5]@23 ~ eb5@3 ~ bb4@3 ~ [f4,a4,c5]@17 ~@7 c5@3 ~ [g4,bb4,d5]@3 ~ g4@4 g4@4 [d4,g4,c5]@8 [d4,g4,bb4]@8 [d4,g4,a4]@8 [bb3,eb4]@30 ~@6 [f4,bb4,d5]@10 ~@2 [f4,bb4,d5]@7 ~ bb4@3 ~ d5@3 ~ bb4@3 ~ [f4,a4,c5]@10 ~@2 [a4,c5,f5]@7 ~ [a4,c5,eb5]@10 ~@2, ~@60 g4@3 ~@61 [bb4,d5]@7 ~@25 g4@100]/8", // Gm Cm Gm Bbsus2 Gm Cm Gm Bb …
  AJ: "[[g4,bb4,d5]@4 [g4,c5,eb5]@8 [bb4,d5]@7 ~ [bb4,c5,f5]@6 ~@2 [bb4,c5,f5]@8 [g4,bb4,d5]@8 [g4,c5,eb5]@8 [g4,bb4,d5]@8 [bb4,d5]@23 ~ eb5@3 ~ bb4@3 ~ [f4,a4,c5]@17 ~@7 c5@3 ~ [g4,bb4,d5]@4 g4@4 g4@4 [d4,g4,c5]@8 [d4,g4,bb4]@8 [d4,g4,a4]@8 [bb3,eb4]@30 ~@6 [f4,bb4,d5]@10 ~@2 [f4,bb4,d5]@7 ~ bb4@3 ~ d5@3 ~ bb4@3 ~ [f4,a4,c5]@10 ~@2 [a4,c5,f5]@7 ~ [a4,c5,eb5]@10 ~@2, ~@12 g4@24 ~@24 g4@60 ~@4 [bb4,d5]@7 ~@25 g4@100]/8", // Gm Cm Bb Bbsus2 Gm Cm Gm Bb …
  AK: "[[g4,bb4,d5]@4 [g4,c5,eb5]@8 [a4,d5]@7 ~ [bb4,c5,f5]@6 ~@2 [bb4,c5,f5]@8 [g4,bb4,d5]@8 [g4,c5,eb5]@8 [g4,bb4,d5]@8 [bb4,d5]@23 ~ eb5@3 ~ bb4@3 ~ [f4,a4,c5]@17 ~@7 c5@3 ~ [g4,bb4,d5]@4 [g4,bb4,d5]@4, ~@3 g4@6 ~@6 g4@15 ~@2]/4", // Gm Cm D5 Bbsus2 Gm Cm Gm Bb …
  AL: "[g4@2 [d4,g4,c5]@4 [d4,g4,bb4]@4 [d4,g4,a4]@4 [bb3,eb4]@15 ~@99, ~@7 g4@57]/8", // Csus2 Gm Dsus4 Eb5
})).s("gm_string_ensemble_1").gain(0.37)

// other · electric guitar clean · "Guitare"
const electric_guitar_clean = note(`<
  A@7 B C@2 D E F G H@8 I@3 J K L@2 M@8 N@8 O@2 P Q R S T U V W X@6 Y Z T AA R AB AC AD AE AF AC AD AE AF AC AD AE AF AC
  AD AE AF AC AD AE AF AC AD AE AF AC AD AE ~@7
>`.pickRestart({
  A: "[~@26 bb3@15 bb3@15 ~ f3@15 ~ f3@15 g3@15 ~ g3@15 ~ eb3@15 eb3@15 ~ bb3@13 ~@2 bb3@13 ~@3 f3@13 ~@3 f3@13 ~@2 g3@11]/7",
  B: "~@5 g3@13 ~@3 eb3@11", C: "[~@4 eb3@13 ~@3 bb3@15 bb3@15 ~ f3@13]/2", D: "~@3 f3@15 g3@14",
  E: "~@2 g3@15 ~ eb3@14", F: "~ eb3@15 ~ bb3@15", G: "~ bb3@15 f3@15 ~",
  H: "[f3@15 g3@15 ~ g3@15 ~ eb3@15 eb3@15 ~ bb3@15 ~ bb3@15 f3@15 ~ f3@15 g3@15 ~ g3@15 ~ eb3@15 eb3@15 ~ bb3@15 ~ bb3@15 f3@15 ~ f3@6]/8",
  I: "[~@9 g3@15 ~ g3@15 ~ eb3@15 eb3@15 ~ bb3@15 ~ bb3@8]/3", J: "~@9 f3@15 ~ f3@7", K: "~@10 g3@15 ~ g3@6",
  L: "[~@10 eb3@15 ~@2 eb3@15 ~ bb3@15 ~ bb3@5]/2",
  M: "[~@12 f3@15 ~ f3@15 ~@2 g3@15 ~ g3@15 ~ eb3@15 ~@2 eb3@15 ~ bb3@13 ~@3 bb3@13 ~@2 f3@15 ~ f3@15 ~ g3@15 g3@15 ~ eb3@15 ~ eb3@15 bb3@15 ~ bb3@5]/8",
  N: "[~@10 f3@15 ~ f3@15 ~ g3@15 g3@15 ~ eb3@15 ~ eb3@15 bb3@15 ~ bb3@15 ~ f3@15 f3@15 ~ g3@15 g3@15 ~ eb3@15 ~ eb3@15 bb3@15 ~ bb3@11]/8",
  O: "[~@5 f3@15 f3@15 ~ g3@15 g3@13]/2", P: "~@3 eb3@15 ~ eb3@13", Q: "~@2 bb3@13 ~@3 bb3@13 ~",
  R: "~@2 f3@13 ~@2 f3@13 ~@2", S: "~@2 g3@13 ~@3 g3@13 ~", T: "~@3 eb3@13 ~@3 eb3@13", U: "~@3 bb3@13 ~@4 bb3@12",
  V: "~@4 f3@13 ~@4 f3@11", W: "~@5 g3@13 ~@3 g3@11",
  X: "[~@6 eb3@13 ~@3 eb3@13 ~@4 bb3@13 ~@3 bb3@13 ~@3 f3@13 ~@3 f3@13 ~@3 g3@13 ~@3 g3@13 ~@2 eb3@13 ~@3 eb3@13 ~@3 bb3@13 ~@2 bb3@11]/6",
  Y: "~@5 f3@13 ~@2 f3@12", Z: "~@4 g3@13 ~@3 g3@12", AA: "~@3 bb3@13 ~@2 bb3@13 ~", AB: "~ g3@13 ~@3 g3@13 ~@2",
  AC: "eb3@13 ~@3 eb3@13 ~@3", AD: "bb3@13 ~@3 bb3@13 ~@3", AE: "f3@13 ~@3 f3@13 ~@3", AF: "g3@13 ~@3 g3@13 ~@3",
})).s("gm_electric_guitar_clean").gain(0.48).pan(0.1)

// other · electric guitar clean · "Guitare" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@94
  [g3@13 ~@3 g3@13 ~@3]
  [eb3@13 ~@3 eb3@13 ~@3]
  [bb3@13 ~@3 bb3@13 ~@3]
  [f3@13 ~@3 f3@13 ~@3]
  [g3@13 ~@3 g3@13 ~@3]
  [eb3@13 ~@3 eb3@13 ~@3]
  [bb3@13 ~@3]
>`).s("gm_electric_guitar_clean").gain(0.16).pan(0.1)

// chords · piano
const piano = note(`<
  A B C D@3 E F G H@6 I J K L M@2 N O P Q R S T U V W X@2 Y Z AA AB@2 AC AD AE AF@2 AG AH AI AJ@2 AK AL AM AN AO AP@8 AQ
  AR AS AT AU AV AW AX AY AZ AW AX AY AZ AW AX AY AZ AW AX AY AZ AW AX AY AZ AW AX AY AZ AW AX AY ~@7
>`.pickRestart({
  A: "~@15 f4", B: "~@2 bb4@3 ~ f4@7 f4@3 ~ bb4@3 ~ f4@3 ~@5 f4@3", C: "~ bb4@3 ~ f4@7 ~ f4@3 ~ bb4@3 f4@3 ~@5 g4@3 ~",
  D: "[bb4@3 ~ g4@7 ~ g4@3 ~ bb4@3 ~ g4@3 ~@4 g4@3 ~ bb4@3 ~ g4@7 ~ g4@3 ~ bb4@3 ~ g4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 f4@3 ~ bb4@3 ~ f4@3 ~@5 f4@3 ~ bb4@2]/3",
  E: "~@2 f4@7 ~ f4@3 ~ bb4@3 f4@3 ~@5 g4@3 ~ bb4@3", F: "~ g4@7 ~ g4@3 ~ bb4@3 ~ g4@3 ~@5 g4@3 bb4@3 ~",
  G: "g4@7 ~ g4@3 ~ bb4@3 ~ g4@3 ~@5 f4@3 ~ bb4@3 ~",
  H: "[f4@7 f4@3 ~ bb4@3 ~ f4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 ~ f4@3 ~ bb4@3 f4@3 ~@5 g4@3 ~ bb4@3 ~ g4@7 ~ g4@3 ~ bb4@3 ~ g4@3 ~@5 g4@3 bb4@3 ~ g4@7 ~ g4@3 ~ bb4@3 ~ g4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 f4@3 ~ bb4@3 ~ f4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 ~ f4@3 ~ bb4@3 f4@3 ~@5 g4@3 ~ bb4@3 ~ g4@5]/6",
  I: "~@3 g4@3 ~ bb4@3 ~ g4@3 ~@5 g4@3 bb4@3 ~ g4@6", J: "~@2 g4@3 ~ bb4@3 ~ g4@3 ~@5 f4@3 ~ bb4@3 ~ f4@6",
  K: "~ f4@3 ~ bb4@3 ~ f4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7", L: "~ f4@3 ~ bb4@3 ~ f4@3 ~@4 g4@3 ~ bb4@3 ~ g4@7 ~",
  M: "[g4@3 ~ bb4@3 ~ g4@3 ~@5 g4@3 bb4@3 ~ g4@7 ~ g4@3 ~ bb4@3 ~ g4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 f4@2]/2",
  N: "~@2 bb4@3 ~ f4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 ~ f4@2", O: "~@2 bb4@3 ~ f4@3 ~@4 g4@3 ~ bb4@3 ~ g4@7 ~ g4@3",
  P: "~ bb4@3 ~ g4@3 ~@5 g4@3 ~ bb4@3 g4@7 ~ g4@3 ~", Q: "bb4@3 ~ g4@3 ~ [f4,bb4,d5]@20 ~@4",
  R: "~ [f4,bb4,d5]@7 ~ [f4,a4,c5]@20 ~@3", S: "~ [f4,a4,c5]@7 ~@2 [eb4,g4,bb4]@20 ~@2",
  T: "~@2 [eb4,g4,bb4]@7 ~ [bb3,eb4,g4]@20 ~@2", U: "~@3 [bb3,eb4,g4]@7 ~ [f4,bb4,d5]@20 ~",
  V: "~@4 [f4,bb4,d5]@7 ~ [f4,a4,c5]@20", W: "~@4 [f4,a4,c5]@7 ~@2 [eb4,g4,bb4]@19",
  X: "[~@5 [eb4,g4,bb4]@7 ~ [bb3,eb4,g4]@31 ~@6 f4@3 ~ bb4@3 ~ f4@6]/2", // Eb
  Y: "~@2 f4@3 ~ bb4@3 ~ f4@3 ~@4 f4@3 ~ bb4@3 ~ f4@7", Z: "~ f4@3 ~ bb4@3 ~ f4@3 ~@5 g4@3 ~ bb4@3 g4@7 ~",
  AA: "g4@3 ~ bb4@3 ~ g4@3 ~@5 g4@3 ~ bb4@3 ~ g4@7 ~",
  AB: "[g4@3 bb4@3 ~ g4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 ~ f4@3 ~ bb4@3 ~ f4@3 ~@4 f4@3 ~ bb4@3 ~ f4@7 ~ f4@2]/2",
  AC: "~@2 bb4@3 ~ f4@3 ~@5 g4@3 ~ bb4@3 g4@7 ~ g4@3", AD: "~ bb4@3 ~ g4@3 ~@5 g4@3 ~ bb4@3 ~ g4@7 ~ g4@3",
  AE: "bb4@3 ~ g4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 ~ f4@3 ~",
  AF: "[bb4@3 ~ f4@3 ~@4 f4@3 ~ bb4@3 ~ f4@7 ~ f4@3 ~ bb4@3 ~ f4@3 ~@5 g4@3 ~ bb4@3 g4@7 ~ g4@3 ~ bb4@2]/2",
  AG: "~@2 g4@3 ~@5 g4@3 ~ bb4@3 ~ g4@7 ~ g4@3 bb4@3", AH: "~ g4@3 ~@5 f4@3 ~ bb4@3 ~ f4@7 ~ f4@3 ~ bb4@3",
  AI: "~ f4@3 ~@4 f4@3 ~ bb4@3 ~ f4@7 ~ f4@3 ~ bb4@3 ~",
  AJ: "[f4@3 ~@5 g4@3 ~ bb4@3 ~ g4@7 g4@3 ~ bb4@3 ~ g4@3 ~@5 g4@3 ~ bb4@3 ~ g4@7 ~ g4@3 bb4@3 ~ g4@2]/2",
  AK: "~@2 [f4,bb4,d5]@19 ~@5 [f4,bb4,d5]@6", AL: "~@2 [f4,a4,c5]@19 ~@5 [f4,a4,c5]@6",
  AM: "~ [eb4,g4,bb4]@10 ~@2 [eb4,g4,bb4]@3", AN: "~@3 [bb3,eb4,g4]@20 ~@4 [bb3,eb4,g4]@5",
  AO: "~@3 [f4,bb4,d5]@20 ~@5 [f4,bb4,d5]@4", // Bb
  AP: "[~@4 [f4,a4,c5]@20 ~@5 [f4,a4,c5]@7 ~ [eb4,g4,bb4]@20 ~@5 [eb4,g4,bb4]@7 ~ [bb3,eb4,g4]@20 ~@4 [bb3,eb4,g4]@7 ~@2 [f4,bb4,d5]@20 ~@4 [f4,bb4,d5]@7 ~ [f4,a4,c5]@19 ~@5 [f4,a4,c5]@6 ~@2 [eb4,g4,bb4]@19 ~@4 [eb4,g4,bb4]@6 ~@2 [bb3,eb4,g4]@19 ~@5 [bb3,eb4,g4]@6 ~@2 [f4,bb4,d5]@19 ~@4 [f4,bb4,d5]@3]/8", // F Eb Bb F Eb Bb
  AQ: "~@5 [f4,a4,c5]@19 ~@4 [f4,a4,c5]@4", AR: "~@4 [eb4,g4,bb4]@19 ~@5 [eb4,g4,bb4]@4",
  AS: "~@3 [bb3,eb4,g4]@19 ~@5 [bb3,eb4,g4]@5", AT: "~@3 [f4,bb4,d5]@19 ~@4 [f4,bb4,d5]@6",
  AU: "~@2 [f4,a4,c5]@19 ~@4 [f4,a4,c5]@6 ~", AV: "~ [eb4,g4,bb4]@19 ~@5 [eb4,g4,bb4]@6 ~",
  AW: "[bb3,eb4,g4]@19 ~@5 [bb3,eb4,g4]@6 ~@2", AX: "[f4,bb4,d5]@19 ~@5 [f4,bb4,d5]@6 ~@2",
  AY: "[f4,a4,c5]@19 ~@5 [f4,a4,c5]@6 ~@2", AZ: "[eb4,g4,bb4]@19 ~@5 [eb4,g4,bb4]@6 ~@2",
})).s("gm_piano").gain(0.43).pan(0.9)

// chords · piano · soft notes · Eb Bb F Eb Bb
const piano_soft = note(`<
  ~@94
  [[eb4,g4,bb4]@19 ~@5 [eb4,g4,bb4]@6 ~@2]
  [[bb3,eb4,g4]@19 ~@5 [bb3,eb4,g4]@6 ~@2]
  [[f4,bb4,d5]@19 ~@5 [f4,bb4,d5]@6 ~@2]
  [[f4,a4,c5]@19 ~@5 [f4,a4,c5]@6 ~@2]
  [[eb4,g4,bb4]@19 ~@5 [eb4,g4,bb4]@6 ~@2]
  [[bb3,eb4,g4]@19 ~@5 [bb3,eb4,g4]@6 ~@2]
  [[f4,bb4,d5]@13 ~@3]
>`).s("gm_piano").gain(0.14).pan(0.9)

// bass · acoustic bass · "Basse"
const bass = note(`<
  ~@4 A B C D E F G H I J K L M N O P Q R S T U V W X@2 Y Z AA AB N AC P Q R AD T AE AF AG AH AI AJ AK AL AM AN AO@3 AP
  AQ AR AS@3 AT AU AV AW@3 AX AY AZ BA BB BC AZ BA BB BC AZ BA BB BC AZ BA BB BC AZ BA BB BC AZ BA BB BC AZ BA BD ~@7
>`.pickRestart({
  A: "~@23 bb1@3 ~ bb1@3 ~@2", B: "~@22 c2@3 ~ c2@3 ~@3", C: "~@21 g1@3 ~ g1@3 ~@4", D: "~@21 eb1@3 ~ eb1@3 ~@4",
  E: "~@20 bb1@3 ~ bb1@3 ~@5", F: "~@19 c2@3 ~ c2@3 ~@6", G: "~@18 g1@3 ~ g1@3 ~@7", H: "~@18 eb1@3 ~ eb1@3 ~@7",
  I: "~@17 bb1@3 ~ bb1@3 ~@8", J: "~@16 c2@3 ~ c2@3 ~@9", K: "~@15 g1@3 ~ g1@3 ~@10", L: "~@15 eb1@3 ~ eb1@3 ~@10",
  M: "~@14 bb1@3 ~ bb1@3 ~@11", N: "~@13 c2@3 ~ c2@3 ~@12", O: "~@12 g1@3 ~ g1@3 ~@13", P: "~@12 eb1@3 ~ eb1@3 ~@13",
  Q: "~@11 bb1@3 ~ bb1@3 ~@14", R: "~@10 c2@3 ~ c2@3 ~@15", S: "~@9 g1@3 ~ g1@3 ~@16", T: "~@9 eb1@3 ~ eb1@3 ~@16",
  U: "~@8 bb1@3 ~ bb1@7 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~", V: "~ bb1@3 ~ bb1@3 ~ c2@3 ~ c2@7 ~ c2@3 ~ c2@3 ~ c2@3",
  W: "~ c2@3 ~ c2@3 ~@2 g1@3 ~ g1@7 ~ g1@3 ~ g1@3 ~ g1@2",
  X: "[~@2 g1@3 ~ g1@3 ~ eb1@3 ~ eb1@7 ~@2 eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ bb1@3 ~ bb1@7 ~ bb1@3 ~ bb1@3 ~@2]/2",
  Y: "bb1@3 ~ bb1@3 ~ bb1@3 ~ c2@3 ~ c2@7 ~ c2@3 ~ c2@3 ~", Z: "c2@3 ~ c2@3 ~@2 c2@3 ~ g1@3 ~ g1@7 ~ g1@3 ~ g1@3",
  AA: "~ g1@3 ~ g1@3 ~ g1@3 ~ eb1@3 ~@2 eb1@7 ~ eb1@3 ~ eb1@2", AB: "~@2 eb1@3 ~ eb1@3 ~ eb1@3 ~ bb1@3 ~ bb1@3 ~@11",
  AC: "~@13 g1@3 ~ g1@3 ~@12", AD: "~@10 g1@3 ~ g1@3 ~@15", AE: "~@8 bb1@3 ~ bb1@3 ~@17", AF: "~@8 c2@3 c2@3 ~@18",
  AG: "~@7 g1@3 ~ g1@3 ~@18", AH: "~@6 eb1@3 ~ eb1@3 ~@19", AI: "~@5 bb1@3 ~ bb1@3 ~@20", AJ: "~@5 c2@3 c2@3 ~@21",
  AK: "~@4 g1@3 ~ g1@3 ~@21", AL: "~@3 eb1@3 ~ eb1@3 ~@22",
  AM: "~@2 bb1@3 ~ bb1@6 ~@2 bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@2",
  AN: "~@2 c2@3 c2@6 ~@2 c2@3 ~ c2@3 ~@2 c2@3 ~ c2@3 ~ c2@2",
  AO: "[~@2 g1@3 ~ g1@7 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~@2 g1@3 ~ eb1@3 ~ eb1@7 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ bb1@3 ~ bb1@7 ~@2 bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~]/3",
  AP: "bb1@3 ~ c2@3 ~ c2@7 ~ c2@3 ~@2 c2@3 ~ c2@3 ~ c2@3", AQ: "~ c2@3 ~ g1@3 ~ g1@7 ~ g1@3 ~ g1@3 ~ g1@3 ~@2 g1@2",
  AR: "~@2 g1@3 ~ eb1@3 ~ eb1@7 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@2",
  AS: "[~@2 eb1@3 ~@2 bb1@3 ~ bb1@7 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~ c2@3 ~ c2@7 ~@2 c2@3 c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ g1@3 ~ g1@6 ~@2 g1@3 ~ g1@3 ~ g1@3 g1@2]/3",
  AT: "~@2 g1@3 ~ eb1@3 ~ eb1@6 ~@2 eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@2",
  AU: "~@2 eb1@3 ~ bb1@3 bb1@6 ~@2 bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3",
  AV: "~ bb1@3 ~ c2@3 ~ c2@6 ~@2 c2@3 c2@3 ~ c2@3 ~ c2@3 ~",
  AW: "[c2@3 ~ g1@3 ~ g1@6 ~@2 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 g1@3 ~ eb1@3 ~ eb1@6 ~@2 eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ bb1@3 bb1@6 ~@2 bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@2]/3",
  AX: "~@2 c2@3 ~ c2@6 ~@2 c2@3 c2@3 ~ c2@3 ~ c2@3 ~ c2@3", AY: "~ g1@3 ~ g1@6 ~@2 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 g1@3 ~",
  AZ: "eb1@3 ~ eb1@6 ~@2 eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~",
  BA: "bb1@3 ~ bb1@6 ~@2 bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~",
  BB: "c2@3 ~ c2@6 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~", BC: "g1@3 ~ g1@6 ~@2 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~",
  BD: "c2@3 ~ c2@6 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~@5",
})).s("gm_acoustic_bass").gain(0.43).pan(0.4)

// bass · acoustic bass · "Basse" · soft notes
const bass_soft = note("<~@93 A B C D E B C F>".pickRestart({
  A: "~@28 c2@3 ~", B: "g1@3 ~ g1@6 ~@2 g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~",
  C: "eb1@3 ~ eb1@6 ~@2 eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~",
  D: "bb1@3 ~ bb1@6 ~@2 bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~",
  E: "c2@3 ~ c2@6 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~", F: "bb1@13 ~@3",
})).s("gm_acoustic_bass").gain(0.14).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B C@2 D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD Y AE AF AG U AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AL AK AV AW@2 AK AX AY AZ BA BB BC BD BE BF@3 BE BF@3 BE BF@3 BE BF@3 BE BF@3 BE BF@3 BE BF BG ~@7
>`.pickRestart({
  A: "~@23 x ~@3 x ~@4", B: "~@11 x ~ x ~@2", C: "~@21 x ~@3 x ~@6", D: "~@5 x!3",
  E: "~@2 x!2 ~@3 x ~@7 x ~@3 x ~@3 x ~@3 x ~@4", F: "~ x ~ x ~@3 x ~@6 x ~@3 x ~@3 x ~@3 x ~@5",
  G: "x ~ x ~@3 x ~@7 x ~@3 x ~@3 x ~@2 x ~@5 x", H: "~ x ~@3 x ~@7 x ~@3 x ~@3 x ~@3 x ~@5 x",
  I: "~ x ~@2 x ~@7 x ~@3 x ~@3 x ~@3 x ~@5 x ~", J: "x ~@3 x ~@6 x ~@3 x ~@3 x ~@3 x ~@5 x ~ x",
  K: "~@3 x ~@7 x ~@3 x ~@3 x ~@2 x ~@5 x ~ x ~", L: "~ x ~ x ~@2 x!2 ~ x ~ x ~@2 x!2",
  M: "~ x ~@7 x ~@3 x ~@3 x ~@3 x ~@5 x ~ x ~@2", N: "~ x ~@7 x ~@2 x ~@3 x ~@3 x ~@5 x ~ x ~@3",
  O: "x ~@7 x ~@3 x ~@3 x ~@2 x ~@5 x ~ x ~@3 x", P: "~@7 x ~@3 x ~@3 x ~@3 x ~@5 x ~ x ~@2 x ~",
  Q: "~@3 x ~ x ~ x ~ x ~@2 x!2 ~ x", R: "~@6 x ~@2 x ~@3 x ~@3 x ~@5 x ~ x ~@3 x ~@2",
  S: "~@5 x ~@3 x ~@3 x ~@3 x ~@4 x ~ x ~@3 x ~@3", T: "~@2 x ~ x ~ x ~ x ~@2 x!2 ~ x ~",
  U: "~@5 x ~@3 x ~@3 x ~@3 x ~@5 x ~ x ~@3 x ~@2", V: "~@5 x ~@4 x ~@3 x ~@3 x ~@5 x ~ x ~@3 x ~",
  W: "~@6 x ~@3 x ~@3 x ~@3 x ~@6 x ~ x ~@3 x", X: "~@7 x ~@3 x ~@3 x ~@3 x ~@5 x ~ x ~@4",
  Y: "x ~@3 x ~ x ~ x ~ x ~@2 x!2 ~", Z: "x ~@8 x ~@3 x ~@3 x ~@3 x ~@5 x ~ x ~@2",
  AA: "~ x ~@7 x ~@3 x ~@4 x ~@3 x ~@5 x ~ x ~", AB: "~ x ~@2 x ~@2 x ~ x ~ x ~@2 x!2",
// … 150 more lines

More by The Cranberries