Strudelify
Ordinary World cover art

1993 · Duran Duran

Ordinary World

Duran Duran

KeyE majorTempo70 bpm
0:00/0:00
// Ordinary World — Duran Duran
// 70 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 90 bars on a 16-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): Acoustic Steel Guitar.
setcpm(70/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 · fretless bass · "Bass"
const bass = note(`<
  ~ A B C D A B E F G H@2 I@4 J@2 K L M A B C D A B E N O P G H@2 I@4 J@2 K L M A B C D A B C D A B C D A B E F Q R@2 S
  Q T@2 U A B C D A B C D A B C D A B C D A B C D V ~@2
>`.pickRestart({
  A: "b1@6 ~ b1!2 ~ b1@3 ~ b1@2", B: "f#1@7 f#1!2 ~ f#1@4 f#1@2", C: "d2@7 a1 d2 a1 c#2@2 d2@2 e2@2",
  D: "e1@11 e1 e2@4", E: "d2@7 f#1 d2 a1 c#2@6", F: "c2@7 g2 a2 g2@6 ~", G: "c#2@6 ~ c#2 ~@2 c#2@6",
  H: "[e2@8 f#2 ~ f#2@3 ~ c#2@8 ~@2 c#2 ~ c#2@6]/2", I: "[e2@8 f#2 ~ f#2@3 ~ c#2@8 ~ c#2 ~@2 c#2@6]/2",
  J: "[e2@2 c#3@2 b2@2 ~@2 f#2!4 e2 ~ c#2@8 ~ c#2 ~@2 c#2@6]/2", K: "g#1@6 ~ g#1 ~@2 g#1@6", L: "d#2@7 d#2 ~@2 d#2@6",
  M: "e2@3 b2", N: "c2@15 ~", O: "c#2", P: "e2@6 f#2@9 ~", Q: "~@7 c#3 d#3 c#3 ~ d#3 e3 d#3 ~@2, c#2",
  R: "[e2@7 e2 f#2 e2 ~ f#2 g#2 f#2 ~@9 c#3 d#3 c#3 ~ d#3 e3 d#3 ~@2, ~@7 c#2@9]/2", S: "e2@8 f#2@3 f#2 g#2 f#2 c#2@2",
  T: "[e2@7 e2 f#2 e2 ~ f#2 g#2 f#2 ~@9 c#3 d#3 c#3 ~ d#3 e3 d#3 ~ e3, ~@7 c#2@9]/2",
  U: "f#3 e3 e2@6 ~@3 g#3 a#3 g#3 ~ f#2, ~@4 f#2@3 ~", V: "b1@15 ~",
})).s("gm_fretless_bass").gain(0.4)

// chords · string ensemble 2 · "Slow Strings"
const string_ensemble_2 = note(`<
  ~ A B@3 A C@2 D ~@7 E F G H I A B@3 A C@2 D ~@5 J@5 F G H I A B@3 A B@3 A B@3 A C@2 D ~@8 A B@3 A B@3 A B@3 A B@3 A
  B@3 A ~@2
>`.pickRestart({
  A: "[b3,c#4,f#4]", B: "[[a3,e4]@2 [g#3,e4], b3]/3", C: "[a3,b3,e4]/2", D: "[a3,c4,e4]",
  E: "[g#4,g#5] [f#4,f#5] [e4,e5]@2 [d#4,d#5] [c#4,c#5] [b3,b4] [c#4,c#5]", F: "[g#3,c#4,c#5]",
  G: "g#4@2 a#4 b4, [d#3,g#3]", H: "[a#3,d#4,a#4]", I: "b4 g#4 b4 e5, [b3,e4]",
  J: "[[g#4,g#5] [f#4,f#5] [e4,e5]@2 [d#4,d#5] [c#4,c#5] [b3,b4] ~@25 [f#4,f#5]@8, ~@7 [c#4,c#5]@33]/5", // G# F# E D# C# B F# C#
})).s("gm_string_ensemble_2").gain(0.26)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@21 A B C D E@2 F@2 G@2 ~@12 A B C D A B C D ~@8 H I@2 ~ H J@2 K L@2 ~@21
>`.pickRestart({
  A: "d#5@7 e5, b4", B: "[c#5,f#5]", C: "[e4,a4]", D: "[f#4,b4]", E: "[[b4,d#5]@7 e5 f#5@8, ~@7 c#5@9]/2",
  F: "[~ b4, [e4,a4]]/2", G: "[[g#4,c#5,g#5]@31 ~]/2",
  H: "~@7 [c#4,c#5] [d#4,d#5] [c#4,c#5] ~ [d#4,d#5] [e4,e5] [d#4,d#5] ~@2", // C# D# C# D# E D#
  I: "[~@7 [e3,e4] [f#3,f#4] [e3,e4] ~ [f#3,f#4] [g#3,g#4] [f#3,f#4] [c#3,c#4]@8 ~ [c#4,c#5] [d#4,d#5] [c#4,c#5] ~ [d#4,d#5] [e4,e5] [d#4,d#5] ~@2]/2", // E F# E F# G# F# C# D# …
  J: "[~@7 [e3,e4] [f#3,f#4] [e3,e4] ~ [f#3,f#4] [g#3,g#4] [f#3,f#4] [c#3,c#4]@9 ~@9]/2", // E F# E F# G# F# C#
  K: "~@7 [f#4,f#5] [g#4,g#5] [f#4,f#5] ~ [g#4,g#5] [a#4,a#5] [g#4,g#5] ~ [a#4,a#5]", L: "[b4,b5]/2",
})).s("gm_string_ensemble_1").gain(0.22)

// chords · electric guitar clean · "Electric Clean Guitar"
const electric_guitar_clean = note(`<
  ~ A B C D E F G H I@3 J@4 K@2 L M N A B C D E F G H O P Q@7 R@8 S@8 T@7 ~@6 U@7 S@8 V@7 ~
>`.pickRestart({
  A: "[b3,c#4,f#4]@3 [b3,c#4,f#4] ~ [b3,c#4,f#4] ~@2 [b3,c#4,f#4]@3 [b3,c#4,f#4] ~ [b3,c#4,f#4] ~ [b3,c#4,f#4]", // Bsus2
  B: "~ [a3,b3,e4] ~@2 [a3,b3,e4]@3 [a3,b3,e4] ~@5 e4@3, ~@4 a3 e4 b3@2, ~@9 b3@2 a3@5", // Asus2
  C: "[a3,b3,e4]@3 [a3,b3,e4] ~ [a3,b3] ~@6 b3 a3 b3 a3, ~@5 e4@4 ~ e4@5 ~, ~@6 a3@2 ~ a3@3 ~@4, ~@7 b3@4 ~@5", // Asus2
  D: "[b3,e4]@2 ~ [b3,e4] ~ e3 [b3,e4] b3@2 ~@4 e3 ~ e3, ~@7 e4@5 b3@3 ~, ~@9 e3@2 e3@2 ~ e4@2, ~@5 a3@3", // E5
  E: "[b3,c#4,f#4]@3 [b3,c#4,f#4] ~@2 [b3,c#4,f#4]@3 [b3,c#4,f#4] ~ b2 [b3,f#4]@2 ~ b3, ~@12 c#4 ~ c#4@2", // Bsus2 B5
  F: "[a3,b3,e4]@3 [a3,b3,e4] ~ a2 [a3,b3,e4]@3 [a3,b3,e4] ~@4 b3@2, ~@5 a3 e4 ~, ~@11 b3@2 a3@3", // Asus2
  G: "[a3,b3,e4]@3 [a3,b3,e4] ~ a3 [a3,b3,e4]@3 [a3,b3,e4]@2 ~@3 e4@2, ~@11 a3@2 a3@3, ~@3 b3", // Asus2
  H: "[a3,b3,c4,e4]@2 ~ [a3,b3,c4,e4] ~@2 [a3,b3,c4,e4]@3 [a3,b3,c4,e4] ~@4 e4@2, ~@11 a3@5, ~@3 b3, ~@13 c4@3", // Am
  I: "[[g#3,c#4]@4 [b3,e4]@2 [g#3,c#4] [b3,e4]@2 [g#3,c#4] [b3,e4]@2 [b3,e4] [g#3,c#4] [b3,e4] [b3,e4]@4 ~ [b3,e4]@4 [c#4,f#4] ~ [c#4,f#4]@3 ~ [g#3,c#4]@6 [b3,e4]@2 [g#3,c#4] [b3,e4]@2 [g#3,c#4] [b3,e4]@2 [b3,e4] [g#3,c#4] [b3,e4]@2]/3", // C#5 E5 C#5 E5 C#5 E5 C#5 E5 …
  J: "[[b3,e4]@4 [b3,e4]@4 [c#4,f#4] ~ [c#4,f#4]@3 ~ [g#3,c#4]@6 [b3,e4]@2 [g#3,c#4] [b3,e4]@2 [g#3,c#4] [b3,e4] ~ [b3,e4] [g#3,c#4] [b3,e4] [b3,e4]@5 [b3,e4]@4 [c#4,f#4] ~ [c#4,f#4]@3 ~ [g#3,c#4]@6 [b3,e4]@2 [g#3,c#4] [b3,e4]@2 [g#3,c#4] [b3,e4] ~ [b3,e4] [g#3,c#4] [b3,e4]@2]/4", // E5 F#5 C#5 E5 C#5 E5 C#5 E5 …
  K: "[[b3,e4]@4 [b3,e4]@4 [c#4,f#4] ~ [c#4,f#4]@3 ~ [g#3,c#4]@6 [g#3,c#4]@3 ~ d#4 ~ c#4 ~ d#4 ~ c#4 g#3, ~@23 g#3@4 g#3@3 ~@2, ~@25 e4@2 ~@2 e4@2 ~]/2", // E5 F#5 C#5
  L: "[d#3,g#3]@4 [d#3,g#3]@3 ~ a#3 ~ g#3 ~ a#3 b3 g#3@2, ~@7 d#3@2 b3@2 d#3@5", // G#5
  M: "[d#3,a#3,d#4]@3 ~ d#3@2 ~ d#3@2 ~@5 d#3@2, ~@2 d#4@3 a#3 d#4@2, ~@4 a#3@5 d#3@2 d#3@2 a#3@3", // D#5
  N: "[e3,b3,e4]@4 [e3,b3,e4]@4 [e3,b3,e4]@4 [e3,b3,e4]@3 ~", // E5
  O: "~@10 g#3 c#4 ~@2 d#4 g#3, b4@11 ~@5, ~ c#4@2 c#4@2 c#4@2 c#4 g#4@3 ~@2 e4@2 ~, ~@2 g#3@4 g#3@3 c#4@2 ~ d#4@2 ~@2, ~@4 a#4@7 ~@5",
  P: "~@4 g#3@2 [g#3,c#4]@4 [g#3,c#4]!3 [g#3,c#4]@3, e4@3 ~@5, ~ d#4@2 ~@5", // C#5
  Q: "[~@4 [b3,e4]@2 ~ [b3,e4]@2 ~ [b3,e4]@2 ~@2 [b3,e4] [b3,e4]@5 ~@4 [c#4,f#4]@2 c#4@4 ~@6 [b3,e4]@2 ~ [b3,e4]@2 ~ [b3,e4]@2 ~@2 [b3,e4]@2 [b3,e4]@4 ~@4 [c#4,f#4]@2 c#4@4 ~@6 [b3,e4]@2 ~ [b3,e4]@2 ~ [b3,e4]@2 ~@2 [b3,e4] [b3,e4]@5 ~@4 [c#4,f#4]@2 c#4@4 ~@6 [b3,e4]@2 ~ [b3,e4]@2 ~ [b3,e4]@2 ~@2 [b3,e4]@2, [g#3,c#4]@6 [g#3,c#4]@3 [g#3,c#4]@3 [b3,e4]@2 ~@6 [b3,e4]@16 ~@8 [b3,e4]@2 ~@6 [b3,e4]@16 ~@8 [b3,e4]@2 ~@6 [b3,e4]@16 ~@8 [b3,e4]@2 ~@2, ~@13 g#3@17 [g#3,c#4]@8 [g#3,c#4]@3 [g#3,c#4]@4 g#3@17 [g#3,c#4]@8 [g#3,c#4]@3 [g#3,c#4]@4 g#3@17 [g#3,c#4]@8 [g#3,c#4]@3 [g#3,c#4]@4 [g#3,c#4]@3, ~@13 c#4@11 ~@2 f#4@30 ~@2 f#4@30 ~@2 f#4@22, ~@45 c#4@11 ~@21 c#4@11 ~@24]/7", // E5 F#5 E5 F#5 E5 F#5 E5 C#5 …
  R: "[[b3,e4]@4 ~@4 [c#4,f#4]@2 c#4@4 [g#3,c#4]@6 g#3@3 ~@8 g#3 [d#3,g#3]@4 d#3@3 ~@9 [d#3,a#3,d#4]@4 d#3@3 d#3@2 ~@7 [e3,b3,e4]@4 [e3,b3,e4]@4 [e3,b3,e4]@4 b3@4 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@2 b3@2 [a3,b3,e4]@3 [a3,b3,e4]@3 a3 ~@5 e4@3 [a3,b3,e4]@3 [a3,b3,e4]@2 a3 ~@9 a3, ~@4 b3@26 c#4@30 d#4@16 e4@21 ~@6 [b3,e4]@2 b3@2 a3@5 ~@6 a3@3 a3@4 a3@2 ~, ~@4 e4@19 g#3@2 e4@2 g#3@2 e4@23 [a#3,d#4]@5 d#3 a#3 d#3@2 a#3@32 ~@2 [c#4,f#4]@32 ~, ~@10 f#4@26 g#3@3 d#3 a#3 b3 g#3 d#3 a#3 b3@17 d#3@32 ~@10 a3@2 e4@3 ~@8 e4@5 e4@6, ~@20 c#4@4 d#4@2 c#4@2 d#4@18 g#3@30 e3@32 b3@4 ~@5 b3@2 b3@5 b3@2 b3@2]/8", // E5 F#5 C#5 G#5 D#5 E5 Bsus2 Asus2 …
  S: "[[b3,e4]@3 [b3,e4]@2 ~ [b3,e4] ~@9 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@2 b3@2 [a3,b3,e4]@3 [a3,b3,e4]@3 a3 ~@5 e4@3 [a3,b3,e4]@3 [a3,b3,e4]@2 a3 ~@10 [b3,e4]@3 [b3,e4]@2 ~ [b3,e4] ~@9 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@2 b3@2 [a3,b3,e4]@3 [a3,b3,e4]@3 a3 ~@5 e4@3 [a3,b3,e4]@3 [a3,b3,e4]@2 a3 ~@9 a3, ~@5 e3@4 e3@2 e3@2 e3@2 e3@32 ~@7 a3@3 a3@4 a3@2 a3@11 a3@23 ~@6 [b3,e4]@2 b3@2 a3@5 ~@5 b3@2 b3@5 b3@2 b3@2, ~@7 e4@7 e4@19 ~@7 a3@2 e4@2 b3@4 ~@5 e4@5 e4@6 ~@7 e4@7 e4@19 ~@7 a3@2 e4@2 b3@4 ~@5 e4@5 e4@6, ~@7 b3@5 b3@4 ~@15 [c#4,f#4]@32 ~@8 b3@5 b3@4 ~@15 [c#4,f#4]@32 ~, ~@10 a3@23 ~@6 [b3,e4]@2 b3@2 a3@5 ~@5 b3@2 b3@5 b3@2 b3@2 ~@5 e3@4 e3@2 e3@2 e3@2 e3@32 ~@7 a3@3 a3@4 a3@2 ~]/8", // E5 Bsus2 Asus2 E5 Bsus2 Asus2 E5 F#5 …
  T: "[[b3,e4]@3 [b3,e4]@2 ~ [b3,e4] ~@9 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 ~ [b3,c#4]@2 ~ b3 [a3,b3,e4]@3 [a3,b3,e4]@2 ~ [a3,b3,e4]@3 a3 ~@4 b3@2 [a3,b3,e4]@3 [a3,b3,e4]@2 a3 [a3,b3,e4]@3 [a3,b3]@2 ~@3 e4@2 [a3,b3,c4,e4]@3 [a3,b3,c4,e4]@3 [a3,b3,c4,e4]@3 [a3,b3]@2 ~@3 e4@32 ~@2, ~@5 e3@4 e3@2 e3@2 e3@2 e3@22 a2@32 ~@8 c4@32 ~@3, ~@7 e4@7 e4@14 f#4@31 a3 b3@4 ~@9 [c4,e4]@5 ~@34, ~@7 b3@5 b3@4 ~@11 b2@14 [b3,e4] a3 b3 e4 a3@3 ~@9 e4@4 a3@3 ~@11 a3@32 ~@5, ~@5 a3@10 c#4@16 ~@7 b3@16 ~@2]/7", // E5 Bsus2 Asus2 Am Asus2 C E5
  U: "[[b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@2 b3@2 [a3,b3,e4]@3 [a3,b3,e4]@3 a3 ~@5 e4@3 [a3,b3,e4]@3 [a3,b3,e4]@2 a3 ~@10 [b3,e4]@3 [b3,e4]@2 ~ [b3,e4] ~@9 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@2 b3@2 [a3,b3,e4]@3 [a3,b3,e4]@3 a3 ~@5 e4@3 [a3,b3,e4]@3 [a3,b3,e4]@2 a3 ~@9 a3, ~@15 [c#4,f#4]@32 ~@8 b3@5 b3@4 ~@15 [c#4,f#4]@32 ~, ~@23 [b3,e4]@2 b3@2 a3@5 ~@5 b3@2 b3@5 b3@2 b3@2 ~@5 e3@4 e3@2 e3@2 e3@2 e3@32 ~@7 a3@3 a3@4 a3@2 ~, ~@24 a3@2 e4@2 b3@4 ~@5 e4@5 e4@6 ~@7 e4@7 e4@19 ~@7 a3@2 e4@2 b3@4 ~@5 e4@5 e4@6, ~@38 a3@3 a3@4 a3@2 a3@11 a3@23 ~@6 [b3,e4]@2 b3@2 a3@5 ~@5 b3@2 b3@5 b3@2 b3@2]/7", // Bsus2 Asus2 E5 Bsus2 Asus2 F#5 E5
  V: "[[b3,e4]@3 [b3,e4]@2 ~ [b3,e4] ~@9 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4]@2 b3@2 [a3,b3,e4]@3 [a3,b3,e4]@3 a3 ~@5 e4@3 [a3,b3,e4]@3 [a3,b3,e4]@2 a3 ~@10 [b3,e4]@3 [b3,e4]@2 ~ [b3,e4] ~@9 [b3,c#4,f#4]@32, ~@5 e3@4 e3@2 e3@2 e3@2 e3@32 ~@7 a3@3 a3@4 a3@2 a3@11 a3@32 ~@6, ~@7 e4@7 e4@19 ~@7 a3@2 e4@2 b3@4 ~@5 e4@5 e4@6 ~@7 e4@7 e4@32 ~@2, ~@7 b3@5 b3@4 ~@15 [c#4,f#4]@32 ~@8 b3@5 b3@4 ~@32, ~@10 a3@23 ~@6 [b3,e4]@2 b3@2 a3@5 ~@5 b3@2 b3@5 b3@2 b3@2 ~@5 e3@4 e3@2 e3@2 e3@2 e3@32 ~]/7", // E5 Bsus2 Asus2 E5 Bsus2 F#5 E5
})).s("gm_electric_guitar_clean").gain(0.2)

// chords · acoustic guitar nylon · "Acoustic Nylon Guitar"
const acoustic_guitar_nylon = note("<~@4 A B C D E F G H I J K L M ~@12 N O@6 P@5 ~@9 A Q@3 R@7 ~@29>".pickRestart({
  A: "~@13 e5!3", B: "e5 d#5!2 d#5@2 c#5!4 b4!2 b4@2 f#5!3", C: "f#5 e5!2 e5@2 d#5!4 c#5!2 c#5@2 b4!3",
  D: "b4@2 e4 b4@2 e4 b4@7 ~ b4 e4", E: "a4@2 ~ a4 ~ e4 a4@9 ~",
  F: "~ [b3,e4] ~@2 [b3,e4]@3 e4 ~ [b3,e4] ~@2 e4!2 ~ [b3,e4]", // E5
  G: "~ e4 ~ b3 [b3,e4]@3 [b3,e4] ~ [b3,c#4,f#4] ~@2 [b3,c#4,f#4] ~ [b3,c#4,f#4] [c#4,f#4]", // E5 Bsus2 F#5
  H: "~ [b3,e4] ~@2 [b3,e4]@2 ~ [b3,e4] ~ [b3,e4] ~@2 [b3,e4]!2 ~ [b3,e4]", // E5
  I: "~ e4 [b3,e4] ~ [b3,e4]@2 ~ [b3,e4] ~ [b3,c#4,f#4] ~@2 [b3,c#4,f#4] [c#4,f#4] ~ [b3,c#4,f#4]", // E5 Bsus2 F#5 Bsus2
  J: "~ e4 [b3,e4] ~ [b3,e4]@3 [b3,e4] ~ [b3,e4] ~ b3 [b3,e4] e4 ~ e4", // E5
  K: "~ [b3,e4]!2 ~ [b3,e4]@2 ~ [b3,e4] ~ [b3,c#4,f#4] ~ b3 [b3,c#4,f#4] [c#4,f#4] ~ [b3,c#4,f#4]", // E5 Bsus2 F#5 Bsus2
  L: "~ [b3,e4]!2 ~ [b3,e4]@2 ~ [b3,e4] ~ e4 ~@2 [b3,e4]!2 ~ [b3,e4]", // E5
  M: "~ e4 [b3,e4] ~ [b3,e4]@2 ~ [b3,e4] ~ [b3,c#4,f#4] ~ b3 [b3,c#4,f#4]@2 ~ [b3,c#4,f#4]", // E5 Bsus2
  N: "~@2 g#3 ~ a#4 c#4 g#3 c#4 g#4 c#4 g#3 ~ d#4 e4 d#4 g#3, b4@3 ~@13, ~ c#4@2 c#4@2 ~@11",
  O: "[e4@2 d#4 ~ g#3 ~ [g#3,c#4]@4 ~@7 [b3,e4]@3 [b3,e4]@3 e4@2 [b3,e4]@3 e4 e4@2 [b3,e4]@2 e4@2 b3 [b3,e4]@3 b3@2 [b3,c#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f#4] ~@2 [b3,e4]@3 [b3,e4]@3 [b3,e4]@2 [b3,e4]@3 [b3,e4] [b3,e4]@2 [b3,e4]@2 e4 [b3,e4]@2 [b3,e4]@3 b3@2 [b3,c#4,f#4]@3 [b3,c#4,f#4] [c#4,f#4]@2 b3@2 e4 [b3,e4]@2 [b3,e4]@3 [b3,e4]@2 [b3,e4]@2 b3 [b3,e4] e4@2 e4, ~@5 e3@16 ~@27, ~@11 g#3@32 ~@53, ~@12 c#4@29 ~@6 [c#4,f#4]@26 ~@6 [c#4,f#4]@17, ~@39 e4@10 ~@22 e4@10 ~@15]/6", // C#5 E5 Bsus2 E5 Bsus2 F#5 E5 F#5
  P: "[~ [b3,e4] [b3,e4]@2 [b3,e4]@3 b3@2 [b3,c#4,f#4]@2 b3 [b3,c#4,f#4] [c#4,f#4]@2 b3@2 [b3,e4] [b3,e4]@2 [b3,e4]@3 [b3,e4]@2 e4@3 [b3,e4] [b3,e4]@2 [b3,e4]@2 e4 [b3,e4]@2 [b3,e4]@3 b3@2 [b3,c#4,f#4]@2 b3 [b3,c#4,f#4]@3 [b3,c#4,f#4]@32 ~, ~@7 e4@10 ~@22 e4@32 ~@9, ~@15 [c#4,f#4]@26 ~@39]/5", // E5 Bsus2 F#5 E5 Bsus2 F#5
  Q: "[~ d#5!2 ~@2 c#5!3 ~ b4!2 ~@2 f#5!3 ~ e5!2 ~@2 d#5!3 ~ c#5!2 ~@2 b4!3 b4@2 ~ b4@2 ~ b4@8 ~ e4, e5@16 f#5@18 e4@3 e4@9 b4@2, ~@3 d#5@16 e5@29, ~ c#5@2 d#5@3, ~@11 b4@16 c#5@21]/3",
  R: "[b4@2 ~ b4@2 ~@8 e5!3 ~ d#5!2 ~@2 c#5!3 ~ b4!2 ~@2 f#5!3 ~ e5!2 ~@2 d#5!3 ~ c#5!2 ~@2 b4!3 b4@2 ~ b4@2 ~ b4@8 ~@2 a4@3 a4@2 ~ a4@32 ~@10, ~@2 e4@3 e4@27 f#5@18 e4@3 e4@9 b4@32 ~@18, ~@3 b4@9 c#5@8 d#5@16 ~@20, ~@16 e5@11 b4@16 c#5@32 ~@37, ~@19 d#5@16 e5@28 e4@3 ~@3 e4@32 ~@11]/7",
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// chords · acoustic guitar nylon · "Acoustic Nylon Guitar" · soft notes
const acoustic_guitar_nylon_2 = note("<~@8 A B C D E F G H ~@15 I J@2 K L@2 M ~@20 N ~@31>".pickRestart({
  A: "~@2 e4 ~@13", B: "~@7 b3 ~@4 b3!2 ~@2", C: "~ b3 ~@9 b3 ~ b3 ~ b3", D: "~@11 b3 ~@4", E: "~ b3 ~@9 b3 ~ b3 ~@2",
  F: "~ b3 ~@11 b3 ~ b3", G: "~@13 b3 ~@2", H: "~@9 b3 ~ b3 ~@4", I: "~@7 b3@2 ~@3 b3 b3@2 ~",
  J: "[~ b3@3 ~@7 b3 ~ b3 ~ b3@2 ~@10 b3 ~@4]/2", K: "~ b3 ~@9 b3 ~ b3@2 ~", L: "[~ b3 ~@11 b3@2 b3@2 ~@12 b3@2 ~]/2",
  M: "~@9 b3@2 b3 ~@4", N: "~@2 e4@3 ~@11",
})).s("gm_acoustic_guitar_nylon").gain(0.15)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~ A B C D E B F G ~@34 A B C D A B C D A B C D H I F G ~@7 J K L M N K L M O A B C D A B C D A B C D A ~@2
>`.pickRestart({
  A: "[f#3,b3]@15 ~", B: "[c#3,f#3]", C: "[d3,a3]", D: "[e3,b3]@15 ~", E: "[f#3,b3]", F: "[d3,a3]@15 ~", G: "[e3,a3]",
  H: "b4@14 a4 f#4, [f#3,b3]", I: "[c#3,f#3,a4]", J: "~@13 e5!3", K: "e5 d#5!2 d#5@2 c#5!4 b4!2 b4@2 f#5!3",
  L: "f#5 e5!2 e5@2 d#5!4 c#5!2 c#5@2 b4!3", M: "b4@2 e4 b4@2 e4 b4@7 e4 b4 e4", N: "b4@2 e4 b4@2 e4 b4@7 e5!3",
  O: "b4@2 e4 b4@2 e4 b4@7 ~@3",
})).s("gm_distortion_guitar").gain(0.28)

// chords · piano · "Honki Tonk Piano"
const piano = note("<~@59 A B A B A B A B ~@23>".pickRestart({
  A: "[g#3,b3,c#4] c#3 [g#3,b3,c#4] c#3 [g#3,b3,c#4] c#3 [g#3,b3,c#4] c#3, c#2@15 ~", // C#7
  B: "[b3,c#4,e4] e3 [b3,c#4,e4] e3 [b3,c#4,f#4] f#3 [b3,c#4,f#4] f#3, e2@7 ~ f#2@8", // C#m7 Bsus2
})).s("gm_piano").gain(0.3)

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

// drums · snare
const snare = s("sd").struct(`<
  A B@3 C B@3 D B@15 E B@3 ~@2 A B@15 E B@3 E B@3 C B@3 D B@11 C B@3 C B@3 C B@3 C B@3 C ~@3
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~ x ~@2 x ~@7 x ~@3", D: "~ x", E: "~@2 x ~@2 x!2 ~",
})).gain(0.4)

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

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~ A B C D A B C ~@43 A B C D A B C ~@32>".pickRestart({
  A: "~ x ~ x ~ x ~@10", B: "~ x ~@14", C: "~ x ~@3 x ~ x ~ x ~@6", D: "~ x ~@7 x ~@6",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<A ~@3 B ~@3 C ~@21 B ~@23 B ~@3 C ~@11 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3>".pickRestart({
  A: "~@13 x!2 ~", B: "~@13 x ~@2", C: "~@3 x",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct(`<
  A ~@7 B ~ B ~ B ~ B ~ B ~ B ~ B ~@7 C D E ~ B ~ B ~ B ~ B ~ B ~ B ~@15 B ~ B ~ B ~ B ~ B ~@23
>`.pickRestart({
  A: "~@11 x ~@4", B: "~@7 x", C: "~@7 x ~@4 x ~@3", D: "~@3 x ~@7 x ~@4", E: "~@3 x ~@12",
})).gain(0.35)

// drums · ride
const ride = s("rd").struct(`<
  ~@21 A B@2 C A B@2 ~@15 A B@2 C A B@2 C ~@14 D ~ A E B@3 F E B@3 G E B@3 H@2 I B@2 ~@3
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x!6 ~ x", D: "~@7 x!2 ~@7", E: "x!3 ~ x ~ x ~ x ~ x ~ x ~ x ~",
  F: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x!2", G: "x!3 ~ x ~ x!2 ~ x!2 ~ x!4", H: "x ~ x ~ x ~ x!2 ~ x!2 ~ x ~ x ~",
  I: "x ~ x ~ x ~ x!2 ~ x!2 ~ x!3 ~",
})).gain(0.35)

// drums · china
const china = s("cr").struct(`<
  ~ A ~@2 B A ~@2 A@2 C ~@9 D A ~@2 D A ~@2 A ~@2 A C ~@9 D A ~@2 D A ~@2 D A ~@2 B A ~@2 A@2 C ~@2 A C ~@2 A ~@2 B A
  ~@2 B A ~@2 B A ~@2 B A ~ B@2 A ~@2
>`.pickRestart({
  A: "x", B: "~ x ~@2", C: "~@7 x", D: "~@3 x",
})).gain(0.35)

stack(
  bass, string_ensemble_2, string_ensemble_1, electric_guitar_clean, acoustic_guitar_nylon, acoustic_guitar_nylon_2,
  distortion_guitar, piano, kick, snare, low_tom, hihat, hihat_soft, mid_tom, open_hat, ride, china
)

More by Duran Duran