Strudelify

Like a Child

Backstreet Boys

KeyA♭ majorTempo69 bpm
0:00/0:00
// Like a Child — Backstreet Boys
// 69 bpm, 4/4, key G# 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 96 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(69/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 · piano
const piano = note("<~ A@3 B@6 C@5 ~@10 D@2 E@8 ~@15 F@6 G@4 ~@4 H@3 ~@25 I@3 ~>".pickRestart({
  A: "[~@2 eb3, gb3@2 ~, ~ f3@2]/3",
  B: "[~@28 ab2@4 ~@9 db3@7, ab2@12 ab2@5 bb2@31 eb2 gb2@15 db3@17 bb2@15, ~@3 eb3@6 db3@7 f2@12 [eb2,c3]@16 ~@4, ~@7 ab3@26 ab2@17 bb2@30 gb2@16, ~@8 gb2@9 db3@15 [f2,ab2]@16]/6", // Cm Fm
  C: "[~@5 ab1@4 ~, f2@25 bb2@32 ~@23, ~ ab2@25 eb3@32 ~@22, ~@2 db3@25 gb3@32 ~@21, ~@16 gb2 bb2 eb3@6 gb2@8 ab1@3 [eb2,ab2]@32 ~@13]/5", // Ab5
  D: "[db4 [f3,ab3,db4], [gb3,bb3]]/2", // Db Gb
  E: "[~@8 ab3@8 db4@16 db4@16 db4@16 gb3@5 ~@3 gb3@5 ~@2 eb4 [ab3,c4,eb4]@8 [ab3,c4,eb4]@32 ~@8, [gb3,bb3]@32 [gb3,bb3]@32 ~@5 gb3@2 db4@32 ~@25, db4 [f3,ab3]@2 [f3,ab3]@2 ~@3, ~@4 [c4,eb4]@16 ~@12 [bb3,db4]@3 bb3 [bb3,eb4]@3 bb3@16 ~@9, ~@77 gb3@32 ~@19]/8", // Ab Gb Fm Cm Bbm Eb5
  F: "[~@40 ab3@7 ~@11 ab3@2 ab3@2 ~@2 db4@16 [f3,ab3,db4]@16, ~@15 f3@25 [c4,eb4]@32 ~@24, ~@15 bb3@16 gb3@29 db4@2 ab3@18 ~@16, ~ db4 bb3@2 [gb3,bb3]@2, ~@24 [ab3,c4,eb4]@8 db4@15 ab3 [db4,f4]@12 f4@32 ~@4]/6", // Db Cm Gb Ab Db
  G: "[gb3@5 ~@3 gb3@5 ~@2 eb4 [b3,eb4,gb4]@8 [b3,eb4,gb4]@32 ~@8, [bb3,db4]@3 bb3 [bb3,eb4]@3 bb3@16 ~@9, ~@5 gb3@2 db4@32 ~@25, ~@13 gb3@32 ~@19]/4", // B Bbm Eb5
  H: "[~@8 b3@7 ~ [e4,ab4]@32, e4@15 b3@32 ~, ~ [eb4,gb4]@4 ~]/3", // E Ebm
  I: "[~@17 [bb3,eb4,g4]@31, eb4@17 ~@31, ~ d4@4 ~, ~@8 bb3@9 ~@31, ~@9 f4@32 ~@7]/3", // Eb
})).s("gm_piano").gain(0.36).pan(0.4)

// chords · pad warm
const pad_warm = note(`<
  ~ A@2 B C B D E D B D F C G C H I J@5 K L M N@4 O@2 B C G C H I J@5 K L M ~@9 O@2 B P ~ Q R Q S T ~@2 U@5 V W V X@8
  U@5 Y Z AA AB Y ~@4
>`.pickRestart({
  A: "[[bb4,gb5] [ab4,f5], db5]/2", B: "[bb4,db5,gb5]", C: "[ab4,c5,eb5]", D: "[ab4,db5,f5]",
  E: "[bb4,eb5,gb5] [ab4,c5,eb5]", F: "[gb4,bb4,eb5]", G: "[bb4,db5,f5]", H: "~@7 bb5, [bb4,eb5,gb5]",
  I: "db5 c5, [eb5,ab5]", J: "[[f4,ab4] [gb4,bb4] [f4,ab4] [gb4,bb4] f4, db4, ~@32 ab4@7 ~]/5", K: "bb4 b4, [db4,gb4]",
  L: "[eb4,gb4,bb4] [eb4,ab4,c5]", M: "[db4,f4,ab4]", N: "[ab4,db5,f5,ab5]/4", O: "[gb5 f5, [ab4,db5]]/2",
  P: "[b4,eb5,gb5]", Q: "[a4,db5]", R: "[ab4,b4]", S: "ab4, b4@7 ~", T: "db5 d5, [e4,a4]",
  U: "[[g4,bb4] [ab4,c5] [g4,bb4] [ab4,c5] g4, eb4, ~@32 bb4@7 ~]/5", V: "[ab4,c5]", W: "[g4,bb4]",
  X: "[[g4,bb4] [ab4,c5] [g4,bb4] [ab4,c5], eb4]/4", Y: "c5 db5, [eb4,ab4]", Z: "[f4,ab4,c5] [f4,bb4,d5]",
  AA: "[eb4,g4,bb4]", AB: "g4, bb4@7 ~",
})).s("gm_pad_warm").gain(0.1)

// chords · piano
const piano_2 = note("<~ A@2 B@3 C@5 D E@8 F@6 G@6 H I@7 J@8 K@7 L@4 M@8 N@8 O@8 P@7 Q@5 ~>".pickRestart({
  A: "[~@21 db6@11, ab5 ab5, ~ db5@8 db5@7, ~@3 gb5@29, ~@5 db6@14 f5@13]/2",
  B: "[~@16 ab4@16 ~@7 db5@9, ab5@14 eb5@23 gb4@11, ~@2 db5@11 f5@22 db4@13, ~@3 gb5@8 f5 gb5@20 ab4@16, ~@5 db6@10 db5 [eb4,c5]@32]/3", // Cm
  C: "[~@24 [c4,eb4]@2 ~@6 [f3,ab3]@2 ~@3 db4@3 f3@2 ~@36 db4@2, ab4@12 ab5@15 eb4@2 ab4@3 db4@2 f3 ab3@5 ab3@15 db5@5 db4@4 ab4@16, ~@3 db4@13 ab4@3 gb4@21 db4@2 f3@25 db4@4 db5@9, ~@5 f4@19 ab3@2 c4@20 f4@2 ab4@3 db4@2 gb4@27, ~@7 db5@11 db4@3 db5@22 eb4@26 f4@11]/5", // Cm Fm
  D: "~@13 eb4@3, f4, [gb3,bb3]!2, ~@3 db4@5 eb4@3 db4@5, ~@5 ab4@11", // Gb
  E: "[~@80 [ab3,db4,f4]@7 ~@9 bb3@8 ~@8 [ab3,db4,f4]@7 ~@2 ab3@7, gb3@16 [db4,f4]@2 bb3@2 [db4,f4]@2 bb3@2 [db4,f4]@2 bb3@2 [db4,f4]@30 bb3@2 eb4@2 bb3@26 db4 ab3@15 bb3@24, bb3@8 c4@22 bb3@18 [eb4,gb4]@2 bb3@2 [eb4,gb4]@2 bb3@2 [eb4,gb4]@4 gb4@27 ab3 f4@20 [c4,eb4,ab4]@20, db4@5 db4@3 ab3@24 [c4,eb4]@2 ab3@2 [c4,eb4]@2 ab3@4 ab3@2 eb4@2 ab3@30 [eb4,ab4]@20 gb4@32, ~@3 ab3@5 eb3@32 [c4,eb4]@4 c4@20 [eb4,ab4]@2 c4@2 [eb4,ab4]@2 c4@2 [eb4,ab4]@2 c4@4 c4@18 db4@16 ~@7 ab3 [db4,f4]@8]/8", // Db Ebm Ab Cm Ab5 Cm Ab5 Db
  F: "[[bb3,db4,gb4]@8 bb3@2 ~@2 c4@2 ~@2 [ab3,db4,f4]@6 [ab3,db4]@2 [ab3,db4]@4 db4@4 [bb3,db4,gb4]@6 [db4,gb4]@2 ~@8 bb3@4 ~@4 ab3@4 ab3@4 [ab3,db4,f4]@3 ~@3 db4@2 ~@20 db5@4, ~@8 gb4@14 f4@2 gb4@4 [ab3,f4]@20 eb4@4 bb3@15 ab3 f4@2 [bb3,gb4]@16 db4@10, ~@8 db4@6 c4@26 [db4,gb4]@7 db4@7 eb4@2 [db4,f4]@4 [c4,eb4]@22 ab4@14, ~@10 bb3@22 ~@6 bb3@8 bb3@2 gb4@20 db4 ab3@3 ab3@24, ~@12 [eb4,ab4]@28 b3@32 [db4,f4]@9 db5@2 f4@13]/6", // Gb Db Db5 Gb Gb5 Db Ebm Gb5 …
  G: "[~@40 db4@4 db4@3 db4, ab4@12 db5@20 ab3 db4 eb4 ab3 db4 eb4 ab3 db4 eb4 ab3 db4 eb4 ab3@16 db5@6 db4 eb4@29, ~ ab3@15 bb4@29 db4 eb4@19 ab3@31, ~ db4@2 db4@9 c5@13 ab4@2 db4@5 ab4@16, ~@3 eb4@21 ab4@23 db4@2 db5@2 f4@19 db4@6 db5@20]/6",
  H: "db4@2 ~@9 eb4 eb4@4, ~ ab3 eb4 db4@2 db4@3, ~@3 db4@2 ab3@4 ab3@7, ~@7 eb4@4 ~@5",
  I: "[~@64 [ab3,db4,f4]@7 ~@9 bb3@8 ~@8 [ab3,db4,f4]@7 ~@2 ab3@7, [db4,f4]@4 [db4,f4]@4 [db4,f4]@4 [db4,f4]@30 bb3@2 eb4@2 bb3@26 db4 ab3@15 bb3@24, ~@2 bb3@4 bb3@4 bb3@4 bb3@18 [eb4,gb4]@2 bb3@2 [eb4,gb4]@2 bb3@2 [eb4,gb4]@4 gb4@27 ab3 f4@20 [c4,eb4,ab4]@20, ~@8 [c4,eb4]@2 [c4,eb4]@2 [c4,eb4]@2 c4@10 [eb4,ab4] c4 [eb4,ab4] c4 [eb4,ab4] c4 [eb4,ab4]@10 gb4@16, ~@18 ab3@4 ab3@4 ab3@2 eb4@2 ab3@32 c4@18 db4@16 ~@7 ab3 [db4,f4]@8]/7", // Db Ebm Ab Cm Ab5 Db
  J: "[[bb3,db4,gb4]@8 bb3@2 ~@2 c4@2 ~@2 [ab3,db4,f4]@6 [ab3,db4]@2 [ab3,db4]@4 db4@4 [bb3,db4,gb4]@6 [db4,gb4]@2 ~@8 bb3@4 ~@4 ab3@4 ab3@4 [ab3,db4,f4]@3 ~@3 db4@2 db4@8 gb3@2 ~@16 ab3@2 ~@2 db4@2 ab3@2 ~@20 ab3@2, ~@8 gb4@14 f4@2 gb4@4 [ab3,f4]@20 eb4@4 bb3@15 ab3 f4@2 gb4@24 ab3@2 [db4,f4]@4 f4@2 gb4@26, ~@8 db4@6 c4@26 [db4,gb4]@7 db4@7 eb4@2 [db4,f4]@4 [c4,eb4]@20 [bb3,db4]@2 gb3@2 bb3@16 db4 ab3 bb3@6 [db4,f4]@2 [c4,eb4]@8 bb3@10, ~@10 bb3@22 ~@6 bb3@8 bb3@2 gb4@20 db4 ab3 bb3@2 ab3@12 db4@2 gb3@26 [db4,f4]@2 bb3@2 [db4,f4]@12, ~@6 [eb4,ab4]@14 b3@16 f4@8 [c4,eb4] ab3 [c4,eb4]@6 [db4,f4] ab3@7 [c4,eb4] ab3 [c4,eb4]@2]/8", // Gb Db Db5 Gb Gb5 Db Gb5 Db …
  K: "[~@10 ab3@2 ab3@2 ~@30 db4@2 ~@16 ab4@14 ab4@2 ab4@19 ~@11 db5@4, [bb3,db4]@4 bb3@8 db4@2 ab3@6 db4@2 gb3@32 ~@22 db5@21 db5@2 f4@13, ~ gb3@2 gb3@4 [c4,eb4] [bb3,db4] gb3 bb3@5 ab3 [db4,f4] ab3 [db4,f4] ab3 f4@2 [bb3,gb4]@16 f5@13 db4@5, ~@2 db4@4 gb4@14 db4 ab3@2 [ab3,db4,f4]@16 ~@10 ab4@7, ~@4 [c4,eb4]@2 f4@6 [c4,eb4] ab3 [c4,eb4]@16 eb5@9 [c5,eb5]@16 ~]/7", // Bbm Cm Bbm Db Ebm Db Cm
  L: "[~@16 db4@8 db4@6 ~@2 e4@2 ~@9 gb4 gb4@20, ab4@15 db4@16 ~, ~ ab3@32 ~ b3@2 gb4@2 e4@3 b3@23, ~ db4@2 db4@3 db5@16 ~@10, ~@3 eb4@32 e4@2 b3@2 gb4@3 e4@22]/4",
  M: "[db4@8 ~@8 [b3,e4,ab4]@7 ~@9 [db4,e4,a4]@8 db4@2 ~@2 eb4@2 ~@2 [b3,e4,ab4]@6 [b3,e4]@2 [b3,e4]@4 e4@4 [db4,e4,a4]@6 [e4,a4]@2 e4@6 ~@14 b4@2 ~@18 [bb3,eb4,g4]@7 ~@2 bb3@7, a4@24 e4 b3@17 db4@18 [b3,ab4]@32 [e5,ab5]@32 ~@4, e4@16 ~@7 b3 ab4@20 [gb4,b4]@28 [d4,a4]@22 [b4,eb5,gb5]@32 ~@2, ~@8 db4@24 ~@8 a4@14 ab4@2 a4@8 ~@6 db4@8 db4@32 ~@9 bb3@2 ~@7, ~@12 [eb4,gb4,b4]@28 e4@6 eb4@32 ~ e4@32 ~@9 [eb4,g4]@8]/8", // E A E E5 A A5 Eb E …
  N: "[c4@8 ~@8 [bb3,eb4,g4]@7 ~@9 [c4,eb4,ab4]@8 c4@2 ~@2 d4@2 ~@2 [bb3,eb4,g4]@6 [bb3,eb4]@2 [bb3,eb4]@4 eb4@4 c4@8 ~@8 [bb3,eb4,g4]@7 ~@9 [c4,eb4,ab4]@8 c4@2 ~@2 d4@2 ~@2 [bb3,eb4,g4]@7 ~@2 bb3@7, ab4@24 eb4 bb3@17 c4@18 [bb3,g4]@16 [d4,f4,bb4]@28 eb4@2 c4@13 bb3 [eb4,g4]@8, eb4@16 ~@7 bb3 g4@20 [f4,bb4]@20 eb4@16 ~@7 bb3 g4@20 [f4,bb4]@20, ~@8 c4@24 ~@8 ab4@14 g4@2 ab4@8 ab4@24 eb4 bb3@21 d4@18, ~@6 [d4,f4,bb4]@14 eb4@3 d4@13 c4@12 ~@4 ab4@12]/8", // Eb Ab Eb Eb5 Eb Ab Eb Bb …
  O: "[c4@8 ~@8 [bb3,eb4,g4]@7 ~@9 [c4,eb4,ab4]@8 c4@2 ~@2 d4@2 ~@2 [bb3,eb4,g4]@7 ~@9 c4@8 ~@8 [bb3,eb4,g4]@7 ~@9 [c4,eb4,ab4]@8 c4@2 ~@2 d4@2 ~@2 [bb3,eb4,g4]@7 ~@2 bb3@7, ab4@24 eb4 bb3@17 c4@13 bb3 g4@16 c4@16 eb4 bb3@17 c4@13 bb3 [eb4,g4]@8, eb4@16 ~@7 bb3 g4@20 [f4,bb4]@20 ab4@32 ~@8 ab4@24, ~@8 c4@24 ~@8 ab4@16 eb4 bb3@19 [d4,f4,bb4]@28 eb4@4 [f4,bb4]@20, ~@12 [d4,f4,bb4]@28 eb4@6 d4@18 eb4@16 ~@7 bb3 g4@22 d4@18]/8", // Eb Ab Eb Ab Eb Bb5 Bb Bb5 …
  P: "[c4@8 ~@8 [bb3,eb4,g4]@7 ~@9 [c4,eb4,ab4]@8 c4@2 ~@2 d4@2 ~@2 [bb3,eb4,g4]@6 [bb3,eb4]@2 [bb3,eb4]@4 eb4@4 [c4,eb4,ab4]@6 [eb4,ab4]@2 ~@8 c4@4 ~@4 bb3@4 bb3@4 [bb3,eb4,g4]@3 ~@3 eb4@2 [bb3,eb4,g4]@8, ab4@24 eb4 bb3@17 c4@18 [bb3,g4]@20 f4@4 c4@15 bb3 g4@2 [c4,ab4]@10, eb4@16 ~@7 bb3 g4@20 [f4,bb4]@28 db4@32 ~@8, ~@8 c4@24 ~@8 ab4@14 g4@2 ab4@8 ~@6 c4@2 [eb4,ab4]@7 eb4@7 f4@2 [eb4,g4]@4 [d4,f4]@20, ~@12 [d4,f4,bb4]@28 eb4@6 d4@32 c4@2 ab4@20 eb4 bb3@3 ~@8]/7", // Eb Ab Eb Eb5 Ab Ab5 Eb Fm …
  Q: "[[bb3,eb4,g4]@6 [bb3,eb4]@2 [bb3,eb4]@4 eb4@4 [c4,eb4,ab4]@6 [eb4,ab4]@2 eb4@6 ~@15 bb4@2 [bb4,d5,f5]@32 ~, ~@6 g4@6 [bb3,g4]@32 ~ [eb5,g5]@32 ~@3, ~@4 ab4@4 ~@3 c4@4 c4@16 ~@9, ~@3 [db4,ab4]@4 ~@3, ~@31 eb4@32 ~@17]/5", // Eb Eb5 Ab Ab5 Bb Eb Db5
})).s("gm_piano").gain(0.5).pan(0.6)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A@3 B@2 ~@12 C@3 D@3 E@2 ~@12 C@3 D@3 E@2 F G H I J K ~@2 L ~@4 M N O P@3 ~ Q R@3 S@3 T U V@3 W V@3 W V@3 X@3 Y@2 Z AA
  ~@4
>`.pickRestart({
  A: "[~@11 [db5,eb5] [f5,gb5] ab5@31 gb5 f5 db5 eb5]/3", B: "[ab4@13 [ab4,eb5] [eb4,bb4] [db4,ab4]]/2",
  C: "[[ab3,f4]@8 [bb3,gb4]@7 ~ [ab3,f4]@8, db4]/3", D: "[[bb3,gb4]@8 [ab3,f4]@8 bb3@3 ~ b3@4, db4, ~@2 gb4]/3",
  E: "[[bb3,gb4] [ab3,f4], db4]/2", F: "bb4@3 eb5, gb4", G: "[f4,ab4]", H: "db5@6 c5 db5 c5@6 ab4@2",
  I: "gb5@6 f5 eb5 [ab4,ab5]@8, bb4 ~", J: "[gb4,bb4]@5 bb4 eb5 db5, ~@5 gb4@3",
  K: "~@10 [c6,db6] [f5,gb5,ab5,bb5] [c5,db5,eb5] [gb4,bb4] [c4,db4,eb4] ~, [f4,ab4]@13 [f4,ab4]@3", // Dbmaj7 Gbmaj7 Cm Gb Cm Fm
  L: "[ab3,ab4]@6 [db4,db5] ~ [db4,db5]@6 ~@2", M: "[e4,e5,e6] ~@5 [e4,e5,e6] ~@5 [e4,e5,e6] ~ [e4,e5,e6] ~",
  N: "[db4,a4]@7 ~", O: "[b3,ab4]", P: "[[db4,a4]@8 [b3,ab4]@8 db4@3 ~ d4@4, e4, ~@2 a4]/3",
  Q: "~@5 [bb3,bb4] [c4,d4,eb4,c5,d5,eb5] [f4,f5] [bb4,bb5]@4 [eb4,eb5]@2 [f4,f5] [eb4,f4,eb5,f5], ~@8 [ab4,ab5] ~@7", // Bb Cm F Bb Eb F Ebsus2 Ab
  R: "[[bb3,g4,g5]@4 eb6@3 f6 [bb3,g4,bb5]@4, eb4, ~@8 [c4,ab4]@7 ~@9]/3", // Eb Fm
  S: "[[c4,ab4,ab5]@16 ~@2 g5 [eb5,g5] bb5@4 ~@2 [g5,bb5] bb5 ~@16 c6@4, eb4, ~@8 [bb3,g4]@8 [c4,ab4]@7 ~, ~@7 eb6@5]/3", // Fm Eb Gm Eb Fm
  T: "[bb3,g4,bb5]", U: "~@2 [eb5,eb6] ~ [eb5,eb6] ~@3 [eb5,eb6] ~ [eb5,eb6] ~@5, [c4,eb4,ab4]",
  V: "[[bb3,g4]@8 [c4,ab4]@7 ~ [bb3,g4]@8, eb4]/3", W: "[c4,eb4,ab4]",
  X: "[[c4,ab4]@8 [bb3,g4]@8 c4@3 ~ db4@4, eb4, ~@2 ab4]/3", Y: "[[c4,ab4] [bb3,g4], eb4]/2", Z: "[bb3,g4]",
  AA: "c4@3 ~ db4@4, ab4",
})).s("gm_string_ensemble_1").gain(0.2)

// other · whistle
const whistle = note("<~@4 [~@6 bb6@3 ab6 ab6@6, ~@10 f6 ~@5] ~@91>").s("gm_whistle").gain(0.05).pan(0.3)

// other · french horn
const french_horn = note("<~@3 A B ~@10 C D ~@18 C D ~@26 E F@2 ~@25 G H@2 ~@2>".pickRestart({
  A: "~@12 eb4@2 gb4 f4", B: "bb3 ab3", C: "gb4@10 eb4 ab3 eb4@2 ab3 bb4", D: "ab4", E: "a4@8 g4@6 gb4 g4",
  F: "[gb4 e4@2 ~]/2", G: "ab4@8 gb4@6 f4 gb4", H: "[f4@8 ~ eb4@17 ~@6]/2",
})).s("gm_french_horn").gain(0.11).pan(0.6)

// chords · string ensemble 1
const string_ensemble_1_2 = note("<~@5 A B C D A B E F ~@32 A F G H I@2 J K ~@11 L ~@27 M@2 ~@2>".pickRestart({
  A: "gb2", B: "f2", C: "eb2 ab2", D: "db2", E: "eb2", F: "ab2", G: "bb2 ab2", H: "gb2 ab2",
  I: "[bb3@12 bb3@3 ~ ab3@16, db4]/2", J: "[bb3,db4,f4] [ab3,c4,eb4]", K: "[gb3,bb3,db4] [ab3,c4,eb4]",
  L: "[a3,db4,e4] [b3,eb4,gb4]", M: "[[ab3,c4,eb4]@9 [bb3,d4,f4]@9 ~@14]/2",
})).s("gm_string_ensemble_1").gain(0.2)

// chords · orchestral harp
const orchestral_harp = note("<~@4 A B ~@18 A B ~@18 C@2 ~@43 D@2 ~@5>".pickRestart({
  A: "~@13 [bb3,c4] [db4,eb4,f4,gb4] [ab4,bb4,c5,db5,eb5]", B: "[f5,gb5] ~@15, ab5 ~",
  C: "[~ [f5,gb5,ab5], ~@13 [bb3,c4]@19, ~@7 [db4,eb4,f4,gb4]@9, ~@15 [ab4,bb4,c5,db5,eb5]@17]/2", // Fm Bbsus2 Ebm7 Ab
  D: "[~ [e5,f5,g5], ~@13 [a3,b3]@19, ~@7 [c4,d4,e4,f4]@9, ~@15 [g4,a4,b4,c5,d5]@17]/2", // Em Asus2 Dm7 G
})).s("gm_orchestral_harp").gain(0.26)

// chords · orchestral harp · soft notes
const orchestral_harp_soft = note("<~@4 A ~@19 A ~@19 B@2 ~@43 C@2 ~@5>".pickRestart({
  A: "~@13 ab3 ~@2", B: "[~@13 ab3@19]/2", C: "[~@13 g3@19]/2",
})).s("gm_orchestral_harp").gain(0.1)

// chords · violin
const violin = note("<A@3 B@2 ~@40 C D E F ~@47>".pickRestart({
  A: "[~@11 [db5,eb5] [f5,gb5] ab5@31 gb5 f5 db5 eb5]/3", B: "[ab4@13 [ab4,eb5] [eb4,bb4] [db4,ab4]]/2",
  C: "bb4@3 eb5, gb4", D: "[f4,ab4]", E: "db5@6 c5 db5 c5@6 ab4@2", F: "gb5@6 f5 eb5 [ab4,ab5]@8, bb4 ~",
})).s("gm_violin").gain(0.09).pan(0.4)

// other · overdriven guitar
const overdriven_guitar = note("<~@20 A@2 ~@6 B ~@2 C ~@8 A@2 ~@11 D E F G H I ~@2 J K ~@6 L@2 ~@25>".pickRestart({
  A: "[gb4 db5 ab4@6 ~ gb5 f5 eb5 db5@2 ab4 ab5@8 ~@9]/2", B: "~@8 f5@2 eb5 eb5@3 db6@2",
  C: "~@3 bb4@7 ~@6, ~ eb5@4 ~@3", D: "~@3 ab3", E: "ab4@14 f4 ab4", F: "bb4@6 ab4 bb4 f4 eb4 db4@4 eb4 ~",
  G: "f4@2 f4 f4@3 f4 f4@3 eb4 eb4@4 eb4", H: "e4@2 eb4 e4@3 gb4 ab4@3 b4 b4@3 ab4 [b4,db5]", I: "e5 ~@3",
  J: "~@12 e4@2 [ab4,b4] db5", K: "e5 ~", L: "[ab4 eb5 bb4@6 ~ ab5 g5 f5 eb5@2 bb4 bb5@8 ~@9]/2",
})).s("gm_overdriven_guitar").gain(0.31).pan(0.6)

// bass · electric bass finger
const bass = note(`<
  ~@12 A B C D E F G F G F H I J K L M N O P Q R B C D E F G F G F H I J S T U V W X Y Z AA O P Q AB AC AD AE AD AE AF
  AG AH AI AJ AI AJ AI AJ AI AJ AI AJ AI AJ AI AJ AI AJ AI AJ AI AJ AI AK AL AM AN AK AO@2 ~@2
>`.pickRestart({
  A: "~@14 ab1 a1", B: "bb1@5 ~ bb1 ~ bb1@8", C: "ab1@5 ~ ab1 ~ ab1@6 gb1 f1", D: "eb1@6 eb1 ~ eb1@8",
  E: "ab1@5 ~ ab1 ~ ab1@7 ~", F: "db2@5 ~ db2 ~ db2@8", G: "gb1@5 ~ gb1 ~ gb1@4 ab1@4", H: "gb1@5 ~ gb1@2 b1@5 ~ bb1@2",
  I: "eb1@5 ~ eb1@2 ab1@7 ~", J: "db1@5 ~ db1 ~ db1@6 ~@2", K: "gb1@5 ~ gb1 ~ gb1@8", L: "f2@6 f1 ~ f1@8",
  M: "eb2@5 ~ eb2@2 ab1@8", N: "db2@6 db2 ~ db2@4 eb1@2 f1@2", O: "gb1@6 gb1 ~ gb1@8", P: "f1@5 ~ f1 ~ f1@8",
  Q: "eb1@6 eb1 ~ eb1@7 eb2", R: "ab1@6 ab1 ~ ab1@6 ab1 a1", S: "gb1@5 ~ gb1 ~ ab1@8",
  T: "db1@5 ~ db1 ~ db1@4 db2@2 c2@2", U: "bb1@5 ~ bb1 ~ ab1@5 ~ ab1@2", V: "gb1@3 gb1 ab1 ab2 ab1@2",
  W: "gb1@5 ~ gb1 ~ ab1@5 ~ ab1 ~", X: "db1@5 ~ db1 ~ db1@3 ~ db2@2 c2@2", Y: "bb1@5 ~ bb1 ~ ab1@8", Z: "eb1 ab1",
  AA: "db1@3 ~", AB: "b1@6 b1 ~ b1@6 b1 c2", AC: "e1 ~@5 e1 ~@9", AD: "a1@5 ~ a1 ~ a1@4 b1@4", AE: "e2@5 ~ e2 ~ e2@8",
  AF: "a1@5 ~ a1@2 d2@5 ~ db2@2", AG: "gb1 b1", AH: "e1@3 ~", AI: "eb2@5 ~ eb2 ~ eb2@8",
  AJ: "ab1@5 ~ ab1 ~ ab1@4 bb1@4", AK: "ab1@5 ~ ab1@2 db2@5 ~ c2@2", AL: "f1@5 ~ f1@2 bb1@7 ~",
  AM: "eb1@5 ~ eb1 ~ eb1@6 ~@2", AN: "[ab1,eb2]@5 ~ eb2 ~ eb2@8", AO: "[f1@9 bb1@8 eb1@13 ~@2]/2",
})).s("gm_electric_bass_finger").gain(0.31)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@12 A B C D E F G F G F H ~@4 I@2 ~ J@2 K B C D E L M L N O@2 P Q ~@14 R S T ~ U@2 V W X W Y Z@2 W Y W X W Y W X W Y
  W X W Y AA@2 AB AC ~ AD@2 AE ~@2
>`.pickRestart({
  A: "~@14 ab2 a2", B: "bb2", C: "ab2@14 bb2 db3", D: "eb3", E: "ab2", F: "db3", G: "gb2@3 ab2", H: "gb2",
  I: "[~@10 [ab4,db5]@12 ~@2 f5@2 eb5!2 ~ eb5 db6@2]/2", J: "[~@8 ab5@10 eb5 bb4@5 ~@8]/2",
  K: "[ab4,c5]@2 [ab4,c5] [bb4,db5]@2 [ab4,c5] [bb4,db5]@9 ~", L: "~@3 ab4@12 ~, ~@2 db5@13 ~",
  M: "~ gb5 f5 eb5 db5@2 ~ ab5@7 ~@2, ~@6 ab4@9 ~", N: "~@3 gb5@6 ~@2 db5@5, ~@2 db5@7 ~ f5@6",
  O: "[~@3 f5@7 ~ ab5@7 ~@14, ~@2 db5@7 ~ db5@8 ~@14]/2", P: "gb4@3 f4@3 db4@2 ab3@4 eb4@4", Q: "db4 ~",
  R: "~ a5 ab5 gb5 e5@2 ~ b5@7 ~@2, ~@6 b4@9 ~", S: "~@3 b4@12 ~, ~@2 e5@13 ~",
  T: "~@3 a5@6 ~@2 e5@5, ~@2 e5@7 ~ ab5@6", U: "[~@3 b4 g4@2 ~@2 e4@4 gb4@4, ~ e4 ~ gb4@2 ~@3]/2", V: "e4 ~",
  W: "~@3 bb4@12 ~, ~@2 eb5@13 ~", X: "~ ab5 g5 f5 eb5@2 ~ bb5@7 ~@2, ~@6 bb4@9 ~",
  Y: "~@3 ab5@6 ~@2 eb5@5, ~@2 eb5@7 ~ g5@6",
  Z: "[~@3 g5@7 ~ bb5@6 ab5 g5 f5 eb5@2 ~ bb5@7 ~@2, ~@2 eb5@7 ~ eb5@8 ~@4 bb4@9 ~]/2",
  AA: "[~@3 g5@7 ~ bb5@7 ~@14, ~@2 eb5@7 ~ eb5@8 ~@14]/2", AB: "ab4@3 g4@3 eb4@2 bb3@4 f4@4", AC: "eb4 ~",
  AD: "[~@6 bb4@2 gb4@4 ~@4 eb4@9 f4@7, ~ eb4 ~ f4@2 ~@3]/2", AE: "~ eb4@9 ~@6",
})).s("gm_electric_guitar_clean").gain(0.39).pan(0.4)

// chords · bassoon · Db Cm Bbsus2 Cm Db Cm Bbsus2 Cm
const bassoon = note(`<
  ~@13
  [[db4,f4]@14 [c4,eb4] [bb3,c4]]
  [[c4,eb4]]
  ~@18
  [[db4,f4]@14 [c4,eb4] [bb3,c4]]
  [[c4,eb4]]
  ~@61
>`).s("gm_bassoon").gain(0.11).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@53 A B C D E ~@7 F ~@30>".pickRestart({
  A: "~@7 f4 [ab3,f4]@8, ~@7 [db4,eb4]@9", // Db Dbsus2
  B: "[bb3,db4,gb4]@2 bb3@2 [db4,f4,gb4]@2 bb3 [bb3,db4,gb4]@2 bb3 [db4,gb4] bb3 [bb3,db4,gb4] bb3 [db4,gb4] ~", // Gb Gbmaj7 Gb Gb5 Gb Gb5
  C: "[ab3,db4,f4]@2 ab3@2 [ab3,db4,f4]@2 ab3 [ab3,db4,f4]@2 ~ [db4,f4]@2 [bb3,db4,gb4] ~ [ab3,db4,f4] ~, ~@9 ab3@2 ~@5", // Db Gb Db
  D: "[gb3,bb3,db4]@2 gb3 [bb3,db4] [gb3,bb3,db4]@2 gb3 [gb3,bb3,db4]@2 gb3 [bb3,db4] gb3 [gb3,bb3,db4] gb3 [gb3,bb3,db4] ~", // Gb Bbm Gb Bbm Gb
  E: "[gb3,b3,eb4]@2 b3@2 [gb3,eb4]@2 b3 [gb3,b3,eb4]@2 b3 [gb3,eb4] b3 [gb3,b3,eb4] ~ [gb3,b3,eb4] ~", // B Ebm B Ebm B
  F: "~@7 g4 [bb3,g4]@8, ~@7 [eb4,f4]@9", // Eb Ebsus2
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@13 A@38 B ~ C A@4 D A@3 B ~ B E A@7 F A@16 B ~ B ~@3>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x", C: "x ~@2 x ~@3 x ~ x ~ x ~ x ~ x", D: "x ~@2 x ~@3 x ~ x ~ x!5", E: "x ~@5 x ~@3 x!6",
  F: "x ~@6 x!2 ~ x ~@5",
})).gain(0.46)

// drums · rim
const rim = s("rim").struct("<~@13 A@3 B A@7 B A@7 B ~@10 A B ~@43 A B ~@6>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.51)

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

// drums · low tom
const low_tom = s("lt").struct("<~@16 A ~@7 A ~@7 A ~@3 A ~@7 A ~@3 B ~ C ~@6 B ~@15 D ~@7 B ~@7 A ~@6>".pickRestart({
// … 64 more lines

More by Backstreet Boys