Strudelify
Gimme! Gimme! Gimme! cover art

Voulez-Vous

Gimme! Gimme! Gimme!

ABBA

KeyF majorTempo118 bpm
0:00/0:00
// Gimme! Gimme! Gimme! — ABBA
// 118 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/4 at bar 1, 4/4 at bar 2, 2/4 at bar 10, 4/4 at bar 11, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 "Picolo" piccolo (copy of ch 6 "Flute 1" flute)
// note: Full arrangement: all 142 bars on a 32-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): Guitar Lead 2.
setcpm(118/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.

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@4 A@5 B C D B@2 C E ~@13 F@5 ~@3 G ~@3 H@2 I@4 J@2 ~@13 K L@5 ~@3 M ~@7 N ~@29 O@6 ~@2 P Q ~@6 R S ~@2 T U V W X Y Z
  AA AB@5
>`.pickRestart({
  A: "[[e3,e5]@2 [f3,f5]@2 [e3,e5]@2 ~ [c3,c5]@2 [d3,d5]@2 [a2,a4]@2 [d2,d4]@131 ~@4 d5 f5 ~ a5 d6@4 d6 a5 ~ f5]/5", // E F E C D A D
  B: "d5@16 ~@4 d5 f5 ~ a5 d6@4 d6 a5 ~ f5", C: "d5@2 e5@2 f5@2 g5@2 a5@12 f5 a5 ~ c6 f6@4 f6 e6 ~ c6",
  D: "a5@16 ~@4 e5 a5 ~ c6 e6@4 d6 a5 ~ f5", E: "a5@16 ~@4 e5 a5 ~ c6 d6@4 d6 a5 ~ f5",
  F: "[[bb4,d5]@5 [bb4,e5]@5 ~ [bb4,f5]@5 [bb4,g5]@5 [bb4,f5]@5 ~@27 f5@8 ~@3 [bb4,d5]@5 [bb4,e5]@5 ~ [bb4,f5]@5 bb4@5 [bb4,f5]@5 ~ [bb4,e5]@5 f5@2 e5@2 d5@2 a4@2 f5@2 e5@2 d5@2 a4@2 f5@2 e5@2 d5@2 a4@2 f5@2 ~ d5@2 a4@2 e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 ~, ~@27 bb4@37 ~@96, ~@27 e5@26 ~@8 g5@19 g5@79 ~, ~@40 d5@23 ~@59 e5@2 ~@36]/5", // Bb Bbdim Bb5 Eb Bb5 Bb Bbdim Bb5 …
  G: "~@17 e5@2 f5@2 e5@2 c5@2 d5@2 a4@2 ~@3",
  H: "[~@15 d5 f5 a5 ~ d6@4 d6 a5 f5 ~ d5@16 ~@3 d5 ~ f5 a5 d6@4 d6 a5 ~ f5 d5@2 e5@2 f5@2]/2",
  I: "[g5@2 a5@12 f5 a5 c6 ~ f6@4 f6 e6 c6 ~ a5@16 ~@3 e5 ~ a5 c6 e6@4 d6 a5 ~ f5 d5@16 ~@4 d5 f5 a5 ~ d6@4 d6 a5 f5 ~ d5@16 ~@3 d5 f5 ~ a5 d6@4 d6 a5 ~ f5 d5@2 e5@2 f5@2 g5@2]/4",
  J: "[a5@12 f5 a5 c6 ~ f6@4 f6 e6 c6 a5@16 ~@4 e5 a5 ~ c6 d6@4 d6 a5 ~ f5 ~@9]/2", K: "~@21 [bb4,d5]@5 ~ [bb4,e5]@5",
  L: "[[bb4,f5]@5 [bb4,g5]@5 ~ [bb4,f5]@5 ~@27 f5@8 ~@2 [bb4,d5]@5 ~ [bb4,e5]@5 [bb4,f5]@5 bb4@5 ~ [bb4,f5]@5 [bb4,e5]@5 f5@2 e5@2 d5@2 a4@2 f5@2 e5@2 d5@2 a4@2 f5@2 e5@2 d5@2 a4@2 f5@2 e5@2 d5@2 a4@2 e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 ~@11, ~@16 bb4@37 ~@107, ~@16 e5@26 ~@9 g5@18 g5@80 ~@11, ~@29 d5@23 ~@108]/5", // Bb5 Eb Bb5 Bb Bbdim Bb5 Bbdim
  M: "~@7 e5@2 f5@2 e5@2 c5@2 d5@2 a4@2 ~@13", N: "~@3 e5@2 f5@2 e5@2 c5@2 d5@2 a4@2 ~@17",
  O: "[~@15 [bb4,d5]@5 [bb4,e5]@5 [bb4,f5]@5 [bb4,g5]@5 ~ [bb4,f5]@5 ~@26 f5@8 ~@3 [bb4,d5]@5 [bb4,e5]@5 [bb4,f5]@5 bb4@5 ~ [bb4,f5]@5 [bb4,e5]@5 f5@2 e5@2 d5@2 a4@2 f5@2 e5@2 d5@2 a4@2 f5@2 e5@2 d5@2 a4@2 f5@2 e5@2 d5@2 ~ e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 e5@2 d5@2 db5@2 a4@2 ~@20, ~@41 bb4@36 ~@62 a4@2 ~@51, ~@41 e5@26 ~@8 g5@18 g5@79 ~@20, ~@54 d5@23 ~@115]/6", // Bb Bbdim Bb5 Eb Bb5 Bb Bbdim Bb5 …
  P: "~@15 e5", Q: "f5 e5 c5 d5 a4 ~@11", R: "~@13 e5 f5 e5", S: "c5 d5 a4 ~@13", T: "~@24 d5 f5 a5 ~ d6@4",
  U: "d6 a5 f5 d5@16 ~@4 d5 f5 ~ a5 d6@4 d6", V: "a5 ~ f5 d5@2 e5@2 f5@2 g5@2 a5@12 f5 a5 c6 ~ f6@3 f6 ~",
  W: "e6 c6 a5@16 ~@4 e5 a5 ~ c6 e6@4 d6 a5", X: "~ f5 d5@16 ~@4 d5 f5 a5 d6@4 d6 ~ a5",
  Y: "f5 d5@16 ~@4 d5 f5 ~ a5 d6@4 d6 a5 f5", Z: "~ d5@2 e5@2 f5@2 g5@2 a5@11 f5 ~ a5 c6 f6@4 f6 ~ e6 c6",
  AA: "a5@16 ~@4 e5 a5 ~ c6 d6@4 d6 a5 f5 ~",
  AB: "[d5@16 ~@3 d5 ~ f5 a5 d6@4 d6 ~ a5 f5 d5@16 ~@4 d5 f5 a5 ~ d6@4 d6 a5 f5 ~ d5@2 e5@2 f5@2 g5@2 a5@11 f5 ~ a5 c6 f6@4 f6 e6 ~ c6 a5@16 ~@4 e5 a5 c6 ~ d6@4 d6 a5 f5 ~ d5@16 ~@18]/5",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.6)

// other · string ensemble 1 · "Strings" · soft notes
const string_ensemble_1_soft = note(`<
  ~@16 A@2 B C D C ~ B C D@2 ~ E ~@8 F@2 ~@9 G@3 H@5 I@5 J@2 ~@8 K@2 ~@2 L@2 ~@2 M@2 ~@27 N@2 ~@8 O@2 ~ P Q@2 ~@2 R@2
  ~@14
>`.pickRestart({
  A: "[[f4,d5]@31 ~]/2", B: "d6@2 c6@2 a5@2 g5 f5", C: "g5@3 ~", D: "g5@25 ~@7", E: "[bb4,d5,e5]",
  F: "[~@29 d4@31 ~@4, ~@29 d5@8 ~@27]/2", G: "[~@23 [f4,d5]@61 ~@12]/3",
  H: "[~@21 d6@8 c6@8 a5@8 g5@4 f5@4 g5@24 ~@8 g5@25 ~@7 g5@24 ~@19]/5",
  I: "[~@21 d6@8 c6@8 a5@8 g5@4 f5@4 g5@24 ~@8 g5@25 ~@7 g5@25 ~@18]/5", J: "[~@11 [bb4,d5,e5]@16 ~@5]/2",
  K: "[~@19 d4@31 ~@14, ~@19 d5@8 ~@37]/2", L: "[~@5 e6@2 f6@2 e6@2 c6@2 d6@2 a5@2 d5@31 ~@16, ~@17 d6@8 ~@39]/2",
  M: "[~@15 d4@31 ~@18, ~@15 d5@8 ~@41]/2", N: "[~@16 bb4@31 ~@17, ~@15 [d5,e5]@31 ~@18]/2",
  O: "[~@10 d4@31 ~@23, ~@5 d5@4 ~@23]/2", P: "~@14 e6 f6", Q: "[e6@2 c6@2 d6@2 a5@2 d5@31 ~@25, ~ d6 ~@6]/2",
  R: "[~@6 d4@31 ~@27, ~@3 d5@4 ~@25]/2",
})).s("gm_string_ensemble_1").gain(0.23).pan(0.6)

// bass · slap bass 2 · "Bass"
const bass = note(`<
  ~@9 A B C A@2 B C A@2 D E@3 F D E@3 G H@2 E@2 I@8 J@4 K L M N@8 O@8 P@8 Q@3 R S T U V@6 ~@24 W@8 X@2 Y Z AA AB AC@8
  AD@3 AE L AF AG AH@5
>`.pickRestart({
  A: "d2@2 d2!2 d2@2 d2!2 d2@2 d2!2 d2@2 d2!2", B: "d2@2 e2@2 f2@2 f2!2 f2@2 f2!2 f2@2 g2@2",
  C: "a2@2 a2!2 a2@2 a2!2 a2@2 a2!2 a2@2 a2!2", D: "d3 c3 a2 d3", E: "g2!4", F: "d2!4", G: "d3@2 d3@2 d3@2 d3 c3",
  H: "bb2!4",
  I: "[a2@8 a2@8 a2@8 a2@7 a2@8 a2@8 a2@8 a2@8 d3@8 d3@8 bb2@8 bb2@7 c3@8 c3@8 d3@8 d3@8 bb2@8 bb2@8 d3@7 d3@8 c3@8 c3@8 d3@8 d3@8 [d2,d3]@8 d3@8 bb2@7 bb2@8 c3@8 c3@8 d3@8 d3@8 bb2@4]/8", // D
  J: "[~@4 bb2@7 d3@8 d3@8 c3@8 c3@8 d3@8 d3@8 d2@8 d2@7 d2@8 d2@8 d2@4 e2@4 f2@8 f2@8 f2@4 g2@4 a2@6]/4",
  K: "~ a2@8 a2@8 a2@8 d2@7", L: "~ d2@8 d2@8 d2@8 d2@7", M: "d2@2 d2@2 d2@2 d2 e2",
  N: "[f2@8 f2@8 f2@4 g2@3 a2@8 a2@8 a2@8 a2@8 d2@8 d2@8 d2@8 d2@7 d2@8 d2@8 d2@8 d2@8 d2@8 d2@8 d2@7 d2@8 d3@8 c3@8 a2@8 d3@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@3]/8",
  O: "[~@5 g2@8 g2@8 d2@8 d2@8 d2@8 d2@8 d3@8 c3@8 a2@8 d3@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 d3@8 d3@8 d3@8 d3@4 c3@4 bb2@8 bb2@8 bb2@8 bb2@8 bb2@8 bb2@3]/8",
  P: "[~@5 bb2@8 bb2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 g2@8 a2@8 a2@8 a2@8 a2@8 a2@8 a2@8 a2@8 a2@8 d3@8 d3@8 bb2@8 bb2@8 c3@8 c3@8 d3@7 d3@8 bb2@8 bb2@8 d3@8 d3@8 c3@8 c3@4]/8",
  Q: "[~@3 d3@8 d3@8 d3@8 d3@8 bb2@8 bb2@8 c3@8 c3@7 d3@8 d3@8 bb2@8 bb2@6]/3", R: "~@2 d3@8 d3@8 c3@7 c3@7",
  S: "~ d3@8 d3@8 d3@8 d3@7", T: "~ bb2@8 bb2@8 c3@7 c3@8", U: "d3!2 bb2!2",
  V: "[d3@8 d3@7 c3@8 c3@8 d3@8 d3@8 d3@8 d3@8 bb2@8 bb2@7 c3@8 c3@8 d3@8 d3@8 bb2@8 bb2@8 d3@7 d3@8 c3@8 c3@8 d3@8 d3@8 ~@19]/6",
  W: "[~@15 bb2@8 bb2@8 bb2@8 bb2@8 bb2@8 bb2@7 bb2@8 bb2@8 g2@8 g2@8 g2@8 g2@8 g2@7 g2@8 g2@8 g2@8 a2@8 a2@8 a2@8 a2@8 a2@7 a2@8 a2@8 a2@8 d3@8 d3@8 bb2@8 bb2@7 c3@8 c3@8 d3@5]/8",
  X: "[~@3 d3@8 bb2@8 bb2@8 d3@8 d3@7 c3@8 c3@8 d3@6]/2", Y: "~ d3@4 d3@4 d3@4 bb2@3", Z: "~ bb2@8 c3@8 c3@8 d3@7",
  AA: "~ d3@8 bb2@8 bb2@8 d3@7", AB: "d3 c3!2 d3",
  AC: "[d3@8 d3@8 d3@7 bb2@8 bb2@8 c3@8 c3@8 d3@8 d3@8 bb2@8 bb2@7 d3@8 d3@8 c3@8 c3@8 d3@8 d3@8 d3@7 d3@8 bb2@8 bb2@8 c3@8 c3@8 d3@8 d3@8 bb2@7 bb2@8 d3@8 d3@8 c3@8 c3@8 d3@8 d3@4]/8",
  AD: "[~@3 d2@8 d2@8 d2@8 d2@8 d2@4 e2@4 f2@8 f2@8 f2@3 g2@4 a2@8 a2@8 a2@8 a2@6]/3", AE: "~@2 d2@8 d2@8 d2@7 d2@7",
  AF: "~ d2@4 e2@4 f2@8 f2@7 f2@4 g2@4", AG: "a2!4",
  AH: "[d2@8 d2@7 d2@8 d2@8 d2@8 d2@8 d2@8 d2@8 d2@4 e2@4 f2@7 f2@8 f2@4 g2@4 a2@8 a2@8 a2@8 a2@8 d2@7 d2@8 d2@8 d2@8 ~@3]/5",
})).s("gm_slap_bass_2").gain(0.53).pan(0.3)

// other · electric guitar clean · "Guitar Lead 1"
const electric_guitar_clean = note("<A@3 B C D@3 E ~@75 F G H ~ I ~@3 J ~@3 K ~ L ~@2 M ~@3 N ~@36>".pickRestart({
  A: "[~@9 d3@4 a3@4 ~ d4@6 a3@2 d3@4 bb3@4 d4@6 bb3@2 c3@4 g3@4 d4@6 ~ g3@2 d3@4 a3@4 d4@6 a3@2 d3@4 bb3@4 d4@6 bb3@2 d3@4 ~]/3",
  B: "a3@2 d4@3 a3 c3@2 g3@2 d4@3 g3 d3@2", C: "g3@4 d4@6 ~ g3@2 d3@4 a3@4 d4@6 a3@2 d3@3",
  D: "[~ bb3@4 d4@6 bb3@2 c3@4 ~ g3@4 d4@6 g3@2 d3@4 a3@4 d4@6 a3@2 d3@4 bb3@4 ~ d4@6 a3@2 d3@4 a3@4 d4@6 a3@2 c3@4 g3@4 d4@6 ~ g3@2]/3",
  E: "d3 ~", F: "~@7 d2", G: "~@16 d2 ~@3 d2@4 ~@8", H: "~@27 d2@4 ~", I: "~@9 f2@6 ~", J: "~@14 e2 ~ d2@8 ~@8",
  K: "~@12 d2 ~@19", L: "~@9 f3 ~@3 db3 ~ d3 ~@16", M: "~@15 f2@2 ~@15", N: "~@13 d2@2 ~@17",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0)

// other · flute · "Flute 1"
const flute = note("<~@8 A B C D B@2 C E F ~@24 G@2 H@4 I@3 ~@79 J K L M N O P Q R@5>".pickRestart({
  A: "~@20 d6 f6 ~ a6 d7@4 d7 a6 ~ f6", B: "d6@16 ~@4 d6 f6 ~ a6 d7@4 d7 a6 ~ f6",
  C: "d6@2 e6@2 f6@2 g6@2 a6@12 f6 a6 ~ c7 f7@4 f7 e7 ~ c7", D: "a6@16 ~@4 e6 a6 ~ c7 e7@4 d7 a6 ~ f6",
  E: "a6@16 ~@4 e6 a6 ~ c7 d7@4 d7 a6 ~ f6", F: "d6",
  G: "[~@15 d6 f6 a6 ~ d7@4 d7 a6 f6 ~ d6@16 ~@3 d6 ~ f6 a6 d7@4 d7 a6 ~ f6 d6@2 e6@2 f6@2]/2",
  H: "[g6@2 a6@12 f6 a6 c7 ~ f7@4 f7 e7 c7 ~ a6@16 ~@3 e6 ~ a6 c7 e7@4 d7 a6 ~ f6 d6@16 ~@4 d6 f6 a6 ~ d7@4 d7 a6 f6 ~ d6@16 ~@3 d6 f6 ~ a6 d7@4 d7 a6 ~ f6 d6@2 e6@2 f6@2 g6@2]/4",
  I: "[a6@12 f6 a6 c7 ~ f7@4 f7 e7 c7 a6@16 ~@4 e6 a6 ~ c7 d7@4 d7 a6 ~ f6 d6@32 ~@9]/3", J: "~@24 d6 f6 a6 ~ d7@4",
  K: "d7 a6 f6 d6@16 ~@4 d6 f6 ~ a6 d7@4 d7", L: "a6 ~ f6 d6@2 e6@2 f6@2 g6@2 a6@12 f6 a6 c7 ~ f7@3 f7 ~",
  M: "e7 c7 a6@16 ~@4 e6 a6 ~ c7 e7@4 d7 a6", N: "~ f6 d6@16 ~@4 d6 f6 a6 d7@4 d7 ~ a6",
  O: "f6 d6@16 ~@4 d6 f6 ~ a6 d7@4 d7 a6 f6", P: "~ d6@2 e6@2 f6@2 g6@2 a6@11 f6 ~ a6 c7 f7@4 f7 ~ e7 c7",
  Q: "a6@16 ~@4 e6 a6 ~ c7 d7@4 d7 a6 f6 ~",
  R: "[d6@16 ~@3 d6 ~ f6 a6 d7@4 d7 ~ a6 f6 d6@16 ~@4 d6 f6 a6 ~ d7@4 d7 a6 f6 ~ d6@2 e6@2 f6@2 g6@2 a6@11 f6 ~ a6 c7 f7@4 f7 e7 ~ c7 a6@16 ~@4 e6 a6 c7 ~ d7@4 d7 a6 f6 ~ d6@16 ~@18]/5",
})).s("gm_flute").gain(0.26).pan(0)

// chords · piccolo · "extra"
const piccolo = note(`<
  ~@4 A@5 B C D B@2 C E F@2 G H I J K G L M J K N@2 O@5 P@4 Q@4 R@4 S@4 T@7 U@4 V W@2 X Y@2 Z AA@2 AB@5 AC@2 AD@3 AE@3
  ~@24 AF@2 AG@3 AH AI@4 AJ AK@2 AL AM@4 AN AO AP@2 AQ AR AS AT AU AV AW AX@5
>`.pickRestart({
  A: "[[e3,e5]@2 [f3,f5]@2 [e3,e5]@2 ~ [c3,c5]@2 [d3,d5]@2 [a2,a4]@2 [d2,d4]@131 ~@4 d5 f5 ~ a5 d6@4 d6 a5 ~ f5]/5", // E F E C D A D
  B: "d5@16 ~@4 d5 f5 ~ a5 d6@4 d6 a5 ~ f5", C: "d5@2 e5@2 f5@2 g5@2 a5@12 f5 a5 ~ c6 f6@4 f6 e6 ~ c6",
  D: "a5@16 ~@4 e5 a5 ~ c6 e6@4 d6 a5 ~ f5", E: "a5@16 ~@4 e5 a5 ~ c6 d6@4 d6 a5 ~ f5", F: "[[f4,d5]@31 ~]/2",
  G: "[d4,d5]@2 [c4,c5]@2 [a3,a4]@2 g4 f4, ~@3 [a3,d4]", // D C A D5
  H: "g4@4 g4@2 f4 g4@3 a4@2 d4@2 f4@2, [b3,d4]@7 [b3,d4]@5 b3@4", // Bm
  I: "g4@4 g4@2 f4 [b3,d4,g4]@5 d4@2 f4@2, [b3,d4]@7 ~@5 b3@4", // G Bm
  J: "g4@2 g4@2 g4@2 a4 g4@3 f4@2 [b3,d4]@2 [a3,c4]@2, [b3,d4]@7 [b3,d4]@5 ~@4", K: "[f3,d4]@3 ~",
  L: "g4@4 g4@2 f4 g4@3 a4@2 d4@2 f4@2, [b3,d4]@6 ~ [b3,d4]@5 b3@4", // Bm
  M: "g4@2 g4@2 g4@2 f4 [b3,d4,g4]@5 d4@2 f4@2, [b3,d4]@7 ~@5 b3@4", // G Bm
  N: "[~@4 e4@4 e4@4 e4@4 e4@5 f4@5 ~ [bb3,d4]@5 [bb3,d4]@5 [bb3,e4]@5 ~ [bb3,f4]@5 [bb3,g4]@5 [bb3,f4]@5 ~ [bb3,e4]@5, ~@8 [bb3,d4]@8 [bb3,d4]@11 g4@21 ~@16]/2", // Bb Bbdim Bb5 Eb Bb5 Bbdim Bb
  O: "[~@4 e4@4 e4@4 e4@4 e4@5 f4@6 ~@5 [bb3,d4]@5 [bb3,e4]@5 ~ [bb3,f4]@5 bb3@5 [bb3,f4]@5 ~ [bb3,e4]@5 f4@2 e4@2 d4@2 a3@2 f4@2 e4@2 d4@2 a3@2 f4@2 e4@2 d4@2 a3@2 f4@2 ~ d4@2 a3@2 e4@2 d4@2 db4@2 a3@2 e4@2 d4@2 db4@2 a3@2 e4@2 d4@2 db4@2 a3@2 e4@2 d4@2 db4@2 a3@2 f3@8 d4@4 d4@4 d4@4 d4@4 d4@3 d4@4 ~@2, ~@8 [bb3,d4]@8 [bb3,d4]@11 [bb3,d4]@5 ~@58 e4@2 ~@51 f3@8 g3@8 ~, ~@29 g4@19 g4@79 ~@33]/5", // Bb Bbdim Bb5 Bbdim Bb
  P: "[~@2 [d4,f4]@4 [g3,d4]@4 [a3,f4]@8 [f3,d4]@8 [bb3,d4]@12 bb3@8 f4@4 d4@3 a3@8 e3@12 [f3,d4]@12 ~@8 f3@8 ~@8 g3@8 ~@3 [e4,g4]@8, ~@26 g4@8 ~@12 a3@7 ~@8 c4@4 ~@28 d4@4 ~@12 d4@4 ~@15]/4", // Dm G5 Dm Bb Dm Em
  Q: "[~@8 [a3,f4]@8 [f3,d4]@8 [bb3,d4]@12 ~@7 a3@8 f3@8 e3@12 f3@8 d5 f5 a5 ~ d6@4 d6 a5 f5 ~ d5@16 ~@3 d5 ~ f5 a5 d6@4 d6 a5 ~ f5 d5@2 e5@2 f5@2, ~@24 g4@8 ~@11 f4@4 ~@4 d4@4 ~@4 c4@4 ~@8 d4@12 ~@45]/4", // Dm Bb
  R: "[g5@2 a5@12 f5 a5 c6 ~ f6@4 f6 e6 c6 ~ a5@16 ~@3 e5 ~ a5 c6 e6@4 d6 a5 ~ f5 d5@16 ~@4 d5 f5 a5 ~ d6@4 d6 a5 f5 ~ d5@16 ~@3 d5 f5 ~ a5 d6@4 d6 a5 ~ f5 d5@2 e5@2 f5@2 g5@2]/4",
  S: "[a5@12 f5 a5 c6 ~ f6@4 f6 e6 c6 a5@16 ~@4 e5 a5 ~ c6 d6@4 d6 a5 ~ f5 [f4,d5]@61 ~@12]/4", // Dm
  T: "[~@29 [c4,c5]@8 [a3,a4]@8 g4@4 f4@4 g4@8 g4@4 f4@2 g4@6 a4@4 d4@4 f4@4 g4@8 g4@4 f4@2 [b3,d4,g4]@10 d4@4 f4@4 g4@4 g4@4 g4@4 a4@2 g4@6 f4@4 [b3,d4]@4 [a3,c4]@4 [f3,d4]@24 ~@8 [d4,d5]@8 [c4,c5]@8 [a3,a4]@8 g4@4 f4@4 g4@8 g4@3, ~@45 [a3,d4]@8 [b3,d4]@14 [b3,d4]@10 b3@8 [b3,d4]@14 ~@10 b3@8 [b3,d4]@14 [b3,d4]@10 ~@64 [a3,d4]@8 [b3,d4]@11]/7", // C A G Bm Am Dm D C …
  U: "[~ f4@2 g4@6 a4@4 d4@4 f4@4 g4@4 g4@4 g4@4 f4@2 [b3,d4,g4]@10 d4@4 f4@4 g4@4 g4@4 g4@4 a4@2 g4@6 f4@4 [b3,d4]@4 [a3,c4]@4 [f3,d4]@24 ~@12 e4@4 e4@3, ~@3 [b3,d4]@10 b3@8 [b3,d4]@14 ~@10 b3@8 [b3,d4]@14 [b3,d4]@10 ~@51]/4", // G Bm Am Dm Bm
  V: "~ [bb3,d4]@8 e4@4 [bb3,d4]@6 f4@3 ~@5 [bb3,e4]@5, ~@13 e4@5 ~@14", // Bb Bbdim
  W: "[[bb3,f4]@5 ~@20 e4@4 e4@4 e4@4 e4@5 ~ [bb3,d4]@10 [bb3,d4]@5 ~ [bb3,e4]@5, ~@29 [bb3,d4]@8 ~@27]/2", // Bb5 Bb Bbdim Bb
  X: "[bb3,f4]@5 [bb3,g4]@5 ~ [bb3,f4]@5 [bb3,e4]@5 ~@11", // Bb5 Eb Bb5 Bbdim
  Y: "[~@21 e4@2 d4@2 db4@2 a3@2 e4@2 d4@2 db4@2 a3@2 e4@2 d4@2 db4@2 a3@2 e4@2 d4@2 db4@2 a3@2 f3@8 d4@3]/2",
  Z: "~ d4@4 d4@4 d4@4 d4@4 d4@4 ~@4 [d4,f4]@4 [g3,d4]@3, ~@5 f3@8 g3@8 ~@11", // Dm G5
  AA: "[~ [a3,f4]@7 [f3,d4]@8 g4@8 g4@4 f4@4 d4@4 f4@4 d4@4 d4@4 d4@4 c4@4 a3@4 e4@4, ~@4 [bb3,d4]@3 bb3@2 a3@2 a3@2 e3@3]/2", // Dm Bb
  AB: "[[f3,d4]@12 ~@7 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 [d4,g4]@4 [e4,g4]@8 [d4,f4]@4 [g3,d4]@3 [a3,f4]@8 [f3,d4]@8 g4@8 g4@4 f4@4 d4@4 f4@4 d4@4 d4@4 d4@3 [e3,c4] c4@4 a3@3 e4@4 [f3,d4]@12 ~@8 [f3,d4]@8 d4@4 d4@3, ~@19 f3@8 f3@8 g3@8 ~@35 [bb3,d4]@12 bb3@8 a3@8 f3@8 e3@12 ~@27 f3@7]/5", // Dm G5 Em Dm G5 Dm C Dm …
  AC: "[~ d4@4 d4@4 [d4,a4]@4 [e4,g4]@7 [d4,f4]@4 [g3,d4]@4 [a3,f4]@8 [f3,d4]@8 g4@8 g4@4 f4@4 d4@4, ~ g3@8 ~@35 [bb3,d4]@12 bb3@8]/2", // D5 Em Dm G5 Dm Bb
  AD: "[f4@4 d4@4 d4@4 d4@3 c4@4 a3@4 e4@4 [f3,d4]@12 ~@8 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 [d4,a4]@3 [e4,g4]@8 [d4,f4]@4 [g3,d4]@4 [a3,f4]@6, a3@8 f3@7 e3@12 ~@20 f3@8 f3@8 g3@8 ~@25]/3", // Dm D5 Em Dm G5 Dm
  AE: "[~@2 [f3,d4]@8 g4@8 g4@4 f4@4 d4@4 f4@4 d4@3 d4@4 d4@4 c4@4 a3@4 e4@4 [f3,d4]@4 f3@4 d5 f5 ~ a5 d6@4 d6 a5 f5 ~@20, ~@10 [bb3,d4]@12 bb3@8 a3@7 f3@8 e3@12 ~@4 d4@8 ~@27]/3", // Dm Bb
  AF: "[~@19 e4@4 e4@4 [bb3,d4]@8 e4@4 e4@5 f4@3 ~@5 [bb3,e4]@5 [bb3,f4]@5 ~@2, ~@39 [bb3,d4]@8 ~@17]/2", // Bb Bbdim Bb5 Bb
  AG: "[~@18 e4@4 e4@4 e4@4 e4@5 [bb3,d4]@10 ~ [bb3,d4]@5 [bb3,e4]@5 [bb3,f4]@5 [bb3,g4]@5 ~ [bb3,f4]@5 [bb3,e4]@5 ~@19, ~@11 [bb3,d4]@4 ~@33]/3", // Bb Bbdim Bb5 Eb Bb5 Bbdim Bb
  AH: "~@7 d4 db4 a3 e4 d4 db4 a3 e4 d4, ~@13 e4@2 ~@17",
  AI: "[db4@2 a3@2 e4@2 d4@2 db4@2 a3@2 f3@8 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 ~@3 [d4,f4]@4 [g3,d4]@4 [a3,f4]@8 [f3,d4]@8 g4@8 g4@4 f4@4 d4@4 f4@4 d4@4 d4@3 d4@4 c4@4 a3@4 e4@4 [f3,d4]@10, ~@28 f3@8 g3@8 ~@27 [bb3,d4]@12 bb3@8 a3@8 a3@7 e3@12 ~@10]/4", // Dm G5 Dm Bb
  AJ: "~@5 d4@2 d4@2 d4@2 d4@2 [g3,d4]@2 d4, ~@5 f3@4 f3@4 ~@3", // G5
  AK: "[~ [d4,g4]@4 [e4,g4]@8 [d4,f4]@4 [g3,d4]@4 [a3,f4]@8 [f3,d4]@8 g4@8 g4@4 f4@4 d4@4 f4@3 d4@4, ~@37 [bb3,d4]@12 bb3@8 a3@7]/2", // G5 Em Dm G5 Dm Bb
  AL: "d4!2 c4 a3 e4 [f3,d4]@3, f3@2 e3@3 ~@3", // Dm
  AM: "[~@8 [f3,d4]@8 d4@4 d4@3 d4@4 d4@4 [d4,a4]@4 [e4,g4]@8 [d4,f4]@4 [g3,d4]@4 [a3,f4]@8 [f3,d4]@8 g4@8 g4@4 f4@3 d4@4 f4@4 d4@4 d4@4 d4@4 c4@4 a3@4 e4@4 [f3,d4]@12 ~@2, ~@16 f3@7 g3@8 ~@36 [bb3,d4]@12 bb3@7 a3@8 f3@8 e3@12 ~@14]/4", // Dm D5 Em Dm G5 Dm Bb
  AN: "~@6 d4@4 d4@3 d4@4 d4@4 d4@4 d4@4 [d4,a4]@3, ~@6 f3@7 f3@8 g3@8 ~@3", // D5
  AO: "~ [e4,g4]@8 [d4,f4]@4 [g3,d4]@4 [a3,f4]@8 [f3,d4]@7", // Em Dm G5 Dm
  AP: "[~ g4@7 g4@4 f4@4 d4@4 f4@4 d4@4 d4@4 d4@4 c4@4 a3@4 e4@4 [f3,d4]@4 f3@4 d5 f5 a5 ~ d6@4, ~ [bb3,d4]@11 bb3@8 a3@8 f3@8 e3@12 ~@4 d4@8 ~@4]/2", // Dm Bb
  AQ: "d6 a5 f5 d5@16 ~@4 d5 f5 ~ a5 d6@4 d6", AR: "a5 ~ f5 d5@2 e5@2 f5@2 g5@2 a5@12 f5 a5 c6 ~ f6@3 f6 ~",
  AS: "e6 c6 a5@16 ~@4 e5 a5 ~ c6 e6@4 d6 a5", AT: "~ f5 d5@16 ~@4 d5 f5 a5 d6@4 d6 ~ a5",
  AU: "f5 d5@16 ~@4 d5 f5 ~ a5 d6@4 d6 a5 f5", AV: "~ d5@2 e5@2 f5@2 g5@2 a5@11 f5 ~ a5 c6 f6@4 f6 ~ e6 c6",
  AW: "a5@16 ~@4 e5 a5 ~ c6 d6@4 d6 a5 f5 ~",
  AX: "[d5@16 ~@3 d5 ~ f5 a5 d6@4 d6 ~ a5 f5 d5@16 ~@4 d5 f5 a5 ~ d6@4 d6 a5 f5 ~ d5@2 e5@2 f5@2 g5@2 a5@11 f5 ~ a5 c6 f6@4 f6 e6 ~ c6 a5@16 ~@4 e5 a5 c6 ~ d6@4 d6 a5 f5 ~ d5@16 ~@18]/5",
})).s("gm_piccolo").gain(0).pan(0)

// chords · string ensemble 2 · "Slow Strings"
const string_ensemble_2 = note("<~@93 A@5 ~ B@5 ~ C@4 ~@33>".pickRestart({
  A: "[~@78 e6@15 ~ f6@44 ~@22, ~@9 [d4,a4]@129 ~@22, ~@54 a5@83 ~@23]/5", // D5
  B: "[~@114 f6@31 ~@15, ~@6 d4@139 ~@15, ~@36 a4@109 ~@15, ~@67 d5@78 ~@15]/5",
  C: "[~@64 e6@15 f6@32 ~@17, ~ d4@54 ~@9, ~@33 a4@78 ~@17]/4",
})).s("gm_string_ensemble_2").gain(0.24).pan(0.3)

// bass · synth bass 1 · "Synth"
const bass_2 = note(`<
  ~@9 A B C A@2 B C A@2 ~ D E F G ~ H ~ I ~@7 J@2 K L ~ M N@4 O@2 P Q@5 R@2 S T U V W X Y Z ~@5 AA AB AC AD AE@2 AF@2 AG
  AH AI AJ@2 AK AL AM AN AO@2 AP AQ AR AS@3 AT AU@4 AV AW AX AY@5 AZ BA BB@2 ~@5 BC BD@3 BE BF BG BH BI BJ BK BL BM BN
  BO BP BQ@3 BR@3 C BS@5
>`.pickRestart({
  A: "d2@2 d2!2 d2@2 d2!2 d2@2 d2!2 d2@2 d2!2", B: "d2@2 e2@2 f2@2 f2!2 f2@2 f2!2 f2@2 g2@2",
  C: "a2@2 a2!2 a2@2 a2!2 a2@2 a2!2 a2@2 a2!2", D: "~@3 g2 g2@2 ~@10", E: "~@7 g2", F: "~@3 g2 ~@10 g2@2",
  G: "~@11 d2 ~@2 d2@2", H: "~@6 g2!2", I: "g2@2 ~@9 g2 ~@4", J: "[~@3 d3@2 ~@6 d3@4 ~@15 c3@4 ~@30]/2",
  K: "~@2 bb2@2 ~@6 bb2@4 ~@15 c3@3", L: "~@3 c3@2 ~@4 c3@4 ~@8 d3@4 d3@4 d3@3", M: "~ c3 ~@14",
  N: "[~@23 d3@4 ~@4 c3@2 ~@6 c3@4 ~@16 d2@4 d2@2 d2@2 d2@3 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 e2@4 f2@4 f2@2 f2@2 f2@4 f2@2 f2@2 f2@4 g2@4 a2@4 a2@2]/4",
  O: "[a2 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@3 d2@2 d2@2]/2",
  P: "d2@2 d2!2 d2@2 d2!2 d2@2 d2!2 d2@2 e2@2",
  Q: "[f2@4 f2@2 f2@2 f2@4 f2@2 f2@2 f2@4 g2@3 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@3 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2 d2@4 d2@2 d2@2 ~@11]/5",
  R: "~@25 g2@2 ~@5", S: "~ g2@4 ~@4 g2@2 ~@6 g2@4 ~@11", T: "~@17 g2@4 ~@8 d2@3", U: "~@5 d2@4 ~@23", V: "~@29 g2@3",
  W: "~@11 g2@2 ~@14 g2@2 ~@3", X: "~@27 g2@2 ~@3", Y: "~@9 g2@2 ~@2 g2@4 g2@4 ~@11", Z: "~ d3@4 d3@4 ~@8 c3@4 ~@11",
  AA: "~@25 d3@2 ~@5", AB: "~ d3@4 bb2@4 ~@4 bb2@4 ~@8 c3@2 ~@5", AC: "~ c3@4 ~@5 d3@2 ~@4 d3@4 ~@6 bb2@2 ~@4",
  AD: "~@5 d3 d3@2 ~@8", AE: "[c3@4 ~@21 d3@2 ~@4 d3@4 ~@16 c3@4 ~@4 c3@3 ~@2]/2",
  AF: "[~@3 d3 ~@7 bb2!2 ~@2 bb2@2 ~@3 d3 ~@11]/2", AG: "~@5 d3@2 d3@2 ~@14 d3@2 ~@7",
  AH: "~@5 bb2@2 bb2@2 ~@4 bb2@4 c3@3 c3@2 ~@2 c3@4 c3@4", AI: "d3@2 ~@8 bb2 ~@5",
  AJ: "[~@27 c3@4 d3@4 d3@2 d3@2 d3@4 d3@4 ~@17]/2", AK: "~@7 c3@2 ~@7", AL: "~@7 bb2@2 ~@7",
  AM: "~@5 d3@4 ~@8 c3@2 ~@13", AN: "~@9 d3@4 ~@19",
  AO: "[~@28 c2@2 d2@4 d2@2 d2@4 a1@4 c2@4 d2@4 d2@4 d1@3 c2@2 d2@3]/2",
  AP: "~ d2@2 d2@4 a1@4 c2@4 d2@4 c2@4 d1@4 c2@2 d2@3", AQ: "~ d2@2 d2@4 a1@4 c2@4 d2@4 d2@3 d1@4 c2@2 d2@4",
  AR: "d2 d2@2 a1@2 c2@2 d2@2 c2@2 d1@2 c2 d2@2",
  AS: "[d2@2 d2@4 a1@4 c2@4 d2@3 d2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@4 c2@4 d2@4 c2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@4 c2@3 d2@4 d2@4 d1@4 c2@2 d2@4 d2@2]/3",
  AT: "d2@2 a1@2 c2@2 d2@2 c2@2 d1@2 c2 d2@2 d2",
  AU: "[d2@4 a1@3 c2@4 d2@4 d2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@4 c2@4 d2@4 c2@4 d1@4 c2@2 d2@4 d2@2 d2@3 a1@4 c2@4 d2@4 d2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@4 c2@4 d2@4 c2@4 d1@4 c2@2 d2@4 d2 d2@3]/4",
  AV: "~ a1@4 c2@4 d2@4 d2@4 d1@4 c2@2 d2@4 d2@2 d2@3", AW: "~ a1@4 c2@4 d2@4 c2@4 d1@4 c2@2 d2@3 d2@2 d2@4",
  AX: "a1@2 c2@2 d2@2 d2@2 d1@2 c2 d2@2 d2 d2@2",
  AY: "[a1@4 c2@4 d2@4 c2@4 d1@3 c2@2 d2@4 d2@2 d2@4 a1@4 c2@4 d2@4 d2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@4 c2@4 d2@4 c2@3 d1@4 c2@2 d2@4 d2@2 d2@4 a1@4 c2@4 d2@4 d2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@4 c2@4 d2@3 c2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@3]/5",
  AZ: "~ c2@4 d2@4 d2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@3", BA: "~ c2@3 d2@4 c2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@4",
  BB: "[c2@4 d2@4 d2@4 d1@4 c2@2 d2@4 d2@2 d2@4 a1@3 c2@4 d2@4 c2@4 d1@4 ~@17]/2", BC: "~@5 d3 ~@2",
  BD: "[~@23 c3@4 ~@4 d3@2 d3@2 ~@8 bb2@4 bb2@2 ~@14 d3@2 ~@2 d3@3 ~@24 d3@2]/3", BE: "~@3 d3@2 d3@2 d3!2 ~@4 bb2@2 ~",
  BF: "~@9 c3@4 ~@4 c3@4 ~@11", BG: "~@15 bb2@2 ~@8 d3@3 ~@4", BH: "~@14 d3 ~", BI: "~@29 bb2@2 ~",
  BJ: "~@11 c3@2 c3@2 c3@4 c3@4 d3@4 d3@2 ~@3", BK: "~@3 d3@4 ~@6 bb2@2 ~@17", BL: "~@11 d3@2 d3 ~@2",
  BM: "~@12 d3 ~@4 d3@4 ~@4 bb2@2 ~@5", BN: "~@11 c3@2 ~@12 d3@2 ~@5", BO: "~ d3@4 ~@27", BP: "d3@2 ~@3 c3 ~@7 d3 ~@2",
  BQ: "[~@3 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 e2@4 f2@4 f2@2 f2@2 f2@4 f2@2 f2@2 f2@3 g2@4 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 a2@4 a2@2]/3",
  BR: "[a2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 e2@4 f2@4 f2@2 f2@2 f2@3 f2@2 f2@2 f2@4 g2@4]/3",
  BS: "[d2@4 d2@2 d2@2 d2@4 d2@2 d2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 e2@4 f2@3 f2@2 f2@2 f2@4 f2@2 f2@2 f2@4 g2@4 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 a2@4 a2@2 a2@2 d2@4 d2@2 d2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 ~@3]/5",
// … 182 more lines

More by ABBA