Strudelify
Fragile cover art

1995 · The Living Sea

Fragile

Sting

KeyD♭ majorTempo86 bpm
0:00/0:00
// Fragile — Sting
// 86 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 69 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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 · acoustic guitar nylon · "guitar solo"
const acoustic_guitar_nylon = note("<~@42 A B C D E F G H I@2 J K L M@2 N O P Q R O P S T S U@2>".pickRestart({
  A: "~ f5@12 bb4 f5 eb5", B: "f5 ~ gb5 ab5 f5@9 ~ db5 bb4", C: "~ c5 db5 bb4 c5@8 bb4 bb4@3",
  D: "~ bb4 c5 db5 eb5 ~ f5 gb5 ab5 f5 ~ gb5 eb5 f5 ~ db5", E: "eb5!2 eb5@4 ~ f5@6 f5 bb5 c6",
  F: "db6@2 db6 c6 ~@10 c6 db6", G: "c6 ~ c6 bb5 ~@9 bb5 a5@2", H: "bb5 ~@2 bb5 ~@3 bb5 ~@8",
  I: "[~@8 f5 eb5 ~ gb5@2 ~@2 db5@2 c5 bb4 c5@2 db5 eb5 f5@2 db5 c5 bb4@2 bb4 c5 ~]/2", J: "db5 eb5@2 eb5@10 ~ bb4 db5",
  K: "c5@2 ~ [c5,db5]@2 ~@11", L: "~@3 bb4 ~ f5 ~ f5 ~@2 f5@3 gb5 ~ gb5, ~@9 gb5@2 ~@5",
  M: "[gb5 ~@2 f5 ~ f5 ~ eb5@2 ~ db5 ~@3 db5@9 bb4 f5 ~ f5 gb5@2 eb5@2 ~]/2", N: "c5@2 db5 c5@2 db5@2 c5@2 db5@2 bb4@5",
  O: "~@2 bb4 gb4 ~ [f4,db5] ~ [gb4,eb5]@6 [f4,db5]@3, [gb4,eb5] ~@3", // Db Ebm Db Ebm
  P: "~@2 a4 f4 ~ [eb4,c5] ~ [f4,db5]@6 [eb4,c5]@3, [f4,db5] ~@3", // Cm Db Cm Db
  Q: "~ db4 f4 [eb4,c5] ~ [eb4,c5] ~ [db4,bb4]@5 [db4,bb4] ~ [eb4,c5] ~, [f4,db5]@3 ~@13", // Cm Gb Cm Db
  R: "~ db4 f4 [eb4,c5] ~ [eb4,c5] ~ [db4,bb4]@4 [eb4,c5] ~ [f4,db5]@3, [f4,db5]@3 ~@13", // Cm Gb Cm Db
  S: "~ db4 f4 [eb4,c5] ~ [eb4,c5] ~ [db4,bb4]@2 [db4,bb4] ~@2 [db4,bb4] ~ [eb4,c5] ~, [f4,db5]@3 ~@13", // Cm Gb Cm Db
  T: "~ db4 f4 ~@2 ab4 ~@2 gb4 [db4,gb4,bb4] ~@2 [db4,gb4,bb4] ~ [eb4,ab4,c5] ~, [f4,db5]@3 c4@3 ~ db4@2 ~@7, ~@2 eb4 ~@5", // Gb Ab Db
  U: "[~ db4 f4 [eb4,c5] ~ [eb4,c5] ~ db4@13 ~@12, [f4,db5]@3 ~@4 bb4@11 ~@14]/2", // Cm Db
})).s("gm_acoustic_guitar_nylon").gain(0.27).pan(0.3)

// chords · acoustic guitar nylon · "guitar solo" · soft notes
const acoustic_guitar_nylon_2 = note("<~@46 A B C D E ~ F G@2 H I ~@12>".pickRestart({
  A: "~@6 eb5 ~@9", B: "~@4 bb5@9 ~@3", C: "~@4 a5@9 ~@3", D: "~@2 a5 ~@2 a5 ~@10", E: "~@10 f5 ~@2 f5 eb5 ~",
  F: "~@13 f4 ~@2", G: "[~@5 bb4@14 ~@3 eb5 ~@9]/2", H: "~ f5@2 ~@9 db5 ~@3", I: "~@9 eb5 ~@5 eb5",
})).s("gm_acoustic_guitar_nylon").gain(0.18).pan(0.3)

// other · alto sax · "alto"
const alto_sax = note(`<
  A@3 B C@7 D E F G D E F ~ H I J K H L M N@4 O@3 P Q R S T Q R U V ~@3 W X ~@2 Y Z AA ~ Y Z AA ~ AB Q R S V Q R U V ~@3
>`.pickRestart({
  A: "[~@10 bb3@2 ~ f4@2 eb4@2 f4@28 ~@3]/3", B: "~ bb3@2 f4@2 eb4@2 ~ f4@4 f4@2 eb4@2",
  C: "[f4@5 ~ f4 eb4@13 bb3@3 f4 ~ eb4@2 f4@25 ~@2 bb3@2 f4@2 eb4@2 f4@6 ~@2 f4 eb4@2 f4@13 ~@11 f4@5 eb4@2 db4@4 ~ f4@2 f4@3, ~@71 eb4 ~@40]/7",
  D: "db4@5 c4@2 bb3@2 bb3@2 db4@2 db4@3", E: "db4@5 c4@2 bb3@2 bb3@2 a3@2 a3@3", F: "c4@5 bb3@2 db4@9",
  G: "f4@5 eb4@2 db4@4 f4@2 f4@3", H: "~@4 bb4 ab4@2 gb4@2 f4@2 eb4@2 db4 eb4 f4", I: "eb4 f4", J: "f4@4 ~ f4 gb4 ab4",
  K: "f4 ~", L: "eb4 a4 f4 eb4", M: "f4@4 f4 eb4 db4 f4",
  N: "[f4@8 ~@4 bb4 ab4@2 gb4@9 ~@4 gb4 f4@2 eb4@9 ~@4 ab4 gb4@2 f4@9 ~@2 db4@2 eb4@2 f4@2]/4",
  O: "[f4@8 ~@4 bb4 ab4@2 gb4@7 ab4@2 bb4@2 ab4@2 gb4 f4@2 eb4@5 c4@4 db4@4 c4@4]/3", P: "bb3@4 bb3 c4 db4!2",
  Q: "eb4 db4", R: "f4!2", S: "bb4@3 ab4@2 ab4@2 f4@5 ~@2 ab4@2", T: "bb4@3 ab4@2 ab4@2 f4@5 f4@2 db4@2",
  U: "bb4@3 ab4@2 ab4@2 f4@5 f4@2 ab4@2", V: "bb4@3 ab4@2 ab4@2 f4@5 ~@4", W: "~ f4 eb4 db4", X: "db4",
  Y: "~@4 db4 eb4 f4 ab4", Z: "f4 eb4@2 db4@2 c4@3 bb3@2 c4@2 db4@2 f4@2", AA: "bb4 ab4@2 gb4@2 f4@3 eb4@8",
  AB: "bb4@8 ~ c5 bb4 ab4 gb4 f4 eb4 db4",
})).s("gm_alto_sax").gain(0.14)

// other · tenor sax · "tenor"
const tenor_sax = note(`<
  A@2 B@7 ~@5 C D E F ~ G H I J G K L M@4 N@3 O P Q R S P Q T U ~@3 V W ~@2 X Y Z ~ X Y Z ~ AA P Q R U P Q T U ~@3
>`.pickRestart({
  A: "[~ ab3@7]/2", B: "[~@6 g3@34 ~@5 ab3@30 bb3@34 ~@3]/7", C: "db4@5 c4@2 bb3@4 db4@2 db4@3",
  D: "bb3@5 ab3@2 gb3@2 gb3@2 bb3@2 bb3@3", E: "bb3@5 a3@2 gb3@2 gb3@2 f3@2 f3@3", F: "a3@5 gb3@2 bb3@9",
  G: "~@4 db4 c4@2 bb3@2 ab3@2 gb3@2 f3 gb3 ab3", H: "a3!2", I: "bb3@4 ~ bb3 c4 db4", J: "bb3 ~", K: "a3 c4 bb3 a3",
  L: "bb3@4 bb3 ab3 gb3 ab3",
  M: "[bb3@8 ~@4 db4 c4@2 bb3@9 ~@4 bb3 ab3@2 gb3@9 ~@4 c4 ab3@2 bb3@9 ~@2 f3@2 gb3@2 ab3@2]/4",
  N: "[bb3@8 ~@4 db4 c4@2 bb3@7 c4@2 db4@2 c4@2 bb3 ab3@2 gb3@5 a3@4 bb3@4 a3@4]/3", O: "bb3@4 f3 ab3 f3!2", P: "gb3!2",
  Q: "db4 eb4", R: "db4@3 c4@2 c4@2 bb3@5 ~@2 c4@2", S: "db4@3 c4@2 c4@2 bb3@5 bb3@2 f3@2",
  T: "db4@3 c4@2 c4@2 bb3@5 bb3@2 c4@2", U: "db4@3 c4@2 c4@2 bb3@5 ~@4", V: "~ bb3 ab3 gb3", W: "f3",
  X: "~@4 f3 gb3 ab3 c4", Y: "bb3 ab3@2 gb3@2 f3@3 f3@2 gb3@2 ab3@2 c4@2", Z: "gb4 f4@2 eb4@2 db4@3 c4@8",
  AA: "db4@8 ~ eb4 db4 c4 bb3 ab3 bb3 f3",
})).s("gm_tenor_sax").gain(0.14)

// other · trumpet · "trumet"
const trumpet = note(`<
  A@2 B@7 ~@11 C D E F G H I@4 J@3 K L M N O L M P Q ~@3 R S ~@2 T U V ~ T U V ~ W L M N Q L M P Q ~@3
>`.pickRestart({
  A: "[~ c4@7]/2", B: "[~@6 bb3@34 ~@5 db4@30 eb4@34 ~@3]/7", C: "c4!2", D: "db4@4 ~ db4 eb4 f4", E: "db4 ~",
  F: "~@4 gb4 f4@2 eb4@2 db4@2 c4@2 bb3 c4 db4", G: "c4 eb4 db4 c4", H: "db4@4 bb3 c4 db4!2",
  I: "[db4@8 ~@4 gb4 f4@2 eb4@9 ~@4 eb4 db4@2 c4@9 ~@4 f4 eb4@2 db4@9 ~@2 bb3@2 c4@2 db4@2]/4",
  J: "[db4@8 ~@4 gb4 f4@2 eb4@7 f4@2 gb4@2 f4@2 eb4 db4@2 c4@5 eb4@4 f4@4 eb4@4]/3", K: "db4@4 db4 eb4 f4 ab4",
  L: "bb4!2", M: "a4!2", N: "f4@3 eb4@2 eb4@2 db4@5 ~@2 eb4@2", O: "f4@3 eb4@2 eb4@2 db4@5 f4@2 ab4@2",
  P: "f4@3 eb4@2 eb4@2 db4@5 db4@2 eb4@2", Q: "f4@3 eb4@2 eb4@2 db4@5 ~@4", R: "~ db4 c4 bb3", S: "bb3",
  T: "~@4 bb3 c4 db4 f4", U: "db4 c4@2 bb3@2 ab3@3 bb3@2 c4@2 bb3@2 db4@2", V: "gb4 f4@2 bb4@2 ab4@3 gb4@8",
  W: "f4@8 ~ ab4 gb4 f4 eb4 f4 gb4 ab4",
})).s("gm_trumpet").gain(0.14)

// bass · fretless bass · "Bass"
const bass = note(`<
  ~@2 A@5 B@4 C D E F G D E H C I J K L D H M N D K O P Q M R S T U V W T U M N D M J C D M H X Q Y H L Z O AA AB AC AD
  R AB AE AF AG AH ~
>`.pickRestart({
  A: "[~@11 f2@30 ~@4 bb1@30 ~@5]/5", B: "[f2@47 bb1@5 ~ bb1 ~ bb1@4 ~ bb1@3 ~]/4",
  C: "eb3@5 ~ eb3 ~ eb3@3 bb2 eb2@3 ~", D: "a2@5 ~ a2 ~ f2@5 ~ f2 ~", E: "eb2@6 eb2 ~ bb1@5 ~ bb1 ~",
  F: "bb1@5 ~ bb1 ~ bb1@6 bb1 ~", G: "eb2@5 ~ eb2 ~ eb2@4 ab2@3 ~", H: "bb1@5 ~ bb1 ~ bb1@6 bb1!2",
  I: "a2@6 a2 ~ f2@5 ~ f2 ~", J: "bb1@5 ~ bb1 ~ bb1@4 bb1@3 ~", K: "bb2@4 ~@2 bb2 ~ bb2@6 f2@2",
  L: "eb2@5 ~ eb2 ~ eb2@6 bb2 ~", M: "bb2@5 ~ bb2 ~ bb2@6 f2 ~", N: "eb2@5 ~ eb2 ~ eb2@6 eb2!2",
  O: "bb1@5 ~ bb1 ~ bb1@6 bb1@2", P: "eb2@5 ~ eb2 ~ eb2@6 bb2@2", Q: "a2@5 ~ a2 ~ f2@6 f2 ~",
  R: "gb2@6 ~ gb2 gb2@6 ~ gb2", S: "f2@6 ~ f2!2 ~ f2@4 f2!2", T: "bb2@6 ~ bb2!2 ~ bb2@4 f3@2",
  U: "bb3@7 f3 bb2 ~ bb2@3 ~ f2 ~", V: "gb2@6 ~ gb2 gb2@7 gb2", W: "f2@6 ~ f2!2 ~ f2@4 c3 f2",
  X: "eb2@5 ~ eb2 ~ eb2@4 b2@3 ~", Y: "bb2@5 ~ bb2 ~ bb2@3 f2 bb1@3 ~", Z: "a2@5 ~ a2 ~ f2@6 c2 ~",
  AA: "gb2@6 ~ gb2 gb2@6 e2 gb2", AB: "f2@6 ~ f2!2 ~ f2@5 f1", AC: "bb3@7 f3 bb2 ~ bb2@4 f2 gb2",
  AD: "bb2@6 ~ bb2!2 ~ bb2@5 ~", AE: "bb1@6 ~ bb1 bb1@6 bb1!2", AF: "bb1@6 ~ bb1!2 ~ bb1@3 ~ bb1 ~",
  AG: "bb2@6 ~ bb2 bb2@7 f2", AH: "bb2",
})).s("gm_fretless_bass").gain(0.28)

// chords · piano
const piano = note(`<
  ~@9 A@2 B C D E F G H I J K E L M N E I O K E P F C L M Q R@2 S Q R@2 T O C P E B U L T J K E P B C E M V W@2 X V P E
  Y Z ~
>`.pickRestart({
  A: "[~@15 [bb4,db5,f5]@14 ~ bb4 db5, ~@15 f4@13 ~ f4@3]/2", // Bbm
  B: "~@13 bb4!2 ~, [eb3,eb5,gb5]@15 ~, bb4@13 ~@3, ~@6 gb4@9 ~", C: "[a3,gb4,a4,c5,eb5]@7 ~ [f3,c5,f5,a5]@7 ~",
  D: "bb4@4 bb4@2 bb4 ~ [f4,bb4,db5]@5 ~ [bb4,db5]@2, [eb3,eb5,gb5] bb2, ~@13 f4@2 ~", // Bbm Ebm
  E: "~@6 f4@7 f4!2 bb4, [bb2,bb4,db5], f4@3 ~@5, ~@4 db4@11 ~", // Bbm
  F: "~@6 bb4@7 bb4!2 eb5, [eb3,eb5,gb5], bb4@3 ~@5, ~@4 gb4@11 ~", // Ebm
  G: "gb4@4 gb4@2 a4@2 [c5,f5,a5]@5 ~ [f5,a5]@2, [a3,c5,eb5] f3, a4@6 ~@7 c5@2 ~", // F Adim
  H: "[eb3,bb4,eb5,gb5]@7 ~ [bb2,f4,bb4,db5]@7 ~", I: "[ab4,bb4,db5,f5]@13 ~ ab4 bb4, db4@12 ~ db4@2 ~",
  J: "~@6 gb4@7 ~@2 db5, [eb3,db5,eb5], bb4@7 bb4, gb4@6 ~@7 gb4@2 ~, ~@4 eb4@11 ~", // Eb7
  K: "[a3,gb4,a4,c5,eb5]@7 ~ [c5,f5,a5]@5 ~ [f5,a5]@2, ~ f3, ~@13 c5@2 ~", // Adim F
  L: "~@13 f4!2 ~, [bb2,bb4,db5]@15 ~, f4@13 ~@3, ~@6 db4@9 ~", M: "[eb5,gb5,bb5]@13 ~ eb5 gb5, bb4@12 ~ bb4@2 ~",
  N: "[gb4,a4,c5,eb5]@5 ~ [a4,c5,eb5]@2 c5@4 c5@2 c5 ~, a3 [f3,f5,a5], ~@5 gb4@2 ~@9", // Gbdim Adim F
  O: "[db5,eb5,gb5,bb5]@13 ~ db5 eb5, gb4@12 ~ gb4@2 ~", P: "[bb4,db5,f5]@13 ~ bb4 db5, f4@12 ~ f4@2 ~",
  Q: "~@13 db5!2 ~, [f3,f5,a5]@15 ~, db5@13 ~@3, ~@6 a4@9 ~", // F
  R: "[~@28 db5@2 bb4 f4, bb2, db5@27 f4@4 ~, [f4,bb4]@14 f4 bb4@15 ~@2, ~@13 db4@18 ~]/2", // Bb5
  S: "~@6 bb4@7 bb4!2 eb5, [gb3,eb5,gb5], bb4@3 ~@5, ~@4 gb4@11 ~", // Ebm
  T: "~@6 db4@7 ~@2 ab4, [bb2,ab4,bb4], f4@7 f4, db4@6 ~@7 db4@2 ~, ~@4 bb3@11 ~", // Bb7
  U: "[a3,gb4,a4,c5,eb5]@7 ~ c5@4 c5@2 c5 ~, ~ [f3,f5,a5]", V: "~@6 db5@7 db5!2 f5, [f3,f5,a5], db5@3 ~@5, ~@4 a4@11 ~",
  W: "[~@14 db5@2 db5@5 ~ [db5,f5,bb5]@5 ~@3 bb4 f4, bb2@31 ~, ~ f4@5 db4@15 db4@10 ~, ~@2 bb4@8 f4@6 [f4,bb4]@13 f4@2 ~, ~@3 db5@9 bb4@4 ~@11 [db5,f5,bb5]@4 ~]/2", // Bbm Bb5 Bbm
  X: "~@13 bb4!2 ~, [gb3,eb5,gb5]@15 ~, bb4@13 ~@3, ~@6 gb4@9 ~", Y: "[db4,f4,bb4]@11 ~ [db4,f4,bb4]@3 ~",
  Z: "[db4,f4,bb4]@15 ~", // Bbm
})).s("gm_piano").gain(0.24)

// chords · epiano1 · "Piano"
const epiano1 = note("<A@2 B@8 ~@59>".pickRestart({
  A: "[~ [bb2,c4,db4,ab4,eb5]@7]/2", B: "[~@6 [f3,eb4,g4,bb4]@34 ~ [bb2,db4,eb4,ab4,c5]@34 [f3,g4,bb4,eb5]@52 ~]/8",
})).s("gm_epiano1").gain(0.24)

// drums · kick
const kick = s("bd").struct(`<
  ~@9 A B C@2 D@2 E C F C@7 F C@3 E C@3 F@2 G F G F G F C@2 E C@5 F C@7 F@2 G F G F G F@3 H ~
>`.pickRestart({
  A: "~@15 x", B: "~@5 x ~ x ~@7 x", C: "x ~@5 x ~ x ~@6 x", D: "x ~@5 x ~ x ~@4 x ~ x", E: "x ~@2 x!2 ~@3",
  F: "x ~@6 x!2 ~@6 x", G: "x ~@2 x ~@2 x ~@8 x", H: "x",
})).gain(0.28)

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

// drums · clap
const clap = s("cp").struct("<~@10 [~@3 x ~@8 x ~@3] [~ x ~ x]!56 ~@2>").gain(0.28)

// drums · low tom
const low_tom = s("lt").struct("<~@17 A ~@7 A ~@15 B ~@23 A ~@3>".pickRestart({
  A: "~@7 x!2 ~@5 x ~", B: "~@13 x!2 ~",
})).gain(0.28)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@9 A B C D E F G C H C@2 I E J E C H C@3 D J E C K ~@7 L C D C E I@2 C K C M C@2 F E C K ~@7 H N ~@2
>`.pickRestart({
  A: "~@15 x", B: "~ x ~ x ~ x ~ x ~@2 x ~ x ~ x ~", C: "x!8", D: "x!7 ~", E: "x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~",
  F: "x ~ x ~ x!3 ~ x ~ x ~ x!2 ~@2", G: "x ~ x ~ x!3 ~ x ~ x ~ x ~@3", H: "x!4 ~@2 x ~@9",
  I: "x ~ x ~ x!3 ~ x ~ x ~ x!3 ~", J: "x ~ x ~ x!3 ~ x ~ x ~ x ~ x ~", K: "x ~ x!6 ~@8", L: "x!11 ~@5",
  M: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2", N: "x!16",
})).gain(0.28)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@10 A B@2 C D E B ~ F@2 G C E H B ~ F@2 B@2 E C F I ~@8 F B@2 C D G B I F C B@2 D H B I ~@11
>`.pickRestart({
  A: "x ~ x ~ x ~ x ~ x ~@2 x ~ x ~@2", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~ x ~ x ~ x ~@3 x",
  D: "~ x ~ x ~@3 x ~ x ~ x ~@4", E: "~ x ~ x ~@3 x ~ x ~ x ~ x ~ x", F: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2",
  G: "~ x ~ x ~@3 x ~ x ~ x ~@3 x", H: "~ x ~ x ~ x ~ x ~ x ~ x ~@4", I: "~ x ~@14",
})).gain(0.12)

// drums · mid tom
const mid_tom = s("mt").struct("<~@17 A ~@7 A ~@15 B ~@23 A ~@3>".pickRestart({
  A: "~@5 x ~@10", B: "~@11 x ~@4",
})).gain(0.28)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@10 A ~ B ~ C B ~@2 A@2 ~@3 A ~@2 A@2 ~ B ~@2 A ~@9 A B ~@2 A ~@3 A B ~@2 C A ~@13
>`.pickRestart({
  A: "~@15 x", B: "~@7 x", C: "~@14 x!2",
})).gain(0.24)

// drums · high tom
const high_tom = s("ht").struct("<~@17 A ~@7 A ~@15 B ~@23 A ~@3>".pickRestart({
  A: "~@3 x ~@12", B: "~ x",
})).gain(0.28)

// drums · crash
const crash = s("cr").struct("<~@9 A ~@8 B ~@7 B ~@6 A B ~@7 B ~@6 A B ~@6 A B ~@7 B@2 ~>".pickRestart({
  A: "~@15 x", B: "x",
})).gain(0.24)

// drums · ride
const ride = s("rd").struct("<~@34 A B C B C B C ~@17 A D C E C E C ~@4>".pickRestart({
  A: "x ~ x!3 ~ x!3 ~ x!6", B: "x ~ x!5 ~ x!3 ~ x!4", C: "x!16", D: "x ~ x!3 ~ x ~ x ~ x ~ x!4",
  E: "x ~ x!5 ~ x ~ x ~ x!4",
// … 39 more lines

More by Sting